Friday, December 12, 2008

December Post

Haven't post on here in awhile so I give some updates
Hand Scanner Denied

Because of the success of spreading propaganda about the hand scanners they will no longer be added to the gyms. Though the software works well so if they ever decide to do it, it's ready to go.

Personal Projects

Senior Project

Since my last semester will be pretty demanding I decided to use my courseplanner project as my senior project. I think I will make it just in python and html and javascript as opposed to having the server side scripts in php. Also I want to make the scraping part multithreaded so I can grab everything in 5 minutes instead of 40. Moreover, make the interface for using the courseplanner cleaner.

Answord


I final will get some time to work on my android bible app. I want to give it search, bookmarks, make it work with esv, and improve its start up time and responsiveness.

Wiki Notes


I think I want to spruce up the gui for this open source app in addition to giving it more wiki features like bold test and lists. maybe have it back itself up on to google notebook or something like or maybe just make an app that syncs with google notebook

Tuner

see if there is an fft libraries out there and see I can make a tuner for the phone

Collaborative UML Web App

I want to make a web app where multiple people can work on a UML and export as some standard format. I don't know when I get time to work on this though same with the tuner.

Last Semester Hopefully

So I am hoping that I didn't fail any class though 2 are in high question but if I didn' t then my last semester will get underway.

Job

I got a job at Harris Corporation in Melbourne, Fl so I am excited about that I am also checkout the NSA and see what they have to offer.

Friday, August 15, 2008

August Updates

Hand Scanners in the News

Recently the local newspaper for Gainesville, the Alligator, printed a paper with a bunch of news about the hand scanners that are going to be implemented on campus. The main article was neutral in its depiction of the hand scanners there were 2 others stories in the paper that described the scanners in a negative light. The scanners were featured in a satiric comic showing the scanners as unnecessary invasion of privacy and also received a dart from Darts and Laurels for the same reason. Although I am flattered by the Alligator coverage of my project, they also had some errors in their perspective of the scanners. The argument that was posed was that the scanners are an unnecessary invasion of privacy. This argument is flawed because it wont be an invasion of privacy at all. What the scanners will store to make the scanners work isn't valuable personal information. The information that will be are templates of users' hands. This template is not a picture of a hand, fingerprints, or measurements; the template is a 9-byte digest derived from an image of the back of one's hand. What this means is that this template can't be reversed to obtain the image of the original hand. So in other words. it's just an arbitrary number that when paired with an id(like a ufid), can be used to make sure a person is who they say they are. To further my point, UF already keeps information more sensitive than what will be stored for the hand scanners. They have addresses, phone numbers, and pictures of all its students which is much more sensitive than a arbitrary number derived from the back of one's hand.

Hand Scanner Project Progress

The Hand Scanner project is slowly progressing and getting closer to production quality code. Hibernate is now used to persist data to the DB2 database, Maven is used to manage dependencies, and Log4J is being used to log information about the status of the Web Application. For Ajax functions the program now uses JSON instead of raw html allowing for much more control in the defining how the information for the the server is used and viewed. In addition, it allows for more separation between view and the control. So basically it makes the code a lot cleaner. One thing I want to change though is how the pages are setup at the moment. Anytime I need information from the server without using ajax it is a pain. Since everything gets redirect to one page the normal way struts2 handles the value stack is broken because the value stack is cleared on redirect so I have to use a very hackish way to get these results by placing them in the session. Also since all info is directed to one page using the back button or bookmark functionality is no longer an option. So I want to get Tiles working with the project and hopefully this solves my problems with these issues.

Course Planner and other Project Updates
CoursePlanner is about the same as it was before but I just modified it so that it works like people expect. It was also shown to the people in charge of ISIS to see if they what I did with it. I might make it a facebook app but that unlikely. As for the other projects I haven't really started on them and the djmark is looking more an more unlikely. However the airsoft turret I definitely want to create for my senior project.

Interesting Grade News
It turns out that graduation with Cum Laude will be easier than expected and I have a long shot chance of getting Magna Cum Laude. How wicked is that?

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.