Sunday, March 9, 2008

The demon in the details

The group has mostly been rushing the project for all of today. I spent most of my time making the edit page more useable, but when you start thinking about usability and curbing the user's ability to screw up the system, it ends up being a lot of work. Moreover, sometimes, you might hit your head against a wall for hours trying to think of a solution to make a site look better, more accessible... but it never seems to work out exactly the way you want it to. It kind of nags at the back of your mind that it can be better, but you don't know what can make it better.

Outside libraries that other people have provided are nice, things like prototype, scriptaculous... etc.. but the problem with javascript being able to tie everything in together is that you end up reusing common method names or variables... and sometimes it just doesn't work because you didn't write it yourself. Since I've been in C.S. a while, I've gotten used to knowing every inch of my code like the back of my hand. Magic makes me nervous and 'trust me the library does it' makes me nervous because -from experience- they never really do what you think they do. I do find ruby to be a nice language, but I admit there's still enough magic going on in it that I still feel nervous working with it. I don't regret learning it, because I'm sure if one day I need to make a website on the fly, I know that ruby can do the job. But for long term, large company, enterprise projects, I'm not so sure if ruby will be suitable. Either way, I always enjoy learning new things, and I've realized that getting ruby to work locally is much easier than playing around with php and apache for hours without any results.

Polishing is one of those things in a project that always drives me crazy. Not because I hate it, but because I'm kind of OCD about it, even if it's fine, I can't let it go, I don't know when or how to stop and sometimes I just burn out until the last minute before a turnin. I enjoy building things and working with the project, but I always have places to nitpick and I think everyone can see the flaws that I do, but usually they don't... usually they aren't even flaws at all, and maybe it's all the product of a very exhausted, not entirely sane mind at the end of the day.

Monday, March 3, 2008

Cogs121

Oh man, I was so caught up in the project that I completely forgot that I had to blog about it. So, at the moment, we've got a lot of application on the server side properly storing/editing/deleting information. I've been making user interface adjustments for readability and general ease of use. So far, we're kind of stuck on how to make setting times/hours for hours of operation easier. But so far, no luck. Making it all nice and hands with analog clocks and slide bars seemed like a good idea, until we realized that generally people aren't very accurate when it comes to setting those things -Even on real clocks. So far, we're just going to have a slide select option sort of input, it seems like the least prone to error. I have to work on handling situations where the store's hours exceed midnight without having to deal with some nonsense having to mess with actual days of the week. I was thinking about a past midnight option button, but Marc thinks it's a bit awkward, like you're telling the user they have to think about how it's going to be past midnight. So, we're back to brainstorming. Hopefully something will come up, Microsoft's way of inserting typed input with up down keys is an options, but I know that Marc has a bit of disdain associated with anything Microsoft... yeah, but really, can you blame him? Anyways, the interface stuff is really fun, I actually wished my job was doing this instead of dealing with nonsense C# code and .Net. Someone needs to start telling small businesses to stop believing that Microsoft will just magically take care of everything. Because seriously php or ruby would have save them so much time and money.

Speaking of ruby, it's pretty cool because of all the classes that are already built in, although their 'magic' links make me a bit nervous, when I first looked at it, I spent an hour and a half trying to find out where the path had been set. It wasn't until later I realized that it had been created statically 'in' the system. probably using a special command... I'm not sure if I really want to know. Besides that little bump in the road, it has generally been pretty good. We're pretty close to being on schedule due to Marc's mad skillz with ruby. This is nice, knowing someone that is really competent is working in the same group as you, at least I'm not going to pull 3000 lines of code in 3 days like that disastrous fiasco in my web server class. Sometimes you get lucky and you get good group dynamics, sometimes you don't... I really wish more of the former happened to me while at UCSD. It would have saved a lot of sleepless weeks.

Monday, February 18, 2008

Personal problems week

Marc had some family problems this weekend and I've been sick with the flu so we're a little behind. I mostly setup the look for the page along with the user interface so that we can begin testing. We still need to setup the backend of the the website, so until that's setup, we can only directly take input from Google's AJAX API to show up on the site's front page. At the moment, it's just a Google search map that's stylized to fit the needs of our page. The user interface also uses Javascript to detect the current time and adjusts the user's current time/date to auto set to the current time/date.

Chris has also created icons for the map locations, we're still deliberating on whether the background store opening indicator will be grayscale or colored. Since Marc has also come down with the flu (geez, I hope I didn't give it to him), we're still not too sure yet because this needs to be a group decision. However, I do think that the colors for it need to be a bit more bold than what it is currently, so that it stands out from the Google pastel color scheme. I still also think the search result bar is a little small, but since we're making the map the main focus of the page, I'm not actually sure how to make it larger since the side bar's limit is only 250-300px. I suppose we might need to get some outside input on how much of the map needs to be the focus of the page. But I do now that we would like to avoid using a scroll for most of the page's contents, since it seems more contained if it can all fit in one page.

Monday, February 11, 2008

Restructuring the Project

Initially our group had a great project structure layout. It was very clean Client to PHP to Google Databases sort of map. Unfortunately, at some point, we found out that Google stopped giving out SOAP keys last year, this meant, that we were stuck using the Google Search AJAX API, which is a little odd because this meant, we had to sort of pull the information in a roundabout way, with the Client side getting the information, sending it to our code that would process it, look it up or store it in our databases and then return the output back the Client side.

It will work, it's just that, it's a kind of odd way of delivering information. We seem to be running into quite a number of unmovable brick walls as we further research the things we need for this project. Initially, we didn't actually want to create a database since using Google could have worked, but now since there is no SOAP key, we definitely have to make a database. In addition. We're coming across the problem where Google barely has any of the times for most stores and it's almost impossible to extract that time and we can't screen scrape because Google will definitely notice that kind of activity and then shut us down. I really hope this is the end of the major bumps...

Sunday, February 3, 2008

week4

Midterms are coming up and the pressure is on. I've recently found a beta heatmap app that is associated with google maps which will help my group in making the heat map for the late night restaurants search site. We're probably going to change our name since the midnightmunchies domain has already been taken.

As for the assignment, I'm thinking about making an art commission form, since I really would like to focus more on helping the group make the team webpage really superb. I think that it is okay for now create forms as long as you are only looking at the page locally, but if you were ever to put a page up on the internet with forms, most people should regex the form submissions to look out for things like: people putting in code like DROP TABLES, script tags calling other side (because they can hijack your page and inject code to break your page), and most html pages don't deal with characters like '<', '>', and '&' very well. As an extra precaution, if the user ever puts in important information like credit card numbers, the page should encrypt the information before sending it into the clear. Either using methods like a DES encryption box or XOR chaining. Because Javascript gives you so much power to access information, security is a big problem when it comes to handing sensitive information using Javascript (an AJAX). This is the reason why some pages include SSL support.

Sunday, January 27, 2008

hw3: uses for firebug

So, I've been using firebug for a while, since I like doing web stuff. For HW3, I think the most important feature of firebug is that it can help you debug your javascript, it basically turns red and shows you how many errors there are in your script code.

You can also use firebug to change your css on the fly, so you can see how it'll be visually interpreted, so that you know what changes you should make on the hard copy.

Moreover, it will show you GET and POST information (which you need for Ajax) to verify that you're correctly sending or receiving your information from the server. It can also show you the header (which can be pretty important if it holds the information that the server can parse and handle on the server side). And finally it also shows you the amount of time it takes to load an image or retrieve your code. You are planning on optimizing, you can use this information to consider certain cut backs in your code, you could create smaller images, or images that are more likely to compress better.

Go Team

So, my group for cogs121 has met up and we've gone over some design and schematics-type stuff required for our site. We're basically planning on creating a site that looks up restaurants according to hour, so far, we just want to create something looks kind of like a timeline-bar that shows when the stores will close. There's a lot of stuff on our wish-list plate like getting it onto a cell phone or creating highlighted regions (not just a list of locations). But we have to consider everything else and at least conceptually get the idea to work out.

Everyone has been assigned shopping centers to collect information and we're currently going through APIs we need and possible software/GUI we might use for the site. This is going to be an interesting project, I really hope it comes out looking really nice. At first I thought it was an original idea, but I think one other person has kind of tried it, unfortunately his site is kind of ugly and umm... the user interface isn't the most visually informative, so it never gained much popularity.

This will be a pretty interesting experience and I'm quite happy that I'm doing web stuff and developing a web service instead of crunching numbers and dealing with low level stuff for animation. Unfortunately, it, like Prof. Powell said: 'It may all go away within these next ten years', so I guess I'll savor it.