Tag Archive for MAC OS X

Mac Exodus Over?

Many commentators myself included have been making some hay out of the trend of developers and other pros moving away from Apple’s macOS in favor of various (usually Ubuntu) distributions of Linux. Vendors like Dell and System76 have seen gains in the professional workstation market against the less then well received MacBook Pro, but Apple is waking up and smelling the professional angst. Apple’s pronouncements in favor of professional computing on macOS and the promise of a revised MacBook Pro as well as a re-designed Mac Pro with a more “modular” design. We’re already seeing the so called Mac Exodus being blunted by Apple’s announcement. The questions becomes less a contest of Linux vs macOS quality and more a race against the inevitable tide of macOS’s professional resurgence. The overall goal for Dell and System76 should be to gain as much market share in the professional workstation space before Apple actually launches new hardware for that market. To that end, I’m going to play “CEO for a day” of Dell and System76 and game out a strategy for both of them respectively. I’m picking on these two firms, because I like them and also feel like they have the best shot of actually being successful.

Dell has money. Lots and lots of money. That’s great but also can lead to conservatism. Their success with the Sputnik project was one of the early and most successful ventures of a major desktop manufacturer into the Linux space. The product it produced – the XPS 13 Developer Edition – is still one of the most compelling Ubuntu laptops available. Dell needs to widen their Ubuntu product-line to include larger higher power models as well as something more akin to the MacBook Air. There will be an R&D / product development cost to this, but it’s going to be worth spending. The other key here is that Dell has a huge asset that System76 won’t – it controls its own production pipeline and has the manufacture of PCs down to a science. That should lead to better yield over competitors which at any reasonable volume means there are some margins to play with there. Dell should cut these margins on select base models of Ubuntu Linux workstations to the bone, nearly selling them at cost. This will make a dramatic cost comparison against Apple, given their already high prices and should also make Dell a very attractive supplier to creative agencies and the like as they look to cut costs in an increasingly competitive environment. Remember, the goal here is to gain market share fast and hopefully create career spanning Linux customers who otherwise would have gone to Apple.

System76 doesn’t have Dell money but it has something else focus. In many ways, they’re already taking the right steps to up their hardware game by moving away from Clevo and Sager hardware and toward producing their own, but more can be done. My expectation is that within the next eighteen months we are going to see more Apple quality hardware from them once their production lines and processes are fully up and running. Sadly, some of it is going to come at a greater cost than money. System76 has good relations with the Linux community and in particular the Ubuntu community. Canonical (the company behind Ubuntu), in what can be described charitably as a pivot toward reality, is dropping its Unity desktop user interface in favor of GNOME and seems to be more focused on IOT and “cloud computing” than the desktop. This makes sense, given that Canonical has limited resources and needs to make real money somehow, someday, someway. The folks at System76 who I’ve met and like very much need to find a way to show leadership in the community by guiding it into a direction that strengthens the Ubuntu desktop as the leading choice for professional workstations. The key here is to lead the community in the right direction but resist the temptation to commit too much of their own limited development resources to the effort. I know what I am suggesting is less being a good community citizen and more leveraging the community, but the reality is that the Linux community has been wasting development resources on alternatives to alternatives for things like package management and window managers — strong leadership could finally close some of these questions and focus the communities efforts.

This is a race against the clock and make no mistake, the window is closing quickly. If Linux workstation vendors such as Dell and System76 can’t make significant gains in market share quickly, then this whole “Mac Exodus” will be little more than a blip in the history of Apple’s domination of the modern professional workstation market. If you have any questions or comments, Tweet me and please checkout my Youtube channel where I offer Docker and DevOps tips.

MacBook Pro 2016 Review

I’ve been having a lot of fun working on Linux over the last few months and continue to use it as one of my two daily drivers, but the realities of corporate VPN policies and the fact that even Ubuntu is not supported by most common corporate VPN clients forced me to pick up a Mac. Being the type of guy that likes to go big or not at all, I went for the 15” MacBook Pro. Take a look:

Sure it’s not the absolute highest end Mac you can buy but it’s by no means a slouch. Here’s some thoughts after working with it for about two weeks.

The Good: The MacBook Pro has the best screen I’ve ever seen in any laptop in over a decade of being primarily a laptop user. The build quality is very good and the “Space Gray” gives it that “pro” feel I’ve found missing in Apple products for some time. While I’ve been pretty critical of the full-fledged (one might even say “courages” adoption of USB-C over USB3), I see the long-term value in having all your devices use a standard port for charging and data transfer, however, I question if Apple would be willing to have the iPhone adopt the standard as well in it’s next iteration.

The Bad: While the MacBook Pro feels premium in practice its performance doesn’t feel like the nearly $3,000 I paid for it. Knowing that it doesn’t run Kaby Lake may be part of my problem and certainly for that amount of money, I’d like to at least have the option of more than 16GB of RAM. Also, the price jump between storage configurations feels a lot like gouging. All in all, the worst part of this machine is the price tag and feeling that you have “SUCKER” painted on your forehead when you compare the price to the specs.

The Ugly: I’ve developed Mac apps and iOS apps for a long time and in the past I’ve be skeptical of Apple’s additions to both platforms. In most cases, I’ve been forced to at least concede that some users may like some features. This simply is not the case for the TouchBar. Try as I might to find a productive and interesting use for it over it’s classic function row predecessor, I’m left feeling like I am holding what in ten years will be a curiosity of Apple hardware design history that is unlikely to be widely adopted by developers let alone repeated in other product lines. I also can’t help but feel that the TouchBar is at least partially responsible for the hefty price tag.

Overall, the MacBook Pro is a fine tool and it does a job that I need done. If you’re looking to fall in love with a device, you’re in the wrong place. However, if you are like me and consider your machines tools to do work on (much a like a carpenter might look at a particular table saw or hammer), then you’re likely going to get some return on your investment and be happy in the end.

NSTask 100

I’ll get right to the point here. Reinventing the wheel is bad. Period. End of sentence. If you have a requirement that can be met by an acceptably licensed open-source software project and you are not using that project, then you are likely adding unneeded complexity to you project; you are certainly adding development time and therefore cost to the project.

Recently, I have been spending a lot of time developing an internal Mac OS X application for a client. This is a large scale application that has a lot of very specific requirements; these requirements range for media conversions to data sorting. After spending a little time trying to create my own internal Objective-C classes for many of these functions, I started wishing that I could just call down to OS X’s underlying UNIX utilities.

Then I remember something that I had read in a Cocoa book almost a year ago: NSTask. I popped open Dash and got to reading the documentation on this awesome class. Basically, you can use NSTask to call down to a UNIX utility, pass it parameters as you would from the terminal, and deal with its output.

Let me show you an example of how this would work with one of my favorite GPL’d tools: LAME.

NSTask* lameTask = [[NSTask alloc] init];
[lameTask setLaunchPath@”PATH_TO_LAME”];
[lameTask setArguments:[NSArray arrayWithObjects:@”CRAPPY_AUDIO_FILE.wav”, @”NEW_AWESOMENESS.mp3”, nil]];
[lameTask launch];
<

That’s it. It really is that simple. Keep in mind that for this to work the user needs to have LAME installed on his box already for this to work and distributing GPL’d software with proprietary software can be legally jeopardizing, so read those licenses. Also, MP3 is an IP encumbered format and I am not suggesting that you should violate IP by using the above code; I am only using it as a fun and easy to understand example of using NSTask to call a UNIX tool/

I hope this helps somebody out, if you have any questions or comments, please let me know or comment below.