Posted: April 19th, 2012 | Author: irv | Filed under: Amazon, Apple, Companies, Facebook, Google | Tags: amazon, analytics, bezos, big data, great, jeff, metrics, strategy, Web | No Comments »

For reasons unknown, it seems that the tech media completely fails to give Jeff Bezos and Amazon the recognition that they deserve. I believe that this is due to a deliberate strategy executed by Amazon to quietly grab as much mind and market share as they can. If they continue on their trajectory, they may become unassailable, in fact, they may be already.
There are blogs and podcasts called things like Apple Insider, This Week In Google, Mac Break Weekly, etc… I have yet to hear about any blogs or podcasts about what Amazon is doing week-in and week-out, but in many ways it is much more interesting. Amazon now handles 1% of consumer internet traffic, pushing all of through its near ubiquitous compute cloud infrastructure. They are rapidly and efficiently dismantling existing retail. Amazon is probably on their way to completely owning web commerce. Amazon has mass amounts of data on what people have, want, and will want based on what they own and buy. Through their mobile applications they are gathering pricing signals from competitors so that they can use their own cluster computing prowess to spot change pricing.
What is shocking about this is, despite their proficiency, no one discusses how absurdly dominant Amazon has become. Everyone just treats Amazon running all internet commerce and large swaths of its infrastructure as “the way it is.” Amazon is more a force of nature at this point than a company.
It isn’t just the tech media that doesn’t give them the credit they deserve, major tech companies aren’t either. Google and Apple seem ready to laugh off the Kindle Fire while Amazon soaks up more signals. Microsoft doesn’t even try to match them. Google’s commerce efforts look half-baked compared to what Amazon does, and they show no signs of trying to do better.
It is absurd to think that with the bitter rivalries we constantly hear about between Apple and Google, Microsoft and Google, Microsoft and Apple, etc… that someone would start a podcast about Amazon. Fifty years from now technology changes will have toppled Apple, Google, Facebook, and Microsoft, but I’d bet that Amazon would still be around.
Jeff Bezos and his company wield algorithms and data more effectively than anyone else in the industry, despite all the credit we give Google for search. Their suggestion and comment filtering algorithms are bar none, the best around. Amazon is integrated into the fabric of our lives and that is something that no other tech company has done to that level.
Amazon will keep doing what Amazon does best, being ruthless, being efficient, executing better than anyone else, and staying ahead of the curve. As long as we keep ignoring them they are doing their job. The greatest trick Amazon ever pulled was convincing the world that they didn’t exist. They have convinced the world that they are just retail.
Posted: March 12th, 2012 | Author: irv | Filed under: android, Apple, AT&T, Companies, Google, Verizon | Tags: FCC, free-market, mobile, policy, regulation, technology, wireless | No Comments »
Much of the tech media is thinking about the problem of wireless spectrum in the wrong way. It is helpful to think about why the commission was created, and the problems that have been created in the market by its existence.
The FCC/FRC was created in response to complaints by large national carriers that smaller regional broadcasters of dubious quality were broadcasting on all available frequencies with such power that the national broadcasters couldn’t get a clear signal through.
The government at the time thought it would be a good idea to control the broadcast frequencies so that they would have spectrum available for use with military equipment domestically.
So a deal of sorts was struck where in return for being regulated, national broadcasters would receive a monopoly on broadcast licenses. This would later cause the breakup of these same broadcasters.
The spectrum was allocated by frequency with buffer zones between blocks. Power output limits were also part of the regulation package, without which, the allocated frequency blocks would have been useless. This represented a modern and efficient set of controls based on the technology of the era.
Skip ahead a hundred years and see what has happened. The technology has improved, the regulatory framework is obviated by the technology. However, since we have an intruder in the market preventing normal forces from solving the problem, the same companies who were given the monopoly control which innovations consumers are allowed to buy. These same companies set, fix prices, and collude to gouge both content companies and consumers to the tune of ridiculous profits.
Let’s spin back to the past and examine what would likely have happened if the FRC and subsequently the FCC had never been created.
In the late thirties, the first experiments with digital technology were beginning to be performed. At the same time, content companies were beginning to have difficulty broadcasting because of band saturation on radio and later television frequencies.
The war had and was driving incredible advances in communications technology, including experiments with digital broadcast technology.
What Bell would have done was to seek profit from all of the major broadcasters of the era. They would have said, “hey, we have this cool way of using digital transmission to allow us to send tremendous amounts of data from different sources to different destinations through the same frequency using codes to distinguish one broadcaster from another. Why don’t you all pay us a small fee to register yourselves with us, and we’ll build a network of general broadcast / receivers throughout the country. We’ll use more frequencies as necessary, but since we can pack you in, we will always have plenty.”
This didn’t happen for many reasons, and has its own problems, but what would happen next would have been the rapid rise of bundlers. Companies whose job it was to use the spectrum they chose as efficiently as possible to maximize their own profit. It would have sped the pace of innovation and prevented the mess we have now.
Eventually the government would have stepped in and mandated that these bundlers reserve spectrum for military and government use. The bundlers would have complied.
Fast-forward this system to today. We would have hundreds of free market companies competing for the most efficient use of spectrum, with AT&T, T-Mobile, and hundreds if not thousands of competing Telecom and internet providers. The barrier to entry for these providers would be very low since they would just need to pay the bundler of their choice which best suited their needs.
These bundlers would have built powerful networks of broadcast / receivers everywhere, on roadsides, inside buildings, etc. There would be no lack of spectrum, and no need for excessive, heavy-handed regulation, as each advance in technology would allow the bundlers to use ever less spectrum and sell both the technology and license their spectrum to even more bundlers.
This didn’t happen, so where do we go from here? There are few places where it is so obvious that regulatory interference has caused irrational behavior in the market as in wireless. The FCC should embrace digital technology and require broadcasters to form independent corporations to act as the bundlers that I described. These bundlers would manage the infrastructure for the broadcasters with the broadcasters riding on them. Once the system was in place, the licensing system would be replaced by power output limits, and the FCC would assume a greatly reduced role.
There are many flaws to my proposal, but we have to get the FCC out of the spectrum licensing business. Technology is sufficiently advanced that we do not need this frequency based system. It is causing more harm than good. We need to let the market work to provide better access to everyone. It is critical that the barriers to entry for wireless carriers to be lowered if we want real competition and innovation in wireless going forward.
Posted: July 30th, 2011 | Author: irv | Filed under: android, Apple, Companies, Google, iPhone, Lifestyle, Media | Tags: android, chromebook, Honeycomb, iOS, iPad, mobile, netbook | No Comments »

Chromebook
The tablet entered with a huge bang a few years ago. It was staggering, Apple sold in an incredible number of iPads and forced all of the netbook manufacturers and Google to scramble to produce and release a tablet OS, namely Honeycomb, that was arguably not ready for release.
The result with both the iOS and Honeycomb are two excellent tablet OSs, and Ice Cream Sandwich promises to be a stellar tablet and smartphone OS. What I have been discovering over the past year plus using both versions of the iPad and the Galaxy Tab 10.1 is that I don’t really need a tablet for general computing.
This is surprising to me. I built an IDE for the iPad and iPhone after all, and found myself using my own product more on the iPhone for quick edits than I did on the iPad.
I watch an awful lot of netflix on the iPad, and I play games most of the time that I am using it. I have found that with the Galaxy Tab, my patterns are much the same gaming, watching videos, occasionally reading ( although I still prefer my Kindle hardware to the tablet versions ).
So I am coming to the conclusion that the pundits were right initially, tablets are clearly for content consumption, not content creation. The reason, however that these devices are not suitable for content creation is worthy of debate, and is an issue that I’d like to take up now.
Natural User Interfaces
The user interaction that most tablets sport as the default is something that is being called a natural user interface, that is an interaction that uses some of the users other senses, such as motion, to perform an on screen action. The current crop of tablets mainly use touch instead of a dedicated hardware component to facilitate user interaction with the interface.
This lends itself obviously to gaming, and a “kick back” experience of sorts. The user can use touch, or the gyroscopes to control a character on the screen, this makes logical sense to just about any user.
As an example, many role playing games have a 3/4 view of the game board, that is, the camera is typically at 5 o’clock high, or somewhere thereabouts. The control scheme for most of these types of games is to touch a place on the screen to send the character to that location. Role playing games work particularly well on tablets for this reason, they are almost better with a touch interface than a controller.
As another example, car racing games use the accelerometer in the tablets to control an on-screen car. This works well, unless you are in a position in which your motion is constrained, such as the bed, most of these games provide some sort of alternate touch based interaction that replaces the accelerometer based input.
The problem with using on screen touch points in auto and first person shooter games is that the controller now covers part of the screen, or your hands end up covering important parts of the game world, causing the player to miss part of what is happening. I know that in my case, it takes away from the FPS experience and makes it so that I typically don’t buy those sorts of games on tablets, but instead prefer to play them on a console.
Natural user interfaces only work when the content is modified such that the user can interact with it sensibly using the available sensors, gyroscope, touch screen, microphone, et cetera. In a famously bad case of using a natural user interface to interact with content from a platform that uses traditional input, Numbers presents the user with a typical spreadsheet like the one you would find in Excel for your Mac or PC. The issue here is that Apple didn’t modify the presentation of the content such that it matches the platform. Arguably there is no way to do this in a form that makes sense.
The interface for Numbers features beautiful graphic design elements, and is generally pleasant, but when you tap on a grid element, a virtual keyboard pops up and you are invited to type into the fields. Apple has made a numeric keyboard interface which is pretty nice, but anytime you display the virtual keyboard, you haven’t thought hard enough about the problem. Displaying a grid of content is not useful on this device, it is amazingly useful on the desktop, but it just doesn’t work here. Inputting large amounts of data is frustrating, and the virtual keyboard makes mistakes all to common, either because of mistyping or the misguided autocorrect.
Modifying Content for the Natural Interface
Most of the people who are buying tablets today appear to be tolerating these issues, my belief is that they are doing this because tablet computers feel like a piece of the future they were promised when they were children, useful or not. Eventually, they will likely stop using their tablets at all in favor of ultralight laptop computers, or they will relegate the tablet to the living room table as a movie watching and game playing platform.
It is possible to make significant user input acceptable on a tablet, perhaps even pleasurable, by using a bit of creativity. First, they keyboard is a complete failure. It has its place, but in most cases it can be replaced by effective gesture (non touch ) and speech recognition. This is the only viable way for bringing large amounts of content.
On the visualization front, using our example in Numbers, perhaps a flat grid is not something that makes sense on the tablet, maybe we should send the data to a server for analysis and present it as a series of graphs that can be changed by the user, manipulating the graph directly with touch actions, or with spoken commands. The result of the changes would flow back into the spreadsheet, updating the numbers behind the visualization.
Many would argue that this would not be a rich enough interaction for some of the complex spreadsheets, pivot tables, etc… that they work with, indeed, it likely would not. Most of these users would not perform these actions on the tablet, instead they would use a MacBook Air, or other lightweight laptop computer. It takes a huge amount of creativity and intelligence, as well as significant amounts of computer power to manipulate data in this way.
Imagine a speech interface for a word processor that could use the camera to track your facial expressions to augment its speech accuracy. It could, and should, track your eyes to move the cursor and ask you to correct it when you make a bad face at a misinterpreted sentence. An application like this could make word processing on a tablet a wonderful experience.
The technology to do most of these things is here. It is either fragmented with each part patented by a different company, some without any sort of tablet such as the Microsoft with the Kinect. Or the effort to produce a piece of software to utilize the features of tablet computers to best effect is too great to justify the investment. For example, doing that sort of work for a word processor doesn’t make sense when people will just jump over to their laptop to use Word. Would anyone pay $100 up front for an iPad word processing application? I don’t think so. Would anyone pay $25 per month for the same application as a service on the iPad? Its equally doubtful.
What you come to eventually is that, for interacting with content that either naturally lends itself to, or can be easily modified for, the tablet, it is fantastic. Currently, however it is severely overpriced for how it is being used. After all, you can get a fairly cheap notebook that can play Netflix and casual games for $200, or 1/3 the price of most tablets. If you have to carry your laptop anyway, why would you have a tablet at all. Why wouldn’t you take the Air with you and leave your tablet at home. It can do everything the tablet can do, and it also can handle any of the content creation that you care to try.
Thinking about the situation, we need to find better business models that will allow for the development of applications that can handle the modifications to content that we need for tablets to be generally useful. This will take a while, and in the interim it is likely that some companies will produce tablet hybrids, the ASUS Eee Transformer is one tablet that comes to mind. It is very popular, runs a mobile tablet operating system, but becomes a keyboard wielding notebook in a second.
The Google Chromebook is another example of a lightweight, even in software, laptop that can do most of what a tablet can do, as well as most of what the typical laptop does. In my own use, excluding building applications for tablets, I always reach for my Chromebook instead of my tablets. All of this is excluding the huge difference in the difficulty of building applications on the platforms.
Writing applications for tablets is extremely hard with a doubtful return on investment, unless you are making a media or gaming title. While writing applications for the web is easy and potentially extremely lucrative with many variations on possible business models, and little interference from device manufacturers.
I am starting to think that Ray Ozzie was right when he said that Chrome OS was the future. It feels more like the near future than the iPad at this point. The tablet will always have its place, and perhaps with significant advances in natural user interface technology, with accordant price reductions it will start to take over from the laptop. I am fairly bullish on the natural user interface over the long term, but at the same time I pragmatically understand that we aren’t there yet. The devices, software, and consumers have a lot of work to do for us to really enter the era of the computerless computing experience. I am committed to getting there, but I think that the current crop of tablets might be a false start.
Posted: June 2nd, 2011 | Author: irv | Filed under: Companies, Groupon, Media | No Comments »
Its funny to look at DHH’s (David Heinemeier Hansson) post about Groupon’s S-1 vs TechCrunch’s


Posted: April 26th, 2011 | Author: irv | Filed under: Companies, Programming | Tags: business, code, features, startup | No Comments »

Over the weekend I have been thinking about which features should be implemented and in what order. I realized that it didn’t make sense to try to prioritize each possible feature, as there are thousands of them, because that would take too long, and not necessarily result in a reasonable prioritization. I started to think up a framework for deciding which feature would be implemented when.
One of the first things to think about was the framework of the startup, or which development strategy the organization is using. In my case, we are using a lean-agile approach. This approach suggests that feature decisions should be based upon whether or not the implementation of a feature will affect positively any of the key metrics of the startup. An example would be, if you have a freemium product, conversions to paid from free.
What I would add to that philosophy, is that it isn’t enough that it move one of the metrics, but that it move the right metric for your startup at it’s current growth stage. If you are raising money, then gaining some sort of traction is likely more important than long term customer retention. If you already have product market fit, and you earn revenue through use of the product, then it makes sense to focus on making your software more pleasant to use.
To clarify this for myself, since I tend to obsess about usability a bit, I thought back to when I switched from PC to the Mac. I was telling myself that it was largely because I liked the usability of the product better, while this was true, it wasn’t why. I had just received a video camera at the same time and was playing around with various low-end PC video editing software, it basically sucked. Then I found out that the Mac came with iMovie. iMovie was far from perfect, but it was really good and gave me a capability that I didn’t have before. I could now edit long home movies easily, and burn them to DVD.
I realized that Apple got me to convert on a first order feature, and retained me on a second order feature. That is they gave me a capability that I didn’t have before, thereby converting me from a non-Apple user to an Apple user, and I created mainline revenue for them.
Apple has always been about this, when thinking about the iPhone 1, what did it do for me. Well, it didn’t have a ton of features, some of the ones that it did have were missing obvious things that it needed, like copy and paste, and it took a long time to get them, at first I didn’t understand why, but later it made sense. Apple was optimizing for that initial conversion, the product gave me the capability to use the internet and share photos in a minimal, yet useful way. That was what made me convert. If Microsoft had done that then I would have bought a Microsoft phone that day.
So what I decided was that I needed to figure out what the startup needed, right now we are fund raising and trying to acquire customers, so to me that means that we need to have features that get people to buy. Those would be first order, first priority features. Those things, that would make a material difference for the startup, and answer the question for the customer “what fundamental thing can I do with your product, that I can’t already do.” That is the question you must answer to get people to convert.
Second order features, the features that make your product nicer to use, are all features that are incredibly important. However, depending on your business model, you may be wasting time based on your organization’s goals working on second order features when you haven’t figured out the first order ones. Frequently when you see startups die, this is the reason. They are working on things like performance, or some trick usability thing that is really awesome and hard, so it is sucking up time, meanwhile you aren’t adding users because you have failed to answer the critical question. Maybe you know what your product will do in the end that is transformative, but your prospective customers don’t know. You must work on transformative, game changing, disruptive features first.
Posted: April 3rd, 2011 | Author: irv | Filed under: Programming | Tags: building, business, farming, mining, startups | 1 Comment »
Wil Shipley wrote a great article about mining vs farming when building software and a software company. I have been thinking about it and I wanted to offer my perspective on it. Let’s start with this quote:
The problem with mining in the software business is that it doesn’t work. It creates broken, useless companies.
Founders and angel investors usually don’t particularly care if the companies they created live or die after they sell out, because they’ve gotten their money and moved on. There’s no stigma to having a company you founded fail after you leave it. In fact, again, it’s a badge of honor: “Bob Smith founded Flopper.com, sold it for $46MM, then got out before it tanked! Genius!”
Well, while I agree that there is a clear incentive to get to market and sell, people do like money, and it does create some broken companies, I don’t agree that this is a bad thing. The entire point of a startup is to search for a viable business model. Once you find it, occasionally the founders can continue on, but frequently the founders find somebody who can clean up the mess and make a killing off of the awesome opportunity they have discovered. However, and this is where the broken companies come in, the founders never find a business model. They love the idea so much they sacrifice too much in quality, spirit, and finance to keep something going that can never work.
So in a healthy economy in general, you are going to have some companies that just have broken business models and terrible code and will fail. Then you have companies that want to farm, so they take huge amounts of funding, or time, to build up fantastic and impeccable structures of code, but they haven’t released anything so they don’t really know if customers will want it. They build for years and launch only to find that customers yawn, or worse are antagonistic to the product after the hype cycle. Then you have a company with great code and developers can never work. The founders often take more money, rinse… dry… repeat…
Finally, you have startups that, crank out an MVP the code behind it is terrible, the execution is only So / So, but they get it to market and customers love it. Now they have found a market. Its time for the professionals to come in, clean up the code, allow the founders to focus on product, get professional managers, etc… and go… go… go… Unfortunately this is rare, typically terrible architectural decisions will make it challenging for the team to ever get ahead of the fixes to start iterating on the features that customers are telling them that they want. However, it is frequently necessary to keep analysis-paralysis at bay and get it done.
You can mine, as long as you acknowledge that you are mining. This is where code and business concept documentation come into play. It is fine to write terrible code to get to market quickly, as long as you have documented any shortcuts, and in general everything assiduously. If someone has spent months to come up with a fantastic piece of code but doesn’t document it, it doesn’t really help anyone else learn. It also makes it difficult, if it ultimately isn’t so clever, for someone else to fix it because they don’t really understand the entire rationale behind what they were thinking when they wrote the code.
The “ramp” of someone getting up to speed with code is largely due to negligent documentation. You can find this in “farming” companies or “mining” companies. If someone can read a brief synopses of what a piece of code is supposed to do, why it was supposed to do it, and how, they can typically come to an understanding of what was in the author’s head. Otherwise, you have a long slog ahead of you reading through the code and either writing out, or mapping in your head all of the possible branches, dead or otherwise.
The secret of success turns out to be so incredibly simple: Work your ass off. Really care about what you’re creating, not the fame or fortune you’ll get. You’ll succeed.
I definitely agree with this part, just focus on your customers. Make sure they are surprised and delighted when they are using your product. No one should be in this just for profit. Mostly because it isn’t worth it. Coders spend so much time behind their keyboards, they damn well better love what they are doing or building, if they don’t they will quit, or burn out. This is the real truth behind this developer shortage. There isn’t a shortage of good developers, there is a shortage of great concepts for them to work on. If you build it, believe in it, and its awesome, they will come.
Posted: February 5th, 2011 | Author: irv | Filed under: Lifestyle, Parenting, Teaching Coding | No Comments »
Today we advanced in our lessons. I started teaching my daughter how to code about a month ago. I started when I was about 7, so I thought it was about high time I got her going. I bought her an Acer Netbook a while back. Windows 7 Starter is a bit weird, but it does what we need it to.
I started teaching her JavaScript / CSS / HTML because I wanted for her to be able to see her work immediately, and UI work is usually best for that. We went through some basic typing, data structures, and some general information like number systems, hexadecimal, etc… She stayed with me. We did that for a few lessons.
I typically keep her for about 1 hour per session. Sometimes she wants to go for longer, sometimes she loses interest after about 20 minutes. I always let her go when her attention starts to waver.
Today we started on our real project. The first few things we built were simple, a list of her favorite things, some colored blocks, drawing some lines with the canvas element, but the end goal is to make a maze game for her brother, who loves mazes and is 3.
At first her suggestion was to make mazes manually, but after we thought about it a bit more, she realized that she would need to build many, many mazes to keep her brother busy. So we started to think through how we could make the computer create the mazes.

My Daughter's Maze Generation Algorithm
Some of the problems we thought through were firstly how the machine should visualize the maze. We thought through 3D constructs, which were crazy complicated and I suggested we do those later, and eventually we settled on a battleship style construct.
The next thing we started was to define the rules of movement through the maze for the computer while it is creating the path from the beginning to the end. She decided that the computer should choose an entry point and an end point, and after some discussion we decided that they should be on the outside of the grid.
Then we thought about whether or not we wanted the entry and exit to possibly be the same. My wife suggested we play simon says for a bit since we were talking about instructions, which was very helpful. Then we decided that the computer, and her little brother, couldn’t move diagonally, but we needed a way to write a rule that the computer would understand. The number and letter thing she came up with toward the end of the hour.
Teaching her how to hack is going surprisingly well. I do not think that I have an overly gifted daughter, but I think that teaching coding by writing code is the best way. For defining a set of rules though, a piece of paper is always a good first step.
The ultimate difficulty is that she wants to put the game on the iPad, and eventually in the AppStore. We’ll see how far we get with that. I suspect that most of the iOS coding will be done by me
. I am hoping that this helps other software engineer parents who want to figure out how to teach their kids the art. I’ll try to chronicle my setbacks, as well as my successes in subsequent posts.
Posted: February 4th, 2011 | Author: irv | Filed under: Lifestyle | 1 Comment »
Teaching my kid about designing football plays, in honor of the impending superbowl with ZigZag Board

Coaching my Kid
Posted: December 19th, 2010 | Author: irv | Filed under: iPhone, Lifestyle, mides, Objective-C | Tags: design, future, mides, update, zigzag | No Comments »
A few people have been asking me when Mides is going to get its bugs fixed. A few others are asking about Git & Subversion, yet a few others have been asking me about code completion, syntax highlighting and shortcuts. I thought I would take a moment to post about what I have been doing, what the future of Mides looks like, and what I hope to be doing.
A few months ago, 5 to be exact, I thought I was in a stable place, where the coding challenges were hard, but not too hard, I worked with some great people, and we were having a great time. Well, most of that was true, unfortunately the stability thing became an issue, and I started looking for a new job. I was contacted by an awesome founder looking for a technical co-founder to help revolutionize the concept of whiteboarding with a strong focus on usability. I accepted, and am now the CTO and Co-Founder of ZigZag.
Since we are a lean / agile outfit, we have an iteration loop that consists of building stuff and putting it in front of customers, and repeating. I am having so much fun, and there is so much to do that there just isn’t time to do anything else. When I was working at my old job, the breakdown looked like this:

My Brain Capacity Before ZigZag
I just had the ability to do a ton more stuff, and one of the things that I really wanted, and still want to do, is make it possible to do serious development while mobile. The thing is that right now I just flat out don’t have time to work on it. My available time and space for working on other projects looks more like this now:

Brain Capacity After ZigZag Board
So what do I see as the future of Mides. Well, after ZigZag gets funded, which will take a ton of work, fortunately less from me since I have a non-technical co-founder who is awesome at sales, and we can hire a few quality engineers and usability people, I’d like to come back to it. Its a tool that I currently use for working on our RoR web stuff, and since we use GitHub, pivotal, and AWS, I’d like to build in more integration with those tools. I originally built Mides so that I could be more efficient, and I still see it as a tool for doing that. Some things that likely will go away are plain old FTP access. It is too complicated to support FTP, and I can’t find a library that isn’t encumbered by the GPL, so that probably will go away since I have to write it all from scratch for it to work.
What will stay, and get added? Some other things that I would like to add include code coloring, git and subversion, more RoR support, a shell to work in AWS, a service to compile and run code in an on-demand instance, some other goodies like that. I am currently thinking about that kind of stuff in the few seconds between when I am hacking Erlang, and Objective-C… Granted those seconds are precious and hard to come by, so while I am not saying that I will be dropping work on Mides entirely I am not going to be doing any sort of hard core coding on it until ZigZag Board is completely off the ground and flying, which I hope is soon, I am putting everything I have into it.

How I Feel Every Day I Get to Work at ZigZag
The good side is that when I do start working on Mides again, the quality of the implementation will be much higher as my Obj-C skills are improving by leaps and bounds. I am constantly amazed by the stuff that is possible on the iPad and iPhone, not that it isn’t challenging to work with, but it is an awesome platform.
Changing jobs was a great decision for me, I am challenged by something new and different every day that I log in. I was atrophying before, and now I find myself asking myself what is important to do right now, and what can we ship right now so we can learn from our customers. It is a much healthier place to be in, even though it is tinged by paranoia about money. I am becoming a much more focused developer, and working with a co-founder who can clearly articulate his vision for the product, and who is also well versed in lean / agile, is hopefully going to make me an even better leader than I have been in the past. Unfortunately my other projects will have to take a seat way, way back in the balcony.

Future Plans for Mides
I hope to get through even some of that for Mides eventually, if I can, then my vision for Mides will be complete. It might take a couple of years, but I still want to do it. Building tools is extremely difficult, not the least because developers are frequently not willing to pay for tools ( thanks Sun! ), they are incredibly critical of said tools, and getting the usability story right is nearly impossible. That non-withstanding, I have learned a bunch from people using Mides, other developers are typically very clear about bugs, and the offers of support and help have been wonderful. Well, that’s the news, I felt I should update everyone on the status of Mides. It is definitely a side-project, and is likely to remain one, I can’t really see any reasonable business behind it, it is fun to work on, and will continue to be.
Posted: April 26th, 2010 | Author: irv | Filed under: Apple, Companies, iPhone, mides, Programming, Uncategorized | Tags: App Store, Apple, customers, freedom | 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.
Recent Comments