Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - jmbowman

Pages: [1] 2
1
Qt/Qtopia / Qtopia Programs On Other Systems?
« on: June 12, 2005, 07:39:06 pm »
Qtopia is primarily geared for development on Linux (and I think there's a pretty good cross-compiler setup available for Mac OS X also), but it looks like development on Windows should be possible. There's some instructions on how to set up a cross-compilation environment under Cygwin on Windows here. One or two of the installation steps apparently require some preparation done on a Linux box, but that shouldn't be a problem since you said you have access to one.  The page also mentions Metrowerks Codewarrior for Zaurus, but that no longer seems to be available.

2
Qt/Qtopia / Qtopia Programs On Other Systems?
« on: June 12, 2005, 04:14:55 pm »
I posted the current code for my utility library here.  My working name for it is qqutil (short for "Qt/Qtopia utilities"), and I'm using a "QQ" prefix for all the class names since it seems unlikely to clash with anything.  I'll try to get back to work on this over the next few days, so if anybody finds any bugs or suggestions for improvement, please let me know.

Oh, and for clarification: it's not that it's particularly hard to get a program working across Qtopia and the desktop Qt versions.  In fact, it's easier than just about any other way to try and get the same code to work on both a PDA and a desktop OS.  This is virtually impossible with PalmOS, and pretty hard just across PocketPC and Windows (and code written for that particular combination won't run anywhere else).  And the Java versions available for PDAs are so stripped down (and limited performance-wise) that it's tough to get anything substantial running on them.  One of the main reasons I bought a Zaurus is because it's relatively easy to write code that runs on the PDA and multiple desktop OSes.

That said, there's still room for improvement.  The scope of Qt doesn't include packaging, which is substantially different for each platform; utilities and documentation to make this easier could be quite useful.  Some classes present in desktop Qt were omitted from Qt/Embedded on the Zaurus due to space considerations; programs meant to work across both platforms need to either avoid these or provide their own implementation for the Zaurus version.  Qtopia uses a custom file management system designed to be more appropriate for a PDA, which means file management is a little different there than in desktop applications.  Sharp wasn't quite happy with Qtopia's implementation of this and extended it with custom code of their own, which again needs to be handled a little differently.  And finally, the Zaurus uses Qt 2, while desktop applications are typically written with Qt 3 (and soon Qt 4); unless you use Qt 2 for the desktop versions of your application (which foregoes many bugfixes and precludes an OS X version), some work needs to be done to cope with the API differences.  Writing applications for future versions of Qtopia based on Qt 4 should be much easier, but for now this is something of an issue.

Hence, an application designed to run on all of these platforms ends up being necessarily cluttered with a moderate number of ifdefs in order to handle these special cases.  It also requires a fair amount of knowledge of all these differences and how to work around them.  It's a lot easier than writing and maintaining different versions of the code for each platform, but it's not ideal.  So my goal with the qqutil library was to abstract away the most common problem cases by putting the ifdefs in a utility library, allowing applications to just use a single unified API as much as possible.  Furthermore, I wrote a number of custom widgets for PortaBase that seemed particularly useful for a variety of applications (especially for ones running on a PDA with somewhat limited input capability and screen real estate), so I included those as well.  It's all based on my experience with PortaBase, so it probably makes some assumptions that don't necessarily hold for all other applications; but it certainly seems like it'll save me from duplicating a lot of code for other applications I want to write.

To answer some of Daniel's questions: you have to use C++ for this, but C++ using Qt is much easier than without (from my perspective, it's really only worth coding in C++ if the Qt library is available).  I've considered setting up a development environment on my Zaurus (and I know other people have had some success with this), but ultimately haven't done so; it's just a lot faster to work with a full-size keyboard and a faster processor.  Some instructions on getting started with cross-compiling for the Zaurus are here; some of the information in the INSTALL file from PortaBase's source code tarball may prove useful for setting up development environments on other platforms also.

Anyway, time for me to start reading through the Qt 4 documentation in more detail so I can try to update qqutil to cope with that as well.  Some of the new features look really nice, but they won't work in Qt 2 on the Zaurus, and I need to figure out how to deal with the changes in the container classes and list/tree widgets...

3
Boston / Welcome!
« on: June 10, 2005, 12:21:49 pm »
A couple of my friends (both SL-5500 owners) recently bought SL-C3000 models and are wanting to get together sometime for some advice on what to install and usage tips (I have an SL-C760, and have done application development for it and played around with an assortment of Zaurus software).  I could probably use that as an excuse to organize an actual user's group meeting if people are interested; how many people think they would show up for something in the Cambridge/Somerville area?  Also, what dates/times would be good, and do people have specific requests for what to do and discuss?  Relatively soon is better, my friends want to play with their new toys.

4
Qt/Qtopia / Qtopia Programs On Other Systems?
« on: June 10, 2005, 11:46:46 am »
Over the course of PortaBase development, I ended up writing a fair amount of code for abstracting away platform differences like this.  Early last year, I broke out most of this code into a separate library which I planned to refactor PortaBase to use and also utilize for a couple of other applications I wanted to write, but got distracted by other things before I could finish it up.  A couple of months ago, I did write one application using this library, so it's been partially tested.  If you're interested, I could send you a copy in its current form and try to use the opportunity to motivate myself to start working on this and PortaBase again.

The library consists of a core framework plus a collection of optional components; you add or remove the ones you want from the qmake file, it works out the internal dependencies, and you build a static library that gets compiled into your application (so users don't need to separately install the library, and different apps using different library versions/options don't clash).  Off the top of my head, some of the things included are:

- Some Qt 2.x/Qt 3.x API difference abstractions
- QApplication/QPEApplication abstraction
- Menubar and toolbar handling
- MIME type and file extension handling
- New and open file dialogs/widgets (using the appropriate implementation on each platform)
- Document file management
- Calendar dialog for date selection
- Help viewer (desktop only, native help system used on Qtopia)
- Implementations of widgets missing in the Zaurus version of Qt (QColorDialog, QInputDialog, etc.)
- Main window and dialog sizing (typically maximized on Qtopia, not elsewhere)
- OK/Cancel buttons added to dialogs for desktop versions, omitted on Qtopia (since they're in the titlebar)
- PalmOS-style "grow-by-a-line-when-I-hit-return" text input fields
- List/tree widget with alternating row color shading
- Other stuff I can't remember at the moment (don't have the code in front of me)

The basic goals are to make it really easy to include functionality that almost every application has, encourage an interface style that's fully functional on the Zaurus, and make it easy to compile native-feeling desktop OS versions without the need for platform-specific ifdefs scattered throughout the application code.  I also want to write some documentation on the steps needed to package an application for each platform (ipk files, OS X bundles, Windows installers, deb/rpm files, appropriate icon sizes and formats, etc.), and maybe eventually write some scripts to automate the process somewhat.

I eventually want to post this as its own Sourceforge project, but I'd like to clean it up somewhat and do a little more testing first.  If one or two people want to look at it now though, I can just email it to them in its current state; the code is actually pretty clean and well-documented, just not fully packaged and tested (on all platforms) yet.  I'm also curious just how much interest there is in this, and what kinds of things other people would find useful in this library.  If people are interested in using it, I'll try to get an initial release tidied up and posted soon; shouldn't take as much work as a new PortaBase release (which is long overdue), and would help kickstart me back into working on that also.

5
Software / Kino 0.4.1
« on: February 07, 2005, 10:27:08 am »
Regarding not recognizing files and folders with underscores in them...

Quote
Sharp's File Open widget does that. No way to fix that other than using some other widget. Same problem with files, which have period in their name.

This doesn't sound right.  The Zaurus comes with directories named Book_Files, Image_Files, Install_Files, etc.; I can navigate through all of these in PortaBase, which uses the file navigation widget from libsl.  The vast majority of my PortaBase files also have underscores in their names (Domestic_anime_DVDs.pob, etc.), and they show up and open just fine in the same widget.  I haven't had a chance to look at the latest kino2 build yet, but if it's having problems with these kinds of names it should be fixable.

Now files with periods in their names are likely to be a problem; Qtopia strips off file extensions, and having extra periods in there confuses this mechanism.  Case in point, Sharp's "new file" dialog won't even let you enter a period.  But underscores are allowed in this dialog, as that's how I created the aforementioned PortaBase files.

Am I just misunderstanding the problem?  I've been looking forward to trying out the latest version of kino2 (since 0.4 wouldn't run on my Zaurus), but since I do most of my file management from a Linux command line, I generally use underscores instead of spaces in all my filenames; a bug like this would force me to rename pretty much all media files I move to the Zaurus.

6
General Discussion / More news about C960 ?
« on: May 26, 2004, 11:52:52 am »
This looks like a repost to a Korean discussion forum of quotes from a pair of Japanese weblogs.  The news item for the first one has scrolled off the end of the page, there isn\'t a history link, and the Google cache is too recent also, so I don\'t know the full context.  Judging from what was quoted and a later post, it looks like he\'s summarizing speculations gathered from other forums on what will be in the next Zaurus model, and guessing at a model number for it.

In the second weblog, the author lists the PDA models he currently owns, and says that although he\'s trying to reduce the number, he plans on buying a few more in the coming months; among this second list is the SL-C960, expected around the end of June.  A few days later, he\'s noting that his site is getting lots of hits from Chinese and French sites which seem to be pointing at his log and saying \"look, the SL-C960 is apparently coming out in June!\"  This has him a bit worried because the date and model number were speculation on his part, so he\'s fervently hoping that it does come out then so he doesn\'t get labeled as a liar worldwide.

So basically, there\'s widespread consensus on what the next Zaurus model number and specs should be, but I have yet to see even a fragment of official news on what/when it actually will be.

7
Software / Finance app required
« on: May 17, 2004, 06:30:54 pm »
I\'d seen JABP, but haven\'t been particularly inclined to try it out; I have yet to try a java program on the Zaurus (even trivial ones) that is nearly as responsive as a native Qt/C++ app.  Of course, the same is true on desktop PCs...I really only consider java a viable option for GUI apps if:

- You need to put something together quickly, it\'s only going to get used by people within your organization, and you already have people with java programming experience; OR

- You\'re writing something that will only be used by developers/power users who are willing to work through installation problems and put up with UI quirks

Generally, I think most GUI apps are better off in either C++ or python, depending on the requirements.  And this is coming from somebody who\'s been coding java for a living for about 4 years...

I\'m doing PortaBase development primarily on a Debian box; I set up a Zaurus development environment following the instructions in the Compiler Setup Howto.  Some of the information in the INSTALL file from the PortaBase source code tarball may be useful also, especially if you\'re trying to compile libraries.

Important tips for data storage: use an embedded database library, and make sure to save text in a Unicode-compatible encoding.  I\'d use Metakit with strings encoded in UTF-8 (same as PortaBase), but SQLite would probably work ok too.  Any kind of storage scheme using text files (including XML) or homegrown binary storage is going to cause more scalability and/or performance problems than it\'s worth; just be sure to support at least one or two text-based formats for import and export.

8
Cxx0 General discussions / Good database for c750
« on: May 10, 2004, 08:39:57 pm »
chroafjd: I suspect you\'re having the problem outlined above; another application registered the \".csv\" extension with some MIME type other than text/x-csv, so the post-installation script returned an error.  I\'m not sure how the installer handles this (it may vary between ROMs), but at least in your case it seems to have left the files installed and just given you an error message.  Since the PortaBase MIME type was registered first, you can open PortaBase files normally.  But it failed to register \"text/x-csv\" (the very last part of the installation), so it can\'t find anything it recognizes as a CSV file.  Could you let me know what if anything you have for csv in /opt/QtPalmtop/etc/mime.types, and if possible a list of applications you\'ve installed?  It would be ideal if you could figure out which one did it, but even a list of likely candidates would help me track it down.

gester: There isn\'t a PortaBase-specific API for working with the data files yet, but you can manipulate them at a slightly lower level using the Metakit API; see the format documentation on the website for details on how the files are structured.  This works from C++, Python, and Tcl.  You can also export the file to XML or CSV (even from the command line as part of a script), manipulate that using standard XML or text processing tools, and then import the results back in as a new file.  Early on, I considered writing a Python library for working with PortaBase files in the same way the GUI does, but put that on the back burner after I finished XML import/export since I figured that was easier to work with for most people.  If there is interest in such a library, I can add it back to the TODO list; I probably won\'t get around to it for a few months, though.

9
Cxx0 General discussions / Good database for c750
« on: May 08, 2004, 06:40:32 pm »
Setting column widths has been possible since version 1.0, but you don\'t do it by entering a pixel count; from the \"Data viewer\"-]\"Column labels\" subsection of the help file:

\"To change the widths of the columns in the current view, click on the border between two column labels (or the right edge of the last column) and drag it to the desired location.\"

I should probably add a reference to this in the \"View editor\" section of the help file as well; I\'ll add that in the next version.

10
Cxx0 General discussions / Good database for c750
« on: May 08, 2004, 04:47:22 pm »
Yup, this would be a problem.  The code in the postinst script for registering MIME types came from the \"qtopia-addmimetype\" script which is part of the standard Qtopia distribution but doesn\'t come installed on the Zaurus.  This script is designed to exit with an error if the extension of the MIME type being added is already claimed by another MIME type, which seems to be the case here.

The source of this problem is that there isn\'t an official MIME type for CSV files; I\'ve seen application/csv, csv/csv, text/comma-separated-value, text/csv, and text/x-csv used.  None of these are present in the default mime.types file of any Zaurus ROM I\'ve seen (including my SL-C760, which has Hancom Sheet pre-installed), and I didn\'t see any applications before PortaBase register it, so I had to just pick one.

Now it looks like another application (or some new ROM) has probably picked a different MIME type for the .csv extension; could somebody who has anything besides \"text/x-csv\" associated with this extension try to figure out which of the applications they\'ve installed registered it?  That check in the script is there because having an extension associated with multiple MIME types actually does cause problems.  I could change the script to just override any previous association, but that would probably break things for the application that put that association there.  So I\'d like to contact whoever did it and work things out...

11
Zaurus - pdaXrom / BOCHS and DOSBOX-0.61 Uploaded
« on: May 07, 2004, 12:39:43 pm »
The main dependency of Dosbox is SDL, which normally is compiled to use an X server for most of its graphics work.  However, SDL can also be compiled to use Qtopia for graphics instead (several games and emulators on the Zaurus use this), so in theory it should be possible to compile a version of Dosbox that links against that configuration and hence would run on Qtopia natively.

I briefly tried this last year (I think using Dosbox 0.58 and SDL 1.2.6); I got to the point where it compiled cleanly, but would immediately exit with no error message when I tried to run it.  Didn\'t have time to debug it, so I didn\'t get any further; there are new versions of both available now, so it\'s probably worth trying again (although looking at the Debian package for the latest Dosbox, it may have a few more dependencies now).  Basically, I suspect that it won\'t work \"out of the box\", but probably wouldn\'t take too much coding to work out the bugs; the trick is finding somebody with the skill and time to do it.

12
Software / Finance app required
« on: May 06, 2004, 07:12:16 pm »
The lack of a good app in this category is the single largest inconvenience in my Zaurus usage.  When I first got an SL-5500, I figured I\'d have to write my own database and my own financial app; and while I\'ve managed to put out 11 version releases of the database, I never manage to free up enough time away from working on that to write the finance app.  Started on it a couple of months ago, then got sucked right back into the PortaBase 1.9 release and doing a PortaBase Mac OS X port (now basically done).  Sigh...

Way back in the days of the original Zaurus development contest, there was an app called Stash that tried to fill this gap; it died after one preview release.  Then there was ZMoney, which got renamed to QashMoney; it got further than Stash and got updated not too horribly long ago, but is still missing a fair number of important features.  For $19.95 you can get tkcKapital, but it seems like that doesn\'t cut it for a lot of people either.

If you can cope with Japanese, there are a couple of other options.  There\'s a program called Zaif that looks decent, but again is missing some features that a lot of people need.  There\'s also a program available here that apparently runs as a perl CGI through Apache, viewed in Opera; while it seems to be moderately popular, it doesn\'t seem like the most elegant or easy-to-install solution.

A few other programs have come out that are either written in Java (and hence are usually too slow and don\'t quite look right) or are intended for very basic expense tracking.  I\'m not sure what other people are looking for, but what I need is a program very similar to FreeCoins, which is what I used to use on my Visor (until I put in too many transactions and performance got pretty abysmal).  Basically something that supports hierarchical accounts, split transactions, and double entry bookkeeping (other features would be nice to have also, but those are the ones I would absolutely need in order to find it useful).  I\'m using a PortaBase file for now, but the interface isn\'t really ideal for that and can\'t be without overly complicating the application...

So if there are any good financial apps I\'ve missed, please point them out.  If you\'re working on one and actually making progress on it, please speak up.  Otherwise, I\'ll try to free up time to start or improve one...hopefully sometime this year...

13
Cxx0 General discussions / Good database for c750
« on: May 04, 2004, 01:42:28 am »
I uploaded a zip file containing an ipk of version 1.9 (the version for newer ROMs) using the postinst script from version 1.7, you can get it here.  I confirmed that this installs correctly on my SL-C760 (original ROM, still in Japanese), but so did the package that other people are having trouble with.  If people still have trouble with this, could they please tell me:

- Which Zaurus model
- Which ROM
- Has a previous PortaBase version been installed on it since the last ROM flash (I\'m wondering if it only works when it doesn\'t need to update the mime.types file or something like that)

Omicron, are you referring to bug 888022?  I replied to it twice and then marked it closed for the stated reason (bug was fixed in version 1.8 to the best of my knowledge).  If that was you, the reason you didn\'t get an email reply is because it was posted anonymously; neither the SourceForge system nor I knew who to email a reply to.  My first response was posted one day after the bug report was opened, and I left the bug open for two months waiting to see if the poster would check up on it and reply...then closed it with a second comment, figuring I wasn\'t going to hear anything further about it.

And while I suppose syncing is a reasonable thing to want, I don\'t think anybody had actually requested it before...I know I don\'t see it on the SourceForge \"Feature Requests\" list or in the file I\'ve compiled from various requests via email and forums.  I might be able to do something like this if I change how internal row references are handled; I\'ll think about it and see if I can come up with something that could be implemented in the next release or two.

14
Cxx0 General discussions / Good database for c750
« on: April 29, 2004, 12:09:47 pm »
Regarding a file repository: Yes, ideally this would be a site where people could upload their own templates and data files.  It still would take time to find a place to host it, write or find software to handle uploads and file listings, write usage instructions, resolve technical problems, etc.  It\'s not necessarily a massive undertaking, but certainly complex enough to eat up a fair amount of time.

A WinCE/PocketPC/Windows Mobile 2003 port would actually require a pretty substantial amount of work.  I think Metakit (the underlying database library) runs on that platform, but Qt doesn\'t.  Thus any code dealing with the user interface, data structures, input/output, or text handling would have to be rewritten to use a different set of libraries; while this is potentially somewhat straightforward, it does mean rewriting pretty much the whole application.  I don\'t have a WinCE-based PDA and as a general policy try to avoid buying (or receiving) anything that results in money going to Microsoft, so I won\'t be doing such a port.  (I only did a regular Windows port because I have a couple of old Windows machines and friends with newer ones; I actually don\'t know anybody who owns a WinCE PDA.)  If somebody else wants to take a stab at it, I can answer questions about the code, though.

I don\'t suppose the Cacko ROM gives a more useful installation error message than the standard ROM does?  I will put together an ipk using the old postinst script in case it\'s the new sed lines causing the problems; I\'ll post a link to the package once it\'s ready (probably in the next day or so).

15
Cxx0 General discussions / Good database for c750
« on: April 28, 2004, 04:05:11 pm »
Murahachibu: If you mean landscape and portrait, you just need to tap and hold the application icon and uncheck \"Display with magnified screen\" in the resulting dialog; this is standard for all applications that also run on the SL-5x00 models.  Otherwise, I\'m not sure what you mean...

kenroy (and others): Did you also get this message when installing version 1.8?  If not, I suspect it\'s somehow related to a change I made in the post-installation script; I only did that in order to handle cases where a previous application installer didn\'t end the mime.types file correctly, so if it\'s causing this problem for enough people I should probably just change it back.  I can put together a package using the old script if somebody wants to test it and see if that eliminates the error message.

Miami_Bob: I\'d like to see a repository of files and file templates also, but don\'t really have time to set one up and maintain it (at least without slowing down the pace of development on the application itself); this has been on the \"Ways to Contribute\" page for quite a while, but no volunteers so far.

Pages: [1] 2