Finding something local...
09.08.2015

Earlier this summer, Brent Simmons wrote an article about the current state of iOS software development:

The platform is awesome. We love writing iOS apps. It’s fun and massively rewarding in every way except monetarily. As a craft — as a budding art form, perhaps — it’s juicy.

He’s right. Even as the haze of the gold rush mentality finishes lifting, more and more people are attracted to app development — hobbyists, indies, and professionals alike. Despite the (poor) economics of the App Store, an increasing number of developers are building an increasing number of apps every day. Apple boasted over 1,500,000 apps totaling over 100 billion downloads at WWDC this year.

It’s not hard to see why. It’s a form of creative expression available to those who are more mathematically, less artistically inclined. It’s building something with your hands, seeing a form take shape you as you work — 21st century sculpting. It’s a field with expansive depth and breadth, constantly hurtling forward at incredible speed. Technically, it has never been easier to build software at any point in history than it is today. Our integrated development environment is provided free of charge. We start each application with a buffet of potential frameworks to choose from, a tremendous accumulation of prior work done by incredibly intelligent people. We barely even have to manage memory anymore. Who wouldn’t want to write software?

But Brent’s warm and fuzzy ‘do it for love’ sentiment is ruined for me by this flippant line toward the end:

What’s more likely is that you’ll find yourself working on a Mobile Experience for a Big National Brand(tm) and doing the apps you want to write in your spare time.

Don’t check your passion at the door. If you are building software, your responsibility as a developer and as a citizen of the platform is not lessened by a project that isn’t your own. Inside the indie software bubble, consulting is often considered a dirty word — an insult to the purity of focus, to building a singular product, your product. It shouldn’t be. The common thread that connects us all — the weekend code warriors, the late night tinkerers, the nine-to-fivers — is passion, the aforementioned love of building software. There is beauty of purpose in building great software, be it a beloved RSS reader or the Target app. When it’s not yours, it may not always be beautiful, and you may not always win the fights to make it the best it could be, but when it ships it will serve a purpose and make people’s lives better.

Yesterday, I spent part of my Labor Day working on a fun side project that’s unlikely to ever make significant money and loved every minute of it. Today, I went back my job as an iOS developer for a consulting company — and I loved every minute of it.

08.18.2015

In my home office, my gaming PC and my Xbox One share a single monitor, so I was pretty excited about the Windows 10 Xbox application and the ability to stream games from a Xbox One to a PC. Unfortunately, launch day brought with it a disappointing reality - even on the highest setting, the streaming video was scaled down to 720p, which meant that my HDMI switcher was sticking around for awhile.

But today, Microsoft released an update to the Windows 10 Xbox application that unlocked a new high quality streaming option, enabling full 1080p game streaming at 60 frames per second. The visual fidelity of the game streaming was now on par with what I could get straight from the Xbox’s HDMI port - now the only issue was network bandwidth. With my router a floor below, I found that even as the only two devices on the 5GHZ band I was getting frequent stuttering as the connections between my PC and my Xbox struggled to keep up.

Fortunately, if you’re using a single monitor setup like myself, odds are good that your Xbox and PC are close enough to be wired together with an ethernet cable - but the setup isn’t exactly plug and play. Follow the steps below to share your PC’s internet connection with your Xbox One and unlock stutter-free streaming bliss.

  1. Connect the PC you will be using for game streaming to the internet.
  2. Run an ethernet cable from your Xbox One to your PC.
  3. Open the Network Connections control panel on your PC.
  4. On your connection to the internet, right click and select ‘Properties’.
  5. On the Sharing tab, check ‘Allow other network users to connect through this computer’s Internet connection’ and select the wired ethernet connection to your Xbox from the Home networking connection dropdown list.
  1. Restart your Xbox.
  2. Make sure you have the most up-to-date version of the Windows 10 Xbox application.
  3. Set your Game streaming settings to ‘Very high’.

Setup complete! Now you can connect to your Xbox One, begin streaming a game, and enjoy the speed and reliability of a wired connection.

07.16.2015

It’s time for Apple to clean up the App Store. The App Store arms race is over - both iOS and Android are entrenched as platforms, and both platforms get all major apps eventually. For WWDC this year, Apple released a promotional video titled “The App Effect” that boasted over 1,500,000 applications in the App Store, with over 100 billion downloads of those applications. And the App Store has tremendous velocity, adding over 1,000 new apps per day. But there are an increasing number of “zombie applications” that remain on the store, abandoned, gumming up search results, impeding app discovery, and generally degrading the perceived quality of the App Store.

I performed a series of searches on the App Store earlier today. Here are just a few of the zombie apps I found.

Search term: “podcast”
11th result: Alarm Clock 4 Free
Last updated: Oct 2, 2013

Search term: “weather”
Top 25: NOAA Radar US - HD Weather Radar and Forecasts
Last updated: Oct 2, 2013

Search term: “books”
Top 50: Audio.books
Last updated: Sep 12, 2013

Search term: “photo”
Top 100: Wood Camera - Vintage Photo Editor
Last updated: Dec 18, 2013

Apple is consistent about moving developers forward, using mandatory SDK targets. The iOS 7 SDK has been mandatory since February 1st, 2014. But only for new application submissions and new application updates.

Apple no longer sells devices that support iOS 6. Apple no longer sells non-retina mobile devices. Applications that haven’t been updated for iOS 7 or for retina screens with @2x graphics should be removed from the App Store. These zombie apps hurt the overall quality of the App Store and impede app discovery, an already acute weakness of the App Store.

Apple has long censored the content of the App Store. Just last month, Apple was in the news for removing apps containing the Confederate flag. It’s time for Apple to filter out bad platform citizens not just based on content, but also on technical merit.

06.11.2015

Monday marked the beginning of Apple’s annual Worldwide Developer Conference, or WWDC for short. Along with new versions of their iOS and OS X operating systems, they announced that they would be open sourcing their Swift programming language, including support for Linux. This drew by far the largest cheers of the day from the 5,000 or so developers who had assembled in Moscone West for the kickoff keynote. While Apple doesn’t have a perfect track record when it comes to following through on open source promises, it has been better lately. And there are a few good reasons that developers are so excited about the proposition of Swift being open sourced.

On today’s web, server applications are typically written in an interpreted language like Javascript, Ruby, or PHP, or a managed language like C# or Java. Swift is different than these languages - it is a compiled language, which gives it significant speed and scaling advantages compared to the languages listed above. And it gains these advantages while still offering all of the high-level conveniences we expect in our programming languages today.

One of the core design philosophies of Swift is safety. Inferred types allow for less error prone code. Memory is managed automatically. Variables are always initialized before use, arrays and integers are checked for overflow. Errors are bounded and can’t throw exceptions, preventing crashes. All of these safety features add up to one thing - increased reliability. And when you are hosting a web service, increased reliability pays dividends in the most important currency on the web - uptime.

With the backing of the world’s largest and most influential technology company, it’s not hard to imagine a strong and vibrant ecosystem springing up around Swift as a server-side programming language once it has been open sourced. It has already seen tremendous adoption within the iOS and OS X community, despite it’s rough edges, and is continuing to grow in popularity. And with the Swift team’s relentless optimizations, it’s getting faster with every release.

Imagine lightning-fast, scalable deployments of RESTFUL web services, or a Rails-like front-end framework written in Swift - native, fast, and safe. Quicker responses, and lower server costs, without an increase in complexity.

The future of Swift seems to be very bright indeed.

06.03.2015

Since they popularized the category with the Game Boy in 1989 Nintendo has been the king of mobile gaming, selling over 400 million portable gaming systems. Competitors like Sega with it’s Game Gear and Sony with their Playstation portables have never managed to approach Nintendo’s level of success. The Nintendo 3DS, Nintendo’s newest handheld console and the first to be launched in the smartphone era, has sold reasonably well since it's introduction in 2011 — just over 50 million units — but at only half the annual rate of it’s predecessor the Nintendo DS, which moved 20 million units per year over it’s lifetime. These flagging sales numbers combined with Google's 1 billion active Android users and sales of Apple’s iOS devices passing 1 billion in January have had analysts, journalists, and Nintendo fans alike clambering that Nintendo has a smartphone problem.

For years Nintendo’s handheld business was a steady constant for the company amidst tumultuous transitions between home console generations. While Sony floundered in the new mobile landscape with failed efforts like the Xperia Play phone and PlayStation Mobile, Nintendo remained silent, leaving fans to speculate about what Nintendo Mobile might look like. By the time they announced a partnership with DeNA, a Japanese company that focuses on making mobile games for smartphones, the dynamics of the app stores had shifted away from valuing the premium content that Nintendo is known for. This wasn’t a partnership made from a position of power and confidence. A bet on quality in the face of the overwhelming choice and churn of today’s app stores, even by a giant like Nintendo, seems like a fools errand.

Their choice to partner with DeNA, a company who’s portfolio is filled with the kind of run-of-the-mill free-to-play games endemic on mobile today is indicative that any kind of positive outcome from this partnership will be strictly financial for the parties involved. While the deal gives Nintendo a clear path to get their characters and games on to smartphones and in front of the next generation of gamers, it is also a deathblow for those clinging to the hope that Nintendo Mobile would mean innovative, interesting, original games. This is part of why it’s so viscerally unpleasant to watch them sacrifice their beloved characters at the altar of the micro-transaction in service of the bottom line — more so than Nintendo’s other marketing and merchandising efforts over the years.

As Nintendo’s fortunes creep back into the black, partially on the strength and value of the intellectual property they're looking to leverage in the DeNA deal, perhaps the creative voices in Kyoto can postpone or halt the spiritual dilution of the great gaming institution. Or perhaps 'Clash of Kongs' will simply be regarded as a necessary evil while they continue work on their next console — where they will continue to create great games, as they always have. With Nintendo’s stated plan being to release one game by the end 2015 and four more by 2017, they won’t have to wait much longer for the coins to start rolling in.