Archive for the ‘Software’ Category

littles3 version 2.2.0 released

Tuesday, December 2nd, 2008

Version 2.2.0 of “littles3” has been released. This release improves performance of listing keys within a bucket. For instance, 1000 keys with version 2.10 took 3.36 minutes. With version 2.2.0, this same list of 1000 keys took 1.75 seconds.

Issues included in this release:

littleS3 basic usage

Friday, November 28th, 2008

I have updated the littleS3Getting Started” wiki page, adding a “Basic Usage” section. This section includes:

Some littleS3 documentation!

Wednesday, November 26th, 2008

So, I promised some documentation “soon” for littleS3. That was 2 months ago. Well, I have finally made good. I have just published a “Getting Started” wiki page to the project site. So far, this document provides some background on the project components, how to deploy it to an application server, and what the configuration files “configure” (along with sample configuration files in the project download section).

I would still like to add some samples of how to use the system to create buckets, add objects, etc. This is very similar to the usage described in the Amazon S3 Developer Guide for the REST API, but there is a bit of a trick since you are using your own application server. In addition to the host name, you may need to include a context path (a servlet notion) to the REST URIs.

lightningtimer.net

Thursday, November 13th, 2008

I found Simon Willison’s lightningtimer.net Javascript timer to be totally awesome. The app is written in Javascript, all on one page. It lets you specify a time, and then a big-font timer counts down. The timer takes up the whole page. It can give you a warning, the background turns pink, when the timer is almost up. When the timer reaches zero, the background turns red and 0:00 blinks. Take a look at the page source for documentation on how to use lightningtimer.net. He says that he needed something for a Lightning Talk and this is the result.

Looking at the code (like I said, the Javascript is all in the page source, so just “view source” in your browser), it is a really cool example of Javascript. I was amazed how simple and elegant Simon’s code was. As someone who definitely is a poor Javascript hack, it is nice to see some good Javascript. And, I can use it as a tea timer too! :-)

Greasemonkey for Pearson Access

Wednesday, November 12th, 2008

During the day, I professionally work on a web application called Pearson Access. Today we determined that we needed a user administration process for one of our Pearson Access customers that would require them to always select a certain user role when creating a new user. The system doesn’t auto-check the role, the user will need to be trained to check it.

But, being a geek, that got me thinking. What if Greasemonkey could be used with a Greasemonkey script in Firefox to automatically check a role when creating a new user account. So, I wrote such a script: autoselectrole.user.js.

littles3 version 2.1.0 released

Tuesday, September 30th, 2008

Version 2.1.0 of “littles3” has been released. The only component change in 2.1.0 is the littleS3-2.1.0.war. This version enhances the web application configuration. The “host” value can now include a token “$resolvedLocalHost$“. Example:

host=$resolvedLocalHost$:8080

The token “$resolvedLocalHost$” will be replaced the value of InetAddress.getLocalHost().getCanonicalHostName(). This may be handy if your application server isn’t bound to “localhost“.

littles3 version 2.0.0 released

Thursday, September 25th, 2008

Version 2.0.0 of “littles3” has been released. This release restructures the project into modules: API, file system data module, and webapp. The file system module also includes support for metadata. Unfortunately, there isn’t any more documentation than before. So to get the system working, you would have to wade through the source code. But I will hopefully get some documentation created soon. :-)

Hello, Android

Sunday, July 13th, 2008

So, July 11, 2008, came and went. What happened on July 11? The iPhone 3G came out.

But I don’t have an iPhone. The other big thing is that the Apple iPhone App Store opened. But I don’t have a Mac, so I can’t run the emulator or create my own apps for the emulator.

So, I celebrated by creating my first Android app.

Hello, Android

This is the “Hello, World” version of an Android app running in the emulator. It was very easy to make. What made it easier for me is that Android apps are written in Java. (I am a Java developer by day.) The “Getting Started” tutorial even shows you how to use Eclipse.

I have only created the sample app so far, but it looks pretty easy for a Java developer to write an “Activity“. But, of coarse, the apps currently can only run in the emulator. But the emulator can be integrated very easily into Eclipse.

Though, it is not like having real hardware like the Apple iPhone. :-)

Keeping data secure in Google App Engine

Thursday, April 10th, 2008

While going through the “Getting Started” documentation provided for Google App Engine, I noticed something interesting in the “Using the Datastore” section. The datastore included in the App Engine is not a relational database, but it has some similarities. When querying the datastore, you can use GQL, which is similar to SQL. For instance:

greetings = Greeting.gql("WHERE author = :1 ORDER BY date DESC", users.get_current_user())

Notice the parameter replacement where “:1” is replaced with the value of “users.get_current_user()“. The documentation states:

Unlike SQL, GQL queries may not contain value constants: Instead, GQL uses parameter binding for all values in queries.

As Wikipedia points out, using a parameterized statement like this GQL parameter binding is one way to mitigate an SQL injection attack. The SQL injection is mitigated because the parameter value can consistently be properly escaped within the execution of the parameter binding. I find it very interesting that Google decided, in implementing GQL, to enforce the use of parameter binding. This must have been a conscious decision to help App Engine developers to make their apps more secure. I think that this is a good decision.

Worked through the Google App Engine “Getting Started” introduction

Tuesday, April 8th, 2008

I just finished trying out the Google App EngineGetting Started” introduction. I haven’t programmed in Python for a very long time. The introduction was pretty cool.

Except for the problem with Windows in the static file CSS example. I found a discussion about the issue by Googling “App Engine InvalidAppConfigError”. They have a simple work-around to get the sample to work. But it looks like there will have to be fix in the API for the problem to be resolved.

But all in all, this is a pretty neat framework. I look forward to playing with the SDK some more.

(And being a pilot, I am a bit biased toward the App Engine logo. You can see it at the home page. It is a jet engine with wings and a vertical stabilizer. :-) )