Dan Olsen’s Weblog

My insights and comments on technical issues and anything else I feel like saying.

SuggestIt’s First Month

I know it has been a while since I have written anything on my blog and I always promise myself that I will get better. Well, here is one sorry attempt at getting better.

When I started work for the State of Utah my first project was called the Employee Gateway. It was a web application that was a central point for finding all HR information an employee might need. Well, a few months ago the HR people came back to DTS and said that the governor would like a section added to the Employee Gateway for the new energy initiative they were kicking off. Part of that project was to allow for a virtual suggestion box where employees could enter suggestions about energy conservation ideas and then vote those suggestions up and down.

Well, one of the requirements for the virtual suggestion box was that they wanted to show data from the suggestion box in the actual web site. After looking at options that were already out there they determined that to get a suggestion box with an API it would cost quite a bit a month. After thinking about the idea I realized that I could create an application like that pretty easily. That’s when SuggestIt was born.

SuggestIt has been live for almost a month now and has been evolving. I am still looking for suggestions on how to improve the application so please go and beat on it for a while. Currently the service is free but I have covered myself by including a line that in the future I may be implementing a pricing structure. As most developers know, there are costs to hosting a site. Currently my income for the site is off Google Ads which does not come close to covering costs that I will accrue over time.

SuggestIt is written in Python (one of my favorite languages thanks to Phil Windley). It is hosted on Google Appengine and so far the cost of running the site is free. However as traffic increases (I hope) I will exceed the free quotas. Hence the reason I am planning on working out some sort of pricing for the service. Any suggestions on pricing structures would be greatly appreciated. Any publicity would be greatly appreciated as well.

| Comments

Checking out jQuery

So for most of my Ajax and javascript programming I have been using YUI. I liked it better then Prototype, Scriptaculous and MooTools. I have known about jQuery for quite some time but I have never actually tried it or even looked at it. Last night I posted a tweet on Twitter about how I like the YUI library. Well, Sam Curren was kind enough to tweet his feelings about YUI. I quote:

On JS Libraries: Code I write with jQuery is beautiful, and code I write with YUI appears to have been beaten with the ugly stick.

So, with those comments in mind, I stayed up later then normal looking at jQuery. As a matter of fact, I just added the jQuery file to a project I am working on and I am going to start using it. Sometimes it takes the truth from others to help you see the better choice.

However, the part I like most about YUI is their grids, resets and font files. It saves me a lot of formatting time and cross browser problems.

| Comments

PHPLib

I recently looked into phplib which is a helpful library for PHP. It has an easy way of accessing databases as well as taking care of sessions using PHP’s session functionality. This will save me some time in my projects in the future.

The downside is that it doesn’t support PHP 5. I wanted to use PHP for my future projects but I would also like to take advantage of phplib. The other downside is that it doesn’t look like much development is going on (February 2006 was when the last version was released). There have been some commits to the CVS repository so I am hoping that we will soon see a new version that supports PHP 5. If anyone has any information on phplib supporting PHP 5 in the future please let me know.

Technorati Tags: ,

| Comments (1)

Google Gears

For those who haven’t heard yet Google has released an early version of Google Gears. Google Gears allows you to build web apps that allow for offline usage. I’ll leave the rest of the talking up to their web site.

Technorati Tags: , ,

| Comments

Retrospectiva

I had been using Trac to keep track bugs for my projects. However, with out using fast CGI it was really slow and getting on my nerves. So, I started looking into other options that might fill my need and still appeal to me. Well, I found Retrospectiva. It is pretty much the Ruby on Rails version of Trac. So if you are looking for a good system to track your projects, Retrospectiva is another good option.

Technorati Tags: ,

| Comments

DED|Chain

I read an article talking about DED|Chain by Dustin Diaz. I had heard about it before but never really looked into it. Well, I finally looked into it and I can see the power behind it.

DED|Chain is built on top of the Yahoo! User Interface library. It allows for easily performing certain actions on your web page. An example would be the functionality to show or hide an element on your web page. It also makes animation easy with a few lines of JavaScript code.

I plan to continue playing around with DED|Chain but I really like the ease of making things happening by using it.

Technorati Tags: ,

| Comments

Yahoo! now hosting YUI files

Since I have been using the YUI library from Yahoo! I have found that it took a lot of space and required a lot of files I had to update in my project to keep up with the latest version of the libraries. Well, Yahoo! has announced that they will be hosting all the files in their YUI libraries. Here is what they said.

Coinciding with this week’s release of YUI version 2.2.0, the one year anniversary of the YUI open-source release, and as announced at the YUI Party just moments ago, we’re opening up free YUI hosting from the Yahoo! network to all YUI implementers. If you’re using YUI for your own project, we’ll serve the files for you — gzipped, with good cache-control, using our state-of-the-art network, for free. You can count on these files being continuously available because they’re the same files, served by the same source, that we use for most YUI implementations at Yahoo!.

Files served from Yahoo!’s network include version numbers in filepaths, allowing you to reference a specific version in your code. Previous versions are retained even as new versions are released. While we are providing no explicit SLA with respect to the availability of legacy code, our current policy is to support permanent availability of legacy YUI files.

From Free Hosting of YUI Files from Yahoo!
Referenced Fri Feb 23 2007 09:49:43 GMT-0600

The reason I like this is because when there is an update to the YUI libraries I have to update all the files. Now when I want to update I just change the path to the files on the Yahoo! servers and I am updated. Using PHP makes this update easy since I just use a PHP variable to hold the path and update the one variable and BAM I’m done updating.

I have already updated my main page on a sports pickem game I am wiring and the load time dropped the load time of the page by 4 times. The gzipped files makes the load time quicker. The load time was a major concern of mine since I was annoyed at how slow my pages were loading when hosting the YUI files on my web server.

I love these libraries because they provide a quick and easy way to produce cool effects on my web pages. Since I am limited to working on my projects during my lunch break it’s nice to not have to figure out all the functionality myself. I have looked at some other libraries and I have found the YUI library to be my favorite. I may end up using some others as well since there is still some functionality that YUI does not have.

Technorati Tags: ,

| Comments (1)

Google Web Toolkit vs. Yahoo! User Interface Library

When Google game out with their Web Toolkit I jumped into it and gave it a try. I built some small sites with the toolkit and liked how easy it was to build nice interfaces. However, I recently discovered Yahoo!’s user interface library. I started using it and found that I liked the Yahoo! libraries better. I liked being able to implement that interfaces right into my file without any compiling.

If you ask me, I choose the Yahoo! libraries over for the Google web toolkit. I’d like to hear what others have to say about when one option would be better then the other and I would also like to here any other comments people have about the Google Web Toolkit and the Yahoo! User Interface Library.

Technorati Tags: , ,

| Comments

Ruby on Rails

I am working on a new site using Ruby on Rails. I’m looking for great Rails resources/tools. If you know of any good ones, please drop me a comment.

| Comments

Google’s APIs

Today Google announced the release of the Google Calendar Data API.

I don’t have as much time as I wish I had to make something fun and useful using Google’s many APIs but I do like the fact that they provide such a service. I currently have a brother-in-law in South Korea. Since the family is all here in the US I created a map that shows where he is and where he has been with some basic information. It was fun to spend some time playing around with the Google Maps API.

Now, if I could come up with a cool page that integrates all these services into one useful service. If anyone has any good ideas or knows of anyone who has mashed together all these services into something cool, I’d like to hear about it.

Technorati Tags:

| Comments

Ruby on Rails

I have been playing around with Ruby on Rails again. Something I’ve wanted to get around to for some time now. Devlin Daley, another student I work with, introduced me to Ruby on Rails about a year ago. I love how easy it is to build web apps with Rails. In about 15 minutes I have been able to create the beginnings of a person contact app.

Phil Windley has posted a few things recently about Rails on his blog. He’s had some interesting things to say.

I have also downloaded Rad Rails which is an Eclipse extension made specifically for Rails development. So far I like it!

Technorati Tags: ,

| Comments

EJB 3.0

I have had the opportunity to learn how to use EJB 3.0. I am currently the TA for a distributed systems class taught by Dr. Phil Windley. We decided to go with EJB 3.0 not only to try it out but to see how much better it would be for the class. I must say that EJB 3.0 is a lot better than the previous EJBs.

When I took the class I remember the hours I spent getting the deployment descriptors right and learning how to use tools to make the job easier. With EJB 3.0, it has simplified how EJBs are written. Using EJB 3.0 allows for quicker and more efficient development in the use of Java annotations.

For anyone interested in learning how EJB 3.0 works I would suggest the EBJ 3.0 Trailblazer Tutorial by the JBoss group. The tutorial takes you through EJB 3.0 step by step in an easy to follow manner. By far the best tutorial I have found thus far.

Technorati Tags: ,

| Comments

Subversion

In the ECLab we have installed Subversion 1.2.1 on our server for our version control application. I must say I have come to like Subversion much better than CVS. I feel like I have more control and that it is easier to use. CVS would frustrate me at times because it didn’t seem to be the easiest system to learn. With Subversion set up with Apache it is easy to manipulate and use my repositories. I would recommend Subversion over CVS.

Technorati Tags:

| Comments

Ruby on Rails

So I played around a little bit with Ruby on Rails. Devlin Daley, another student who works in the same lab as I do, loves to talk about Ruby on Rails and has been trying to get me to use it. I figured I could check it out and give it a test run.

I must say that Ruby on Rails is an interesting platform to work with. Building simple web applications requires very little code. It also takes care of all the database calls. If I had more time I would try building a simple web app of my own. It would help if I could quickly create a couple of web apps on my server but since I don’t host my own server I can’t use Ruby on Rails. I currently use PHP but I hope to play around a little more with Ruby on Rails.

Technorati Tags:

| Comments

Berkeley XML Database 2.1.7

Well, I have been working on installing the latest version of DBXML. Of course, with the upgrade I am having installation issues which are hindering the process. I am hoping this update is not in vain once again. I have been trying to work with DBXML for almost a year now and I have had continual troubles in getting it work for me. I have been able to do some things but then I always get hung up on another problem. Hopefully it will be running soon and I will be able to chip away some more at the project I have been working on.

Technorati Tags: , , ,

| Comments

Constraint Programming and Mozart

I am currently in a natural language processing course at BYU. We are going over basic linguistics in the class as well as constraint programming. We are using the Mozart programming language to run our programs. We haven’t done a lot yet in terms of processing language but I have found the constraint programming to be quite interesting. One of the examples in Mozart’s constraint programming tutorial is the N-Queens problem. In order to find a solution the code look like this:

fun {Queens N }
   proc {$ Row }
      L1N ={MakeTuple c N }
      LM1N={MakeTuple c N }
   in
      {FD.tuple queens N 1#N Row }
      {For 1 N 1 proc {$ I }
                    L1N.I=I LM1N.I=~I
                 end }
      {FD.distinct Row }
      {FD.distinctOffset Row LM1N }
      {FD.distinctOffset Row L1N }
      {FD.distribute generic(value:mid) Row }
   end
end

Mozart creates search trees and will add additional constraints to the problem in order to find a solution. You can request a single solution to the problem or your can request all solutions to the problem. Personally, I think it’s fun to learn new languages but I have to admit I think this constraint programming makes some problems easier to solve.

| Comments

Rules Engines

I am working on my CS 601R project and I have been looking for a rules engine to use in Python. However, I have found two rules engines that I have not been able to work or even install. The first is Drools and the other is ruleCore(r).

Drools uses Jython so I installed that on my machine and tried installing the engine. However, I cannot find clear installation instructions to overcome the problems I am having.

ruleCore(r) is for Python but once again, there is lack of documentation on how to install the package.

I have submitted questions to the mail lists for each engine and have yet to hear back on either of them. If anyone has information on either of these rules engines please let me know. Also, if you know of any other rules engines for Python let me know.

| Comments

XML and Scheme

Phil Windley recently posted an entry to his blog with the same title, “XML and Scheme“. He talks about how he used Scheme to show his class that what they are learning can also help them understand XML. I found this quite interesting because I thought of the things I learned from Dr. Windley’s Concepts of Programming Languages class. I used the same kind of process he showed in his entry to help myself understand XML better.

| Comments

Berkeley XML Database

Sleepy Cat has released the newest version of the Berkeley XML database (2.0). I will be looking to install the new version of the database on our servers in the EC Lab. I am hoping that the new version will remedy some of the problems I have been having with the ROSE project.

| Comments

JSP vs. PHP

As I have taken the distributed systems course I have been learning JSPs, EJBs, etc.. I have also learned some PHP in my databases class as well as on my own. At the beginning of the class I wondered how EJBs were better than PHP and if it was really worth learning them. Well, now that I have finished the class (for the most part), and I found that they can be quite nice. I would like to understand them better than I feel I understand them now. I have also been told about Hibernate and I am hoping to get some books on Hibernate and xDoclet for Christmas. I also found that there are tools out there that help to build EJBs (specifically Middlegen).

Next semester I am taking Phil Windley’s 601R Middleware class. I am looking forward to learning about some of the topics he will be discussing. You can see the kinds of topics we will be going over at the course wiki. I was also informed tonight that I will be the TA for the course. I am looking forward to that because in the best when I have been a TA I found that I learned the information better when I had to help other students and needed to really figure out the material.

All in all, I have discovered time and time again that I love developing web applications and working with the Internet. I guess the best part is that I can see the fruits of my labor on any computer at any time as long as it is hooked up to the Internet. If anyone has some good ideas or any other good information on web applications or middleware, please leave a comment!

| Comments