Monthly Archives: May 2015

20 years of

Jeffrey Zeldman: “I launched this site twenty years ago (a year before the Wayback Machine, at least two years before Google) and it was one of the only places you could read and learn about web design. I launched at a tilde address (kids, ask your parents), and did not think to register until 1996, because nobody had ever done anything that crazy. “

Happy Birthday! Jeffrey, thanks for 20 years of web design standards. Yours was one of the first websites I discovered, before I knew it was a weblog. I discovered you, Dave Winer, and Evan Williams around the year 2000 and started my own weblog in 2001 as a result.

One thing I’ve always loved about your site is the use of orange! I know you had that greenish period, but I’m glad you came back to orange. I also appreciate the size of the type. Aging eyes and all.

Here’s to 20 more years of Long live the independent weblog!

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.

Yes, a Medium API would be great

Cameron Barrett [via Medium]: “I love Medium. It’s a fantastic writing tool. I wish, more than anything else, is for Medium to have an API. This would allow for the development of a WordPress plugin, a Drupal module, etc. that would allow Medium to be “the network” you mention above, while still allowing me (the author and copyright holder) the ability to publish on my site/blog first and syndicate out to Medium.”

I find myself reading on Medium more and more. It’s like a really nice RSS reader in a lot of ways and it gives me the River of News I want without the unread count cruft I hate.

Having the ability to publish from here and have it show up in Medium’s feed would be great. Not reposting, just publishing the title and slug, with a link back here is all we need. 

In fact it would be fine if the article is displayed inside of Medium then you could use all of Medium’s awesome annotation tools. Have you used the highlighter yet? It’s incredible, I love it. How about the inline commenting? (Ok, it’s in a sidebar, but you get the picture!) It’s a wonderful platform, with great tools, and it would be great to be able to flow data into it.

Come to think of it, all the need is an RSS from this site to integrate it, right?

Arment on the new MacBook 

Marco Arment: “Now, Apple’s priorities have changed. Rather than make really great products that are mostly thin, they now make really thin products that are mostly great.”

This computer was made for my grandmother, not a software developer. It’s like giving a Yugo to a Formula One driver and expecting it to feel and behave like a Formula One race car. 

As a person that makes their living with these things I hope Apple continues to supply us with a Professional model. The 15in MacBook Pro is a great computer, it’s definitely not heavy, and I’m talking about my beast like 2011 model. It’s the best computer I’ve ever owned. 

Hopefully the new keyboard and trackpad don’t screw up the new models. The current crop of Apple trackpads are perfect. I have a Toshiba laptop and the trackpad is pathetic. 

I’m sure we’ll see an updated Pro lineup that’s thinner (not needed) and has the new keyboard and trackpad. I would rather have 24-hours of battery life.

The Apple Watch is just a watch

A wonderful bouquet of flowers.John Lilly [via Medium]: It is, fundamentally and essentially, just this: a wristwatch. If you’re someone who wants to wear a watch, this is a great one in many ways. If you’re someone who doesn’t want to wear a watch, this will not make your life better. In 2015, wearing a watch is a bit of an affectation — you have to want to have a watch on, you certainly don’t need one — and that’s true for this, too.

I don’t own an Apple Watch at the moment, but I probably will at some point because I will eventually have to write an app for the platform. Since its release I’ve thought long and hard about how I think I’d use it. I’m not a notifications guy. I only have a few on my phone, and I’d have fewer on my wrist; phone calls and text messages, but only from a select few. The one real benefit for me, and no I’m not joking, is the hope I miss fewer phone calls or text messages from my wife. Everything else the watch has to offer is fluff. 

What about the fitness stuff? I’m not sure this will work for me. I wear my watch loose on my wrist. It binds up otherwise. I tend to buy watches with link bracelets and I’ve broken everyone I’ve ever had, I don’t know how, but it happens. Hopefully the flubber sport band will keep that from happening, but I guess we’ll find out some day.

I will, of course, buy the least expensive 42mm model. The guts of the low end and high end models are the same, and the low end model is still ridiculously expensive at $349.00. I had the tiniest of hopes these things would run around $149.00, but Apple doesn’t do that. They can charge a premium and get it, so they do. I’m hoping this generation will drop in price dramatically once gen two ships. Hopefully it will be able to run version two of the OS. Call me a tightwad if you’d like, it’s a fair assessment. I have a hard time spending that kind of money on myself. 

Customization is something I’m really interested in. The only thing I’m hoping for as a developer is a watch face SDK. Apps are fine, but I want to customize the watch face. I could imagine having my Dumbledore watch face and I like the idea of it (yes, I own one of these watches.) Beyond that I have an idea some really brilliant designers will have fun creating watch faces. I could also see a one off market for rich people. Hey, if you spent thousands of dollars on a watch, you might spend thousands on an original work of art for your device, right?

Something else I really want to do is anodize the aluminum case. I have a hankering for a bright orange case with a custom built leather strap. This is the customization I desire above all others. I’m not sure I’ll be able to pull this one off given the hostile to fixers build of the watch.

There is one thing about the watch that really disappoints. I had high hopes Apple would make a timeless classic, instead they opted for a throwaway commodity. When I read about the System on a Chip (scroll down to read about the S1) they had designed for the watch I had imagined the ability to open the case and swap out the system with a new generation. It would appear, based on the iFixit tear down that Apple sees this device as a throwaway gadget. That’s kind of sad. A timeless classic would have been so much nicer, especially for the versions that cost over a thousand bucks. Real watch makers build timeless pieces. Apple has added the commodity thinking we have in tech. Just throw it away and buy the new one. I’m as guilty of this line of thinking as the next person. 

Apple will learn a lot from generation one. Eventually the watch could replace the phone as a primary communication device for text and voice. For now, it’s a 1.0 with nowhere to go but up. It’s off to a good start.

Update: After posting I ran across this tweet. I see more and more like this each day. I dont think this is a signal of the watches failure. It’s just the reality of it. It’s a nice watch.

Another thing to note: I take reviews, like those at John Gruber’s excellent Daring Fireball, with a grain of salt. John makes his living from his support of Apple, and their products, and is never harsh. He finds the best in everything Apple does, and there is nothing wrong with that. I try to seek out neutral parties on the subject, which is hard to do. Most people either love or hate Apple. I felt like John Lilly’s comments were pretty neutral.

Where will Bill Simmons Land?

M.G. Siegler [500ish Words]: “Simmons has a seemingly odd relationship with Twitter. He gets it, but he also often gets himself in trouble using it. But that’s only because his usage is genuine. And as that platform continues to evolve, he may be able to help shape it. In-line podcasts. Real-time Periscopes. The only problematic thing may be his wheelhouse: writing extremely long columns. Hard to see how you do that on Twitter without some new ultra textshotting tool.”

Textshotting is such an ugly hack. With weblogs, Tumblr, and the emergence of Medium, there is no reason to post unreadable blobs of text to Twitter as images. Just give your piece a nice photo (apparently people like Twitter posts with pictures) and provide a link to the long form piece on your site. It’s “DUH!” simple.

Anyway. Since Bill Simmons gets new media and understands Twitter it does seems a natural fit, however, how does Twitter deal with long form writing? They don’t. I can’t imagine a Tweet storm of 2000 words on a subject, people would drop that like a hot rock. No, Simmons needs a place built for long form writing. I’m thinking Medium, or even Tumblr (hey, Yahoo! has folks dedicated to sports, remember?) Either place could accommodate long form writing and handle publishing to Twitter. 

Another weird thought that popped into my head. I loved reading American McCarver. It’s gone silent. Give it to Bill Simmons, if he’d have it?

Build 2015

Fortune [hat tip @rptony]: The so-called ‘bridge’ he was referring to was the company’s new plan to allow Android and iOS developers to take existing mobile apps and port them over to Windows devices, with little effort. Developers will be able to use software development kits (SDK) to reshape their existing code to suit Windows devices. The SDK will allow Android coders to use Java and C++ while iOS developers can use Objective C to optimize applications.

Microsoft has always created excellent development tools. I’d never poo-poo this effort. Will it be as good as Apple’s Objective-C compiler? It doesn’t really matter, if it works. If the end product is good enough to bring an iOS App mostly to Windows they’re on to something.

I haven’t tried any of these tools yet, but I will. In the meantime think about this for half a second. Microsoft is giving us a way to put UIKit apps on another platform before Apple did. It feels like the roles have reversed in some way. Apple is the 800 pound gorilla and Microsoft is the nimble competitor clawing its way up the hill. It’s easier to take big chances like this when you’re a bit down.

One more thing. Rumor has it Microsoft wants to build a Swift compiler to do the same thing.

 Strange times.

Faith in Humanity

Steven Vore: “Hilary and I looked at each other, knowing that all the other theaters would be just as sold out this weekend, and didn’t even have to say anything. We just turned to the man and gave him our tickets and told the boy to have fun.

With all the hate we see, each and every day, in this country it’s easy to lose faith in humanity. 

You’re a class act Mr. and Mrs. Vore. Thanks for giving me some hope.