Today is a good day to code

iOS 6 is Going to be Lame … But Apple’s Competition Should be Deeply Afraid

Posted: June 15th, 2012 | Author: | Filed under: Apple, Companies, Google, Microsoft | Tags: , , , , , | 1 Comment »

The surprises everyone was waiting for from the Apple’s WWDC keynote never arrived. Instead, we got a handful of evolutionary features added to generally excellent software, and an amazing piece of hardware. I was actually yawning while following the liveblog. That fact should have the entire tech industry shaking and quaking. That boring keynote just put everyone on notice, but they may not realize it yet.

Apple has done this before. A few years before the launch of the iPhone, the iPod, iMac, and Mac OS X went through a period of minor updates, feature and spec bumps. All of these products never became any less incredible, but Apple wasn’t doing anything exciting.

We know now that Apple had a light guard working on continuing to bump aspects of their main product lines, while the majority of the engineers were toiling deep into the night to build iOS and all of the apps that we all know and love that launched on that device, namely mobile Safari.

It took them several years, while they were consolidating their dominance of the PMP market to completely disrupt everything we consider true about mobile computing. That is not to say that the products they launched in the interregnum weren’t great. The iPod nano launched among other things, but I remember thinking along similar lines as others, is this all you’ve got Apple?

The answer today was obviously, No. They had much more, and knew it.

We are seeing the same general stagnation today. It makes you wonder, what the hell are they doing in there? There is really no way to know, but when it is ready I would expect no less disruption than we saw when the iPhone came out.  Apple has maybe 14,000 engineers, do you really think that all of them are working on iOS 6, Mountain Lion, or trying to make the MacBook Pro thinner?

Apple takes their time, so it could be six months, or it could be three years. If I were a competitor of Apples, I’d be getting ready to be disrupted.

I’d think bigger than a television set Apple has already made personal content consumption more prevalent than group consumption.

Sitting around the TV and watching a movie rarely happens anymore. Everyone in the family, each watches whatever they want on their phone, iPad, or laptop.  Apple’s next great breakthrough doesn’t even have to be strictly media or tech. Perhaps it will be the iCar,  some sort of iAutomation for your house, the iHome, who knows.  Perhaps their plan is to start building luxury apartment buildings in San Francisco.  Making spartan, but delightfully, designed homes built out of glass and aluminium.

Dr. Strangephone or: How I Learned to Stop Worrying and Love Windows Phone

Posted: May 30th, 2012 | Author: | Filed under: android, Apple, Companies, Facebook, Google, Microsoft, Verizon | Tags: , , , , , , | No Comments »

Lumia 900 Live Tiles Flat

This weekend I switched back, once again, to Windows Phone from my ICS packing Galaxy Nexus.  Previously, I had switched to Windows Phone from my Froyo ( can you believe this phone was launched in the US with Froyo? ) Infuse 4G.  I seem to always switch away from Android eventually, and I haven’t been sure why, until now.  This is not meant to be an Android hate fest, I don’t want to say I hate iOS, and I don’t hate any OS.  I am a huge fan of iOS and Android, nor am I a fanboy of any camp ( any more ).

I think that Android is an excellent implementation of  the vision for which it was designed.  iOS was the first and is still the leader in its category. Both of which are largely cut from the same cloth.  Who copied whom, I’ll leave for history to decide.  For the my purposes, however I am happier with Windows Phone, and I have finally figured out why.

Windows Phone is Designed Around Use Cases

As I was transitioning between my various Android handsets, my iPad, and my new Lumia 900, I kept thinking about what it was in Windows Phone that kept causing me to want to use it.  The browser is merely sufficient, the hardware is technically behind the curve ( while the phone hardware as a package is superlative, hats off Nokia ), and the OS is, well… different.  One of the core things, which was immediately apparent, was that it didn’t take long for me to get to what I wanted to do with the Lumia from the live tile home screen.

I don’t subscribe to the “Smoked by Windows Phone” campaign, I think that was stupid and wrong.  Android is typically faster in specific areas, like time to app launch, etc… iOS smokes both of them in scrolling and touch screen responsiveness as well as time to app readiness on the newer iPad2/3 and iPhone 4S.  Windows Phone’s speech to text is great, but not comprehensive;  Android’s speech to text is better than Windows Phones, Siri’s voice recognition is marginally better than Androids, if only because of her witty retorts.

Despite all of the shortcomings I have just described, I still prefer Windows Phone.  For a few months, after I started with Windows Phone 7 on my Focus S, I started to think something was wrong with me for liking it.  Maybe I was a “feature phone” kind of guy after all.  The tech media kept telling me that Android and iOS are better because of their broader app selection, more sophisticated chips, hardware, etc… I could readily agree with this assessment, after all, Windows Phone doesn’t have NBA Jam, or Angry Birds Space.  The more I thought about it however, as far as I am concerned, I prefer to use my phone for communication first, and apps second.  Being presented with a grid of apps, or strange widgets, or the wrong panel of the launcher were all in the way of simple communication.

When I use Windows Phone, it is clear, I press people for communication, me for updating my social networks, phone for calls.  This simplicity, and clarity; that is what keeps drawing me back.  It isn’t that Windows Phone is faster in any way than Android and iOS, not that it is slow.  It is that each specific task that I want to do with the phone has a well defined path, is clearly encapsulated, and is a complete end-to-end experience with no cruft.  It isn’t chaotic like the Android intent system, leading me all over the place from app-to-app, it isn’t ridiculously siloed like iOS.  Things that should be combined, like Facebook and twitter are grouped together.  Games are all in the same place, and share a coherent experience that is clearly differentiated from the other flows for when I want to play games.  Music, podcasts, and audio are all together, unified in their Zune experience, which also is differentiated from the game flow, and the social flow.

Sideways Lumia 900

Android and iOS are Designed Like Desktop/Tablet OS’s

Once I began to think about use-cases, I started to see how ill fitted Android and iOS were for the phone.  I started to put devices into categories based on these use cases, to try to figure out where they go wrong.

When using my desktop / laptop, I am consciously sitting down to perform some fairly complicated task, I expect to have to make lots of decisions to perform that task, and I do not mind the complexity of the windowing system.

When using my tablet, I am typically settling down to enjoy some content, a game, a book, a fun diversionary app, or I am attempting to use a productivity app, for which I could perhaps perform the task on my desktop / laptop.  I don’t mind actions taking a little extra time on my Tablet, I am expecting to explore and engage in an experience.

My phone is different.  I am not typically trying to explore.  I am trying to find a restaurant to eat at right now, or I am looking for my friends house and I am wandering around trying to read street numbers.  I am buying something and need to compare prices.  I am trying to call someone to have a conversation.  In short, most of what I am doing with my phone is immediate I don’t want to browse.

The grid of apps, is really nice for presenting an experience, it is an invitation to browse, to wade into an entire universe of possibilities.  A bunch of apps is great for when I want to spend time looking around, like window shopping.  I don’t necessarily know what I want to do, I just want to be entertained.

I don’t really need apps on my phone, I need the workflows that are in those apps.  I need the restaurant information inside of the Zagat application, I need the directions and augmented reality that is inside of google/bing maps.  I need the social graph that is inside of Facebook to find out if my friends are busy this weekend.  I need the content of the twitter app to find out what is going on right now.  As far as exposing that, some apps for Windows Phone can do this with their live tile, for other, well designed Windows Phone apps, there is a clear use case for the application, and it brings as much content to me as it can to assist me with doing something right now.

Windows phone isn’t perfect, there are still quite a few missing use cases that I would like to see fleshed out, like the augmented reality directions, or a better workflow around photo sharing.

When you think about things in use cases, you actually start to see that the multitasking system that Windows Phone employes is correct.  It is only broken if you are looking at it as you would look at Android or iOS, or if you are comparing your mobile computing environment to one that is less mobile.  Windows Phone is better thought out than its competitors. Once you let go of the fact that you believe you want your smart phone to be just like your desktop/laptop/tablet, then everything will be fine.

So what if Windows Phone doesn’t have many quality apps, for most of the things I want to do, I am covered.  As they add apps, so much the better, I only hope that the developers think about how their users will accomplish tasks in real-time with the applications they provide, and don’t fall back on the Android and iOS way of sticking a bunch of data into a silo and expecting the user to poke around to find it.

Lumia 900 Top Third

Windows 8, in its current incarnation is half-mistake, in my opinion.  For the designers to take UI and a set of interactions that are successful for phone use cases, and apply them to a desktop OS is to turn something useful into a chaotic chimera.  I believe that Microsoft is not allowing for as much richness and complexity as the interaction patterns of a stationary computing experience should provide by implementing the Metro interface on the desktop.

In the legacy interface, they are just screwing up what was working.  It makes sense for them to take the same approach as they allowed the Windows Mobile team to take.  Think about the use cases that people are likely to encounter when they are attempting to accomplish something with their desktop/tablets.  You may not be able to unify the interfaces, it is OK.  Apple is falling into the same trap, it is leaving a massive opening for someone to do something awesome with the desktop computer…. Canonical are you listening?

Let it go, the desktop paradigm is dead.  Stop worrying about how things used to be and learn to experience Windows Phone for what it is.  A beautiful breath of fresh-air, a new way of thinking about mobile interaction.  Hopefully Microsoft doesn’t screw it up.  If their marketing is any indication, I am worried about the future.  If they leave the Windows Phone team alone, and allow them to keep doing what they are doing, things will be great.

Google’s Vision of the Future is Correct… But They May Not Be The Ones Who Implement It

Posted: January 8th, 2011 | Author: | Filed under: Companies, Google, Lifestyle | Tags: , , , , , , , , | No Comments »

On a drive from Colorado to Las Vegas this past week my daughter and my son were in the back seat of our car using my daughter’s netbook, she has recently turned 7 years old so I bought her a netbook and I am starting to teach her how to code.  My son wanted my daughter to change the video that they were watching and she began to explain how the internet works to him.

She told him that all of her stuff was on the internet ( emphasis mine ) and that the movie that they were watching was the only one that was on her netbook, she explained how her computer was barely useful without the internet, that the internet came from the sky and her computer needed to have a clear view of the sky to receive the internet.  In addition she said that since we were in the car and the roof was obscuring said view that they couldn’t get the internet, and couldn’t change the movie.

Listening to this conversation gave me a bit of pause as I realized that to my children, the internet is an etherial cloud that is always around them.  To me it is a mess of wires, switches and routers with an endpoint that has limited wireless capabilities.  When I thought through it, however, I realized that my kids had never seen a time when someone had to plug in their computer to get to the web.  Plugging in an ethernet cable is as old school as dial-up.

Once that sunk in, I understood that the Cr-48, Google’s Chrome OS netbook is a step in the right direction, and while I am very enthusiastic about several aspects of Google, and in all fairness others’ vision of a web based future, I do not feel that the current approach will work.

A centralized system where all of users’ data lives, and all communications go through is not an architecturally sound approach.  As the number of devices that each user has goes up, the amount, size and types of connections is going to stress the servers exponentially.

It is already incredibly difficult to keep servers running at internet scale, we need entire redundant data centers to keep even small and simple web scale endeavors running.  When you take a step back you realize that a system like Facebook is barely working, it takes constant vigilance and touching to keep it running.  It isn’t like a body where each additional bit adds structural soundness to the overall system, instead each additional bit makes the system more unwieldy and pushes it closer to breaking.

Google is another example of a system that is near the breaking point, obviously they are struggling to keep their physical plant serving their users, and like Facebook they are so clever that they have always been able to meet each challenge and keep it running to date, but looking at the economics of it, the only reason this approach has been endorsed is because of how wildly lucrative mining usage patterns and the data generated by users has been.

I don’t think this will continue to be the case as the web reaches ever larger and larger groups of people. I don’t think any particular centralized infrastructure can scale to every person on the globe, with each individual generating and sharing petabytes of data each year, which is where we are going.

From a security and annoyance perspective, spam, malware, and spyware is going to be an ever increasing, and more dangerous threat.  With so much data centralized in so few companies with such targeted reach, it is pretty easy to send viruses to specific people, or to gain access to specific individuals’ data.  If an advertising company can use a platform to show an ad to you, why can’t a hacker or virus writer?

The other problem that is currently affecting Google severely, with Facebook next is content spam.  It is those parking pages that you come across when you mistype something in Google.  Google should have removed these pages ages ago, but their policy allows for them to exist.  Look at all of the stack overflow clones out there, they add no real value for themselves except for delivering Google adsense off of creative commons content.  What is annoying is that because of the ads, they take forever to load.  Using a search engine like Duck Duck Go things are better, but this is likely only because it is still small.  DDG also says that it will not track its users, that is awesome, but how long will that last?

It is possible for a singly altruistic person to algorithmically remove the crap from the web in their search engine, but eventually it seems that everyone bows to commercial pressure and lets it in in one fashion or another.

Concentrating all of the advertising, content aggregation, and the content in a couple of places seems nearsighted as well.  The best way to make data robust is to distribute it, making Facebook the only place where you keep your pictures, or Google, or Apple for that matter is probably a bad idea, maybe it makes sense to use all three, but that is a nuisance, and these companies are not likely to ever really cooperate.

It seems to me that something more akin to diaspora, with a little bit of Google wave, XMPP, the iTunes App Store, and BitTorrent is a better approach.  Simply, content needs to be pushed out to the edges with small private clouds that are federated.

This destroys most of the value concentrated by the incumbents based on advertising, but creates the opportunity for the free market to bring its forces to bear on the web.  If a particular user has content that is valuable, they can make it available for a fee, as long as a directory service can be created that allows people to find that content, and the ACLs for that content exist on, and are under the control of the creator, that individual’s creation can not be stolen.

Once the web is truly pervasive then this sort of system can be built, it will, however, require new runtimes, new languages, protocols, and operating systems.  This approach is so disruptive that none of the existing large internet companies are likely to pursue it.  I intend to work on it, but I’m so busy that it is difficult.  Fortunately, however my current endeavor is has aspects that are helping me build skills that will be useful for this later, such as the Beam/Erlang/OTP VM.

The benefit is to individuals more than it is to companies, it is similar to the concept of a decentralized power grid.  Each node is a generator and self sufficient and the system is nearly impossible to destroy as long as there is more than one node.

The Battle Between Geeks and Non-Geeks

Posted: May 24th, 2010 | Author: | Filed under: android, Apple, Companies, Google, iPhone, Microsoft, Programming | Tags: , , , , , | No Comments »

This weekend, on a bike ride, I was thinking through the Apple vs Google situation, as well as the paid vs non-paid, and this whole concept of open systems vs closed and I came to the conclusion that it is really just about geeks vs non-geeks.

For about the past 20 years or so, computer stuff, anything digital really, has been produced primarily by the geeks at Microsoft, and later by various open source geeks around the world.  It was reflecting their world view, that everyone ought to be able to tinker, and that they might want to.  This caused the severe amounts of confusion that people have had for years.

It would appear that now that consumers have a clear and viable choice in Apple and the iPhone that they are choosing, in droves, really, the closed app store based system.  It would appear that consumers would prefer an app store to the open web, an individual coherent vision to multiple pieces of different developer’s visions of the optimal way to do x.  As Apple likes to put it, they want an appliance, in which applications are just another type of content, and all methods of doing anything are consistent.

I would say that consumers have chosen that, but not because Apple always provides a superior method, or that they like being closed an limited,  I would say that it is because Us, as geeks, have not done a good job of providing clear and usable alternatives.  For developers and geeks, configuration and making tons of choices are just table stakes for getting our devices and software working exactly the way we want them to work.  We have a difficult time creating things that violate the ability to choose a different way.  Part of that is that most of us never have the hubris to think that we can decide for others how to do a given thing, or which thing to choose.  But that is exactly what makes Apple more powerful than Google to the consumer.  Google is catching on, but in a way, at the same time they just don’t get it.

I, personally, understand and prefer many choices.  I like Mac OS X and Linux, particularly because there are so many different ways to set things up, the 3rd party developer community, around the Mac especially, have done an amazing job of filling in the usability gaps that Apple has left.  Should users choose these productivity enhancers, Apple has wisely seen fit to let the 3rd party devs keep doing their thing.  The problem with Android, and the internet in general is that most people are not like us.  They don’t want to seek out and try 5 different text editors and window managers, and text expanding solutions before finding the right one.  They want to just use it most of the time, and they would prefer if the base implementation didn’t suck.

Geeks, and Google, we would prefer to just let the base interfaces and systems suck, since our partners are either going to replace them, or augment them.  That is exactly what shouldn’t happen.  Technical solutions should be like European Socialism… The government provides a generally acceptable set of services that everyone pays for, but it is possible to get better solutions.  This provides something of a floor for service providers.  Likewise, if you are developing a music solution for example, provide a playback solution that works with it first, then give the ability to plug into other services if the user prefers.  That way, they aren’t left hanging initially.

Where I get frustrated with Apple, and where I continue to choose Google’s services, even they are less usable, are that they do not give me the latter solution.  They provide a kick-ass initial implementation, but when I want to go and replace or augment it, particularly around the iPhone ecosystem, there are no options, in fact, they go out of the way to defeat any other option.  If I wanted to use Apple’s music purchasing service, but I didn’t want to use the iTunes application, I am SOL.  Apple feels that they make the best music playback solution as well as the best service.  For some they may, but for me, I would much rather use AMAROK or something else to manage my music, inferior or no.  If I chose the other way, I might want to use Amazon’s MP3 service for buying, but iTunes for managing.  Apple should make that easy for me.

At some point, geeky companies like Google, and to their credit, they are starting to, need to create good baseline solutions that run up to, but stop short of competing with other products and services that are auxiliary to their primary product.  Apple needs to accept that people may occasionally choose to do their own thing and allow them to.

I do not buy the assertion that in order to provide a cohesive solution you have to block all others.  I feel that a system can be aesthetically pleasing and useful, as well as permissive.  Karmic Koala I think gets really close to being there, but there are still too many places that I can get into with the OS where regular users would go WTF?!!?

This is why I am continually working on a new OS that as an ambition would combine the completeness and ease of use of the Mac OS, but honor the internet, as well as user choice.  They are not mutually exclusive, and the only way to prove it is to build something that shows it.  It is a huge amount of work, which is why the only way to do it is open source, but since you have to make clear choices for the user, at least in the initial state, some stuff just couldn’t be committed.

Basically, end-users won’t realize the cost of the choices they are making until they are gone.  In a balkanized, app-store-ized internet, choices will be limited, prices will be high, and satisfaction will be generally low.  That is where we are going, that is the choice that users are making because they can’t wrap their heads around the internet.  It is our fault as geeks, and we are the only ones who can fix it.  The average user is going to pick the shiniest and easiest widget.  There is no reason we can’t make that.

Conflicted About App Store Policies

Posted: April 26th, 2010 | Author: | Filed under: Apple, Companies, iPhone, mides, Programming, Uncategorized | Tags: , , , | 2 Comments »

Last night I started down a train of thought that I wish I hadn’t. I started thinking about what the world would be like if Apple had been the dominant player, and Microsoft had faded away into semi-obscurity, if Linus hadn’t created Linux. What if the app store had come about years ago, and had become the primary method of reaching any significant number of users, with what other blogs are saying existing in their developer agreement.

What that future looked like was something that frightened and disgusted me in many ways. First and foremost, scripting languages, like Ruby, Python, Perl, and PHP would have been mostly prohibited on significant platforms, and thereby would have been relegated to mostly research oriented platforms. IE, no serious development of those languages would have taken place. Java would have been killed almost before it began, resulting in a much weaker web environment, as well as eliminating much of the boom that accompanied the web development land rush. Some very innovative companies would have had a much harder time achieving scale without the efforts of OSI around them, many of them would likely have never come to full bloom. Companies like Google and Amazon would have had to first develop their own operating systems free of Apple patent infringement, and free of the app store.

Much of the above is an argument for no software patents, which I generally agree with, but I think that isn’t where we should focus our attention. The main issue is that basically the fundamental structure that we all take for granted came about because there was always a viable alternative, that was open, and that the distribution of software was never limited or conflicted. Microsoft may have been many things, most of them negative, but one thing it got right was realizing that an open and free developer community is critical to the growth and improvement of the art. It will sometimes cause issues, and produce hideous products, but it is not the responsibility of platform companies to protect users from developers. Rather it is to assist in the developer-consumer conversation, especially as regards features and capabilities of the solutions being developed for them.

I actually hate Flash, I think it is outmoded and needs to go away, that being said, I can, and should be able to choose to develop solutions for my customers in whatever language or framework meets their needs. That choice needs to be made by the developer and the consumer of what that developer produces.

Apple has every right in the world to prevent developers and consumers from doing whatever Apple decides is wrong on their platform. That is their choice. Apple’s scale and access to customers, however is forcing am uncomfortable choice on their developer base. It is a choice that will itself go away if developers don’t do something about it now. It is the choice to either develop the way Apple wants, the solutions that Apple wants for it’s customers to have, or get off the platform and develop somewhere else. If developers don’t nurture alternative platforms, that ultimatum will become, either develop the apple way or don’t develop.

For those who think this is far fetched, Apple is poised to pass Microsoft in market cap, and probably has one of the strongest brands in history right now. They are almost the only game in mobile, with Android and Blackberry chasing, Palm, obliterated, and Microsoft marginalized. Mobile is every bit as important as desktop, in some ways more so.

My application, Mides, is actually being caught as collateral damage in this apparent developer agreement mess. It was my hope to create an environment in which developers could create and and test their web products using the scripting environment of their choice, be it ruby, php, or python. Apple had prohibited this sort of thing, by my interpretation, basically from jump, deciding that it was a feature that users of it’s products would never be able to have. That may have been an inadvertent choice, but it speaks to the types of use cases they have in mind for their devices, any uses that someone can come up with, even if there is a market for it, are prohibited. The end user volume that Apple has seems to say hay the end user likes this model, however I would argue that they don’t know what they are missing yet.

What does this amount to for me? Well, I am not going to make any overarching claims about developing for the Mac/iPhone platform, and I am not going to claim that I am going to stop using Apple products, they really are amazing products, but what I am going to do is vote with the only two voices I have, my money and my development efforts. I don’t like the way this app store pattern is going. I want a future where kids have access to modify and do crazy things with the devices and software that they use. I want for them, and for myself, to think differently, and try things that don’t work, or cause problems, because in the end, that is how humans learn. To have someone else decide for me what is safe, or what is cool, or how I should do what I do is the very anthesis of what I believe in. Designing amazing user experiences is one thing, dictating how I interact with the world through my computer and its peripherals, is completely different. I feel that Apple has pushed across the line of consumer advocacy, and has moved into something more sinister.

What I am going to do is to actively develop for other platforms, such as the web, Ubuntu, and Android, even though I am still angry with Google for banning me from their user group for no reason. The rationale behind my decision is that Google doesn’t control Android, anyone can fork it and do what they want. If I want to push out a beta, I can, if I find a bug I can push out a release in the morning and my users can have it in the afternoon. I am back in the loop with the conversation that my customers and I are having without having a disinterested intermediary in between. I will from now on, very carefully think about my consumption of Apple hardware, and their software and services, before buying them.

This line of thought completely knocked my Apple fanboy hat off, if Apple cares, and I hope they do, they will work to re-establish that childlike sense of wonder in me that I am developing for the best platform in the world, if not, it’s not a big deal, if I am alone in the way I feel, Apple has millions of developers and consumers, they don’t have to care about one, but I’m betting that I am not alone, and throwing all of our weight around is going to be a big deal to them. Apps make and break a platform, and by capriciously throwing away the developers of those apps, Apple is making a huge mistake.

Google Will Buy Palm

Posted: April 20th, 2010 | Author: | Filed under: android, Apple, Companies, Google, iPhone, Palm | Tags: , , , , | No Comments »

I hear a lot of prognostication about who will buy Palm now that they are officially up for grabs.  People are suggesting that HTC, Lenovo, or even Apple would be the most likely to buy them, however I don’t think any of them will get Palm.  I think that Google will get Palm for around 1 billion dollars, and here is why.

Primarily, the main reason is that Palm’s WebOS falls directly in line with Google’s philosophy of web first, native second.  That with the Google Native Client could make for a compelling addition to Android.  One could argue that Android is lacking only in UI, and WebOS has a UI second only to the iPhone.  Secondarily, buying Palm would give Google patent ammunition to use in assisting HTC in their legal battle with Apple, especially since it is Google’s Android OS that is causing the issue.

It doesn’t make sense for Apple to get Palm, even if they are in the bidding, because Google has shown in the past that it is willing to go way above a company’s valuation to snag them.  This makes just too much sense so it has to happen, that is my prediction, it is sort of hopeful because I like WebOS and Palm, and would like to see it continue, albeit in a more pure HTML 5 sense.

Hands on Review of iPad Vacation Update

Posted: April 15th, 2010 | Author: | Filed under: Apple, iPhone, mides | Tags: , | No Comments »

For the past week and a half, I have been on vacation with my family, my iPad had come a day before we were scheduled to leave. I wanted to write an addendum to my earlier quick hands on review since I have had some time to work with it for a few days.

In many ways, the iPad is a breakthrough device, changing the game as far as usability as well as functionality. But for someone like me, a software developer, it misses the mark a bit.

The only significant bug I have encountered while on vacation is the Wi-Fi bug. It has bothered me at almost every hotel, with the device frequently failing to connect to the netwok, or to obtain an ip address. Otherwise things have pretty much worked as I had expected.

Without the ability to use Xcode, let alone GCC, and with the prohibition on downloading and executing additional binaries, however I haven’t been able to fix simple bugs with my iPad / iPhone application, Mides.

Right now, for someone like me, the MacBook Air, 13″ MacBook Pro, or my old trusty 15″ would be much better. For the weight, the MacBook Air would be a much better travel companion for an Objective-C coder.

I have been able to do a bunch of JavaScript / CSS / HTML work with Mides on the iPad, thanks to the Bluetooth keyboard, but serious software work will not really be practical on this device.

However, as a media consumption device to keep the kids happy, this thing has been awesome. The netflix, and other streaming video applications, has been fantastic, when the wi-fi worked. The 3G version should take care of the wi-fi issues, via not using it, but I am looking forward to the 3.2.1 update.

I’ll write another more comprehensive review, when I get back, as well as using my MacBook Pro to get Mides’ bugs fixed.

Mides 1.8.1 Endless Keyboard Popup Issue

Posted: April 9th, 2010 | Author: | Filed under: Apple, Companies, iPhone, mides | Tags: , , , | No Comments »

The Mides 1.8.1 release should have fixed a bunch of the startup, and SFTP stability issues, but there was one lingering issue. The endless keyboard popup issue. The fix is to disable the “Twist to complete” feature in the iPad settings app.

The reason this is an issue is that the accelerometer values for the iPad are way more extreme than the iPhone due to it’s size, so the code that I had to ignore small movements of the device is not working on the iPad. I will remove twist to autocomplete for the iPad in a future release as it doesn’t make sense for this device, and since there is now a button for it.

This issue shouldn’t affect the iPhone, it is an iPad only issue. There was no way to find then issue before I had hardware since the accelerometer is not available in the way I need on the iPad simulator. But at least there is a good workaround.

Hands on Review With The Apple iPad

Posted: April 3rd, 2010 | Author: | Filed under: Apple, Companies, iPhone, mides | Tags: , , , | No Comments »

Today at around 9 AM my opinion of the Apple iPad changed. In one of my previous blogs, thoughts on the apple iPad, I commented that I wouldn’t buy the iPad if I weren’t a developer, and if I hadn’t I would be seriously disappointed that I hadn’t.

The first thing that I noticed was that the iPad feels really sturdy. It feels as strong as s piece of solid aluminum. The on screen keyboard is pretty good, in fact, I’m using it right now to create this post. But using the Apple Bluetooth keyboard with it makes it clear that this thing has the ability to replace my laptop for most of the reasons I carry one. My own app looks great, although not without it’s minor bugs. A friend found a way to get into an endless loop with the code completion dialog. It took me a while to figure out a work around, it turned out to be changing the orientation.

Browsing the web is just …. Natural … There is a quality to using the web on this that is difficult to describe, but it is like nothing else. I would recommend that if you can wait, the 3G version would be better if you don’t mind AT&T, and you don’t mind paying them extra. If you do not have an iPhone, it may make sense to pay the extra. If you do have an iPhone already, then it just doesn’t make a ton of sense to me. I will probably get a MiFi somewhere and just sign up for a contract.

I would recommend getting a case as well. While I am not afraid that it will break, it is bigger than it feels in your hands and as such is a pretty likely candidate for some unintended bumping. The battery life is stellar. I don’t even think about it, and at the end of the day I still have 47% power.

The app situation is pretty unclear. I added a bunch of apps to my iPad hoping that more of them would have been optimized for the iPad. But it seems that most developers opted to create completely separate applications for the iPad. I was going to do that as well, but I didn’t want the headache of having to maintain two separate applications with the same functionality. The doubled applications range in usability. I found that most of the applications were very usable in their iPhone form.

In summary, my opinion has been changed. The iPad is a game changer. Mides on it is excellent, especially with the bluetooth keyboard. The iWork suite is fantastic. I love this form factor, it feels like you are playing with the future. It is also awesome to be able to stream episodes of Top Gear on my iPad with the Netflix app. I am glad that I got the 16 GB version, I really find that I don’t need more storage since I always have my iPhone with me, I haven’t found that I run out of space, especially with the convert to 128kbps AAC option in iTunes 9.1. Since this is a first impression, I’ll check back in after my experiment to see if I can live with the iPad instead of a laptop for a couple of weeks.

Why I Decided to Raise the Price of Mides

Posted: February 13th, 2010 | Author: | Filed under: Apple, Cocoa, Companies, iPhone, mides, Objective-C, Programming | Tags: , , , , | No Comments »

A few days ago I completed an analysis of what my profit and loss looked like for both of my applications. What I discovered was very disturbing, or would be to any entrepreneur.

I have to date put around 200 hours of work into Mides and around 90 hours into CycleMetrics. So far I have made less than $2,000 total on either of them.

Part of this is my fault, I started out with something of a flawed concept with the design of Mides because I was in love with the idea of nested code, self closing tags, and closures. This ended up eating away almost all of the devices’ memory, and was so recursive as to be nearly unmaintainable.

So I killed my darlings, went in for a heavy refactoring of the code without nesting, and ended up with a pretty decent mobile IDE.

However, at what my hourly rate is at this point in my career, based on my salary plus benefits, I am as of now, with all of my original plus ongoing effort into the software, about $30,000 in the hole on Mides, and $10,800 in the hole on CycleMetrics.

When I launched my app, shortly after the app store launched, I thought that I would be able to make back my money in 2 years and get positive. It has been 2 years, and I’m nowhere near making my investment back.

This is mostly O.K. since I have an awesome job, and I’m not missing a house payment or anything, but I think it is unwise to basically give away software that you keep shelling out effort on. I can’t let it die either, that doesn’t make sense, I love the idea of programming on your mobile, and I love the idea of being able to code on the apple tablet even more.

I also hate ads, and don’t want to do the ad driven thing. So while I’m still subsidizing the hell out of Mides at $9.99, it isn’t the slap in the face that $4.99 was.

So as a result, I have decided on $9.99 for Mides. I am putting in a fair amount of work to get to the tablet in an intuitive and sane manner, I also have a bunch of features planned. Some of which have been suggested by the awesome community at, and others that fit in with my dream of Mides.

I am still not sure what I want to do about CycleMetrics, but I have some online features that should be able to drive more reveneue for me. I don’t want to go to ads, and I don’t want to lock users in or try to steal their personal info to try to make a buck on it. That just doesn’t jibe with my philosophy.

We’ll see if the market thinks Mides is worth $9.99. I still think it is worth way more, but that is because I see it as it will be, not as it is. If people don’t think it’s worth $9.99, then they will later, but I can’t promise to keep the price there as I struggle to make it my dream of a fully featured mobile development environment.