Many months after the initial idea was concieved, PalmBlogX has now been successfully programmed, so successfully programmed (you could argue) that this is the reason you can currently view this entry...
Heres' a breakdown of development..
1. The idea was concieved, after researching many products and programming languages I short listed it down to PDAT (PDA Toolbox) and NSBASIC.. To really get into Palm programming you need to know C
2. Found PDAT to just not be the one (The textbox limit really didn't go down well with me) Tried NSBASIC and noticed it offered a TCP/IP library..For time reasons I abandoned multiple record storage.. I was going to create a simple WinBlogX equivallant (Palm must be connected directly to the internet) but decided after my new Palm and WiFi purchases I needed to tackle the basics first as I was anxious to do little programming to reap the benefits..
3. Researched encoded HTML form data so PalmBlogX could directly connect to the BlogX server....Programmed almost all the core functionality in
4. Kept recieving "BUS errors" in POSE everytime I tried to use a MSGBOX (But Palm read it fine).. Learnt more NSBASIC and added an auto "Save" ability using Palm DataBase (PDB) files... Found out I could "hide" the BUS errors by using POSEs' retail rom rather than the debug rom (I know i'll go to programmer hell for this), but I really had no way to alter the memory allocation in NSBASIC so it was pointless POSE complaining about it
5. Noted although i'd programmed 99.9 of the code needed to directly communicate with the webserver and submit POST form data, NSBASIC lacked a "Replace" function (Although it supports InStr, Left, Right and nearly all the other Visual Basic commands I can think of, it just lacks that).. Typical I thought.. I e-mailed the NSBASIC developers asking them what gives (I'd searched the help doc several times for *something* that was equivallant)..In the end I thought "sod it"..In hindsight I probably could have created my own "Replace" with InStr, Left & Right, but i'm not sure how intensive it would be on a 333Mhz (I think that's the spec of it, maybe wrong) processer..
6. Reprogrammed it after a lack of response from the NSBASIC team and having practically read the helpfile in its entirity & after having had WiFi for many weeks now I was becoming desperate for a solution.. I decided to write another proxy (like I havn't over used that phrase enough already!) the Palm sends the unencoded data to the server, which then encodes the data and relays it.. Programming it was simple but the development felt like it'd dragged on beyond its time due to the complete abandonment of direct communication with the web server
7. Programmed a server side "proof of concept".. PalmBlogX would create a connection and send the data, the server side then displayed it in a textbox.. This was brilliant proof of concept, I sat 20 meters away typing in sentences to then zap them over WiFi to the server.
8. Next I revamped the code so it would accept any BlogURL, then I added a debugging feature so I could track people trying to abuse the proxy to try and crack a site.. With this in mind I eventually decided not to make the server-side open source.. I hardcoded my URL into the Palm device.. I added a check for update feature..I noted that validation on the serverside meant any username and password made the "Check for password" button report everything as fine..So I fixed that
9. I thought I was done then, POSE was submitting entries fine, I woke up the next morning and tried to slam in my first entry, I checked the blog and it had only posted half the entry, I was gutted and irritated because POSE gave me the impression evrything was working.. When I came home from school I investigated and found the Palm (Or WiFi) was actually fragmenting the packets.. So I chucked on a "Send Post" finishing tag (I can't type it here or we'll get this entry truncated)..
10. I hit "Send" again and we were still getting nowhere, this time the Palm was timing out waiting for a response..Day by day my computing coursework deadline was edging closer and I couldn't afford to spend many more evenings on this, I printed off my coding and dumped it in my bag, I'd take a look at it next time I had some time to kill at school.. At school I really couldn't see what was wrong, the code read fine, the only problem I could see was it was looping waiting for a response until the serverside hung up on it or gave it a ""' or timedout.. I removed those lines when I got home and now the code disconnected quicker than ever but we were still getting half the entry being sent.. After a bit of google surfing I found out NSBASIC has a relativly unknown limit of only being able to send x number of bytes to a shared library (e.g. TCP/IP) I read this on a commercial site for a TCP/IP library for NSBASIC which was very novel in the way that 90 of the functions they mentioned were already in the free NSBASIC TCP/IP library (that comes with source code) they bypassed the limit by adding some form of buffer, the solution immediatly became apparant, only send chunks of text at a time..I started with only sending one character at a time and it worked (10 minute posting process anyone?) I later upped the number of characters to 50 and all was well, I now had the perfect blogging solution.. I might try and up the character rate again, but I don't know whether the limit depends on the connection rate, WIFi might out perform dialup, possibly making the character limit less.
11. I added a timeout to the server side and a hadcoded serial number.. If you wish to purchase PalmBlogX (and support the entire BlogX effort) you may get in touch. I'm hoping to sell unlimited versions of PalmBlogX for £10.
For your convienence a fully functional time limited version is available here
16/03/05 Update : If only i'd found this page http://www.nsbasic.com/palm/info/technotes/TN15.htm .. oh well, it would have meant an extra library to install anyway
Heres' a breakdown of development..
1. The idea was concieved, after researching many products and programming languages I short listed it down to PDAT (PDA Toolbox) and NSBASIC.. To really get into Palm programming you need to know C
2. Found PDAT to just not be the one (The textbox limit really didn't go down well with me) Tried NSBASIC and noticed it offered a TCP/IP library..For time reasons I abandoned multiple record storage.. I was going to create a simple WinBlogX equivallant (Palm must be connected directly to the internet) but decided after my new Palm and WiFi purchases I needed to tackle the basics first as I was anxious to do little programming to reap the benefits..
3. Researched encoded HTML form data so PalmBlogX could directly connect to the BlogX server....Programmed almost all the core functionality in
4. Kept recieving "BUS errors" in POSE everytime I tried to use a MSGBOX (But Palm read it fine).. Learnt more NSBASIC and added an auto "Save" ability using Palm DataBase (PDB) files... Found out I could "hide" the BUS errors by using POSEs' retail rom rather than the debug rom (I know i'll go to programmer hell for this), but I really had no way to alter the memory allocation in NSBASIC so it was pointless POSE complaining about it
5. Noted although i'd programmed 99.9 of the code needed to directly communicate with the webserver and submit POST form data, NSBASIC lacked a "Replace" function (Although it supports InStr, Left, Right and nearly all the other Visual Basic commands I can think of, it just lacks that).. Typical I thought.. I e-mailed the NSBASIC developers asking them what gives (I'd searched the help doc several times for *something* that was equivallant)..In the end I thought "sod it"..In hindsight I probably could have created my own "Replace" with InStr, Left & Right, but i'm not sure how intensive it would be on a 333Mhz (I think that's the spec of it, maybe wrong) processer..
6. Reprogrammed it after a lack of response from the NSBASIC team and having practically read the helpfile in its entirity & after having had WiFi for many weeks now I was becoming desperate for a solution.. I decided to write another proxy (like I havn't over used that phrase enough already!) the Palm sends the unencoded data to the server, which then encodes the data and relays it.. Programming it was simple but the development felt like it'd dragged on beyond its time due to the complete abandonment of direct communication with the web server
7. Programmed a server side "proof of concept".. PalmBlogX would create a connection and send the data, the server side then displayed it in a textbox.. This was brilliant proof of concept, I sat 20 meters away typing in sentences to then zap them over WiFi to the server.
8. Next I revamped the code so it would accept any BlogURL, then I added a debugging feature so I could track people trying to abuse the proxy to try and crack a site.. With this in mind I eventually decided not to make the server-side open source.. I hardcoded my URL into the Palm device.. I added a check for update feature..I noted that validation on the serverside meant any username and password made the "Check for password" button report everything as fine..So I fixed that
9. I thought I was done then, POSE was submitting entries fine, I woke up the next morning and tried to slam in my first entry, I checked the blog and it had only posted half the entry, I was gutted and irritated because POSE gave me the impression evrything was working.. When I came home from school I investigated and found the Palm (Or WiFi) was actually fragmenting the packets.. So I chucked on a "Send Post" finishing tag (I can't type it here or we'll get this entry truncated)..
10. I hit "Send" again and we were still getting nowhere, this time the Palm was timing out waiting for a response..Day by day my computing coursework deadline was edging closer and I couldn't afford to spend many more evenings on this, I printed off my coding and dumped it in my bag, I'd take a look at it next time I had some time to kill at school.. At school I really couldn't see what was wrong, the code read fine, the only problem I could see was it was looping waiting for a response until the serverside hung up on it or gave it a ""' or timedout.. I removed those lines when I got home and now the code disconnected quicker than ever but we were still getting half the entry being sent.. After a bit of google surfing I found out NSBASIC has a relativly unknown limit of only being able to send x number of bytes to a shared library (e.g. TCP/IP) I read this on a commercial site for a TCP/IP library for NSBASIC which was very novel in the way that 90 of the functions they mentioned were already in the free NSBASIC TCP/IP library (that comes with source code) they bypassed the limit by adding some form of buffer, the solution immediatly became apparant, only send chunks of text at a time..I started with only sending one character at a time and it worked (10 minute posting process anyone?) I later upped the number of characters to 50 and all was well, I now had the perfect blogging solution.. I might try and up the character rate again, but I don't know whether the limit depends on the connection rate, WIFi might out perform dialup, possibly making the character limit less.
11. I added a timeout to the server side and a hadcoded serial number.. If you wish to purchase PalmBlogX (and support the entire BlogX effort) you may get in touch. I'm hoping to sell unlimited versions of PalmBlogX for £10.
For your convienence a fully functional time limited version is available here
16/03/05 Update : If only i'd found this page http://www.nsbasic.com/palm/info/technotes/TN15.htm .. oh well, it would have meant an extra library to install anyway
Matthew1471's ASP 


