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.

Thursday, January 24, 2008

week3- A2 q's

Using CSS over using HTML's physical tags is beneficial in many ways. First, it gives you more variety and say in your page, while HTML is very good for the logical tree layout, CSS can cover all physical tags that even some browsers have issues with rendering. Second, CSS allows you to link reference to a separate file, this allows you to make changes across every page in your website. Third, because you don't need to repeat the CSS information across all HTML pages, your overall website costs less bytes, which is a very good payoff because this means the site will render faster.

The difference between classes and ids is that ids are only for tags that will be unique to that page and classes are for tags that you will be using multiple times on a page. While, their importance may not seem to stand out right now, when you get to Javascript, it is important because a very commonly used function in javascript is .getElementById . If you mix up the classes and ids, the javascript won't do what you want it to do.

Sunday, January 20, 2008

week2

Working on webpages is sort like a love-hate relationship. On one hand, it makes you feel awesome when your page is well received and looks really nice. On the other hand accommodating your page to deal with what piece of garbage the IE browser renderer is, is what makes most people run away from webpage design. Webpage making may seem easy at first, but it's fickle with it's own rules and irrational reasons for why it moves images and spacing.

Having done some of this before, if everyone thinks IE acting fickle over HTML & CSS is bad. Wait until they get to Javascript... or should I say Jscript. Jscript is basically a black box attempt by Microsoft to emulate Javascript. Unfortunately, seeing how well the IE browser renders HTML and CSS, you can guess what a mess Jscript is. In addition, I've been hearing recently that because Javascript is planning on adding classes and some nice aspects of Python, Microsoft's Jscript team has been caught unawares so they've been spreading nasty rumors about Javascript's new version. It's all one big flame fest in the forums now between the Javascript team and the Jscript team. This should be interesting...

Moreover, one thing that should be interesting to show to the class, how badly IE messes up css implementation by just having it run through the acidtest. It's ridiculous how off they are compared to most browsers out there. I'm almost tempted to write javascript code to redirect anyone coming to my site using IE to the firefox download page.

Thursday, January 17, 2008

Happy to Begin COGS121

Sorry, I'm a bit late in getting into this class. I didn't actually realize that the topic for this class this quarter was mostly client-side web programming, which I love with a passion.

It's just one of those accidental things where I entered computer science convinced that I would like computer graphics because I loved art so much before. Unfortunately, it wasn't so. In fact, I realized that I loathed programming graphics and I was devastated because I had worked so hard to push towards a career that I had put on a pedestal only to realize that every moment I was programming graphics, I was miserable.

Then, one quarter I took client-side web programming, and then I realized that this was it. This programming sub-category was my forte and not only that, I found it to be so much fun to play around with. So, seeing that COGS121 was doing a client-side web topic, I was ecstatic and I signed up right away after checking out the class website.

YAY!

I know I'm almost 2 weeks late, but I'll definitely make up for it.