Monday, June 6, 2011

Windows Performance and Filesize Limit

This weekend I had the chance to test DavDrive's performance when running Widows 7 (32bit).
I tested with Windows Explorer and BitKinex. The latter gave me a nice performance graph. My test file was a video file that was approx. 900MB in size.
The first things I notices was that Windows 7 seems to have a file size limit when it comes to WebDAV downloads. Therefore I immediately continued to test with BitKinex because I had no clue how to fix the size limit by that time. You'll find the solution for this after the BitKinex test.
BitKiney worked like charm. The graph shows the download speed.

DavDrive - BitKinex Performance


Speed was quite good (1,48 MB/s) and by far not as bad as many users have reported when using DavDrive on Windows.
So if you fix your Internet Explorer settings and the size limit, DavDrive should run fine and with reasonable speed on Windows.

Windows Size Limit
To fix the size limit you have to use the registry editor and edit the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\FileSizeLimitInBytes

Monday, May 30, 2011

DavDrive - Tablet Support

There is a new version of DavDrive (1.39) and the full version got some enhanced tablet support.
The main screen now presents the usual start button on the left and a list that contains the log entries on the right.

DavDrive 1.39


In default mode the list only shows uploads and downloads so not to confuse the normal user too much. You can switch the display by pressing the small arrow in the activities title bar to display all entries.

Log View Selection


When clicking on these entries a dialog box with some more protocol details is displayed. If the file is present it can be opened.

Log Entry Details


The tablet support is not only for Honeycomb but for all others X-large screens. So other tablet users running Android 2.x should also benefit from the changes.

Log Broadcasts
Another new feature is that the log activities are broadcasted, which means that other programs/activities can listen to these broadcasts and react on these events.

For those interested, here are the details.

Intent Action: de.fun2code.android.webdrive.history.intent.add

ExtraTypeDescription
MethodStringMehthod name in uppercase.
TimestampLongTime in millis.
ResourceStringComplete resource (file) name.
SuccessBooleanTrue on success, otherwise false.
CodeIntegerHTTP result code.
MessageStringAdditional message.
TargetStringComplete target resource (file) name.
This is optional and only available when Method is MOVE.

Tuesday, May 17, 2011

Windows 7 WebDAV Performance

This bugged me for a while...
DavDrive's WebDAV performance seems o.k. on almost all platforms, except for Windows 7 (and especially the 64 bit version).
I have no Windows 7 at home, so I could not really test.

Today I stumbled over a blog entry by Chief Oddball which suggests a fix.
To make it short, here is the possible fix (quoted form the blog entry):
  1. In Internet Explorer, open the Tools menu, then click Internet Options.
  2. Select the Connections tab.
  3. Click the LAN Settings button.
  4. Uncheck the “Automatically detect settings” box.
  5. Click OK until you’re out of dialog hell.
I'm really interested if this is working.
Comments welcome!

Thursday, April 21, 2011

PAW Server & PHP

In this post I would like to write about what is coming up next in PAW development.
PAW supports BeanShell code to create dynamic pages. BeanShell is well suited for Android, because it integrates will into the OS by supporting the Android Java API.

The foundation of PAW is Brazil a web application framework which was developed by SUN (now Oracle). Although not widely used the framework has the advantage of being very small and flexible.
What I was thinking about for a while was to add PHP support. PHP is widely used  around the net. PHP's reputation is questionable and that are people who love and others who hate it. But it's undoubtedly one of the most used frameworks when it comes to web development.

PHP basically comes in two flawors, a CLI and a CGI version. To integrate PHP into the context of a web server the CGI version is needed.

Android PHP Project
Knowing that there is a CLI version provided by the Android PHP Project I headed over to their forum asking if they could provide a CGI version in addition to the CLI version.

Unfortunately the guys told me that a CGI version will not be provided by the project because it's not needed and pointed me to a page which describes shortly how to setup the tool-chain to do a cross compile of PHP.

Cross Compiling
So I tried to compile PHP myself. I have a Linux box at home so I'm quite familiar with doing configure/make and all this things but the last time I dug into C sources and header files is approx. 10 years back. So this was quite a challenge. Finally I got it working, but I think I did a lousy job. So if somebody can do it better, please go ahead and send me the php-cgi binary.

The CGI Handler
After I had the binary I extended and changed the CGI handler that is included with Brazil to work with Android. Due to some changes in the Brazil source that I have done concerning upload size limits the original handler could not be used. In the process I also tried to add SL4A support. I haven't tested this until know, but I hope it will be working.

SL4A Support
SL4A support is a little bit tricky, because one has to know the port the SL4A is listening to. So I looked around how to get hold of the port and found out that the port is reported in the logcat.
So on startup of the handler (on start of the PAW service) the handler looks into logcat and tries to find the SL4A host name and port number. These values are associated with the AP_HOST and AP_PORT environment variables. So SL4A the server has to be started shortly before PAW starts up.

The Plugin
PHP will be available as plugin shortly after the next release of PAW (which should be in the next month). PAW will then come with the new handler. Providing PHP as plugin has the advantage that PAW itself does not grow (much) in size. PHP is approx. 3 MB in size and so relatively large.
The plugin can be downloaded from an external website and extracted into the PAW plugin folder.
A new page showing available plugins will be included into the next PAW release.

Plugins in the Add-Ons menu


After extracting the plugin it should be visible under PAW's plugin menu.

Plugin in the Plug-ins menu


Installation of PHP should be a one click action and after a restart of PAW PHP should be available.

PHP Installation

PHP has been tested using a Google Nexus One and a Notion Ink Adam. The result of phpinfo() can be viewed here.

This is work in progress but it looks promising although not all PHP pages will be working but basic stuff should.

So stay tuned, I hope to finish this in a couple of weeks :)

Note:
PAW for Android 0.58 is now available at the Android Market.
The PHP plug-in is also available.

Update
If you have trouble downloading the PHP plugin from the original location, you can try the alternate link at Google Drive: PAW Plugins

Wednesday, March 23, 2011

Cache Stumbler Beta

Cache Stumbler is a widget that is intended to assist people in finding traditional Geocaches.It is not geared at die hard Geocachers but at people that would like to know which traditional Caches are in reach and how to reach them.

Cache Stumbler tries to answer the question: "Where is the next Cache?"

The widgets shows the name, direction, distance etc. of the nearest cache without the need to register to geocaching.com.

Cache Stumbler Widget


Details of the cache are available by tapping on the widget.

The menu offers the possibility to show the cache on the map, share the cache and mark the cache as found or not-found. When a cache is marked as found/not-found it will be ignored in the future.

Cache Stumbler Details


This is a beta version, so things might not work very reliably or might not work at all.
If some people find it useful I might consider publishing it in the Android market.

Find below the download link, if you would like to try it out. It case of errors it would be nice to get a bug report (preferably with a logcat output attached). Logcat output can be sent by using the app aLogcat available from the Android Market.

Bug report mail address: cachestumbler [at] fun2code.de

Comments are of course welcome :)

Have fun...

Edit:
Cache Stumbler is now available at the Android Market!

Sunday, February 27, 2011

PAW Server Widget and App2SD

Unfortunately there is a bug in Android concerning the handling of widgets in combination with App2SD. For more information see the following bug report: Widget from Apps installing in SDCARD in Froyo not show up

Because of PAW’s size it makes sense to move the app to SD Card. To fix the above issue, here is the widget as separate APK (only 17kB in size).

Downloads:
PAW Server Widget

Friday, January 28, 2011

PAW - MP3 Player

The next version of PAW (0.56) will feature a MP3 player.

PAW - MP3 Player


The information used by the player is extracted from the Android device's media database. The coverart will be presented by using the jCoverflip jQuery plugin.
For playback the very lightweight (9k) Flash MP3 Player is used.


For those of you who want to try a preview of the player or/and want to have a look at the xhtml source you'll find the download at the end of the post.
Just extract the ZIP file to the root of your SDCard (/sdcard). After that you should find a new entry MP3 Player in the Media menu.

Have fun...

Downloads:
PAW - MP3 Player Preview (ZIP file)