<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><description>I’m Nano, and you may hear me go by the name “Neil Alejandro Anderson”, which is fine, but if you’re my friend (or you want to be), just call me Nano. I prefer it.

I don’t write much, but what I do write can be found here.</description><title>Staticpulse Writings</title><generator>Tumblr (3.0; @staticpulsewritings)</generator><link>https://blog.staticpulse.com/</link><item><title>Open Sourcing Screwdriver, Yahoo’s Continuous Delivery Build System for Dynamic Infrastructure</title><description>&lt;p&gt;&lt;a href="https://yahooeng.tumblr.com/post/155765242061/open-sourcing-screwdriver-yahoos-continuous" class="tumblr_blog"&gt;yahooeng&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;By James Collins, Sr. Director, Developer Platforms and Services, and St. John Johnson, Principal Engineer&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Continuous Delivery enables software development teams to move faster and adapt to users’ needs quicker by reducing the inherent friction associated with releasing software changes. Yahoo’s engineering has modernized as it has embraced Continuous Delivery as a strategy for improving product quality and engineering agility. All our active products deliver from commit to production with full automation and this has greatly improved Yahoo’s ability to deliver products.  &lt;br/&gt;&lt;/p&gt;&lt;p&gt;Part of what enabled Yahoo to make Continuous Delivery at scale a reality was our improved build and release tooling. Now, we are open sourcing an adaptation of our code as &lt;a href="http://screwdriver.cd/"&gt;Screwdriver.cd&lt;/a&gt;, a new streamlined build system designed to enable Continuous Delivery to production at scale for dynamic infrastructure. &lt;/p&gt;&lt;p&gt;Some of the key design features of Screwdriver have helped Yahoo achieve Continuous Delivery at scale. At a high level these are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Making deployment pipelines easy&lt;/li&gt;&lt;li&gt;Optimizing for trunk development&lt;/li&gt;&lt;li&gt;Making rolling back easy&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;b&gt;Easy deployment pipelines:&lt;/b&gt; Deployment pipelines that continuously test, integrate, and deploy code to production greatly reduce the risk of errors and reduce the time to get feedback to developers. The challenge for many groups had been that pipelines were cumbersome to setup and maintain. We designed a solution that made pipelines easy to configure and completely self-service for any developer. By managing the pipeline configuration in the code repository Screwdriver allows developers to configure pipelines in a manner familiar to them, and as a bonus, to easily code review pipeline changes too.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Trunk development:&lt;/b&gt; Internally, we encourage workflows where the trunk is always shippable. Our teams use a modified &lt;a href="https://guides.github.com/introduction/flow/"&gt;GitHub flow&lt;/a&gt; for their workflows. Pull Requests (PRs) are the entry point for running tests and ensuring code that entered the repository has been sufficiently tested. Insisting on formal PRs also improves the quality of our code reviews. &lt;/p&gt;&lt;p&gt;To ensure trunks are shippable, we enable functional testing of code in the PRs. Internally, this is a configuration baked into pipelines that dynamically allocates compute resources, deploys the code, and runs tests. These tests include web testing using tools like Selenium. These dynamically-allocated resources are also available for a period after the PR build, allowing engineers to interact with the system and review visual aspects of their changes.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Easy rollbacks:&lt;/b&gt; To allow for easy code rollbacks, we allow phases of the pipeline to be re-run at a previously-saved state. We leverage features in our PaaS to handle the deployment, but we store and pass metadata to enable us to re-run from a specific git SHA with the same deployment data. This allows us to roll back to a previous state in production. This design makes rolling back as easy as selecting a version from a dropdown menu and clicking “deploy.” Anyone with write access to the project can make this change. This helped us move teams to a DevOps model where developers were responsible for the production state.&lt;/p&gt;&lt;p&gt;The successful growth of Screwdriver over the past 5 years at Yahoo has today led to Screwdriver being synonymous with Continuous Delivery within the company.&lt;b&gt; Screwdriver handles over 25,000+ builds per day and 12,000+ daily git commits as a single shared entrypoint for Yahoo. It supports multiple languages and handles both virtual machine and container-based builds and deployment.&lt;/b&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://s.yimg.com/ge/engineering/screwdriver/Screwdriver1.png"&gt;&lt;/a&gt;&lt;/p&gt;&lt;a href="https://s.yimg.com/ge/engineering/screwdriver/Screwdriver1.png"&gt;&lt;figure class="tmblr-full" data-orig-height="694" data-orig-width="1264" data-orig-src="https://s.yimg.com/ge/engineering/screwdriver/Screwdriver1.png"&gt;&lt;img src="https://64.media.tumblr.com/1ab582215b1934f536278ca9d8cc4de1/tumblr_inline_ponq148bDP1qzvzxa_540.png" alt="image" data-orig-height="694" data-orig-width="1264" data-orig-src="https://s.yimg.com/ge/engineering/screwdriver/Screwdriver1.png"/&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;Screwdriver.cd’s architecture is comprised of four main components: a frontend for serving content to the user, a stateless API that orchestrates between user interactions and build operations, the execution engines (Docker Swarm, Kubernetes, etc.) that checkout source code and execute in containers, and the launcher that executes and monitors commands inside the container.&lt;/p&gt;&lt;p&gt;The diagram below shows this architecture overlaid with a typical developer flow.&lt;br/&gt;&lt;/p&gt;&lt;a href="https://s.yimg.com/ge/engineering/screwdriver/Screwdriver2.png"&gt;&lt;/a&gt;&lt;a href="https://s.yimg.com/ge/engineering/screwdriver/Screwdriver2.png"&gt;&lt;figure class="tmblr-full" data-orig-height="636" data-orig-width="1246" data-orig-src="https://s.yimg.com/ge/engineering/screwdriver/Screwdriver2.png"&gt;&lt;img src="https://64.media.tumblr.com/fc6f27a869fe7d90ee864ca69f40c59c/tumblr_inline_ponq14CHqY1qzvzxa_540.png" alt="image" data-orig-height="636" data-orig-width="1246" data-orig-src="https://s.yimg.com/ge/engineering/screwdriver/Screwdriver2.png"/&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;To give some context around our execution engines, internal Screwdriver started as an abstraction layer on top of Jenkins and used Docker to provide isolation, common build containers, etc. We used features provided by Jenkins plugins to leverage existing work around coverage and test reports. However, as Screwdriver usage continued to climb, it outgrew a single Jenkins cluster. So in order to grow to our needs, we added capabilities in Screwdriver that allowed us to scale horizontally while also adding capabilities to schedule pipelines across a number of Jenkins clusters. As we scaled Screwdriver, we used less from Jenkins and built more supporting services utilizing our cloud infrastructure. The open-source version is focused on Kubernetes and Docker Swarm as our primary supported execution engines.&lt;b&gt;&lt;br/&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;In the coming months we will expand our offering to match many of the features we have internally, including:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Mechanism to store structured build data for later use (last deployed version, test coverage, etc.)&lt;/li&gt;&lt;li&gt;Built-in metric collecting&lt;/li&gt;&lt;li&gt;System-wide templates to enable getting started quickly&lt;/li&gt;&lt;li&gt;Log analysis to provide insights to developers&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Please join us on the path to making Continuous Delivery easy. Visit &lt;a href="http://screwdriver.cd/"&gt;http://screwdriver.cd&lt;/a&gt; to get started.&lt;br/&gt;&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I use this every single day. Now you can too!&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/155770058466</link><guid>https://blog.staticpulse.com/post/155770058466</guid><pubDate>Thu, 12 Jan 2017 12:57:52 -0500</pubDate></item><item><title>My niece is learning.</title><description>&lt;img src="https://64.media.tumblr.com/58db3f7b3eda9a40af006d9ec8ee3998/tumblr_oh9bqspdEQ1s6pejfo1_400.gifv"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;My niece is learning.&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/153688008811</link><guid>https://blog.staticpulse.com/post/153688008811</guid><pubDate>Sat, 26 Nov 2016 11:13:39 -0500</pubDate><category>made with tumblr</category><category>gif</category></item><item><title>Empowering the Minds of Tomorrow: Yahoo Makes Large Donation to Hampton University</title><description>&lt;p&gt;&lt;a class="tumblr_blog" href="http://lifeatyahoo.tumblr.com/post/152355519679"&gt;lifeatyahoo&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;By LaShanti Jenkins, Snr. Talent Acquisition Mgr.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;‘Empowering the Mind of Tomorrow’ are the words that now sit inside of a window in Hampton University’s Computer Science (CS) department in Virginia. Yahoo’s Office of Inclusive Diversity sponsored the branding behind a significant donation of 80 servers to the school.&lt;b&gt;&lt;br/&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure data-orig-width="1000" data-orig-height="632" class="tmblr-full"&gt;&lt;img src="https://64.media.tumblr.com/a412502fb89412bb684c994d86435eb8/tumblr_inline_ofogxsg8E91qhxx5s_540.jpg" alt="image" data-orig-width="1000" data-orig-height="632"/&gt;&lt;/figure&gt;&lt;figure data-orig-width="1000" data-orig-height="672" class="tmblr-full"&gt;&lt;img src="https://64.media.tumblr.com/bf9a38f4a53e513f7ab47405e13bdf52/tumblr_inline_ofogz3hvPZ1qhxx5s_540.jpg" alt="image" data-orig-width="1000" data-orig-height="672"/&gt;&lt;/figure&gt;&lt;p&gt;To celebrate the donation, Yahoo’s University Recruiting hosted a series of events where students got the opportunity to speak with Yahoo engineers, present their resumes, receive tips on interviewing in the tech space and explore options for internships and full-time employment at Yahoo. Additionally, Yahoo’s Jeffrey Scholz facilitated a tech talk to introduce students to the Yahoo Video Guide and the technology behind the app, including how it was developed at scale.&lt;br/&gt;&lt;/p&gt;
&lt;figure data-orig-width="1000" data-orig-height="642" class="tmblr-full"&gt;&lt;img src="https://64.media.tumblr.com/7d6b30ade94b45dee67eb8083c1b12bc/tumblr_inline_ofogy8b68I1qhxx5s_540.jpg" alt="image" data-orig-width="1000" data-orig-height="642"/&gt;&lt;/figure&gt;&lt;figure data-orig-width="1000" data-orig-height="665" class="tmblr-full"&gt;&lt;img src="https://64.media.tumblr.com/d1c7114536e5d6c691cc096eb7c5aaf3/tumblr_inline_ofogynyR7P1qhxx5s_540.jpg" alt="image" data-orig-width="1000" data-orig-height="665"/&gt;&lt;/figure&gt;&lt;p&gt;A big thank you to Yahoo’s LaShanti Jenkins, also a Hampton University alum, for making this happen!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I was a part of this. So proud.&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/152431899191</link><guid>https://blog.staticpulse.com/post/152431899191</guid><pubDate>Fri, 28 Oct 2016 14:29:56 -0400</pubDate></item><item><title>icphoto:

Garry Winogrand’s photographs are sophisticated,...</title><description>&lt;img src="https://64.media.tumblr.com/2c7fea0066e0c4c595519c7cbe908f71/tumblr_ockhw3VeA41ram6tgo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://icphoto.tumblr.com/post/149571829659/garry-winogrands-photographs-are-sophisticated" class="tumblr_blog"&gt;icphoto&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Garry Winogrand’s photographs are sophisticated, chance observations of daily life that demonstrate his mastery of the 35-millimeter camera.&lt;br/&gt;📷Garry Winogrand, 1981 &lt;a href="http://buff.ly/2bsp8Js"&gt;http://buff.ly/2bsp8Js&lt;/a&gt;&lt;br/&gt;&lt;/p&gt;&lt;/blockquote&gt;</description><link>https://blog.staticpulse.com/post/149588264451</link><guid>https://blog.staticpulse.com/post/149588264451</guid><pubDate>Sun, 28 Aug 2016 01:18:34 -0400</pubDate></item><item><title>icphoto:

#WednesdayWisdom from Alfred Eisenstaedt: “When I have...</title><description>&lt;img src="https://64.media.tumblr.com/52e129779158462d0b4e27473e976c6d/tumblr_ocfd5bOI0k1ram6tgo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://icphoto.tumblr.com/post/149429655055/wednesdaywisdom-from-alfred-eisenstaedt-when-i" class="tumblr_blog"&gt;icphoto&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;#WednesdayWisdom from Alfred Eisenstaedt: “When I have a camera in my hand, I know no fear.”&lt;/p&gt;&lt;/blockquote&gt;</description><link>https://blog.staticpulse.com/post/149441500581</link><guid>https://blog.staticpulse.com/post/149441500581</guid><pubDate>Wed, 24 Aug 2016 22:00:24 -0400</pubDate></item><item><title>life:

From the March 23, 1959 feature article: HAWAII—BEAUTY,...</title><description>&lt;img src="https://64.media.tumblr.com/0c2a9e42cbac8d8193fa229a9f430ea7/tumblr_oc9i5vXjPJ1qbz9meo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://life.tumblr.com/post/149269567114/from-the-march-23-1959-feature-article" class="tumblr_blog"&gt;life&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;From the March 23, 1959 feature article: HAWAII—BEAUTY, WEALTH, AMIABLE PEOPLE - After long years of trying, the idyllic islands at last stand on the brink of statehood. Pictured here: “Cattle graze under volcanic cliffs on Oahu Island. Tunnels through cliffs link back country to Honolulu.” (Ralph Crane—The LIFE Picture Collection/Getty Images) #1950s #Oahu #Hawaii&lt;/p&gt;&lt;/blockquote&gt;</description><link>https://blog.staticpulse.com/post/149275377646</link><guid>https://blog.staticpulse.com/post/149275377646</guid><pubDate>Sun, 21 Aug 2016 12:26:10 -0400</pubDate></item><item><title>leicanews:

Anémones du Japon.Leica II (D) Couplex, 50 mm Elmar,...</title><description>&lt;img src="https://64.media.tumblr.com/a92142aff40e0c15e35c197f3db119ae/tumblr_obtiuvIX9X1tkc25to1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://leicanews.tumblr.com/post/148920543966/an%C3%A9mones-du-japon-leica-ii-d-couplex-50-mm" class="tumblr_blog"&gt;leicanews&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Anémones du Japon.&lt;br/&gt;Leica II (D) Couplex, 50 mm Elmar, Kodak Plus-x.&lt;/p&gt;&lt;p&gt;Photo by Stéphane Marco‎ in &lt;a href="https://www.facebook.com/photo.php?fbid=1441452552804800&amp;set=g.342152005930147&amp;type=1&amp;theater"&gt;Leica Screw Group&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;</description><link>https://blog.staticpulse.com/post/148978068641</link><guid>https://blog.staticpulse.com/post/148978068641</guid><pubDate>Mon, 15 Aug 2016 07:50:41 -0400</pubDate></item><item><title>Yahoo Sports Introduces Your Guide to Live Sports</title><description>&lt;p&gt;&lt;a class="tumblr_blog" href="http://yahoo.tumblr.com/post/148842451499"&gt;yahoo&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;By Parker Emmott, Director, Product Management&lt;/i&gt;&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Although the sports we love haven’t changed, the way we watch them definitely has. We are excited to say that the days of scouring the internet to find where your live sports are streaming are a thing of the past. Starting today with MLB, our &lt;a href="http://yahoosports.tumblr.com/post/146652871198/new-yahoo-sports-app-on-ios-android"&gt;completely redesigned&lt;/a&gt; Yahoo Sports app now features a guide to find and stream live baseball games.&lt;br/&gt;&lt;/p&gt;
&lt;figure class="tmblr-full" data-orig-height="745" data-orig-width="355"&gt;&lt;img src="https://64.media.tumblr.com/4d4c7e08df91132b3b682efbb16590c5/tumblr_inline_obt3m2Jpvk1qhxx5s_500.gif" data-orig-height="745" data-orig-width="355"/&gt;&lt;/figure&gt;&lt;p&gt;Now you can find streaming options available for a specific baseball game, and we’ll link you directly to the right app for your viewing pleasure! We manage the complex rights and blackout restrictions, so we only show options available to you. &lt;br/&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Wondering how it works? &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;When you’re on the Schedule page, a ‘Watch’ button will now be displayed alongside games with streaming options.&lt;/li&gt;
&lt;li&gt;Simply tap through to the ‘Game Details’ page, and tap the ‘Watch Now’ button to see your streaming options. &lt;/li&gt;
&lt;li&gt;And if you see that a game is “Live on Yahoo!”, like our &lt;a href="http://sports.yahoo.com/blogs/mlb-big-league-stew/new-for-2016--the-mlb-free-game-of-the-day-on-yahoo-sports-084220155.html"&gt;MLB Free Game of the Day&lt;/a&gt;, you can watch the game directly on the ‘Game Details’ page.&lt;br/&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Make sure to update your Yahoo Sports app today to take advantage of this new live sports guide, or download Yahoo Sports for &lt;a href="https://itunes.apple.com/us/app/yahoo-sports/id286058814?mt=8"&gt;iOS&lt;/a&gt; and &lt;a href="https://play.google.com/store/apps/details?id=com.protrade.sportacular"&gt;Android&lt;/a&gt; if you haven’t already! And if you find yourself wishing a similar guide existed for your favorite streaming TV shows and movies, you can download Yahoo Video Guide for &lt;a href="https://itunes.apple.com/us/app/id1062329611?mt=8"&gt;iOS&lt;/a&gt; and &lt;a href="https://play.google.com/store/apps/details?id=com.yahoo.mobile.client.android.guide&amp;amp;referrer=utm_source%3Dmobile.yahoo.com%26utm_medium%3Ddetailpagelink"&gt;Android&lt;/a&gt;. Happy streaming! &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My team of crack Video engineers made this happen. First big release for some of them!&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/148843312791</link><guid>https://blog.staticpulse.com/post/148843312791</guid><pubDate>Fri, 12 Aug 2016 13:24:25 -0400</pubDate></item><item><title>tamarkincamera:


A very very early and all original Leica I...</title><description>&lt;img src="https://64.media.tumblr.com/38faeb586a49ad557748c307584dc098/tumblr_obg126nP5Y1tlj66io1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a class="tumblr_blog" href="http://tamarkincamera.tumblr.com/post/148499717786"&gt;tamarkincamera&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A very very early and all original Leica I (model A) with unusual original leatherette, ratchet mechanism and early fittings! The earliest one we’ve seen in a while #1817 made in 1926! #nofilter #raritydujour #rareasscamera #tamarkincamera #tamarkinrarecameraauction #leica #leicacamera #leicacraft #leica_world  (at Tamarkin Camera)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Very tempted to add a Leica screwmount without a built-in rangefinder (like this one here) to my collection.&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/148766471346</link><guid>https://blog.staticpulse.com/post/148766471346</guid><pubDate>Wed, 10 Aug 2016 21:39:28 -0400</pubDate></item><item><title>leicacraft:

A top view of a very special one of one M for...</title><description>&lt;img src="https://64.media.tumblr.com/abea185e02559f4d9f370242f189b367/tumblr_o6o4lsse831sgt77qo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://leicacraft.com/post/143855143752/a-top-view-of-a-very-special-one-of-one-m-for" class="tumblr_blog"&gt;leicacraft&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;A top view of a very special one of one M for @kantocamera #leicacraft #kameracraft #leica #leicacamera #camera #rangefinder #cameraporn&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Having taken apart cameras and lenses and usually not being able to figure out how to put them back together, I appreciate a company like Kanto and the incredible service they provide to photographers.&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/143861748331</link><guid>https://blog.staticpulse.com/post/143861748331</guid><pubDate>Wed, 04 May 2016 18:19:53 -0400</pubDate></item><item><title>japancamerahunter:


Desert Camo Leica M3 Betriebsk custom. This...</title><description>&lt;img src="https://64.media.tumblr.com/8599dd1ffb1b12d001b5180450c58e23/tumblr_o2d01rm5sN1qj2rjqo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a class="tumblr_blog" href="http://japancamerahunter.tumblr.com/post/139083352880"&gt;japancamerahunter&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Desert Camo Leica M3 Betriebsk custom. This was a very special customer order. We worked together to make this camera completely unique. #leica #leicacraft #lensporn #camera #cameraporn #filmcamera #shootfilm #leicacamera  (at Musashino, Tokyo)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Such a beautiful customization. I may do a lighter-shade repaint one day.&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/139090385356</link><guid>https://blog.staticpulse.com/post/139090385356</guid><pubDate>Wed, 10 Feb 2016 22:40:33 -0500</pubDate></item><item><title>Controlling audio output on iOS with AVAudioSession</title><description>&lt;p&gt;&lt;a class="tumblr_blog" href="http://yahooeng.tumblr.com/post/133423436921"&gt;yahooeng&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;i&gt;Nano Anderson, Engineering Mgr @ Yahoo Video NYC&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;If your app plays sound of any kind, you have probably asked yourself “why is/isn’t sound playing now?”. You toggle the ringer switch, which sometimes solves the problem. But sometimes it doesn’t. You copy and paste some code from Stack Overflow which overrides the ringer switch permanently, but then sound starts playing in the background while the phone’s in your pocket. Why?&lt;/p&gt;
&lt;p&gt;If you end up in Apple’s iOS documentation and sample code, you’ll probably run into a wall. In most of Apple’s examples, you’re not told that your &lt;code&gt;AVPlayer&lt;/code&gt; or &lt;code&gt;MPMoviePlayerViewController&lt;/code&gt; or whatever you use simply will not play audio if the ringer is muted. Meanwhile, in Messages.app, Videos.app, and Apple’s other built-in apps, you will commonly see that audio and video, when initiated by the user by tapping a play button or similar action item, immediately play back with sound, regardless of whether the ringer is muted. Apple’s defaults for developers do not address this use case, but &lt;code&gt;AVAudioSession&lt;/code&gt; is hardly mentioned in general audiovisual &lt;em&gt;playback&lt;/em&gt; documentation&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1" rel="footnote"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;The answer lies deep within the bowels of &lt;a href="https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/index.html#//apple_ref/occ/cl/AVAudioSession"&gt;&lt;code&gt;AVAudioSession&lt;/code&gt;&lt;/a&gt;. This &lt;code&gt;AVFoundation&lt;/code&gt; class is a singleton for your app which controls every aspect of audio input and output.&lt;/p&gt;
&lt;p&gt;The trickiness with &lt;code&gt;AVAudioSession&lt;/code&gt; is that you that you don’t &lt;em&gt;have&lt;/em&gt; to use &lt;code&gt;AVAudioSession&lt;/code&gt; in order to play video or audio. Under most circumstances, your app will play a media file through headphones (regardless of ringer switch setting) or speakers (if the ringer is not set to &lt;em&gt;Silent&lt;/em&gt;). When you eventually have the question “How do I play audio through the speaker when the ringer is muted?”, you’re most likely off to the internet to find an answer.&lt;/p&gt;
&lt;p&gt;And if you find yourself in some other corner of the internet, this is the code you’ll likely be told to just shove in your UIApplicationDelegate:&lt;/p&gt;

&lt;script src="https://gist.github.com/workwithnano/5ee76d354a709effae14.js?file=AppDelegateWithDangerousGlobalAudioSessionChanges.m" type="text/javascript"&gt;&lt;/script&gt;&lt;p&gt;This works, until you realize you then have to deal with rightfully upset customers who had their favorite podcast muted the second they opened up your news app, which happens to maybe occasionally play videos, among other side effects you weren’t ready for.&lt;/p&gt;
&lt;p&gt;If you’re confused, you are not alone. Let’s figure this out together.&lt;/p&gt;
&lt;hr&gt;&lt;p&gt;First, let’s look at that method that the internet told us to use to override the ringer switch, &lt;code&gt;-[AVAudioSession setCategory:error:]&lt;/code&gt;. Here’s a handy table that explains what each combination of &lt;code&gt;AVAudioSessionCategory&lt;/code&gt; (which you control) and “Ring/Silent switch” setting (controlled by the user) will result in.&lt;/p&gt;
&lt;h4 id="avaudiosession-categories"&gt;AVAudioSession categories!&lt;/h4&gt;
&lt;table cellpadding="4" cellspacing="0" border="1" style="font-family: Inconsolata, Inconsolata-dz, Monaco, 'Courier New', Courier, serif !important; font-size: 0.8rem; margin-bottom: 1em;"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td&gt;
             &lt;/td&gt;
            &lt;td&gt;
                &lt;strong&gt;Silent Switch ON&lt;/strong&gt;
            &lt;/td&gt;
            &lt;td&gt;
                &lt;strong&gt;Silent Switch OFF&lt;/strong&gt;
            &lt;/td&gt;
        &lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;
                &lt;strong&gt;Ambient&lt;/strong&gt;
            &lt;/td&gt;
            &lt;td style="background-color:#d9ead3;"&gt;
                Plays sound combined with any background sounds being played by other apps.
            
            &lt;/td&gt;
            &lt;td style="background-color:#f4cccc"&gt;
                No sound from your app.
            &lt;/td&gt;
        &lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;
                &lt;strong&gt;SoloAmbient (DEFAULT)&lt;/strong&gt;
            &lt;/td&gt;
            &lt;td style="background-color:#d9ead3;"&gt;
                Plays your sound and stops sound from other apps.
            &lt;/td&gt;
            &lt;td style="background-color:#f4cccc"&gt;
                No sound from your app.
            &lt;/td&gt;
        &lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;
                &lt;a&gt;&lt;/a&gt;&lt;strong&gt;Playback&lt;/strong&gt;
            &lt;/td&gt;
            &lt;td style="background-color:#d9ead3;"&gt;
                Plays your sound and stops sound from other apps. &lt;em&gt;Can&lt;/em&gt; mix audio with sound from other apps, but does not by default.&lt;a href="#fn:2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;
            &lt;/td&gt;
            &lt;td style="background-color:#d9ead3;"&gt;
                Plays your sound and stops sound from other apps. &lt;em&gt;Can&lt;/em&gt; mix audio with sound from other apps, but does not by default.&lt;a href="#fn:2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;
            &lt;/td&gt;
        &lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;
                &lt;strong&gt;Record&lt;/strong&gt;
            &lt;/td&gt;
            &lt;td style="background-color:#f4cccc"&gt;
                No sound from your app.
            &lt;/td&gt;
            &lt;td style="background-color:#f4cccc"&gt;
                No sound from your app.
            &lt;/td&gt;
        &lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;
                &lt;strong&gt;PlayAndRecord&lt;/strong&gt;
            &lt;/td&gt;
            &lt;td style="background-color:#d9ead3;"&gt;
                Plays your sound and stops sound from other apps. &lt;em&gt;Can&lt;/em&gt; mix audio with sound from other apps, but does not by default.&lt;a href="#fn:2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;
            &lt;/td&gt;
            &lt;td style="background-color:#d9ead3;"&gt;
                Plays your sound and stops sound from other apps. &lt;em&gt;Can&lt;/em&gt; mix audio with sound from other apps, but does not by default.&lt;a href="#fn:2"&gt;&lt;sup&gt;2&lt;/sup&gt;&lt;/a&gt;
            &lt;/td&gt;
        &lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;
                &lt;strong&gt;AudioProcessing&lt;/strong&gt;
            &lt;/td&gt;
            &lt;td style="background-color:#f4cccc"&gt;
                No sound from your app.
            &lt;/td&gt;
            &lt;td style="background-color:#f4cccc"&gt;
                No sound from your app.
            &lt;/td&gt;
        &lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;
                &lt;strong&gt;MultiRoute&lt;/strong&gt;
            &lt;/td&gt;
            &lt;td style="background-color:#d9ead3;"&gt;
                Plays your sound and stops sound from other apps.
            &lt;/td&gt;
            &lt;td style="background-color:#d9ead3;"&gt;
                Plays your sound and stops sound from other apps.
            &lt;/td&gt;
        &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;Most apps only need to deal with &lt;code&gt;SoloAmbient&lt;/code&gt; as their default category and one other category, such as &lt;code&gt;Playback&lt;/code&gt;, for playing back multimedia files. With that in mind, a simple &lt;code&gt;AVAudioSession&lt;/code&gt; manager class can help toggle back and forth between categories. Here is an example of how to one could call &lt;code&gt;-[AVAudioSession setCategory:error:]&lt;/code&gt; (or &lt;code&gt;-[AVAudioSession setCategory:withOptions:error:]&lt;/code&gt;):&lt;/p&gt;

&lt;script src="https://gist.github.com/workwithnano/5ee76d354a709effae14.js?file=AudioSessionManager.m" type="text/javascript"&gt;&lt;/script&gt;&lt;hr&gt;&lt;p&gt;That’s the gist of it. But don’t worry, there are a few things you still need to worry about.&lt;/p&gt;
&lt;p&gt;Does your app need to continue playback in the background? Perhaps you have a podcast app, or an app which wants to take advantage of Airplay or Picture-in-Picture? Well you’re in luck, because now you get to muck with &lt;code&gt;UIBackgroundModes&lt;/code&gt; in your &lt;code&gt;Info.plist&lt;/code&gt;!&lt;/p&gt;
&lt;h4 id="background-modes"&gt;Background modes!&lt;/h4&gt;
&lt;p&gt;Now, this isn’t really a big deal in terms of code. In your &lt;code&gt;Info.plist&lt;/code&gt;, within the array for &lt;code&gt;UIBackgroundModes&lt;/code&gt; (add it if it doesn’t already exist), add an entry with the string &lt;code&gt;audio&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;If you’re only playing audio files, you’re basically done&lt;a href="#fn:3"&gt;&lt;sup&gt;3&lt;/sup&gt;&lt;/a&gt;. If you’re playing video files, there’s more fun involved. Why would you want to continue playing videos in the background, you ask? Two words: Airplay &amp;amp; Picture-in-Picture. For now, I’m only going to cover Airplay, because PiP is less prone to side-effects in my opinion.&lt;/p&gt;
&lt;p&gt;There’s one main item you have to worry about with backgrounded apps and video. Video-playing apps need to disconnect the currently-playing &lt;code&gt;AVPlayerLayer&lt;/code&gt; from its &lt;code&gt;AVPlayer&lt;/code&gt; by setting its &lt;code&gt;player&lt;/code&gt; property to &lt;code&gt;nil&lt;/code&gt; &lt;strong&gt;&lt;em&gt;before&lt;/em&gt;&lt;/strong&gt; your application goes to the background. If you don’t do this, your &lt;code&gt;AVPlayer&lt;/code&gt; will automatically pause. That’s a good thing most of the time, but not if you want your Airplay-ing video to keep playing! Just make sure you’re only doing this for videos that are Airplaying, otherwise you’ll get some ridiculous audio coming out of your phone’s speakers after you lock the screen. Here is some slightly modified code from Apple’s &lt;a href="https://developer.apple.com/library/ios/qa/qa1668/_index.html#//apple_ref/doc/uid/DTS40010209-CH1-VIDEO"&gt;Technical Q&amp;amp;A QA1668 – Playing media while in the background using AV Foundation on iOS&lt;/a&gt;:&lt;/p&gt;

&lt;script src="https://gist.github.com/workwithnano/5ee76d354a709effae14.js?file=AppDelegateWithAirplaySupport.m" type="text/javascript"&gt;&lt;/script&gt;&lt;hr&gt;&lt;p&gt;Thanks for tuning in to this week’s episode of &lt;strong&gt;&lt;em&gt;Controlling audio output on iOS with AVAudioSession&lt;/em&gt;&lt;/strong&gt;. Tune in next week, when we’ll be talking about literally anything else.&lt;/p&gt;
&lt;h4 id="further-reading-and-sources-which-for-my-purposes-are-interchangeable"&gt;Further reading and sources (which for my purposes are interchangeable)&lt;/h4&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://developer.apple.com/library/ios/qa/qa1668/_index.html#//apple_ref/doc/uid/DTS40010209-CH1-VIDEO"&gt;Apple Technical Q&amp;amp;A QA1668: Playing media while in the background using AV Foundation on iOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Introduction/Introduction.html"&gt;Apple Audio Session Programming Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.lynda.com/iOS-tutorials/Introducing-AVAudioSession/397890/426228-4.html"&gt;Lynda.com’s Introducing AVAudioSession&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/index.html"&gt;AVAudioSession Class Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVPlayer_Class/index.html"&gt;AVPlayer Class Reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="footnote"&gt;
&lt;hr&gt;&lt;ol&gt;&lt;li id="fn:1"&gt;
&lt;p&gt;Meanwhile, talk to an iOS audiovisual &lt;em&gt;recording&lt;/em&gt; &amp;amp; &lt;em&gt;mixing&lt;/em&gt; engineer and you’ll probably find an &lt;code&gt;AVAudioSession&lt;/code&gt; expert. &lt;a class="footnote-backref" href="#fnref:1" rev="footnote" title="Jump back to footnote 1 in the text"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;See &lt;a href="https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/index.html#//apple_ref/c/tdef/AVAudioSessionCategoryOptions"&gt;&lt;code&gt;AVAudioSessionCategoryOptionMixWithOthers&lt;/code&gt;&lt;/a&gt; &lt;a class="footnote-backref" href="#fnref:2" rev="footnote" title="Jump back to footnote 2 in the text"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;If you want to play well with other apps’ audio, you’ll want to look at the advanced features of &lt;code&gt;AVAudioSession&lt;/code&gt; in Apple’s &lt;a href="https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Introduction/Introduction.html"&gt;Audio Session Programming Guide&lt;/a&gt; &lt;a class="footnote-backref" href="#fnref:3" rev="footnote" title="Jump back to footnote 3 in the text"&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;I wrote this over on the Yahoo Engineering Tumblr. My first-ever post for them.&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/134402444091</link><guid>https://blog.staticpulse.com/post/134402444091</guid><pubDate>Wed, 02 Dec 2015 11:12:21 -0500</pubDate></item><item><title>"Repairing a Wobbly Voigtlander Ultron 35mm f1.7 Leica Screwmount Lens"</title><description>“Repairing a Wobbly Voigtlander Ultron 35mm f1.7 Leica Screwmount Lens”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;p&gt;I am reposting the meat of the instructions from Charles Barcellona’s photo.net post about repairing his Voigtlander Ultron w/ a wobbly front section. I had the same wobble, and focus was off all the time. Fixing the wobble fixed the focus.&lt;/p&gt;

&lt;p&gt;Mainly, I just want to make sure that these instructions are never lost. Anyways, here they are:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Let me tell you folks…. I dont have the eyes I once had, but still hands to do surface mount repair in my shop (using magnifiers of course). If you have one of these lenses, you can fix it pretty easily, once you know how.&lt;/p&gt;
  
  &lt;p&gt;Here’s how. Read the instructions fully before doing this or you may lose the detent ball for the aperture ring. Tools needed are a piece of rubber tape or rolled up framers tape or other tacky material, and a Craftsman 45727 precision screwdriver.&lt;/p&gt;
  
  &lt;p&gt;Remove hood and filter if present.&lt;/p&gt;
  
  &lt;p&gt;Use some rubber to “grab” the nameplate ring and spin it off counter clockwise.&lt;/p&gt;
  
  &lt;p&gt;Undo the three screws that hold the filter holder ring on. BE CAREFUL AT THIS POINT and DO NOT REMOVE the aperture ring accidentally.&lt;/p&gt;
  
  &lt;p&gt;Now… over a felt or velvet placemat - carefully ease the aperture ring off the front. The ball will be at the 4 o'clock position as viewed from the front of the lens. Make sure you watch where that ball goes. You can get a spare, but don’t lose it and you won’t need to worry about it. Be careful also that you don’t lose the spring in the hole. Its a greased spring, and is not likely to get lost, unless you are careless with the next part you’re about to remove.&lt;/p&gt;
  
  &lt;p&gt;Next, look for the three larger holes in the ring surrounding the front element. Deep in those holes are screws (same screwdriver). The screws are held with locking compound. You’ll need to make sure the screwdriver is seated well, and is not slipping, and… ease each of those three screws out.&lt;/p&gt;
  
  &lt;p&gt;Lift off that ring, remembering to take some care so that the spring is not lost, and you’ll see the heads of the screws that are loose. Tighten those, using a bit of locking compount (NOT LOCKTITE!!). I’ve got some special stuff we use on circuit boards that is disolvable easily, but nailpolish, or a small dab of Testors enamel will do well.&lt;/p&gt;
  
  &lt;p&gt;Reassemble in reverse order, making sure when you put the inner ring back on, you get the hole for the ball, with the spring in it, at approximately 4 o'clock. The remaining locking compound on the screws will make them a snug fit when you seat them home. Thats a good thing, just don’t let the screwdriver slip. When you ease the aperture ring back on, put the ball in the hole and lower the detent side of the ring over the ball first so its captive, then lower the other side of the ring while giving a gentle twist to find and engage the aperture arm. Once that’s on, breath easy you’re home. Put on the filter retainer ring (no alignment there), the nameplate and you’re finished. Clean the front element, replace the filter and put the hood on… then go shoot.&lt;/p&gt;
  
  &lt;p&gt;You don’t really remove any optics, so there’s no re-alignment to be done. The optics section sits flange on flange, so it goes where it goes, and that’s that.&lt;/p&gt;
&lt;/blockquote&gt;&lt;/em&gt;</description><link>https://blog.staticpulse.com/post/132734060391</link><guid>https://blog.staticpulse.com/post/132734060391</guid><pubDate>Sat, 07 Nov 2015 11:12:23 -0500</pubDate></item><item><title>Love this color on hard goods.</title><description>&lt;img src="https://64.media.tumblr.com/a7456f3b0ed96afe0ecd871451347224/tumblr_nvt29wDDB81qa0mhvo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Love this color on hard goods.&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/130631579531</link><guid>https://blog.staticpulse.com/post/130631579531</guid><pubDate>Tue, 06 Oct 2015 15:02:28 -0400</pubDate></item><item><title>leicacraft:

Nice duo via @jrphoto88 #leicacraft #leica...</title><description>&lt;img src="https://64.media.tumblr.com/ef2cb924ec7c2e12169cf2eb587a127f/tumblr_nuw09x7e3W1sgt77qo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://leicacraft.com/post/129365246772/nice-duo-via-jrphoto88-leicacraft-leica" class="tumblr_blog"&gt;leicacraft&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Nice duo via @jrphoto88 #leicacraft #leica #cameraporn #rangefinder #35mm&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I never thought I’d like an all white camera, but this one looks beautiful.&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/129923415441</link><guid>https://blog.staticpulse.com/post/129923415441</guid><pubDate>Sat, 26 Sep 2015 12:54:43 -0400</pubDate></item><item><title>ilovemyleica:


(via Masters of Photography: Josef Koudelka)...</title><description>&lt;img src="https://64.media.tumblr.com/12e26674f76cf7acbc5e83dc51b7b526/tumblr_nu9q9adbdx1qbsvjmo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a class="tumblr_blog" href="http://ilovemyleica.tumblr.com/post/128627947849"&gt;ilovemyleica&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;(via &lt;a href="http://masters-of-photography.com/K/koudelka/koudelka_intersection_full.html"&gt;Masters of Photography: Josef Koudelka&lt;/a&gt;) &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You don’t have to have a perfectly level horizon to make beautiful photos.&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/128711093431</link><guid>https://blog.staticpulse.com/post/128711093431</guid><pubDate>Wed, 09 Sep 2015 11:22:09 -0400</pubDate></item><item><title>Photo</title><description>&lt;img src="https://64.media.tumblr.com/4257955a5c2bac0b0eeb66663db4e9c6/tumblr_n1zsocrXFk1rgro8xo1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;</description><link>https://blog.staticpulse.com/post/125081855636</link><guid>https://blog.staticpulse.com/post/125081855636</guid><pubDate>Sun, 26 Jul 2015 09:58:50 -0400</pubDate></item><item><title>Investment Diary - Buy HRTG</title><description>&lt;p&gt;I like well-run insurance companies. I&amp;rsquo;ve bought AIG in the past (and continue to hold some for a family member&amp;rsquo;s portfolio), and I&amp;rsquo;m buying this in my IRA as a long-term hold. Not a trade. I&amp;rsquo;ll have a stop loss in case I&amp;rsquo;ve made a shit move, but I&amp;rsquo;m confident that is unlikely.&lt;/p&gt;

&lt;p&gt;Weekly &lt;a href="http://finviz.com/quote.ashx?t=hrtg"&gt;HRTG&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://finviz.com/quote.ashx?t=hrtg"&gt;&lt;img src="http://staticpulse.com/i/tumblr/2015-06-03%20Buy%20HRTG%20Weekly.png"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Daily chart:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://finviz.com/quote.ashx?t=hrtg"&gt;&lt;img src="http://staticpulse.com/i/tumblr/2015-06-03%20Buy%20HRTG%20Daily.png"/&gt;&lt;/a&gt;&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/120692556936</link><guid>https://blog.staticpulse.com/post/120692556936</guid><pubDate>Thu, 04 Jun 2015 09:33:20 -0400</pubDate><category>$hrtg</category></item><item><title>Investment Diary - Cover FB</title><description>&lt;p&gt;Following my &lt;a href="http://blog.staticpulse.com/post/117174977946/investment-diary-short-fb"&gt;short of Facebook&lt;/a&gt; last week following their Estimize miss, I sold at nearly the end of the day yesterday, 3 business days later. After commissions (can&amp;rsquo;t short on &lt;a href="http://robinhood.com"&gt;Robinhood&lt;/a&gt; yet, bummer), I made a 1.5% profit. Without commissions, I&amp;rsquo;d have been closer to 2%, not bad for a 3-day trade. I&amp;rsquo;ll have to run similar trades to gauge the effectiveness personally, but this first trade stood up to the hypothesis.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://finviz.com/quote.ashx?t=fb"&gt;&lt;img src="http://staticpulse.com/i/tumblr/2015-04-28%20Cover%20FB.png"/&gt;&lt;/a&gt;&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/117690250441</link><guid>https://blog.staticpulse.com/post/117690250441</guid><pubDate>Wed, 29 Apr 2015 10:33:49 -0400</pubDate><category>$fb</category></item><item><title>Investment Diary - Short FB</title><description>&lt;p&gt;Facebook posted lower-than-expected earnings and revenue for their first quarter of 2015. I&amp;rsquo;m taking a shot with the &lt;a href="http://com.estimize.public.s3.amazonaws.com/papers/Estimize%20Whitepaper%20Executive%20Summary.pdf"&gt;Estimize post-earnings drift strategy&lt;/a&gt;. Essentially, I&amp;rsquo;m betting that over the next 3 days, Facebook stock will drift downwards. I&amp;rsquo;ll be covering the short at the end of the day next Monday. I shorted at $83.62/share.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://finviz.com/quote.ashx?t=fb"&gt;&lt;img src="http://staticpulse.com/i/tumblr/2015-04-23%20Short%20FB.png"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.estimize.com/fb/fq1-2015"&gt;&lt;img src="http://staticpulse.com/i/tumblr/2015-04-23%20FB%20EPS.png"/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.estimize.com/fb/fq1-2015"&gt;&lt;img src="http://staticpulse.com/i/tumblr/2015-04-23%20FB%20REV.png"/&gt;&lt;/a&gt;&lt;/p&gt;</description><link>https://blog.staticpulse.com/post/117174977946</link><guid>https://blog.staticpulse.com/post/117174977946</guid><pubDate>Thu, 23 Apr 2015 11:44:27 -0400</pubDate><category>$fb</category></item></channel></rss>
