Posted
by
Unknown Lamer
on Monday July 28, 2014 @09:03PM
from the civilized-pda-for-a-civilized-business-climate dept.

First time accepted submitter baka_toroi (1194359) writes I got a Tungsten E2 from a friend and I wanted to give it some life by programming for it a little bit. The main problem I'm bumping up against is that HP thought it would be awesome to just shut down every single thing related to Palm OS development. After Googling a lot I found out CodeWarrior was the de facto IDE for Palm OS development... but I was soon disappointed as I learned that Palm moved from the 68K architecture to ARM, and of course, CodeWarrior was just focused on Palm OS 4 development.

Now, I realize Palm OS 4 software can be run on Palm OS 5, but I'm looking to use some of the 'newer' APIs. Also, I have the Wi-fi add-on card so I wanted to create something that uses it. I thought what I needed was PODS (Palm OS Development Suite) but not only I can't find it anywhere but also it seems it was deprecated during Palm OS's lifetime. It really doesn't help the fact that I'm a beginner, but I really want to give this platform some life. Any general tip, book, working link or even anecdotes related to all this will be greatly appreciated.

The biggest time suck for learning a new platform is the platform itself, not the language. If we're comparing platforms, Android is like programming on the moon, and server side development is like programming on Saturn. A new programming language should only take a week or two to learn. The platform takes years. Android doesn't have much in common with a web platform. Unless Tomcat got an API to do mobile UI and touch handling, and Android got an API for failover and distributed services, they don't really have much in common at all.

If a developer is scared to cross to any platform because they don't want to be multi-lingual, they're doing it wrong. Java, Obj-C, Swift and C# are all pretty much the same thing, just with some syntax changes. Heck, there is even a family tree there. Java was based on Obj-C, and C# was based on Java. Swift is based on all of them.

If a developer is scared to cross to any platform because they don't want to be multi-lingual, they're doing it wrong.

An application can be separated into logic and presentation, or model and view [wikipedia.org], however your framework prefers to describe them. A program may require separate presentation for each platform, but versions of a program for multiple platforms should ideally share the logic. But some platforms strongly recommend or even require use of certain languages. How can a programmer follow the rule of not repeating yourself [wikipedia.org] to share logic across languages? Say I developed a game in Java or Objective-C but I want to por

An application can be separated into logic and presentation, or model and view [wikipedia.org], however your framework prefers to describe them. A program may require separate presentation for each platform, but versions of a program for multiple platforms should ideally share the logic. But some platforms strongly recommend or even require use of certain languages. How can a programmer follow the rule of not repeating yourself [wikipedia.org] to share logic across languages? Say I developed a game in Java or Objective-C but I want to port it to a Microsoft platform that allows only C#. (In theory it allows any language that compiles to verifiably type-safe.NET Compact Framework bytecode, but in practice that means C#.) How would I go about making and maintaining that port so that fixes to defects in the logic of the version on the original platform propagate to the version on the Microsoft platform ?

I don't think writing logic should be a gating factor that keeps a developer from using the right tool for the job, or keep a developer or a community locked in single language programming hell. There are edge cases (I've worked on an Android/iOS app that kept a bunch of code in JavaScript because it runs on both), but this doesn't even make the answer automatically "Java". I could very well say that developer should just go learn JavaScript because it runs on everything.

I don't usually see server architectures and client architectures sharing too much in the way of logic code

Input validation logic and any logic related to offline use needs to be the same (or at least provably identically behaving) on server and client.

I don't buy that's a reasonable excuse to force the client and server to be the same language.

First off, I don't buy that a client necessarily needs to do validation at all if the server is doing it. In fact, if you're doing complex validation on the client end, I think that is a Bad Thing (TM). What if your validation is wrong? Well you could just fix your server. But now your client's validation doesn't match, unless you're going to go around and force all your clients to update. Maybe at gunpoint or some

If you and everybody else responsible for the code running on the device aren't sloppy programmers, perhaps...

Even if your code is perfect, you still run the risk of having the other guy's program start scribbling over yours unless you feel like re-implementing absolutely everything whose behavior you don't entirely trust.

Every once in a while you can find good advice here... On first glance I agree with you but there's a tidbit at the end of TFS that led me to this place as well: "It really doesn't help the fact that I'm a beginner, but I really want to give this platform some life"

He may be able to give some life to his gifted device but he's never gonna breath life into the "platform". It's dead Jim. I fully support a beginner wanting to play with interesting things that currently being the Palm device he was just gift

Yup, it already happened to me while I tinkered with it. Fortunately I was just a sync away from recovering all the data and software (not that it was invaluable in any way). The only things that don't get restored are the Java VM and the Wi-fi drivers.

It got stuck on an infinite loop at boottime. Something about an invalid birthday, can't remember the exact error message. Apparently it was a known bug at the time, since a couple of users on some forums were looking for help as well.

I remember my PalmIII fondly. And my Palm V that replaced it. And my Zire, that was the last one I had (although the V had some niceties the zire did not). Or maybe I'm just remembering them for what they were then, and not compared to iOS and Android. I bet if I booted the old PocketPC in my desk I'd go nuts (and not in a good way)(PocketPC 2003).

Palm had one thing going for it, at least in the early days: excellent battery life. With no wireless, no background serivces, and no traditional backlight, battery life was measured in days—or weeks—or months!

While they don't hold a candle to modern devices in every other respect, I loved being able to tap away at the thing forever without ever worrying about finding a charger. And the EL backlight [wordpress.com] was pretty darn cool (though it made you really hate dimly lit rooms)...

You've got to be kidding. My Palm III ate batteries like a fiend. I was lucky if they lasted a week, and I hardly used the thing. I'd guess I got about 6-7 hours of functionality out of a set of batteries. And I'm not talking rechargeables, but good quality alkalines.

In my experience the power consumption of the Palm III varied significantly. I think there was a switchmode power converter of some sort in it, and it could be good or very, very bad, depending on individual device. Probably related to the capacitor in it. That's how I vaguely remember it, anyway.

I had a Palm IIIe and the NiMH batteries I used in it lasted roughly a week or two depending on how heavily I used the backlight. But these were the old school NiMH that would be dead after a couple of weeks even when they weren't plugged into anything. Alkaline batteries lasted a crazy long time, like a month or more. I was a pretty heavy user of the device as well, using it to read e-books on the bus every day, playing games, and taking notes.

The 'conduit' synchronization concept was pretty good as well (in an environment where 'eh, it's a computer, just give it TCP/IP and call it a day.' was not yet practical). The actual sync client, at least for Windows, was a total piece of shit; but conceptually the 'conduits' model was about the nicest flavor of PDA synchronization available before the rise of handhelds with their own data connections. PalmOS never handled those particularly neatly.

Also the UI was really good for getting things done quickly....it was an organizer first and foremost which today's multi-functional devices are not and hence they always suffer for some form of identity crisis.

I had an old Handspring Visor, Palm Treo and Centro. I came here to say this.

I had the IDE for a while. No multitasking (you could have timers that ran background tasks) and you could read/write directly into other programs' memory spaces. It was so easy to crash that OS. It's seriously only a few levels above MS/PC DOS with a really crappy C API. I'm really glad we're so far past those devices.

Writing ARM-native code on Palm OS 5 was never easy. I used prc-tools and Peal to write pssh (which needed ARM-native code for fast crypto and terminal emulation).http://prc-tools.sourceforge.nethttp://sealiesoftware.com/peal/http://sealiesoftware.com/pssh/README.code

The main difference in OS5 was the addition of "PNOlets", chunks of native ARM code. Chapter 14.

It's still tricky. When I ported Palm's OS4 emulator to Android, I had to do some library coding and tracking down sample source code was... nontrivial. Definitely look for open-source Palm programs, like pssh, and learn from them.

I taught a course on this in Spring 2004 and my notes are still online at:
http://www.cs.sjsu.edu/faculty... [sjsu.edu]
(albeit handwritten and scanned). The book I was using was
Palm OS Programming Bible, Second Edition. John Wiley & Son. by Lonnon R. Forster.
which you could probably pick up cheap from amazon or Ebay.

Latin is still spoken in the Holy See. If you want to learn to speak it, you could try Rosetta Stone or Transparent Language. Or learn to speak it in Rome! http://www.slate.com/articles/... [slate.com]

I'm pretty sure they were written in cuneiform on clay tablets, so you might want to learn the language of the Anunnaki

I might be wrong. Maybe they were written in Middle Egyptian on papyrus.

Either way, you could start by asking a very very old nerd. If you can find an old pay phone, wait for someone with long greasy grey hair to pick it up and start whistling into it. Make sure you have some jelly worms on hand, but not the green ones.

I had the same happen with Codewarrior for Sharp Zaurus. Metrowerks was sold and Freescale erased all traces of it. Can't be found anywhere, legit or warez. I even contacted Freescale and they said they looked everywhere they could, but they said it was nowhere. Gone forever

It's free from http://windows.novellshareware... [novellshareware.com] . There are also other app-building tools out there.
When I had a Palm, I used several programs from Tealpoint Software. Their web page is dead tonight, but the Google cache copy from yesterday shows dates from 2013. Perhaps your question provoked a huge run on Palm software and their server couldn't handle the load.
https://webcache.googleusercon... [googleusercontent.com]
Palm had the best calendar program (DateBk, not to be confused with DateBook) I've ever used on any platf

Since you're a C guy, there's http://onboardc.sourceforge.net/ [sourceforge.net] that compiles right on the Palm Pilot. A bit tough by modern standards, if there's an API call you want that's not in the standard header file you have to find the ROM address for it and put it in yourself.

I ran Linux (OE) on my Zire 72 back in the day. As you say, not quite useful; slow and with few utilities (and running X was a bit overkill on that platform). But I could say to my nerdy friends that I ran Linux even on my Zire. And now I can tell my nerdy son that I ran Linux on my Zire. And in time I will be able to tell my nerdy grandson that I ran Linux on my Zire.

If the hideous restrictions and limits there don't put you off, then find out what they recommend to compile.

Flashy IDE's probably aren't going to be easy to find, there weren't many around in the first place and the majority of stuff I know is just command-line compilers which can plug into any IDE (if you're brave enough).

All I remember of Palm coding was having to break C files into tiny parts, jam them together and hope the individual object files never went over a certain size because the linker had to play all kinds of tricks to load them.

Perhaps next time you will read the acquisition history for the software you are trying to find in the Wikipedia article, and then go to the OpenSource/Downloads section of the company website for the current owner of the technology yourself?

Following the link to the SDK gives a 404. Palm development tools were never readily available even when the platform was popular. Now they're almost impossible to find. Obstructing access to development tools is one sure-fire way to kill off a platform.

I wrote an app almost 10 years ago . Just looked through the code a bit. It says "Build with PRC-Tools 2.0 and Palm OS SDK 4.0 or better". Written all in C++. Most of my work I did in a simple text editor. Not in an IDE. And I used makefiles I wrote myself and a command-line to compile the lot. I remember compiling for the m68k mostly because that would cover all our potential customers. But there was already ARM support in the works... until we just dropped it. We had too few sales to warrant further devel

If you wanted to write code for a clumsy dead platform, why not the Apple Newton? Far cooler and more interesting. At least the Newton is the same CPU architecture.... just with a much better OS, 2 PCMCIA slots and a bigger screen.

Hell, even the Atari 8-bit is more interesting than a piece of crap from Palm.

Seriously, PalmOS sucks. I've written a couple things for it in the past and I wish I hadn't.

You are 100% right in criticizing me. Actually, I wasn't expecting this to get to the frontpage.Nonetheless, I thought Slashdot was the best place to ask. Many times I've seen pieces of news about Amigas and usually they're warmly received (are they not outdated?). I'm wondering why so many people are saying stuff like "let it go", "it's useless", "learn a language." Other people are linking me to LMGTFY as if I haven't spent hours looking for working links.

Many times I've seen pieces of news about Amigas and usually they're warmly received (are they not outdated?).

The Amigas are outdated. However the stories are warmly recieved, because Amiga has been popular, and lots of people still have one in their basement. Palm OS wasn't this popular. People love their Amigas, Amiga became a part of culture. This has many reasons, not just popularity. The fanboy group for Palm OS is smaller but I doubt it doesn't exist. Its not mainstream culture though.

I don't know why you shouldn't "waste" your time learning about a dead platform. As long as you see it as your hobby. Some people like reenactments, and dress in historic uniforms to "play" historic battles. Others know every part of the steam engines used from 1860 to 1892 by Santa Fe. So why not Palm OS?

I don't know why you shouldn't "waste" your time learning about a dead platform.

I think the only reason why not is that time is a finite and limited commodity and if you spend it on one thing then you can't spend it on another thing.. people are saying if you're going to learn something new and arcane you might as well learn something that they deem more applicable. this is ultimately them speaking about their own life limitations like kids or what not; obviously you (you, the submitter not you the parent) are the only one who can make that decision about yourself. But I believe that t

PalmOS was more popular than the Amiga. At one point about 90% of smartphones [palminfocenter.com] were based on Palm software, and by 2000 [getfilings.com] they had already sold more than 7 million units--compared to roughly 6 million Amigas across its entire lifetime.

The only Commodore computer that outsold Palm was the Commodore 64, with 22 million units. The main reason Amiga seems like a much larger influence than Palm is that overall computer sales were so much smaller when it was active. 6M computers in the late 80's/early 90's was a

I would really have liked a PalmOS cart for my Nintendo DS ; the form factor would have made it an awesome little organizer, it had a touch screen, etc, and the CPU power would probably have been good enough to run the original OS ROMs in an emu.

There were rumours of it happening (maybe I even started them by discussing it on BBs...) but alas, it never came to be.

One thing I really liked about the PalmOS stuff, which other software suites took ages to catch up with, was the way they all integrated. Some of

You are 100% right in criticizing me. Actually, I wasn't expecting this to get to the frontpage.Nonetheless, I thought Slashdot was the best place to ask. Many times I've seen pieces of news about Amigas and usually they're warmly received (are they not outdated?). I'm wondering why so many people are saying stuff like "let it go", "it's useless", "learn a language." Other people are linking me to LMGTFY as if I haven't spent hours looking for working links.

Don't get me wrong, maybe they're right and I shouldn't spend/waste my time learning about a dead platform, but at least I'd like to hear their rationale.

Because Amiga, C64, Early DOS and UNIX's were great and successful. For me, all that stuff was my childhood and messing around with it is like going to a garage sale and finding my old favorite GI Joe figure or something. PalmOS5 failed right out of the gate. There's nothing to be nostalgic about.

If you want to do some cool hobby stuff (and I don't blame you, I do that sort of thing all the time) I recommend the following:RaspberryPI or one of the several 3rd party variants out there: It's basically a small PC with a UART (hardware interface with buttons) You can turn it into a media player, an Audio DSP, a "car computer" whatever you can think of.http://www.raspberrypi.org/ [raspberrypi.org]http://www.pcworld.com/article... [pcworld.com]

Arduino is a micro controller. Not to be confused with the RPI. An arduino will teach you how to solder:-)You can run scripts written in C, and control lights, relays, sensors, etc... You can build something that automatically waters your garden, turns on your lights, feeds your pets... basically anything you can script.http://www.arduino.cc/ [arduino.cc]

AX84 is a website that has a host of amplifier projects. They are all tube based. Why tube? Well a lot of us think it sounds better, but that's a long argument. Even if they don't, it's how electronics started and if you want to know how things were done originally... and why that lead to how things are done now, Tubes are a great way to start. It's like learning to build a campfire by rubbing 2 sticks together. Yea, you could just throw a road flare on a dead tree, but somethings are just worth doing the old way. If you're not a musician, there's a Stereo amp near the bottom.http://www.ax84.com/sel.html [ax84.com]

Then there's steam engines... There's no collective site for that, but I've done them and they are fun. No codding involved unless you count the valves;-)These are super fun though. Imagine a device that can generate power from any source of heat. Even mirrors reflecting the sun. I recommend starting on youtube.

Anyways, there are lots of "useless" projects you can do that will have a far larger community and be far less of a waste of time in the end. Good luck.

This is a really great post, I really appreciate it. Even though I've read about the RPI and Arduino I never thought about doing something with them. The Arduino particularly interests me but I'm not sure what I would do with it. Thanks!

I thought Slashdot was the best place to ask. Many times I've seen pieces of news about Amigas and usually they're warmly received (are they not outdated?).

That's nostalga kicking in. The Amiga was an amazing piece of technology back in the day; a powerful, multimedia capable, grown-up computer for those who cut their teeth on the Commodore 64 and Vic-20 computers. A last generation, PalmOS 5 based PDA is not going to tug at the nostalga heartstrings. Furthermore, the warmly received stories are about people who have accomplished something with the old hardware, who have gotten their machines to do something above and beyond what people thought they were ca

I think much like many tech groups I "grew up with", slashdot has gone from a large number of high school and university students hacking stuff in their basement to predominately professionals working out in industry. Some of the "hacker spirit" has vanished and been replaced by practicality, and you see these kinda responses to projects we all probably would have found cool 10 years ago.

I'll admit that even I have fallen into this kinda thinking. I find myself approaching my hobby stuff the same way I appr

No. If you have a Palm and want to code for it, there's absolutely nothing wrong with that - and I find the reactions here very strange and un-slashdotlike. It doesn't matter if it's a good machine or not, or if you have fond childhood memories of it or not. If you happen to have something that can be explored and programmed, and you feel like doing it, great. How is reading a book or trying out some other hobby (as others suggested) in any way "better"?

Why strange? I had a Palm, and it was basically a piece of crap even back in the day. Once the novelty wore off, and after losing all the metrics of a project, and on top of that, having a netbook issued by the company, it was basically a deadweight. Back in the day, I did not even understand why my consulting firms was burning resources developing for it.

Care to explain why you think it was a piece of crap back in the day? I found 2 reasons: lack of stability and really bad web browser, but I also reckon most mobile browsers were bad. Windows Mobile (6.5 and downwards) was much worse in my opinion.

Windows mobile/CE is much worse, I actually threw a Windows CE based GPS out of the window of my car, and bought another Linux based on the very same day. As for Palm, ugly, slow, cumbersome use except for the writing recognition, no command line interface;) and really no incentive to program the darn thing; no manuals...I was used to have all the ROM listings, Spectrum, XT, AT, name it. And losing everything due to battery failure was not funny. I also ended up backing it up with linux in command line, as

Just to be clear: my intention wasn't to bash the Amiga, at all. I never owned it but most of the stuff I saw on it was mind-blowing for the technology of that time. I love listening to Module files (MODs).

As far as I can tell they're completely different. WebOS was supposed to be the evolution for Palm devices but it looks like they developed it from scratch rather than inherit all the backend stuff from Palm OS 5.

I vaguely remember some talk about an emulator at one point; but aside from that the two OSes have essentially zero in common. WebOS was (in my opinion) sadly underrated and died tragically young (I wouldn't be surprised if the situation has improved markedly; but back when 'Android tablet' meant 'Motorola Xoom running 3.0' it wasn't even fair how superior webOS was... Now that LG has it, it's probably gone to shit.); but it had absolutely no relation to palmOS, other than organizational.

I'm using an old laptop. It pulls about 10W with the screen off, 20W with it on full brightness.About 17W average usage which gave it 3.5 hours battery life back in the day. It's about 12 years old now.I don't think any laptop has ever been produced that consumes more than 150W.

There used to have some that came with 160W PSU bricks back when they put Pentium 4's in them, but that also charged the battery at the same time.