Today is a good day to code

The Post Tablet Era

Posted: July 30th, 2011 | Author: | Filed under: android, Apple, Companies, Google, iPhone, Lifestyle, Media | Tags: , , , , , , | No Comments »
google chromebook

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.


How to Fix Nexus One Killing a D-Link Router

Posted: July 9th, 2010 | Author: | Filed under: android, Tech Help | Tags: , , , , | 5 Comments »
Google Nexus One

The Awesomest Phone Ever

I had this problem… whenever I would walk into my house with my Nexus One, and it connected to the internet, my router would slowly die.  I would have to unplug the router from the power and plug it in again to fix it.  I think I’ve found the solution, at least for my DI-624 wireless – N router.

It turns out that there must be some problem with the Nexus One handling TKIP encryption, or at least with the way the D-Link DI-624 is sending it.  The fix for me was first to fix the router to channel 11.  This fixed some other issues with netgear equipment a while ago, secondly, and most importantly, force WPA2 encryption on your connection instead of auto or (WPA or WPA2).  You can try setting the encryption to AES only, but that didn’t work for me, it was only once I forced WPA2 that the issue went away.  I am running mixed B-G-N as well.  Now my Nexus One no longer kills the router.  I am not sure whether or not my PSP will work now on my router since I remember it not supporting WPA2 a while ago, but it may be enabled with the current firmware.  All of my other stuff can connect over WPA2 so it shouldn’t be a problem for me.  If you have some stuff that can’t use WPA2, then getting another router might be the best option.


Why I Disagree With Gruber : AT&T’s Price Changes Suck

Posted: June 3rd, 2010 | Author: | Filed under: android, Companies, iPhone | Tags: , , , | 1 Comment »

First, let me get the link to Gruber out of the way : good and bad regarding at&t data plans.  I read his post, I disagreed with AT&T’s price changes, and after reading it, I still disagree with the changes.  They are all bad.  First AT&T announces that they are upping their cancellation fee to $375 from $175, which was bad, but understandable given the percentage of their customers buying the iPhone.  Then they announce this garbage.  My biggest issue with it isn’t that they are charging for it, it is the way they did it.  They took a device that we all love for its simplicity and tied it to a maze of complicated data + text + voice plans.

Remember, when the first iPhone launched, there was just the iPhone plan, and the only choices that customers had to make was how much extra to pay for SMS, which sucked but at least it was understandable.  Now, trying to explain to regular people what will happen if they buy the iPhone HD is nearly impossible.  When I told my wife about it, not technical, she said, “but wait, it was supposed to be unlimited.”  It doesn’t matter if the cap is high, as soon as people know there is a cap, they will change their behavior.  They will start to think, maybe I should wait to look up this site until I get into Wi-Fi, or maybe I shouldn’t watch this YouTube video, or how many kilobytes per second is the streaming on this h.264 video, all way too complicated.

Going from bad to worse, we were on the verge of a new age for the internet with plentiful, high speed data everywhere.  We were going to start seeing a new class of always connected applications, able to provide real-time data.  Consumers are likely to start self-restricting their mobile data use unless they are on the few and far-between Wi-Fi hot spots.

There is a class of argument along the lines that AT&T was drowning with the amount of data its consumers were using and that no carrier could keep up with providing quality service for the prices they were charging. I can buy that, but the solution is simple, instead of complicating everything, increasing ETFs, and other stuff that is hard to understand for most people, just raise the price of the iPhone plan to $99.99 and give unlimited everything.

Contrast this to T-Mobile, who recently re-iterated that their unlimited was really unlimited.  One could argue that they have fewer customers and can afford to have more aggressive pricing.  That is true, however to the end user, unlimited is unlimited.  Unlimited is better than limited.  It is simple to understand.  I am very glad that I bought a Wi-Fi only iPad, or I’d feel like a sucker who got baited and switched after Steve Jobs got on stage and announced a “breakthrough” data plan for the iPad.  A 2 GB capped plan is not breakthrough, it is hobbled.  The iPad is designed to watch video, stream audio and in general consume the hell out of bandwidth intensive content.

Basically I’m glad I terminated my AT&T contract when I did.  My iPhone 3GS makes an awesome iPod, my iPad can take its place, I will be able to use my Nexus One for tethering when Froyo comes out if T-Mobile does what I expect and make it free.  AT&T’s crap makes the next generation iPhone look less attractive, since after all, the shine wears off on any new technical gadget, no matter how wonderful, but you are stuck with the crap contract.  T-Mobile also one-ups AT&T by offering attractive no-contract rates if you want to just buy your phone outright.  When the Nexus Two, or the dual-core Snapdragon HTC Scorpion or whatever comes out, I can just save up the money, buy the phone, slap in my SIM card and away I go, I don’t have to wait for 2 years.

The cell phone industry ought to be ashamed of itself for what it is doing.  Even with crappier cell service, which is getting better, T-Mobile is a far better carrier than AT&T.  At least they don’t bait-and-switch their customers and partners with half-truths and complicated one-off deals.  If this doesn’t make people look around for an alternative carrier to AT&T I don’t know what will.  You can get overpriced, horrible service, not be able to make calls, not be able to use the data you are paying for, not be able to get out of your contract for a fortune, and still have to pay large amounts each month for garbage service.  What happened to the model where the business didn’t take their customers for granted, where they actually did things to be better than their competition?  Why are we stuck in the US with carriers who just want to squeeze their customers for every penny while providing as little service as possible.  I don’t understand what is good about AT&T’s price changes, and I hope they don’t set a precedent for other carriers.  If so we may find ourselves, in this country, at the far back of the line as far as wireless connectivity goes.


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.


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.


Getting Booted from the Android Dev Google Group

Posted: June 9th, 2009 | Author: | Filed under: android, Companies, Google | Tags: , , , | No Comments »

A few months ago, I got banned from the Android dev google group.  You might think it was because I was being a troll, or because I got into an inflamed argument with a moderator, but actually it was for none of the above.  I got booted because, the best I can tell, because I broke protocol and commented on a post that the moderator said was closed.

I say the best I can tell, because I received no warnings, no emails saying, “hey what you did was not OK and this is a warning, the next time you will be banned.”  What was in the comment you ask?  I was responding to a thread about why Google had chosen not to use Jazelle, the Java accelerator built into the G1, and the iPhone.  What it is, is an ARM-7 coprocessor used to speed up interpretation of Java bytecode.  The poster was railing Google for not using it and claiming that Android was not fast enough, and that the only reason they weren’t using the acceleration was that they didn’t want to license Java, etc….  The amazing part is that my response was in defending Google.  I was saying that Android was only at 1.1, and that I was sure that there was a bunch of optimization that was left to be done, also that the Dalvik bytecode was likely not compatible with the Jazelle coprocessor.  I reminded them what the V8 team had done for JavaScript with their assembly language VM optimizations and that perhaps those enhancements would make it into android.

Later in the day when I went back, it was like bam, the moderator has banned you from the group.  My first thought was to get mad, turn off my G1, go back to the iPhone and be done with it, but then I remembered thinking that the moderator’s responses were pretty terse and that maybe they were overworked and angry and banned me for posting to a closed / moved post.  I honestly didn’t know where I was in the maze of Google’s group, I couldn’t tell if I had been redirected to the discussion section or not.  It is frustrating to have a company like Google, who I normally associate with free speech and open discourse, censoring me in that way.  By contrast, I have never been banned from an Apple discussion group, or from any other anything for that matter.  Most of us associate Apple with secrecy and killing off free speech and discourse, but actually I have found that their position on what can be said, and should not be said to be clear and reasonable, and that they are always pretty good about that on their posts.  If the post moves into an area that shouldn’t be there, the moderator deletes the posts, says why they deleted the posts and moves on.  I doubt that they permanently ban their board members.

I have been wanting to port Mides to Android, and to build several applications for it, I have been a huge supporter and advocate of Android in my workplace, where I have some ( very small ) influence over what platforms we support, and to have Google shut me down in this way, makes it difficult for me to continue to convince other developers to build for Android.  I would think that the battle for developers would be where platforms succeed or fail, and to have a company who is steeped in the battle carelessly piss off developers makes no sense to me.  I like Android, and I want to see it succeed, but sometimes I just don’t know.


Trials and Tribulations of a PHP Interpreter / Compiler Writer

Posted: June 7th, 2009 | Author: | Filed under: android, java, Programming | Tags: , , , , , , , , , | No Comments »

For the past couple of months, I have been struggling to write a PHP interpreter for an upcoming Android version of Mides.  The tokenizer was fairly easy, building the Abstract Syntax Tree was relatively uncomplicated, but now we come to actually writing the executor.  This is giving me pause.

I totally understand why Joel Spolsky says that there are two classes of programmers, one class that sort of hacks their way through life, and another that writes compilers for fun.  I guess I am trying to blunder my way into the latter class.  At first, it didn’t seem to be so difficult, but eventually it has gotten so hard that sometimes I feel like just dropping the whole thing entirely.  However, when I feel like bashing my head into the desk, and / or throwing my MacBook Pro out a window, I know I am on the right track.  That is how I felt when I was trying to learn Java and Objective-C a few years ago, or attempting to understand domain modeling as it pertained to Object Oriented Programming, before understanding Object Oriented Programming.

I guess these are just things that we all must get through, I also see why most CS majors don’t every actually finish their compilers.  I, however have a dream that I can develop web applications without being encumbered by any sort of connections from my handheld.

The first part that slowed me down was that I was trying to approach the executor by compiling the program to opcodes and then running them against the system, sort of like the asm function in C.  That won’t work with Dalvik, at least not in an elegant way.  Then I asked this question on StackOverflow, and the answer made me think;   I don’t think I quite got it immediately, but now I understand.  It basically comes down to a large hashmap of keys ( variable names ) and their values, ( the statements to evaluate into them ).  OK, I get that, but the new problem I am facing with the top-down recursive descent parser is how to handle classes and functions efficiently.

I realize that generally a class is just a new hashmap of values, scoped to a variable handle in the global hashmap, a function is similar in that it has its own scope that is not shared with other objects in the main hashmap.  The recursion here can make your head hurt.  The problem I am facing now is that if I have a statement ( series of tokens ) mapped to a variable, how do I handle, a ) parameters, and b ) not re-interpreting the tokens each time the class is instantiated.  Another issue is how to keep the scope of a single instance different than another instance, unless there is a shared static variable in the hashmap between them.  I am looking at V8′s source to try to understand the concepts behind their VM.  I think that is how they boosted speed so greatly for OO based JavaScript applications.  They must only parse those tokens once.  There are all kinds of bugs I can see introducing into my fledgling interpreter by doing that.

I guess what I am understanding is why PHP has taken more than a couple years or more to get where it is today, why Ruby still has quite a few oddities to the language, and why Python basically needed a complete rewrite for version 3.  This is not easy stuff, but nothing worthwhile is.  I have never considered the possibility that this may not fully work in any practical sense.  When I do release the Android Mides, the PHP parser functionality is likely to be beta.  I did look at the code once for Quericus, but without some sort of object diagram, I can’t really understand what I am looking at.  Much of the code is mixed up with the server code so it is difficult to figure out what is doing what.  I have read a few pages of the Mak book and I’m thinking about buying it just to see how he implemented the parser, but I am not sure it will do me any good.

I may consider creating my own language for use with Mides, and then compilers that generate PHP and Ruby source code from it while I work on versions for Apache, Nginx, etc… In lots of ways I think it would be much easier, and I could offer type checking and other things from compiled languages that help build more robust code.  I would maintain the PHP documentation that is present in Mides, and naturally you could FTP up the code to your server and test it there.  But I think that would be copping out, and I don’t like to have something like this beat me.  I do however have to realize that PHP wasn’t built in a day, and that this process will not happen immediately.

I keep asking myself what would Steve Jobs do, and the answer I keep coming up with is that he would go his own way, well I’ll keep stewing on it, and hopefully the end result is that I will become the sort of programmer that Joel would want to hire, although somehow I doubt I could ever achieve that level of software engineering excellence ;-) .


Cupcake is on Again

Posted: May 22nd, 2009 | Author: | Filed under: android | Tags: , , , | No Comments »

Yahoo!!!

OFFICIAL: CUPCAKE IS GO!!!


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.


From the Horse’s Mouth: Cupcake 1.5 Coming Out for Android

Posted: May 6th, 2009 | Author: | Filed under: android | Tags: , , , , | No Comments »

Finally T-Mobile, seriously:

http://forums.t-mobile.com/tmbl/board/message?board.id=Android_MR&thread.id=1