I want a Palm Pre January 11, 2009
Posted by a1291762 in : computers, pre, treo650 , add a commentSo I’ve been happy with my Treo 650 but I’ve also been looking at the new devices coming onto the market. Palm OS is a dead end (I’m pretty sure Palm itself has said this) so migrating onto something else will be on the cards at some point. The question is what to?
The iPhone came out and makes me drool. Unfortunately, it’s expensive and locked down. I would definitely need to jailbreak an iPhone to be happy with it.
In pretty stark contrast to the iPhone’s walled garden is Android. The Kogan Agora is the first Android-running handset that will be released over here (at the end of January) so that’s something I’m keen to look at. Unlike the Horrible G1, the Agora retains a Treo-like form factor. This makes the screen smaller but gives me a keyboard I can type on with one hand.
But wait, there’s another option. The Palm Pre looks like a basically perfect phone to me. The only thing wrong with the launch unit is that we don’t have a CDMA-based network in Australia any more. Luckily there’s a GSM version in the works.
The hardware itself is awesome. The latest of everything, the powerful new OMAP 3. I’ve looked with interest at slide phones in the past but I’ve mostly dismissed them for 2 reasons.
1) The sliders often feel crappy.
2) The top keys on the slider are hard for my fingers to hit (due to the lack of dead space above the top row of keys).
Some sliders have a nice, spring-loaded flick and I’m hoping that’s what the Pre has. For problem number 2, the photos I’ve seen look encouraging but I guess I’ll have to wait and see how good it is.
Of course, the other big problem with sliders is that you can’t use the phone with the slider closed. The Pre doesn’t seem to have this restriction. I don’t use the keyboard on my Treo all the time so I think this will work fine. Of course, as a bonus, you get a phone that is both smaller and has a bigger screen.
From what I’ve seen about the OS it’s going to be much more open, more like Android than iPhone. I especially like that Palm is eating its own dog food here and not giving developers a second-rate environment like Apple did (and still does, via the off-limits private frameworks). The whole “just write a web page” thing really scares me. I have no problems learning a new API but I have tried and failed to make a web page that looked anything like an app. I just hope there’s good templates, standard icons and such. Using JavaScript isn’t really a big deal. It sounds like the platform’s APIs are all exposed to that.
Of course I really hope there’ll be a native API at some point. Palm is talking about a third party providing compatibility for existing apps but that’s only going to happen with native code. Maybe the native code will take the form of a plugin that is accessed via JavaScript?
A big question is how open the OS really is. It seems like it’ll be open from the app side but what about the rest of the system? Will it need a jailbreak? Will it be open source? (I very much doubt it, this “secret sauce” is the only thing that’ll keep Palm ahead of its competition).
I use a Mac at home so you’d think I’d lean towards iPhone. That would be the case if (and only if) an iPhone was as open as a Mac. I’m not an open source zealot so while I’m interested in Android, it’s not for philosophical reasons. Android looks like it’ll get native apps before too long so that platform could be a good place to be. The UI is definitely not up to the benchmark Apple set but I suspect the UI can be improved significantly without a huge effort. Palm Pre easily meets Apple’s benchmark and I think surpasses it by offering features Apple had trouble giving us.
I really love how the Card paradigm works exactly the same as Safari’s tab management in iPhone. It’s so obvious, I can’t believe Apple didn’t think of it already.
To spell it out, I have completely ignored the Blackberry. Too proprietary and locked down for me (apparently that has changed recently so maybe I should give these a look).
The dark horse I see in all of this is Nokia. Since I now work for them I feel like I should at least try to use one of their phones. The only problem? Their phones suck. The low end S40 OS has had features added to it so it’s now as complicated as S60 (Bree hates her new Nokia phone, a very bad omen). S60 itself is slow and complicated. With S60 moving towards open source, with Qt running on S60, with new phones in the pipeline I hope that Nokia can make a device I can like.
In the mean time, I want a Pre. Lets just hope the market doesn’t change between now and the time I can buy one. After all, the Agora is available at the end of January while there is no official date set for a GSM Pre.
Posted from Blazer March 17, 2008
Posted by a1291762 in : treo650 , add a commentThis post was made from Blazer running on my treo. wOOt!
I found the newer Blazer which can be instructed to ignore CSS. It displays sites much better (since most CSS is designed for bigger displays.
I noticed that Blazer uses a 1.3MB “NetFrontLib_Device” file in the ROM. I figured it might not be needed when Blazer wasn’t installed but it seems that’s wrong. Messages (SMS) dynamically loads the file for displaying “big” messages (ones that don’t fit on a single screen). I noticed this when I received a big SMS today and my Treo crashed.
More Treo Stuff March 13, 2008
Posted by a1291762 in : treo650 , 2commentsStrange bugs in SrcEdit… caused by GCC optimizations? Possibly… You can’t build without any optimizations though (it ends up too big) so I’m trying -O without -g. -O2 -g seems more stable than -O2 which is more stable than anything with -Os.
It was suggested for me to use AlmSetProcAlarm because it doesn’t wake the screen, and it works great. Then I needed to ensure my code was locked down so that it wasn’t moved or worse, evicted from DBCache. I had to add some extra checks to ensure I don’t end up with a stale handle but it seems to be good now. AttnGrab isn’t quite the “simple utility” it was at v1.0 but it’s still quite small and easy to understand. I even put some comments in the code!
I listed AttnGrab on some download sites and it seems it’s getting around now. People are finding it useful. wOOt!
Update 14 March 2008
Maybe I just can’t build SrcEdit on my system? I’ve got PRC-TOOLS built for MacPPC running under Rosetta. To build for Intel requires bootstrapping a GCC 3.x native compiler first (you can’t build GCC 2.95 with GCC 4). I downgraded all the way to 2.5.1 and it’s finally stable (and faster than the HEAD version for most things).
AttnGrab has 2 major bugs:
1) It crashes on the second attention attempt (ie. if your calendar goes off and you miss a call, crash).
2) For some reason I can’t get it to de-register the ‘hede’ notification. Switching back to sub-launch resolves this.
I also added an explicit check for a case you can hit when rebuilding (the .prc is re-written then launched, if it was previously locked you’re going to get a crash at some point so it notes this in the crash log). The only other way to come across this bug would be if you used an app like Filez to copy a new version over an old version (that was locked), and that’s assuming Filez doesn’t “delete” the old database first (which would correctly clear the lock).
I’ve done an emergency update (.prc only). I’ll upload the whole package later.
Treo stuff March 11, 2008
Posted by a1291762 in : programs, treo650 , add a commentMy battery case was squeaking. Most noticeable when typing and stuff. Solved by putting a bit of paper around the battery compartment (makes the case fit more snugly).
Attention Grabber was updated to 1.4. It now re-enables itself after being upgraded during HotSync (a bit more useful than getting disabed).
Graffiti Anywhere has been causing strange problems even though it’s not activated. The most annoying of these was preventing my Treo from sleeping! I’ve blown it away because I never use Graffiti anyway (what with that keyboard there).
I got reverse DUN going. Using a pppd command instead of HotSync on the Bluetooth serial port the Treo can connect and I can do things like Google Maps trough my laptop. Not sure what good this will be though as my laptop only has Internet at home.
I added Blazer back to my ROM to test the Reverse DUN stuff. I need to update this blog because it looked fine until the CSS loaded and then it just looked like crap.
Polling is dead. Long Live 'hede'! February 28, 2008
Posted by a1291762 in : treo650 , add a commentI’ve removed the polling and substituted a notification hook on the ‘hede’ event. I don’t even know what that is but I know that it’s to do with input events and it slows down your device to have apps hooking it. I’m only hooking it when the LED is on though. If you leave off the LED checkbox the ‘hede’ event won’t get hooked. The only time you should notice any impact is if you ignore pending alerts.
I’ve got the AlarmTriggered events purging the followup AlarmDisplay events but the delay caused by turning the vibrate on and off means the screen still wakes up. Worse, it seems the device completely wakes up before the AlarmTriggered is delivered so I can’t even set a flag to force the device back to sleep.
Update 28 February 2008
I found this while grepping through my PalmOS headers.
#define sysNotifyEventDequeuedEvent 'hede'
This ominous sounding comment accompanied it.
Sent for each event being returned by EvtGetEvent. Be very about registering for this; you can easily impact performance (in a bad way!) Also note: for speed, notifyDetailsP points to a event structure with system-native endianness, meaning you might need to byte-swap what you read depending on what endianness your code uses. Note: future OS releases might not send this notification.
AttnGrab update February 20, 2008
Posted by a1291762 in : treo650 , add a commentIt turns out the polling I put in (to turn off the LED when you clear all alarms) is keeping the device awake. I’m not sure how to avoid polling (doesn’t seem to be a notification for “all alerts cleared”) but it should be possible to let the device sleep when it’s idle and when the device is asleep there’s no need to poll.
Last night I got it to detect the presence of Handspring Extensions and Attention Manager’s LED/Vibrate support so it should work on non-Handspring devices too.
I got this question about AttnGrab:
I would have a million ideas for this…what about commercialising it?
Ideas are welcome. Patches are even better. I don’t have the time to support apps (I have a day job and a family) so commercializing is out of the question. If someone else wants to take the code and do great things with it, that’s cool too (but if you want it closed-source you’ll have to start from scratch as the code is GPL licensed).
I’ve gotother projects up on Sourceforge but to date nothing collaborative has happened. I didn’t even bother with AttnGrab because being developed on board it’s hard to integrate with an SCM (same problem I had trying to submit a patch to the Bird guys).
Now OnBoard SCM… that’s a great idea, especially if it can integrate with a repository on the desktop at HotSync time. It would also give me a good excuse to find one of the partially-completed Rsrc to RCP converters and fix them to support the resources found in current apps. Sounds a bit ambitious… will definitely take me a while.
LED and Vibrate February 19, 2008
Posted by a1291762 in : treo650 , add a commentWith a hacked up version of HsExt.h on my Treo I can now get the damn thing to turn on the LED and vibrate! Why I can’t use the Attention Manager’s LED/Vibrate hooks to do this is beyond me but now that I’ve got it working I can add LED/Vibrate notifications to Attention Grabber. Hooray!
Update 20 February 2008
Attention Grabber v1.1 is out. Go get it.
I really should do some kind of check for the Handspring extensions but I’m not really sure how to do that. Even on a non-handspring device, you should be ok if you don’t turn on the LED and Vibrate options (they default to off).
Pining for hacks February 14, 2008
Posted by a1291762 in : treo650 , add a commentOh how I miss the old PalmOS hacks. Back when I had a Visor Edge the world was simple. There was a well-defined API for writing hacks that everyone used and because of this hacks did not interfere with each other. They were also generally well behaved. I think I found only 1 hack that misbehaved on my device.
Sadly, the move to ARM chips killed hacks but it also seems to have killed the co-operation between hacks too. There’s a hack manager (YAHM) for OS 5 but it seems that nobody uses it. I’ve only found 1 hack for it and it was written by the same guy. Pretty much everyone else has restored to doing their own patching. The result of this is that most apps do things the wrong way and conflicts between apps are quite likely.
I had a bunch of apps installed on my Treo until yesterday. Then I noticed the problems they’re causing, some of which don’t appear to make any sense. Of note is that they all hook the ‘hede’ event which means they can screw up input events (and that’s exactly what they do).
Keyshades
- Conflicts with Profiles causing my device to stay awake, draining the battery.
- Causes double click events when the screen is tapped. As you can imagine, this makes using the stylus rather difficult.
- Kills the option key behaviour.
Profiles
- Kills the option key behaviour.
FieldPlus
- Slows down the device (patched version doesn’t have this problem).
- Kills the option key behaviour.
PSLink
- Kills the option key behaviour.
What is the option key behaviour? Open up memo pad and press Option. You’ll see a dot in the graffiti shift indicator. Press it again and it’ll become an underlined dot. This state should _not_ clear by itself but with any of the above apps installed it does.
I had a look at alternatives for these apps.
I already had TreoKeyHack (the only YAHM hack I’ve found) installed and it doesn’t cause problems. It covers almost all the things FieldPlus does.
I found Keyshades lite which forgoes the ability toggle the backlight using a keypress but otherwise does the same thing (just run the app to toggle the backlight). A bug in the Treo650’s software makes the backlight come on when pressing Option+Shift or Option+P and changing the backlight level. Turning the Treo off and on after doing this causes the lights to turn off. Good enough for me.
I tried PalmWiki and Wikiz but they too broke the option key. However, both of them did correctly navigate to a date in the calendar, something PSLink doesn’t always do.
I can’t find an alternative to Profiles.
Strangely, McPhling causes no problems despite hooking the ‘hede’ event. It’s also got source code available so it should be possible to see what it does differently that avoids problems. Both Wikiz and PSLink have source code available. I think I’ll start with the Wikiz source, changing the ‘hede’ handling to be more like McPhling’s.
The only real problem left is that I can’t find an alternative to Profiles and I really like that app. Then again it shouldn’t be a hugely complicated app to write (detect a held key – same as McPhling, set a bunch of options, easy peasy) and I only use it to set volumes so I should be able to whip up a replacement app myself.
Update 19 February 2008
Gah! Now it seems I can’t escape the option key behavior even when I disable everything and reboot!
I used a Hex editor to let me run Profeo 600 Lite (Treo 600 – ‘H101′, Treo 650 = ‘H102′) but it doesn’t feel like a nice replacement for Profiles.
I neglected to mention too that Profiles has been giving me crashes when editing the profiles. If I don’t need to edit profiles it works ok but if I do… it’s important that the app doesn’t crash! Even more reason to just code my own.
Update 20 February 2008
I’ve removed YAHM, McPhling and Event Floater now. That means no low-level or ‘hede’ hacks (and my opt key works again!). I found Duh button launcher which gives me button launching without ‘hede’ but has no MRU list. Both it and McPhling are open source. I feel a patch coming on.
Updates February 1, 2008
Posted by a1291762 in : programs, treo650 , add a commentI’ve been too busy to post updates. Here’s a bunch of things that have happened recently.
- Nokia purchased the company I work for, Trolltech. Ironically, this means I might be able to get my hands on the source code for TreoAlertMgr (since they purchased that company too) but I’ve already written Attention Grabber and it remains my property, not Nokia’s so it won’t be going away.
- The OnBoardC/SrcEdit guys accepted my Bird patch and are keen for me to become a developer.
- I sent off the patch that makes Bird more like RsrcEdit.
- I’ve collected my patched utilities into a single file, OnBoard.zip. If you want the modified sources let me know.
- I found the source to Pocket Rogue and I got it building with PRC tools but it crashes randomly. Will post once it’s working.
Attention Grabber v1.0 January 18, 2008
Posted by a1291762 in : programs, treo650 , add a commentIt’s done!
Listed under My Programs on the right or just head on over to the permanent URL: http://ramsay.webhop.org/attngrab.
Update 23 January 2008
Today I forgot to put my phone on vibrate while at work (wearing earphones). I didn’t notice my phone ringing but once I took off the earphones I heard it beep and sure enough, there was a missed call.