| 1   2   | Next
maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Applications (https://talk.maemo.org/forumdisplay.php?f=41)
-   -   Maemopad+ (https://talk.maemo.org/showthread.php?t=1556)

disq 2006-03-09 15:51

Maemopad+
 
First release of Maemopad+

Maemopad+ (the package name is MaemopadPlus due to problems with the "+" character) is a tree-structured notes editor, based on maemopad. It will be able to take typed-notes -AND- sketches. After the 2006 OS release it might also store voice-notes. Notes are saved in a single xml datafile. Currently it also saves UI stuff and last-datafile-opened info. Early experimentation phases.

Version 0.1 - Test release
http://www.ehore.com/apps/maemopad+/...us_0.1_arm.deb
this is a test release and should be treated as such.

BUGS
- it won't save sketches yet
- sketches are sketchy
- using GtkCTree, will convert to GtkTreeView asap
- initial GtkCTree (well, the treewidget) width should be smaller (so the horizontal scrollbars should not be displayed)
- i18n is incomplete

TODO
- keep last modified date for every node
- save text properties (font face/size, color, style) for every node
- add brush size and ink color picker
- save the sketches!
- maybe add a "set default text properties" kind of thing, for newly created nodes
- Create a "sample node" (or a series of nodes, like an app demo?)
- Add about box
- Test against low memory conditions and rewrite portions accordingly

I will release the sourcecode mid-march, after my N770 arrives and I test/develop the code some more.

fpp 2006-03-09 20:12

Good news that, a simple note-taking utility is a basic need that's sorely lacking on the 770 right now. Thanks for your effort ! But why XML ? How does one reuse notes taken on the 770 on another platform ?

aflegg 2006-03-09 22:19

Several options:

* Write an XSLT which can convert the notes to any other format (HTML, CSV, ...)
* Write a "MaemopadML" editor for any other platform in any language you like.

Why wouldn't it be XML? Structured file formats is exactly what XML should be used for...

fpp 2006-03-09 23:20

Well, a lot of something-pad programs are plain text editors, which are good enough for a lot of quick note-taking tasks, and we don't have one on the 770, so I'd be happy to have that first. Once I've written down my meeting notes or whatever, I shouldn't have to write anything else (XLST or yet another editor :-) to reuse my text anywhere else !
Also, a text editor can also serve to edit a lne or two of Python code on the go, but an XML editor can't.

aflegg 2006-03-09 23:38

Don't think of it as Notepad, think of it as Jotter

We've got text editors galore: Notes, Maemopad, vim, nano, ... - what's needed is a proper note pad/taking application. Horizon is that if you can write on the device, hopefully Maemopad+ will be for more text-oriented input.

Simon 2006-03-10 00:18

I've had a PDA of some sort or another for years. Never have come across the perfect note taking app. I usually wrote the note to a Post-it and stuck it to the outside of my Palm 5 :)

disq 2006-03-10 07:08

thank you all for the comments.

the purpose of the xml file (or it could've been any other datafile) format is mainly the tree-structured view. i could've made it so you pointed a "data directory" and the nodes were simply files in that directory. i didn't because i liked the single-datafile idea better, it's tidy and easier to back up. to view the notes outside, an XSLT formatter would do the trick. you won't be able to view sketches with that tho, (i will save the sketches in png (or maybe pixmap) and uuencode/base64encode it into the xml stream) so will probably have to add functions to import/export sketches (and don't forget voice notes) in the future. or you could use clipboard functions, they will work.

henry 2006-03-10 11:17

Have you considered using sqlite for storage? It might be better for memory consumption because you only need to load the tree and the current note into memory.

fanoush 2006-03-10 11:49

Or have you considered only having the structure in the xml and actual data in files? i.e replace data with file name. With bigger data this looks like better way. uuencoding pictures looks like unneeded bloat. It might work fine for few notes but storing more data inside the nodes may become problem in future (memory,speed). sqlite is a good choice too, it is used in GPE PIM applications. I think they used xml too but later found it simply does not scale with more data.

disq 2006-03-10 11:55

in fact i considered sqlite but didn't act on it. looks like it's a better way, yeah.

as for using xml as a data-index file, well, i don't see the need for it. the data directory idea and storing the files and the structure on the filesystem is better.

but, would using the data directory method (the one i described in my last post) confuse the users? it's way more compatible than a sqlite db, but i'm worried about the ease of use for the average user. what do you think?

Karel Jansens 2006-03-10 11:59

Quote:

Originally Posted by Simon
I've had a PDA of some sort or another for years. Never have come across the perfect note taking app. I usually wrote the note to a Post-it and stuck it to the outside of my Palm 5 :)

Ah. You never ever used a Newton, right?

fanoush 2006-03-10 13:02

Quote:

Originally Posted by disq
as for using xml as a data-index file, well, i don't see the need for it. the data directory idea and storing the files and the structure on the filesystem is better.

Yes, there is no need if you really need only simple tree structure. If you need things like categories (i.e same note belong to multiple categories) or more sortable attributes then you must maintain the structure somewhere and xml might be good for this. But yes, using sqlite may be better then so why to use files. I only mentioned xml as index because it is incremental change to current design.

As for confusing the users I don't think it will be worse or that it matters. Even single XML has a little use for non-programmer. As for the backups it is not much harder to backup directory than backup the file. And you can integrate your data into maemo backup applet anyway for normal users.

disq 2006-03-10 13:14

nope the nodes won't have multiple categories. it's a notes app after all.

a problem with using plain files (the dir structure idea) arise when you try to search the contents. i'm leaning towards sqlite right now. also with sqlite it's easier to implement fancy stuff like spreadsheet notes etc.

but first i'll switch the gtkctree code to gtktreeview, then start experimenting with sqlite. i also want to experiment with using one unified widget for text and drawings. if it technically can work, then the user will select the i-beam or the pen, and according to the selection he/she can write on the document or draw on it. dunno, it's lots of work.

disq 2006-03-10 16:27

--new and improved todo--

- upgrade to gtktreeview (in progress as of now)
- make the sketch stuff (gtkdrawingarea) into a SketchWidget class
- use sqlite
- save sketches
- fix sketches, test on a real 770 (5 days left)
- option to make node names as sketches (add SketchWidget to "New node" dialog, provide a tabbed selection)
- adjustable ink color and brush size
- adjustable text properties (formatting)
- richtext editing (read: allow formatting)
- make two toolbars one for text nodes (formatting etc) and one for sketch nodes (ink size/color)
- make fullscreen button toggle the tree (4 modes: plain document, document+toolbar, tree+document+toolbar, normal)
- fix the i18n or remove it altogether (well.. fix the i18n)
- keep last modified date for every node
- if no document (well, datafile) loaded, start out with a "New Document"
- Add about box
- Add search
- Test against low memory conditions and rewrite portions accordingly

well that's about it, any additions?

fpp 2006-03-10 20:42

Quote:

Originally Posted by aflegg
Don't think of it as Notepad, think of it as Jotter

Ah, yes. On the Psion there was another app that was even better (Notes something ? I forget, my last one just died).
Quote:

We've got text editors galore: Notes, Maemopad, vim, nano, ...
Do we now ? I have xterm, vim and nano, but that isn't my idea of quick and user-friendly note taking -- more like editing config files and scripts. I was under the impression that Hildon/Maemo was lacking a basic, native, Notepad-like text editor. What is maemopad ? It doesn't appear on the maemo wiki apps list, and even when you know it exists, Google turns up precious little. Just a very old .deb from before the 770 actually went on sale, and it doesn't install. Am I missing someting ?

fpp 2006-03-10 20:49

Quote:

Originally Posted by disq
thank you all for the comments.
the purpose of the xml file (or it could've been any other datafile) format is mainly the tree-structured view. i could've made it so you pointed a "data directory" and the nodes were simply files in that directory. i didn't because i liked the single-datafile idea better, it's tidy and easier to back up. to view the notes outside, an XSLT formatter would do the trick. you won't be able to view sketches with that tho, (i will save the sketches in png (or maybe pixmap) and uuencode/base64encode it into the xml stream) so will probably have to add functions to import/export sketches (and don't forget voice notes) in the future. or you could use clipboard functions, they will work.

This sounds like TreeLine, of which there is a port for the Zaurus :
http://www.bellz.org/treeline/

... only with PyGtk under Hildon instead of PyQt under Qtopia, and extended to non-text content. The nice thing about TreeLine is that the same app runs under Linux/Windows, so you can share your data between the desktop and the PDA.

disq 2006-03-10 21:03

Quote:

Originally Posted by fpp
What is maemopad ? It doesn't appear on the maemo wiki apps list, and even when you know it exists, Google turns up precious little. Just a very old .deb from before the 770 actually went on sale, and it doesn't install. Am I missing someting ?

it's the "sample app" that's in the building an application for maemo tutorial. the debs are really old yes, but you get the idea from the provided screenshot.

there's also a 1.4 version around (only sourcecode but it compiles) here, this one's mentioned in the SDK tutorial here.

fpp 2006-03-11 17:15

Thanks for the confirmation. So my point still stands : we have ebook readers and RSS readers and a del.icio.us reader and a bloglines reader and whatnot, but there isn't a simple basic notepad readily available to the 770 end user.

I definitely don't want to compile my own notepad, I just want to edit good old TXT files :-)

ziggamon 2006-03-12 03:00

Yeah! Somebody please publish a deb of regular maemopad for us to use.

Not to discourage the use of the potentially wonderful maemopad+! ;-)

disq 2006-03-12 10:51

just compiled it, download: http://www.ehore.com/apps/temp/maemopad_1.4_arm.deb

but the app installer (in the SDK) won't install the package. I was able to install it in the SDK by doing a fakeroot dpkg -i --force-all maemopad_1.4_arm.deb, if it helps.


Maemopad+ progress:
I did the GtkTreeView thing (took me a whole day), and sqlite3 support. it can also save sketches now, but that part is still buggy (and kinda slow)

The sqlite3 support turned out to be great tho, it only loads the node data when you activate the node. The sketch loading stuff is much slower now, but i'm going to optimize it. The text loading stuff works great, and it should now be able to handle several big documents. Still not ready for another release so i'm holding out on that, maybe tonight.

fpp 2006-03-12 17:09

Hey, thanks a lot ! The package installed just fine on my 770, and it's definitely a worthwhile utility to have around... Shall I go ahead and add it to the catalog on the maemo wiki ?

Now I can follow with interest and peace of mind the progress of memopad+ :-)

disq 2006-03-12 17:42

Quote:

Originally Posted by fpp
Hey, thanks a lot ! The package installed just fine on my 770, and it's definitely a worthwhile utility to have around... Shall I go ahead and add it to the catalog on the maemo wiki ?

Now I can follow with interest and peace of mind the progress of memopad+ :-)

yeah you can go ahead and add it :)

fpp 2006-03-12 19:13

Done, thanks again !

disq 2006-03-14 19:02

Ok, version 0.15

Changes
Quote:

upgraded gtkctree to gtktreeview
made the sketch stuff (gtkdrawingarea) into a SketchWidget class
now using sqlite instead of xml
sketches are saved
if no document (well, datafile) loaded, starts out with a "New Document"
added about box
added adjustable ink color (change font button)
strings i18n'ized (need to generate .pot)
4 fullscreen modes
ESC key exits fullscreen or closes app
added option to make node names as sketches
Download
ARM-deb: http://www.ehore.com/apps/maemopad+/...s_0.15_arm.deb
Requires: sqlite3

Source: http://www.ehore.com/apps/maemopad+/...us_0.15.tar.gz

Screenshots
Shot 1 Shot 2

Things to fix
Quote:

- add border around new sketched nodename sketchwidget
- test sketches on a real 770 (~1 day left)
- first sketchload always fails (pixmap or realize/map problem)
- node order -- column `ord` not saved (FIXME)
- change detection might be too sensitive, test
- offering filenames on newfile/savefile dialogs doesn't work as it should
Todo
Quote:

- adjustable brush size
- adjustable text properties (formatting)
- richtext editing (read: allow formatting)
- make two toolbars one for text nodes (formatting etc) and one for sketch nodes (ink size/color)
- keep last modified date for every node
- Add search
- Test against low memory conditions and rewrite portions accordingly

jdr93 2006-03-15 00:37

maemopad+
 
this new version looks very interesting. i'm not sure what you want it to do, but i would be interested in it if i could make sketches in about two thirds of the window and write (type) real text in the other third, then save the whole window as a file. it would be nice if one could alternatively add a jpg or gif to the "sketch" area and have the ability to add notes to the text area.
so far i've added it to my my n7 and it works pretty well, except it terminates unexpectedly when i tap on the name of the node which is displayed in the upper left corner (where you have 'sample node'). and i have not gotten it to accept any text. but i'm just getting it going, so things should be better when i figure it out more.

thanks

john

disq 2006-03-19 03:25

version 0.16

Changes
Quote:

added brush size buttons (no icons yet)
added eraser button
save changes dialog now has a cancel button
added hildoncolorbutton to toolbar
"new" button changed icon
if a sketch node is selected, cut/copy/paste/font buttons and edit menu are hidden
added tap-and-hold menu to the tree
now got 5 fullscreen modes (0:normal 1:notree-normal 2:normal-full 3:notree-full 4:justdoc-full)
removed "open file" button from the toolbar
"new" button on the toolbar now creates a new node (same type as the current node)
Download
ARM-deb: http://www.ehore.com/apps/maemopad+/...s_0.16_arm.deb
Requires: sqlite3

Source: http://www.ehore.com/apps/maemopad+/...us_0.16.tar.gz



jdr93, tried but couldn't reproduce your bugs. also clicking on the textarea (right side on a text node) you should be able to enter text.

Hedgecore 2006-03-20 15:00

Excellent app!!! I love all the little nuances that were added because "maybe someone would like that functionality" such as sketching actual note titles. Also, being a database monkey, everything makes sense to me. I love this app!

ziggamon 2006-03-20 15:34

Some feature requests if I so humbly may ;)

* The possibility to extend the sketch vertically
* The possibility to erase by drawing over (perhaps a bit advanced)
* Add lines to the drawing area for note-taking.

Keep up the good work!

disq 2006-03-20 18:19

The sketches are always 800x480 pixels right now. But I will add enlarge canvas option. mmm, maybe keep the 800 pixels width but add new "pages" of 480 pixels...

Notebook-lines will be available on the next version, you will be able to toggle them on and off.

Btw, right now current unreleased version allows bigger sketchnodenames (288x96 instead of 144x48) and then clips the white portions, resizes it and centers it vertically. (horizontally it's left aligned) It's going good.

disq 2006-03-31 02:09

Version 0.17

Changes
Quote:

shamelessly stole and modified icon from the tango project (for the lines/squares toolbutton)
fixed first sketchload always failing bug
added OSSO event handler for saving unsaved data on request
added the new menus and font/color selection to app menu (under tools)
added todo
added notebook lines/squares
moved brushsize buttons to a brushsize icon and menu
shamelessly stole eraser/pencil pixmaps from xournal
eraser size is now 4 points larger than the current brushsize
the toolbar icon and the menu reflects eraser size
added a flags column to data table
added a dataVersion key to the misc table
wrote dirty code to migrate tables from v0 to v1
added border to sketchname area
sketchname area enlarged to 288x96
contents of the sketchname area are resized (and centered) if necessary
Download
ARM-deb: http://www.ehore.com/apps/maemopad+/...s_0.17_arm.deb
Requires: http://www.owenwilliams.plus.com/maemo/

Source: http://www.ehore.com/apps/maemopad+/...us_0.17.tar.gz

http://www.ehore.com/apps/maemopad+/shot017-1s.png http://www.ehore.com/apps/maemopad+/shot017-2s.png

Hedgecore 2006-03-31 16:23

Excellent, I'm grabbing this the second I get home today. One question though, is it possible to move nodes around, like to drag and drop (with the target of the drop becoming the parent)?

disq 2006-03-31 16:37

not currently, no. implementing a good dnd interface is not easy, as you can't use the pointer for it. i'll probably have to put buttons to move nodes around :)

but maybe a quick hack that turns the tree into an effective listview (create-new-nodes-as-siblings-instead-of-childnodes) could be implemented, like a checkbox in the menu, or maybe a checkbox in the "create new node" dialog. that should help keep things tidy.

i'd like to concentrate on sketching speed issues in the next release or so, i'll make it work at 8bpp (instead of 32 as in now) and i'll try out some new drawing methods, as well as try adding clipboard support for the sketches.

also i want to enable the tree expanders somehow (probably with a supplied .gtkrc), the tree looks very sad right now.

Hedgecore 2006-03-31 19:03

Oops, I'd figured D&D support would be something relatively easy. + / - buttons (even linked to the zoom in/zoom out buttons, heh!) would be great. I'm loving the app as it's so versatile. I've been writing down local shows, and for shows my band's playing sketching out flyer designs etc. Keep those updates coming ;)

DaScud 2006-04-01 14:54

I tried maemopad+ yesterday and really liked the app. I was actually surprised that the touch screen was so responsive in tracking my handwriting. However, I think i may have found a bug or two or maybe i am doing something wrong.

If i create a node in the sketch mode and write/draw some stuff it works fine.
But if i tap again on the created node name (sketch node) it starts off with a blank page erasing all the previous work.

However, i found that if i create a sketch node and then a text node and tapping the sketch node works as expected and i can switch between the two node types.
The problem only occurs when i have only one sketch node.

Another thing is that the app seems less responsive in the zoom modes and my handwriting doesnt seem normal compared to when i scribble things in the regular mode.

Hopefully this will get addressed in the next release.



Great app btw.

Tks,
DaScud

disq 2006-04-01 16:43

yeah the bug you described still exists, i will try to fix it in the next release.

in the current beta drawing is faster, that would probably fix the fullscreen mode (i think that's what you meant with "zoom mode") being slow thingy.

last night i finally implemented undo, redo is still buggy. I also bound [-]/[+] keys to undo/redo.

my TODO before the next release:
Quote:

- add a checkbox to create node dialog to create the node as sibling as not child (or reverse in the UI)
- fix redo
- make [-]/[+] also work in the create node dialog
- try rendering the background pixmap from tiles and precalc the tiles at widget init
- BUG: clicking on current sketch erases all work
- probable bug: ending drawing beyond canvas makes undo a dull boy (crash protection in place)
- make sketchwidget borders work again (the bg pixmap precalc thing will break it)

DaScud 2006-04-01 20:19

Great. Look forward to your next release.

Tks,
DaScud

Quote:

Originally Posted by disq
yeah the bug you described still exists, i will try to fix it in the next release.

in the current beta drawing is faster, that would probably fix the fullscreen mode (i think that's what you meant with "zoom mode") being slow thingy.

last night i finally implemented undo, redo is still buggy. I also bound [-]/[+] keys to undo/redo.

my TODO before the next release:


disq 2006-04-05 02:50

Version 0.18
another all-nighter release!

moved stuff to sf.net, it's slow but i didn't feel like installing svn/apache, and my hosting goes down a few times a year.

Files are here: http://sourceforge.net/project/showf...roup_id=164383

Changes (sorted by date desc, my favorite ones are in bold)
Quote:

project home moved to sf.net
fixed the "clicking on current sketch erases all work" bug
added "Clear" item to edit menu
now also saving fullScreen status in the misc table
fixed redo -- could be optimized by checking for dupe tilepixmaps in adjacent revisions and refcounting
made graph squares bigger (looks better)
rearranged brushsize button with the eraser toggle
if the brushsize button is clicked when eraser is on, it just turns off eraser and won't pop menu
made the eraser smaller (2x +4 of the current brush size, 3x+4 was too large)
added graph background to the sketchnodename dialog (the borders don't work anymore, to compensate)
treeview loads up with node0 selected. ugly workaround in place (mainview->loading)
added watch cursor as a "loading" sign
added fullscreen submenu to menu/toolbar
made the eraser larger (3x +4 of the current brush size)
now rendering the background pixmap from tiles and precalcing them at widget init (just to test the performance) in human language: traded a little cpu usage for ~700k of ram
implemented primitive(=no layering/selection) clipboard functionality for sketches
added a checkbox in create node dialog to create the new node as sibling/child
that checkbox's state is saved to db
made undo/redo buttons change sensitivity
made default newnodetype sketch
moved node operations in the menu to a node submenu
made tools menu not appear when no node is selected
made [-]/[+] also work in the create node dialog
added borders around the main sketchwidget
fixed graph bg alignment
tried 8bpp, didn't work
made drawing faster
implemented undo/redo on sketches
[-]/[+] keys do undo/redo on sketches now
TODO
Quote:

ADD:
- show treeview pixmaps (HOW?)
- BORDERS around sketchwidget (HOW?)
- resize canvas (pages of 480 pixels?)
- import/export images (minimal vector ops might be needed here, to move and resize the image)
- change canvas background color (just to keep up with xournal :P )
- erase by drawing over option?
- maybe leftarrow-rightarrow change focus and uparrow-downarrow walk the tree? (need a way fix the textview issue)
- keep/show last modified date for every node
- search
- adjustable text properties (formatting)
- richtext editing (read: allow formatting)
- Test against low memory conditions and rewrite portions accordingly
- redo eraser/pencil/color toolbar logic some more

- add a swatches toolbar? at least "last used 4 colors" somewhere?

FIX:
- creating a childnode to the rootnode is not possible
- fix/add hook: make tools menu not appear when no node is selected
- probable bug: ending drawing beyond canvas might make undo a dull boy (crash protection in place)
- node order -- column `ord` not saved (FIXME)
- change detection might be too sensitive, test
- offering filenames on newfile/savefile dialogs doesn't work as it should
NONEED- use xlib instead of gdkdrawingarea for the sketchwidget?
WONTWORK- try using 8bpp pixmaps

jurop88 2006-04-05 10:11

Disq, you're doing a great job! Now the prog is fully usable to take on-the-fly notes, the speed improvemement has far been the most important point. Some concerns about UI:
1 - i dislike (but it could be just mine) the automatic resize of the brush tool. After set dimensions, you rarely change them (excpet when drawing some sketch), so a set-and-remember-and-leave-it would be more useful IMHO. Just click on the pencil or on the brush when you need them et voilą. Anyway, clicking on the pencil now deactivates the brush, so another great usbility improvement.
2 - to much options associated to the full-screen button. Any app in Maemo just switch between two modes, and so I think that the button should just do this. Choose one of the full-screen modes and go with it. Perhaps in the future you can add a prefs menu that keep memory of the mode associated with the button. If you need another mode, you can ever use menus.
3 - on-screen menu while in full-screen mode? hehehe...

Wonder on a future version with a OCR program in the background (or by pressing a key) that convert your notes to text... So no needings to keep separate drawings and notes anymore!

Just my 2 cents

PS: see you in IRC!

disq 2006-04-05 12:05

glad you liked it :)

1- using the stylus it's usually hard to erase something completely and you usually end up doing multiple passes (left-right-left-right etc) but with the eraser size slightly bigger than the brush size, i find it much easier.

2- again, i find having layout presets practical, putting it in a menu or in a prefs dialog is nearly equal to taking it away, the user will have to navigate thru ui elements (menu->submenu->menuitem, or menu->prefs->tabs) to simply change the type of view. but maybe one could set prefs for the behaviour of the full screen hardware button, so it just toggles one of the modes and not cycles thru all of the available modes.

3- did you try using the menu key? ;)


and about the ocr thing, well, it's kinda out of my league :)

disq 2006-04-05 15:16

version 0.18a

fixes a serious memleak that occurs while loading a sketch from db. now maemopad+ should consume between 7-10 megs of ram at most.

http://sourceforge.net/project/showf...ease_id=407360

(reminder for new users: it still requires sqlite3 to work)


| 1   2   | Next
All times are GMT. The time now is 05:58.

vBulletin® Version 3.8.8