Archive for category Software

Too Bad Apple’s Business Channel Blows Ass.

Apple has largely been a consumer-focused company and the B2B channel has always played second (or third) string in terms of market focus. My personal take on the iPad is: so-so for consumers, a pretty effing cool platform for business.

If the iPad is rugged enough, the applications can be nearly endless. A lot of people can see ways of putting the device to work. I’ve personally been looking for a solution very similar to develop applications on for business use. Laptops work, but are not very durable (unless you tack on a couple grand to the price tag). Laptops are also large, clunky, and difficult to work with in the scenario I have in mind. So the iPad would definitely fit the niche I want to work with. Not having touched one, the images I’ve viewed show that might well be near the annoyingly-sized piece of hardware that has trouble fitting in places it needs to go. But that has yet to be seen.

Yet I’m not without my doubts as you can already tell. My concerns are that Apple limits the software to Apple Store purchases – effectively rendering my ability to hack at it useless, the device would be incapable of multitasking – a huge part of what I need such a platform for (although I doubt the veracity of this issue), and the extended service plans are ultimately as much as the device itself.

Let me put it into context: I am looking at developing tools for the trucking industry that fit on a tablet and can manage a wide variety of needs. If any of you out there have laid hands on a Qualcomm box, you know there is always room for improvement in terms of interface design, speed and functionality. Hence, my idea that a tablet with cellular capabilities would fit a niche (with a few exceptions) and meet the needs of most drivers on the road. Most consumer laptops have issues beyond what most consumers are familiar with when put into a semi. You have to deal with increased dirt and grime, an environment that is punishing on anything with moving parts, laptop hinges that last weeks rather than years. Panasonic, Fujitsu and Dell all have ruggedized laptops with price tags that can easily make you faint. So a tablet, with fewer moving parts and no room for grime and dirt, makes for a plausible solution to my hardware problem.

But Apple’s focus on the business market is, well, lackluster – with the exception of the digital arts and production realm. Stray much farther than digital arts and you find a sharply dropping arc of use in terms of general vendors using the platform. Sure, Apple has been making headway in overall market share, but the crux of those gains are largely due to the consumer market.

Then there is the perception problem. Apple’s core marketing focus on consumers can make it difficult to breach the b2b/b2c wall. The iPhone is a consumer device, not a business device. The iMac is something you buy your daughter when she’s going to college, not where you sit down to draft that ungodly Powerpoint presentation you’re going to thrust on unsuspecting subordinates in the morning meeting. (note: the prior sentences are sarcasm in full force) Now, most developers I know love the Mac as their platform du jour. I like it. But getting the solution across the table without the wince from the buyer along with 1000 questions on compatibility, can be a problem.

The third curiosity is the level of control Apple provides developers. For better or worse, Apple appears to be of the opinion: “Here’s our device, here’s what you can do with it, don’t ask for anything else because it won’t happen.” For the device to be utilitarian in purpose, Apple needs to recognize that locking down parts of it is what will hinder its overall adoption for business purposes. For my vision of the software that would go on the device, I need granular control over the underlying system to give administrators the ability to lock certain aspects down, remove options and generally kill some features of the device. Is that nice? No. But that is the reality of the situation for the solution I want to deploy. And in my experience with Apple products, I’m not thinking I’m going to get the level of control I want out of the system.

Please know that my complaints are from a business perspective. I think the iPad will be a moderate consumer success, far above Apple TV but not as popular as the iPhone or iPod. Apple might just revolutionize a part of the PC business that has floundered (tablets). And just maybe fairly sophisticated business solutions will evolve specifically for the device. I hope they prove me wrong.

,

No Comments

So you want to learn how to program…

Consider this a primer on programming by a non-programmer. Why would you heed the advice of self-described non-programmer? Easy – I’m less enchanted with technology than most fanboys. So here are a few precursors you should consider before you jump in to programming.

Lesson 1: Languages are like underwear; lots of sizes and colors, one distinct purpose. No matter what the fanboys throw at you in terms of benchmarks, frameworks and syntax, it all comes down to preferences. But if you’re paying for courses, you might as well learn one that is being used widely to some degree. It makes finding an actual job somewhat easier.

Lesson 2: Sometimes these preferences are dictated by the person paying your paycheck. Other times you can go it alone and inject your own preferences into the project. Either way, if you accept Lesson #1, you should be able to program in any language with some success. If you can’t get your mind around a concept of a language you don’t “know”, it is probably because you don’t understand your preferred language either. The only exception, for example, is if you were using a procedural language and then jumped in to the object-oriented pool. Then you have new concepts to learn. But it shouldn’t be completely foreign territory.

Lesson 3: Frameworks are designed to make you more productive (or lazier) by doing some things that are often repetitive. A framework will not do you any favors if you skip Lesson #2 and don’t know the language.

Lesson 4: Computer science is often taught in the finite space of mathematics. But the real secret is that you should know an equal amount of statistics. The business world, where you will most likely derive a paycheck, is based in the world of probability. If you can’t wrap your head around the idea of uncertainty and variance, you’ll be JACP (just another commodity programmer) . Standard deviation must be understood.

Lesson 5: “Less is more” – Ludwig Mies van der Rohe: This doesn’t mean doing the least amount possible and getting away with it. Less is more so long as the end result provides more value than doing more and producing less. No one cares how big your app is or whether it has the words “enterprise” stamped on it. If it is a piece of shit, it only means you have a bigger pile of shit to clean up. Take a small app that is a piece of shit and you can easily turn it into something much better, much faster.

Lesson 6: A programmatic solution to a project you are developing is often *not* the solution to the project. Users often don’t care about a granular process or methodology or programming best-practices. Even if it makes sense to you, it probably doesn’t make sense to non-programmers.

Lesson 7: Don’t foist new technology on unsuspecting victims. You’ll end up regretting it when you have to integrate third-party tools, libraries and applications and they’ll hate you far less when you have to tell them the reality of the integration process.

Lesson 8: The user interface must meet the needs of your end user – not what you think they need. People are often wow’ed by the most devilishly simple, attractive interfaces.  But slap on an ugly interface and have hundreds of thousands of options, features, tools and utilities and your end user will be lost. Take a hint and load an older copy of Microsoft Word and see what I mean.

Lesson 9: The only thing that makes you a better programmer is being better than most other programmers. Thus, if you wish to avoid having your job outsourced to another country, be better than most. Even if you do lose your job, your talents are easily applied elsewhere.

Lesson 10: You are not god. Don’t act like it. Or if you are just that good, don’t tell me you can’t do something or something is impossible. Like I’ve told a girlfriend or two when they start mouthing off: You can be replaced… especially if you are JACP.

No Comments

First Impression: Haiku OS

After reading a quick blurb on a news site about the early alpha of Haiku OS, I ventured out to grab a copy of the disk image and plugged it into Virtual Box. After some tinkering, I had a fully working, Internet-capable installation of the little OS that is hell bent on delivering a compatible version of BeOS back into the public’s consciousness.

I’ve downloaded prior images and played with Haiku from time to time. My most notable argument was the nascent networking stack that did not like to play well with any of my network cards. Well. They fixed it. And for the most part I was surprised with the progress the team has made in the past couple of years.

The gui feels a little prettier. The speed of the OS seems to have improved greatly and the app selection, while still small, is adequate to get a good feel for what BeOS was supposed to be.

Since I was running this all in Virtual Box, there were a few caveats I’ll share. My optimal VBox configuration was set up with about 1.5Gb of RAM (the most I would dedicate to it), 32Mb video memory,  3D Acceleration set to ‘off’, and the Intel 10/100 Networking card set to use NAT.

I played with the configuration a bit and found that the 3D Acceleration feature was a significant-enough penalty to performance to leave it disabled. Processor optimization settings for AMD/Intel didn’t seem to have any noticeable effect on performance.

One thing I do love about Ubuntu (a la Debian) is apt-get. With Haiku’s POSIX compliance, it would be nice to see a port of the apt tool for updating and installing software and libs. A tool like apt is something I would hope to see somewhere in the pipe after they get a full, working wi-fi stack.

Another, possibly nicer option would be to just use git in a centralized app community. Couple git with jam and you have a nice way to manage software updates, compiling and code sharing.

To get a copy of the Haiku image or to learn more, click here.

,

No Comments

MySQL Workbench – Now We’re Getting Somewhere

From time to time I have always enjoyed using MySQL’s free GUI tools… except Workbench. It was a wretched, crashing, wretched, horrible, wretched program in its early stages. I’m happy to say that I’m fairly satisfied with the latest versions despite a couple of small bugs I’ve run into.

I’m an inherent tinkerer so I love designing databases from the conceptual level and having a nice, working GUI just makes it more fun. If you haven’t already, check it out here.

No Comments