Friday, July 18, 2008

Summary of last 2 months

At Work
Ok the program I am working on at work is going along smoothly. Our clients were impressed with the interface. As of right now we're working on the boring parts of the application. We need to make the forms that will allow CRUD on members. We are in the process of mapping the model with Hibernate to make this part of the application a bit less irritating.

UF Course Planner
For the Course Planner I have a version 1 working nicely. Anyone with a gatorlink username and password can try it out at denkou.ath.cx:8080/mlester/courseplanner/. There are features that I could add to it to make it better but from the people I have tested it with there is not much interest in the potential user base. In addition, I learned just about as much as I can learn from the project so continued development is unlikely. The application uses python to scrape data in a database, mootools javascript framework for the UI and PHP to handle database interaction. to talk back and for between Javascript and PHP my application uses JSON.

What I am planning now
There are 3 things that I want to do before I graduate if I can complete some of them I might want to add more:
  • Django - I want to get familiar with this python web app framework because its look like a way to build high quality application quickly and makes working in the web pardigm less annoying
  • Autonomous Airsoft Turret - Saw a paintball version and since this looks like an interesting image processing problem I would like to make this my senior project. I will be taking image processing so I think this is a feasible project.
  • DJMark - I want to make a mp3 mixing program that makes beat matching easy for a non dj: I started looking into this its seems a bit dificult but I think I can do it.

Saturday, May 17, 2008

Simple Solution and Other work

In my last post I was having a problem js not waiting for each request to finished before continue. After a bit of searching I finally found my problem. I was trying to solve a synchronous problem asynchrounously. So I just change the request to synchronous calls and it fixed my problem.

My Other Project

Right now in my spare time I am working on a course planning program that will make its a lot more user friendly when I am planning out my courses for semesters. Right now I have a screen scraping script that grabs all the class info for each semester. and I am working on a front end in js that will make it nice to select classes.

Friday, May 16, 2008

A month later

A lot of development has occurred since the last post. I am no longer using prototype as it did not suit my needs. Now I am using the awesome framework mootools which looks like it share a bit with prototype. I solved the predicament about contacting a remote server with ajax from the previous post. The problem with how I was trying to solve it before is that xmlhttprequest() can only be called from the same server the script is located on. Trying to access another page is called Cross Domain and xmlhttprequest does not do this at the moment. To get around this I made ajax contact a local script in php and then the php would contact the site on a different domain using cURL. This made contacting the site a lot easier because cURL makes it ridiculously easy to contact pages especially with special parameters like Http Authentication and SSL encryption. Anyways I got that working and then I had to convert the php script into Java. Since the standard development language at work is Java.

Java Problems
This was a bigger pain then I realized. The Java web server I am using is Tomcat and I am using struts 2 as the framework to create pages. The version of curl for java is under developed so for what I needed it to do it would not cut so I had to find a different solution. I was thinking that maybe the standard api for java would have something but once again it was also not fully developed. I finally came across Apache Jakarta Project HttpClient package. This saved the day and I got it contacting the remote server through Http Authentication using NTLM and on through https. I would like to note that JBDC owns. Getting my script to connect to a db2 server was a pain in php I had to set up a obdc connection and download a good amount of ibm software. With Java all u need is the jar with the DB2 drivers and the use the jdbc to contact the server.

XML Problems
Another interesting problem was that parsing the xml I would get back from the site. Java has some generic xml packages but I couldn't find any information on how to use them. So I solved this problem with Xerces-J another Apache project that is a package used to parse xml. I used a SAX parser to get the info from the xml.

Current Problem (waiting for ajax response inside a timed interval)
So everything is working fine now but there is a bug that I am trying to solve which is driving me crazy with the ajax. Essentially what I am trying to do is make a function that ask the server if new information is available in a given interval. But if the request takes longer than the interval I want it to wait for it to get the response from the server. Right now it just ask every interval regardless if it gets a response back. So to solve this dilemma, I thought why not make a while loop that checks if the request is running. If it is, continue waiting in the loop. Else, go back to normal operation. So what I came up with is something like:
refresh.periodical(1000ms,this)
function refresh{
stop the timed function calls
make ajax call
while(ajax.running==true){
}
start timed function calls again
}

The only problem with this is that javascript is single threaded so the while loop takes over and doesn't let anything else happen. in fact it caused the browser to freeze up. So i need to figure out a way to resolve this situation. It's a bit annoying that when javascript sends a request it doesn't wait for it to get a response it just continues executing.

Tuesday, April 15, 2008

Dblog 1

I starting a blog to keep track of how I solve problems with developing software. Currently I learning how to use ajax and trying to query a page that uses http authentication. I am using prototype to do the ajax work because it makes it a lot cleaner and it already handles issues with different browsers. The only thing I don't like about prototype though is that they do not have a forum. Which for alot of new technologies and software is very helpful for troubleshooting. So anyways I tried to perform some google-fu on my problem and the problem was putting up a good fight. I finally gained some ground when I found a article about ajax and http authentication

http://coderseye.com/2007/how-to-do-http-basic-auth-in-ajax.html

So that is where I am at now I try and keep posting. Hopefully my writing skills will improve too because as you can tell from this post they are very poor.