{"id":28,"date":"2005-02-10T21:32:14","date_gmt":"2005-02-11T02:32:14","guid":{"rendered":"http:\/\/crschmidt.net\/blog\/?p=28"},"modified":"2005-02-10T21:32:14","modified_gmt":"2005-02-11T02:32:14","slug":"wikipad","status":"publish","type":"post","link":"https:\/\/crschmidt.net\/blog\/archives\/28\/wikipad\/","title":{"rendered":"wikipad"},"content":{"rendered":"<p>Around the time that Nokia Python was released, someone mentioned that it would be very interestig to see a replacement for the built in Nokia Notepad program. The Notepad program has many limitations: you can&#8217;t fit much text on a screen, there&#8217;s no easy way to browse or link notes you&#8217;ve written, all the typical limitations that you see when writing in a small paper notepad.<\/p>\n<p>It was discussed that a small, wiki-like implementation might be a way to improve the usability of the notepad. Allow people to link between pages or nodes, let them type what they want and link it together. This would greatly improve the usability of having a phone along with you: if you can take notes on it that you can actually usee, there&#8217;s less chance you&#8217;ll lose them than paper, and you&#8217;re far more likely to be able to use something that&#8217;s connected than just write one note to yourself.<\/p>\n<p>For a while, I didn&#8217;t develop anything on the phone, mostly due to technical issues related to my development process. However, after the recent Python SIG meeting, I decided that the next time I saw people, I wanted the phone to do something useful. So, I took on the challenge: a wiki-like scratchpad.<\/p>\n<p>I started last night, and didn&#8217;t get too far before I ran into some symbian related problems: I couldn&#8217;t get anydbm to save anything. The file would open, it would stay open, but it wouldn&#8217;t sync, and it wouldn&#8217;t close. This morning, I finally looked at some code, and realized &#8211; wait. I need a full path. And once I got that far, things started looking up. In the hour I had this morning before work, I hacked out the basics: open a node, write to it, save, exit. Paavo on #mobitopia pointed out some other issues: the exit key handler, for one.<\/p>\n<p>Then, over lunch, I created a webpage, and fleshed it out a bit more: adding a feature such that when you hit the action button, the word underneath the cursor is opened as a new node. This was about another two hours of work, spread over lunch and 10 minute breaks from work throughout the day. This included writing a program that catches keypresses and displays their associated keycodes, including learning a bit more about lambdas than I used to. I then had a working wikipad, and have since been adding minor cleanup tweaks.<\/p>\n<p>In the past hour, I&#8217;ve created a beta, which allows uploading the wiki database to a webpage as POST data, from which it can be done with what you wish. (I&#8217;m currently storing the data in print_r() form, just for the sake of doing so.) From here, it&#8217;s pretty easy to imagine how this could allow reimporting the data.<\/p>\n<p>So, the next step is, of course, making this work in a collaborative sense: allowing multiple people to edit one wiki via their phones. However, for the time being, it&#8217;s a great little scratchpad app, that&#8217;s only likely to get greater. You can get the code from the <a href=\"http:\/\/crschmidt.net\/symbian\/wikipad\/\">WikiPad Homepage<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Around the time that Nokia Python was released, someone mentioned that it would be very interestig to see a replacement for the built in Nokia Notepad program. The Notepad program has many limitations: you can&#8217;t fit much text on a screen, there&#8217;s no easy way to browse or link notes you&#8217;ve written, all the typical [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-28","post","type-post","status-publish","format-standard","hentry","category-symbian-python"],"_links":{"self":[{"href":"https:\/\/crschmidt.net\/blog\/wp-json\/wp\/v2\/posts\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/crschmidt.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/crschmidt.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/crschmidt.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/crschmidt.net\/blog\/wp-json\/wp\/v2\/comments?post=28"}],"version-history":[{"count":0,"href":"https:\/\/crschmidt.net\/blog\/wp-json\/wp\/v2\/posts\/28\/revisions"}],"wp:attachment":[{"href":"https:\/\/crschmidt.net\/blog\/wp-json\/wp\/v2\/media?parent=28"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/crschmidt.net\/blog\/wp-json\/wp\/v2\/categories?post=28"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/crschmidt.net\/blog\/wp-json\/wp\/v2\/tags?post=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}