Today is a good day to code

iPhone 3GS: The Image Speaks for Itself

Posted: June 19th, 2009 | Author: | Filed under: Apple, iPhone | Tags: , , , | No Comments »

Its on!
48 MB Free

The TouchBook: The NetBook to End All NetBooks?

Posted: May 21st, 2009 | Author: | Filed under: Uncategorized | Tags: , , , , , , , , | No Comments »

The primary problem with my iPhone, G1, iPod Touch, etc… Is that they are too small and have too limited a battery life.  What I have been hoping for, for a very long time is a single slab tablet computer, sort of like a big iPod Touch with a 3G / LTE modem, a soft keyboard, and an open set of programming APIs so that I can make whatever applications for it that I wish.  Ideally it would have a dual core ARM CPU and great battery life, plus the option for a physical keyboard, well it seems that while I was hoping that Apple has done it, Always Innovating has taken matters into their own hands:

The TouchBook will run a variant of an open operating system called OpenEmbedded, a variant of something called the Angstrom Distribution, which I suppose is a distribution of the OpenEmbedded OS.  Although I have only seen the you tube video:

It seems to have the right stuff to be successful.  At $299 for just the touch part, or $399 for the touch part with the keyboard and second battery, the price is right.  The 3D in the video appears to be sufficient to compete with the iPhone, but what it will likely come down two are a couple of things:

  1. Are the APIs polished, or are they as disjointed as the normal Linux programming APIs
  2. Is Apple going to do a large form factor iPod Touch

If Apple is going to do a MacBook Touch, or a MacBook Mini, even at $499 or more, that can run the current crop of iPhone apps as desktop widgets, it will make it difficult for normal people to justify buying the TouchBook over a big iPod Touch.  Hax0rz, evangelists, early adopters, and general geeks like me may buy the TouchBook, but it is going to be an uphill battle for widespread customer adoption with yet another programming environment for developers to adapt their iPhone apps to.

On the other hand, if they were to make a pre-installed Android option available that was running Gnome or something, but could still run Android apps with little to no modification, in the same widget system as was described above, it could be interesting.

I respect what these guys are doing, its something I have thought of doing many times myself, and I might even spring for one if I get a little personal government bail-out money, but I just am afraid that I will crave whatever Apple makes.  Even though I have switched my personal phone over to a G1 and love it, and love coding for it, I still pine after the iPhone, some things are just simpler.   It really has nothing to do with the G1 hardware, while it is ugly as the offspring of sin and feces it functions adequately.  Its the OS that seriously lacks polish in places, and the unavailability of any sort of desktop synchronization mechanism is difficult at times, especially since the iTunes app doesn’t always play ball when dragging large numbers of UN-DRMed files out.

I suppose Google could modify gears to allow Android to tether to some kind of web app / web management system, that would be interesting, but I see that as being in the distant future.  Love it or hate it the iPhone and the iPod Touch, Cocoa Touch is just way ahead of any of its competitors.  If Apple would loosen up on the app store policies, allow 3rd party libraries and scripting languages on the iPhone, I think most of the competition would disappear overnight.  You’d still see the Linux guys pushing stuff for the fringe crowd, but Apple would have the consumer market locked up.

I think that the App Store situation is what is going to hurt Apple the most.  I am only developing for Android because I can’t flush out my app on iPhone, not because I can’t or because its obscene, but only because Apple doesn’t allow PHP, Ruby, and Perl, which is what my application is all about.  I can’t believe I am the only one who is playing by the rules and doing what Apple is making me do, develop for competing platforms.  I’m sure Apple doesn’t and wouldn’t care, my application applies to only a subset of a subset of a subset of the general population, web developers, and isn’t likely to bring in a ton of money for them or me, but I do it because I love the concept of building web apps while mobile.

The TouchBook is really perfect for my application, so after the Android release, I guess I’ll be doing it again for the TouchBook. Here’s to hoping people buy it, and that Apple doesn’t announce a large iPod Touch at WWDC.

Writing a PHP Interpreter for Mides

Posted: May 7th, 2009 | Author: | Filed under: android, iPhone, java, mides, PHP, Programming | Tags: , , , , , , , | No Comments »

For the past few weeks I have been working on writing a PHP interpereter for Mides.  As I know that I am not allowed to do it for iPhone, as it would involve downloading and executing scripting code, which is not allowed.  I have only been looking at the tokenizer for the iPhone, while I have been looking at the full monty for Android.

I actually have gotten to the point where the tokenizer is passing a lot of my tests, but there is a lot of ground to cover with PHP. Tommy Carlier’s blog on writing a parser has helped tremendously.  Still, even after getting the tokenizer working, I have to write an interpreter to execute the tokens.  This involves implementing the many methods that PHP has built in, so it will be a while until I get that completely done.

I am pretty frustrated with Mides for iPhone, actually, I wanted it to be a full PHP implementation and editor, but until the Terms and Conditions change it isn’t worth the effort to build an entire PHP interpreter just to have the app rejected. I am still improving the iPhone version, and the next update should be a huge improvement over what is currently there.  I had to remove the nesting because I need the memory for documentation search as well as the PHP tokenizer that I am working on.  Overall, the next update for Mides will make it better, it will be close to what I was hoping for, but it will never be completely what I was hoping for on iPhone.

The Android version of Mides on the other hand is shaping up nicely.  The Android text view supports color so I have some syntax highlighting happening which doesn’t hurt performance on the G1 too badly.  The tokenizer is mostly done, and now I am designing the interpreter.  Development on Android is going a lot faster since I don’t have to worry quite as much about memory leaks, although if you try you can still make them happen.

At any rate that is why there haven’t been any updates for Mides in a while, I have been working on localization, parsers, and interpreters.  I am spending most of my time on the iPhone version of Mides, but it seems that I am getting farther with the Android version, go figure.

HTML 5 Databases on iPhone

Posted: February 18th, 2009 | Author: | Filed under: android, Apple, Companies, Google, iPhone, java, Programming | Tags: , , , , , | No Comments »

Today I as looking into using HTML 5 databases on Android and iPhone. It turns out that the Android browser doesn’t seem to support window.createDatabase at all. It may be that it does work with Gears or something, but I didn’t try it.

What I did find, when enabling the developer menu for iPhone Safari was that in the 2.2.1 firmware, a user can view the databases that are currently stored on their device in the web browser by domain and delete them.

In the detail screen, it shows you how much data is currently stored in it, and it has a max, which appears to be stuck at 5 MB. I wonder if Apple has plans to improve the mobile Safari dev environment to allow for richer web applications at some point in the future when the AppStore revenues have died off a bit.



Actually I did figure out that the G1 uses gears, so I guess they are equal, but gears doesn’t seem to care too much how much space I can use.  I haven’t tried the WorkerPool, or the local caching stuff, but I found another blog where the guy had an icon on his screen for a web-app.

iPhone Nano the End of Apple

Posted: February 9th, 2009 | Author: | Filed under: Apple, Companies, iPhone | Tags: , , , | No Comments »

I think for Apple to build an iPhone nano would be an indicator that the end of Apple is near.  To be clear, I do not think that Apple will build any such beast.  However, let’s postulate a scenario where Apple builds such a thing.

Firstly, let’s look at a picture of where the iPhone currently is.  Apple has a device that for all intents and purposes is $200 that is selling at a brisk clip.  Not to mention that people are snapping up applications at an even more intense rate.  All of this is making Apple rich.  There are several questions that occur to me when thinking about a conceptual iPhone Nano.

  1. What does Apple have to gain from such a device
  2. How do they account for it technically
  3. What type of person would buy such a device, and how do they fit into Apple’s core demographic
  4. What sort of hardware would be in the iPhone nano

Let’s talk about number one.  What does Apple have to gain?  If Apple were to build this mythical device, and it were to be smaller, etc… How could they build it cost effectively, their parts chain is tied up in 320 x 480, 120 dpi screens, ARM-1178J CPUs, etc…  They would have to negotiate and buy a bunch of different parts.  Tooling up for a different device line would be expensive right now.  Then, assuming they spent the money on that.  They would need a sufficiently different software stack for this device.  That would cost money as well, then lets say that they pulled off the miraculous and got the iPhone nano’s manufacturer’s cost down to $299 ( which would be amazing ).  Would AT&T really do another hefty subsidy, to get the cost of the device down to$99 or free when their bottom line is already hurting from the steep discounts on the iPhone 3G?  The answer is no, it doesn’t make sense.

On the technical side, how do they account for an iPhone nano?  Assuming that the device would have a different form factor, most applications would have to be rewritten, not necessarily for technical reasons if they used interface builder when creating their UIs, but for usability reasons.  If the screen had a much greater density, it would be harder for the user to see text, etc… So developers would have to make their fonts larger and change their navigation and text entry systems if it used a click wheel.  That really makes the AppStore out.  This makes no sense.

Who would buy an iPhone nano that wouldn’t buy an iPhone?  This is interesting.  The iPhone 3G is doing well even with the income challenged segment, so who would buy the iPhone nano?  Maybe kids, perhaps teenagers, but without the AppStore, what is the draw over a normal iPod?  Or the iPod touch for that matter.  Maybe the extremely impoverished would consider it as a stretch, but if you are that challenged for cash how would you afford any monthly plan with data attached?  Does AT&T want credit challenged, cash strapped customers?  Does Apple want to serve the bottom of the market, even though they don’t in any other case?  No, they don’t.

Finally, what sort of hardware would be in a thing like this?  Well, they could use the same chips and just underclock them, maybe they would have a smaller touch screen, but then a higher density touch screen would be more expensive, and modifying the software to fit a smaller enclosure doesn’t make sense.  Perhaps the iPhone nano wouldn’t necessarily be smaller, but even then with a hardware configuration like 2 or 4 GB of RAM, the ARM CPU underclocked to like 35o MHz to control heat, maybe 64 MB of RAM, you start to have a device that is going to have a hard time with SD video, let alone the 480p stuff you can get now, so Apple would start to lose money on media sales.

Apple is not in business to lose money.  The iPhone nano idea would just be a dog.  If Apple did do something like this I would advise everyone to get your money out of the stock, that ship is headed down.  It would indicate panic, and an irrational view of the market, as well as an abandoning of the company’s core values.  

In the absence of an iPhone nano, what is the iPhone 2,1 that is appearing in the strings in the 2.2.1 firmware?  Well, obviously it has been in development for quite some time since the first time the string appeared was in the 2.0 firmware.   Apple is not a company that deviates from its patterns, so let’s look at the mac laptop to determine what they might do.  

Apple typically will announce a technology that is at the top of their pricing structure, then as newer equipment comes out, they will drop that item down into the next tier down, until they have about 3 items.  At that point the technology that used to be new will be pushed out of their product line.  Right now there is one iPhone.  What is likely to happen is that they are likely to release an iPhone Pro.  It will probably come in 32 and 64 MB storage units, have 256 MB of DRAM, and feature an ARMv6K CPU ( ARM11 MP Core ) with 2 or 4 cores.  The iPhone Pro would feature iPhone OS 3.0 which would allow full background processes that the user could kill if necessary.  The pricing would probably look something like this.

  • iPhone 3G 16 GB – $199
  • iPhone Pro 32 GB ( 2-core ) – $299
  • iPhone Pro 64 GB ( 4-core ) – $399

I’d expect the form factor to be largely unchanged, with the same screen, shape, size and battery life.  That is what makes sense, that is Apple’s style.  It would then enable them to keep the high-margin, high-price item in their lineup.  For Apple, the iPhone 3G is a little too cheap.  It would be strange for them not to have 3 SKUs for the iPhone and the iPod Touch.

iPhone Codesign Error 2.2.1 Firmware

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

I have an older project and have had my certificates expire. I spent a couple of days trying to figure out how to get the stupid thing to build. Then I found this blog:

Basically what it says to do is to go into the .xcodeproj file for your application, open the project.pbxproj and modify the PROVISIONING_PROFILE variables.

This didn’t work for me, but removing all of the key / value pairs did.

AT&T MicroCell

Posted: February 6th, 2009 | Author: | Filed under: iPhone | Tags: , , , | No Comments »

Frequently, in my house, at work, and in my car here on the west coast, I drop calls. It’s so bad that I can’t use my phone for voice or data over the cellular network. I find myself wondering why I have an iPhone when it doesn’t work anywhere I go.

Now I am reading about these AT&T MicroCell devices. At first I thought it was going to be cool, and that I might get a bit of revenue out of it. Now it looks like I am supposed to pay for this. It isn’t clear how much from the post, but really, charging me more money to make what I am already paying for work is criminal.

When I was recently on the East Coast, I had awesome coverage, but in the Bay Area it just doesn’t work. I attribute it to the unavailability of 850 MHz spectrum out here for AT&T, and I understand that that this is a clever way to get around it, but they really should be paying me for using my broadband to bolster their signal, it should also be open to any AT&T 3G subscriber in the area who is close enough to benefit.

I want one, but not if it is closed and not if I don’t get paid for it. If AT&T can’t get their act together, then I can easily use an iPod touch, and get a different smartphone on a carrier that actually gives me some bars.

Mides and The PHP Interpreter

Posted: January 17th, 2009 | Author: | Filed under: mides, Uncategorized | Tags: , , , , , , , | No Comments »

Mides and The PHP Interpreter

I really want to put a PHP interpreter into Mides, the problem is my interpretation of the Ts & Cs of the App Store. It is my understanding that executing downloaded scripts is prohibited. To the best of my knowledge, downloading a bunch of PHP templates and running them through the interpreter runs afoul of that provision.

What that really means to me is that the dream that I had when I originally wrote Mides will be a long time coming. I think that with some competition, Apple will hopefully broaden the types of applications that are available in the app store. It would be fantastic if they allowed scripting languages to be included in apps. It would be awesome to have the ability to have ruby on the device, as well as PHP and Python. Really the only platform that I could put some sort of PHP interpreter onto would be Android, but for some reason I am just not super excited about it.

What I am super excited about is the Palm Pre. It looks sweet, oh well Mides fans, I guess we’ll just have to wait.

* 5/6/2009 – I am currently working on a Dalvik compatible compiler for PHP that will work on Android.  It is a bit harder than I thought, so we’ll see if I can get through it.  I looked at it on iPhone, and it still seems to be a no-go. *

iPhone SDK NDA Lifted Really?

Posted: December 26th, 2008 | Author: | Filed under: iPhone, Uncategorized | Tags: | No Comments »

iPhone SDK NDA Lifted Really?

Picture of IrvinI am not sure what the entire NDA lifting really means. It is hard for me to figure out what I can and can not say. I assume that I still can’t talk about anything having to do with the experience of the process, but I can discuss features and here is where it gets a little mirky, the code that I wrote? The problem with discussing the code is that if I talk about the code, I have to talk about the SDK, and I am still not sure that I am free to discuss it.

Also, are people who haven’t released apps able to discuss their techniques and tips anyway as Cocoa developers who have dabbled with the SDK. Furthermore, can people who don’t have released apps write books about how to write software for the iPhone.

Unfortunately, it seems that I have more questions than before about what it is OK to talk about and not. Before it was easy, the first rule of iPhone development, is we don’t talk about iPhone development. But now not so much.

An Open Android Will Kill a Closed iPhone?

Posted: December 25th, 2008 | Author: | Filed under: iPhone, Uncategorized | Tags: | No Comments »

An Open Android Will Kill a Closed iPhone?

Picture of IrvinThere has been much talk over the past few weeks about T-Mobile and Google’s Android phone, the G1. Unfortunately most of the debate hasn’t really been about the merits of one software stack over the other, or about the hardware differences between the two. I haven’t really seen it mentioned that the G1 may allow developers to create more interesting applications because it has 192 MB of RAM, or that the iPhone allows for better RPGs because the developers know that all of the iPhone subscribers have an absolute minimum of 4 GB instead of the 1 GB of solid-state storage that Android ships with. No, instead the debate seems to be around Apple’s assertion of dominance over what applications are allowed on the iPhone, and Google’s “apparent” openness to any application a developer wishes to ship, and that a user wants to install.

A couple of things about this. While Google says it won’t stop people from installing any application that they want on their Google Android phone, that doesn’t stop T-Mobile from disallowing applications on phones attached to their networks. Either Google or T-Mobile will have to implement a kill switch, similar to the iPhone, or they will terminate or suspend the user’s account if they detect the application running. The first time it happens, it will send a chilling effect into the community, as they will not have a clear idea either as to why the application was killed, or the user booted off of the network. Even if T-Mobile gives a clear reason, it is not likely to be agreed with by the developer of the application. Probably there will be some blogs citing a hidden cabal between Google and Apple to dominate the mobile market.

Also, while Google won’t stop any applications from being installed on the G1, and there will probably be multiple methods of getting an application onto it, I would be surprised to see Google being completely liberal with the applications it hosts in the Android AppStore. Google has to protect its customers as well as its servers and network just like anyone else. They have a less strong agreement with their carrier partners than Apple does, but that doesn’t necessarily mean that there is none there, or that Google will intervene in a carrier decision to not host a particular application.

So while people will be able to open-source their code from day one if they so desire, and they will be able to easily hack applications onto their devices, at the end of the day, the carrier still has the ability and right to boot either the application or the customer off of the network. The only recourse would be to switch carriers, which can be somewhat painful, especially if there is a contract involved.

Being first Apple has had to tackle these issues prior to anyone else laying down a blueprint. Now Apple has clearly created an example to follow in some ways, and not to follow in others. I am indeed defending Apple because I feel that the critics have been far too harsh. If you look at it, AT&T is already having trouble with just the 3G traffic from the iPhone’s browser, what do you think will happen if everyone started tethering and turned off their home broadband service. Their network would come to a grinding halt. If they built out the network to support this behavior, then they would no longer be profitable at an acceptable level to their shareholders.

The “I am rich” application needed to be removed, that can be debated, but the arguments defy the common sense, Ocham’s razor logic to Apple’s position.

Finally, we get to podcaster, which would have been an awesome application, and I actually can’t defend Apple’s position here, unless, and I suspect that it isn’t, Apple’s position, I think this application would slaughter AT&T’s 3G network. They won’t even let us download music from the mobile iTunes store over 3G or EDGE. If you think about it for a second, why would Apple not want people to buy when they were on 3G or EDGE, money is money.

Clearly AT&T is playing a role in shaping what we can, and can not do on their networks with whatever device we choose. When Android devices begin shipping for Android, we will see similar restrictions from AT&T. They may take another form, but they will be restrictions nonetheless. It is important to remember that we are dealing with two companies, not just one. Heap the blame on both of them, not just Apple.