It doesn’t matter

Medium: “It surprised me to find that the vast majority of the apps in the top 100 are still building without any Swift.”

This shouldn’t be a surprise. In the end nobody cares what language you use to build your app, especially if it does what you want, performs well, and has a good design. 

Some may say I’m an old guy, so I shouldn’t be taken seriously. I will tell you this. If it ain’t broke, don’t fix it. That’s the proper attitude to have when developing software. I’m not saying you should never rewrite a section of code. On occasion that’s necessary, but if code works and doesn’t need to be touched as part of a new feature, just let it ride. You’ll be fine. 

In the end it just doesn’t matter.

Mac Apps I Use

If I had to choose one device to keep it would have to be my Mac. Not because I use it more than my trusty iPhone. I would pick it because it is how I make my living.

A wonderful bouquet of flowers.To that end we all have our very personal daily workflows. Some are way more complicated than others. Mine is fairly simple. 

There was a time in my life when I had to customize everything I possibly could on my desktop rig. These days I don’t bother.

Here is a list of software I use day to day.

Safari

Safari is a great browser that supports OS X extensions and browser plugins which gives me all the power I need to connect the web to my favorite desktop apps. I do not sync my opened sites between desktop and mobile.

Slack

Who doesn’t use Slack these days? We use it at work for most of our communication needs. Nuff said, it’s awesome. 

Evernote

I store quite a bit of information with Evernote. When I run across and interesting development article I clip the Simplified Article to Evernote as a reference. It is a great way to organize reference material. I do it through a combination of Notebooks and Tags. It’s a fantastic service and I love their native Mac and iOS Apps.

Wunderlist

I use Wunderlist to organize my personal project thoughts, so it mostly used on my home Mac and on my iPhone, but it’s a great app and service.

Reeder

I know RSS is dead, right? Not really. If you’re in the market for a beautiful, solid, easy to use RSS reader for the Mac or iOS, Reeder is a good choice.

Alfred

I only use Alfred for one thing, lunching apps. I keep my dock clean and find it easier to launch apps by smacking a shortcut and typing. I know I could do many more awesome things with it, but I don’t.

Dropbox

When I need access to a document or picture from many different places I use Dropbox.

Terminal

I use the built in terminal app. It’s used for git mostly.

SourceTree

I like using a nice application for git and SourceTree covers the bases for me. I split time between this app and the terminal. 

BBEdit

On occasion you have to edit something other than a file for the app you’re working on. BBEdit is more than capable. 

Xcode

This seems an obvious entry given the work I do. I develop iOS Apps. This is the best tool for the job.

I think that’s it, I’m composing this on my iPhone using the WordPress for iOS App, so I’m doing this from memory.

That brings me to this list.

Stuff I no longer use on my Mac

MarsEdit

At one point I used MarsEdit for all my blogging needs. The app is fine but I use iOS more and more for blogging. Like I said above, I’m using my iPhone to compose this post. Most of the time I use my iPad Mini on the weekends to catchup on all the stuff I pushed to Pocket. That usually results in a blog post right from the Mini. 

Fine software, great developer, no iOS App. For iOS I use the WordPress for iOS App.

Twitterrific

Unfortunately Twitter’s developer hostile token limits have all but killed off development of my favorite Twitter client. I have resorted to using the web site for my desktop browsing. If Twitterrific saw a renaissance on the Mac I would switch back in a heartbeat.  Thankfully Twitterrific for iOS is going strong. Here’s hoping Jack opens up Twitter to developers. 

On iPhone Battery Life

John Gruber: “After a few days using this case, my thoughts turn not to the Smart Battery Case itself but instead to my personal desire that Apple had made the 6/6S form factor slightly thicker. Not a lot thicker. Just a little — just enough to boost battery life around 15-20 percent or so.”

I don’t have battery life issues with my phone, but I think John nails it. It would be really nice if Apple made a slightly thicker phone. I don’t understand their obsession with thinner and lighter. In fact, my favorite phone design was the iPhone 4 and it must have been the heaviest phone Apple has ever built.

My Christmas Movie List

I know this is quite random, but we all have movies and other special programming we associate with Christmas.

Here’s my list. These are the things we must watch between now and Christmas. 

  • How the Grinch Stole Christmas (Cartoon)
  • How the Grinch Stole Christmas (Ron Howard Movie)
  • A Christmas Carol (Patrick Stewart)
  • A Christmas Carol (Disney Animated Film)
  • It’s a Wonderful Life (Jimmy Stewart)
  • Scrooged
  • Jingle all the way
  • Christmas with the Kranks
  • A Christmas Story – my all time favorite
  • Jack Frost
  • Snow Day
  • Rudolph the Red Nosed Raindeer
  • Frosty the Snow Man
  • A Charlie Brown Christmas
  • A Year without a Santa Claus
  • The Santa Clause
  • The Santa Clause 2
  • Santa Claus is coming to town
  • Elf
  • The Nightmare Before Christmas

I see a lot of lists that mention Die Hard and Christmas Vacation. I have never seen Christmas Vacation.

Medium goes Large

Medium: “The API lets you write in a desktop or mobile editor and publish straight to Medium. It also works with major publishing tools like Blogger and WordPress for those who want to syndicate into Medium. Read more about the API.”

I am obsessed with API’s and I have a feeling this is going to be a big one. They’re not just opening up an API but opening up custom domains for all.

That Evan Williams fella knows how to build stuff.

Attention

I'm the Monster.My wife claims I have A.D.D. She means it. It’s not an insult, nor do I take it that way. It’s usually directed at my continuous stream of new app ideas. Apps that will never get written. 

I’ve never been a super coder. I’m not that smart. I didn’t do well in a classroom. I loved math, but not enough to be obsessed with it and continue to learn more after trigonometry —which I can no longer do. I got into computers because I was obsessed with making them do stuff. To this day I still love making them do stuff and I’m continuing to learn. I enjoy my work. I enjoy tinkering with code in my free time. I just wish I could be super coder.

All those ideas, written down, just a bunch of bits, rotting. I have a couple apps in the iOS App Store. One I built for my brother (RxCalc), with his help, see the math comment above, and one I built for myself (Arrgly) and put in the store for grins.

I have one new idea I would like to work on, but before I do that, I’ve been workin on a long overdue update to RxCalc. I hope to drop it in the store when the iOS 9 flood gates open. It’s not much of a change, small updates here and there, but it’s solid and looks at home on iOS 7 and newer OS’es.

I have plans to add In-App purchase to it in a future release. It’s been free for a few years now and I’d like to try to make some money back but at the same time want to keep it free. To that end all new features will be available via IAP.

We’ll see how it goes.

No

The New York Times: “Outside watchers of the company have looked at Anthony Noto, a former technology banker at Goldman Sachs and Twitter’s current chief financial officer, as another potential candidate for chief executive.”

The idea of an ex-Wall Street banker at the helm of the Internet’s best communication tool feels completely wrong.

Native Development on Windows

Yesterday I asked on Twitter…

I got one serious answer and some fun poked at the question, which is fine, but I think it points to a real problem on the Windows Desktop. 

Has Microsoft given up on native applications at a time when native on Apple Platforms and Android have never been more popular?

On Apple Platforms we have clear, well defined, native development tools for creating serious desktop applications. Think of apps like Photoshop, or more modern takes on graphics like Sketch, Acorn, Pixelmator, or OmniGraffle. Most of these applications are written in Objective-C against Cocoa (Apple’s Framework for writing applications.) Sure, Photoshop is the old guy in the mix and is built on a custom framework written in C++ that communicates down to Cocoa (and possibly some Carbon API’s?) also worth noting, with the exception of Photoshop, not a single app mentioned above is cross platform (I’m not including Mac to iOS as cross platform, many of the API’s are the same and the act of going from one to the other is much easier than going to a completely different platform.)

All that brings me back to the question of developing native applications in the vein of Visio or Photoshop on the Windows Desktop. I’ve seen plenty of talk about creating Universal Apps, but those seem geared toward a lighter weight style of application, singular purpose apps focused on lightweight tasks, like Twitter or Facebooks clients, not hard core productivity applications that need to perform well and provide their best experience on the Desktop.

We still have Visual Studio, C++, and the Windows API, as a development platform but it feels somewhat abandoned. I know the folks working on the C++ compiler would probably argue against that statement because Microsoft is definitely investing in C++, but what about OS level API’s? That is the level that sort of feels abandoned. We have WinRT today, which seems like it might be part of the story for native desktop development, but do you mix and match that with the Windows API to build a great native application, do you use WinRT alone, or do you just continue to plug away with the Windows API?

It seems that apps built for the modern Metro look should use WinRT? Based on that it seems the old tried and try combination of C++ and the Windows API would still be the best choice for hard core desktop development.

But what about C# and XAML? Maybe those are a good choice for serious desktop development? I’m unclear on that subject. I’ve heard that the Visual Studio IDE was rewritten in C# for Visual Studion 2012, but I don’t know if that’s true or not. If someone reads this post and can point to MS Office, Visual studio, or Photoshop class applications written in C#/.NET I’d love to hear about them. Worth noting is the wonderful toolset by the folks at Xamarin, it makes C#/.NET app development truly cross platform.

Being a long time C++/Windows API guy I still gravitate toward that toolset. Hey, I have a lightweight class library I wrote in 1993-94 that still works today; it builds with Visual Studio 2015 and runs fine on Windows 10, but it could certainly use some refactoring given the state of modern C++. Think C++14.

I’ve been working on a cross platform project recently using Qt, which has me think about portable C++ for Mac, iOS, Windows, and Android. Given C++14 as a starting point for most OS level services; file I/O, threading and synchronization, etc, what would it take to build a modern C++ library that handled native user interface creation and interaction and didn’t feel too constraining on the platform? Remember, most cross platform tools come at a price. They’re always a little behind, they tend to be least common denominator, and can feel non-native. Qt, for instance, doesn’t use native controls on Windows (NOTE: this may not be true today. This was true around 2008, the last time I looked), I find that terribly annoying. I’m sure any Mac, iOS, or Android developer worth their salt would also find it annoying. 

A nice new C++ framework for building native OS level user interfaces using modern C++ as a base would be great to see. I really wonder how long it would take to build such a thing?

The Walking Dead Weapon of Choice

AMC“Q: When we first spoke to you, way in back in 2010, you listed the rifle as your favorite post-apocalyptic weapon. Is that still your pick, or has your preferences changed since then?”

I’m a big fan of the show and I like the turn we took in season five. Our beloved crew has become a bit feral. Adjusting to a civil society is probably not something they should do, yet. That’s not because of the walkers, it’s because of the living. The living are the dangerous element in the new, dead, world.

That said. You always have to be ready to run into a pack of walkers. I think I’d keep a nice aluminum baseball bat with me at all times. They’re light and they can do damage without making a lot of noise. A samurai sword is a great choice, but I’d imagine they’re a bit difficult to come by. Any sporting goods store should be a great place to find a few baseball bats. Oh, and get the cheaper aluminum versions. I’m not sure modern carbon fiber bats could handle the punishment.

Learning to Code Today

Duct Tape, fixer of all things!
Ken Mazaika [via Medium]: “Problem #1: You NEED to Learn HTML9 Responsive BoilerStrap JS (or whatever JS Framework is trending today on HackerNews)”

Go read the entire article. There is a lot of truth to what Ken says, in particular, ignoring algorithms in favor of the just learn this thing shortcut. That is a disservice to anyone interested in learning to code. If you’re focused entirely on some “stack” of software that’s popular today, but don’t understand the fundamentals, you’re going to hit a lot of brick walls when you need to move to something different. Moving to a new set of tools is difficult enough, not having a firm foundation only compounds the problem.

Here’s an example from my own experience. I’d like to learn Ruby and Ruby on Rails, but I’d really like to learn Ruby first. Rails is full of magic and that doesn’t sit well with me. I need to understand how things work before I’m willing to use them. Same thing goes for JavaScript. It’s why I bought Douglas Crockford’s JavaScript: The Good Parts, so I could focus on understanding the language without all the garbage piled on top of it. 

I’m not recommending you start there, this is what I need to do to learn new stuff, but if you are just getting started you need to learn the basics before learning today’s hot programming language, or the latest “stack.”

Fundamentals matter.

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑