Archive for the ‘Uncategorized’ Category:
Job Search Update
I’ve been searching heavily for a web app job in the Seattle/Tacoma area for the last month, and despite the fact that I’ve probably applied to 200+ jobs, I’ve only ever spoken to someone about maybe 40 of those jobs, and I haven’t yet found someone who will give me an in-person interview (I even state up-front that I’ll pay for all my travel costs for an interview).
Since Rice’s CS curriculum really pushes OO Design in Dr. Nguyen and Dr. Wong courses, I feel like I have a more-solid-than-most command of OOD and (some) design patterns. Combine that with my 6 years of writing web apps in PHP, and I feel like I’m a pretty strong candidate for all entry-level PHP dev jobs, and probaly most mid-level ones. Good fundamentals, experience and samples to back it up. And most of all, I am very confident in my ability to tackle a design problem in PHP.
But obviously that’s not good enough, and I need to do more to grab hiring managers’ attentions. I’ve recently been trying to bolster my portfolio with an impressive app build on the industry’s latest and greatest technologies. Right now I’m working on my “car identification” site, WhatTheCar, and I’ve been building it using as much prewritten good code as possible: CodeIgniter PHP RAD Framework, FancyUpload (used by Flickr) by digitarald which uses the MooTools js library, reCAPTCHA (used by fb and craigslist), the Template library by Collin Williams, the Redux Authentication Library, base styles from BlueprintCSS, and prototype and scriptaculous js libraries for effects. Integrating all these different components into WhatTheCar will at least give me more experience in engineering complete application systems from an existing codebase.
But I have no idea how long this site is going to take, and I need a job now. So I’ve decided I need to maximize my immediate future in getting noticed. And one of the ways I think that I can do that is by getting Zend Certified for PHP5.
So over the next few days I’ll go over the study guide for the certification exam to get a better idea of what certification entails. And then if I get certified I can use the certification as an extra testament to my php experience.
Cheers.
Current LaSalon.com design
Village La Salon - Draft 1
I’m currently working on the website for a local salon and spa in Rice Village, Village la Salon. They own a pretty fancy domain name (lasalon.com) so I’m trying to create an equally fancy design for them.
Here’s my first draft that I showed them. They’ve asked for a steeper angle on the photo to show more of the salon. I also think that the colors are too flashy, and I should scale back the design to something a little less colorful.

COMP410 Presentation
Intra-site Server Hopping
Have you ever had to add dynamic features to an existing website that ran on a webserver that only supported static HTML? I’ve been presented with this situation twice in the last six months, and I’ve solved it the same way. I use a different server with the capabilities I need, clone the layout, and host the few dynamic pages on this other server. Here’s the two examples.
bakercollege.net was running on JSP/Tomcat when I inherited it. I’d never written a JSP before and I didn’t see any need to spend the time, so I just threw some static HTML pages up with a fresh Layout. At the beginning of the academic year, the college president asked me to add a couple “Anonymous E-mail” forms. The only way I knew how to do this was with PHP’s mail function. So I threw up a couple new pages in a directory on THIS site, http://justinfaulkner.com, I copied the layout from the main site so as not to throw off the users, and I linked to the forms from bakercollege.net.
Here’s some screens. First, here’s bakercollege.net, the static webserver:
Now, here’s the cloned layout on a page on justinfaulkner.com.
And here’s the other (more recent) example. The Rice Computer Science Club Website runs on Rice’s RUF (Rice Unix Facility) servers. As far as I know, it doesn’t support any server-side scripting languages. When we needed a Polling application, I immediately sought a way to host PHP, and temporarily converted http://justinlol.com into our Poll Booth. Once again, I cloned the site look-and-feel and hosted a couple pages on justinlol.com that I linked to from http://www.ruf.rice.edu/~geeks . Here are the shots:
This is the Rice Computer Science Club Website:
And now here’s the cloned pages running on justinlol.com

Here I'm trying to hide the fact that this page is on a different server than the main CS Club Website
So I guess my question now is, “Is this ethical?”
There is a certain trust between the Look & Feel of a site, and the identity of that site. Am I allowed to define the Rice CS Club Website to exist on both the Rice RUF and on JustinLOL.com? I would say so: I’m the webmaster, I define where the pages are stored.
But then again, am I weakening that trust in website brand identity by legitimately splitting up the site between servers/domains like this? These two independent servers may both host content from the same party (me) but who’s to say that other people won’t copy the Rice CS Club layout and try to pretend like they’re legitimate off-server clones? And even scarier, what if you were to arrive at one of these clones from a link on my site? Would you even notice? What if, say, a text-based ad from AdSense on bakercollege.net just happened to point to a bakercollege.net illegitimate clone?
I feel like my uses of multiple servers to host dynamic content and static content for the same site is fair, although perhaps I should warn the user that they are technically leaving the Rice-managed web-world, lest someone notice on their own and feel like I’ve breached their privacy.
MySQL INSERT Syntax Error key
Problem
Error inserting into databse: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key) VALUES ('asdfasd','asdfasdf','283a7384578c2')' at line 1
INSERT INTO users (netid,name,key) VALUES ('asdfasd','asdfasdf','283a7384578c2')
users table structure:-- -------------------------------------------------------- -- -- Table structure for table `users` -- CREATE TABLE `users` ( `userid` int(11) NOT NULL auto_increment, `netid` varchar(7) NOT NULL default '', `name` varchar(40) NOT NULL default '', `key` varchar(64) NOT NULL default '', PRIMARY KEY (`userid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
INSERT INTO users (netid,name,`key`) VALUES ('asdfasd','asdfasdf','283a7384578c2')
How popular are File Sharing sites?
I was curious how much traffic Bittorrent tracker sites actually got, so I headed over to Alexa.com and checked out their Top-100 Rankings for the United States. The top two tracker sites in the States are The Pirate Bay and mininova.org, but they rank in at a surprisingly low 91 and 99 out of 100 for traffic rank (defined here).
Non-Bittorrent sharing site RapidShare Ranks in at an impressive 31.
Gmail’s down! What do I do!?!
I’ve become painfully aware of how Gmail dependant I am. I was expecting an e-mail from a friend when their Gmail account went down. By the time they’d sent the message from a different account, my Gmail account had kicked me out to this error screen:
The Gmail team is currently aware of a subset of users being affected
by the 502 error on login. Our engineers are looking into the issue
and we will provide updates here as they become available.Thanks,
Gmail Guide
Object-oriented PHP and Codeigniter
My project of the moment is my restaurant review concept, Yum Houston. I’ve been working for about three weeks and I’m now in the early development. I’m starting off by building a large codebase of classes that I’ll need. My framework of choice for going from idea-to-product fast is (as always) Codeigniter. Armed with my trusty-duty sidekicks Dreamweaver CS3 and Filezilla, development has been quick and easy =). I also recently moved off my terrible dedicated server onto a new Grid account with Mediatemple (mt). Everything is fast, easy to use, and I’m extremely motivated.
I’m taking my time on this project, trying to make sure I code things right the first time. I’m trying to use as much object-oriented (OO) principles as seem appropriate as I go (you know, make the Rice CS profs proud). I’ve developed using Codeigniter (CI) several times before, but exactly how to apply my in-class OO knowledge in the Codeigniter framework escapes me at times: I’m usually extremely uncertain as to where I should create my own classes that actually DO STUFF. There are these controller and model classes floating around, but where do I put my class “Restaurant” that knows its location and its food type and knows how to display itself?
I stumbled across a great introduction to writing applications using CI on Jim O’Halloran’s Weblog – I ended up deciding to create a “single record” class Restaurant that was a model. I gave it the appropriate fields (location, food type, name) and wrote a load($id) method. I’ve honestly never written OO code that accessed a database before, so the concept is new to me. Generally, you load the data from the db into your object: my load($id) function takes a restaurant id, looks up its name, location, and food types, and sets its fields to the appropriate values. Getters and setters let me modify the object. And when I’m ready to save it back in the database, my save() function does just that. This is apparantly really common, I remember seeing it before. Up til now, I just havn’t realised where I could use it.
This brings me to the second point of this post. I’ve been happily coding for about a week now on my new (mt) account with CI. While I’m developing all sorts of errors show up, usually because I’m careless, or I don’t quite remember PHP syntax or CI convention. While I was trying to code all “OOey” I tried modifying the visibility of some of my class fields. PHP kept throwing my “privates” back in my face, though. public, protected, it didn’t matter. I also tried privatizing one of my controller functions. When private function function_name() didn’t work, I even tried swapping the function and private, in a last ditch attempt.
It didn’t take long before I realised that the keyword var seemed to always solve my field problems. And the var keyword looks so very old in my nubile PHP-coder eyes. That’s when I decided to throw up a phpinfo() in my script.
Sure enough,
PHP Version 4.4.8
I’m terrified that it’s taken me this long to figure out that I’m not running “all new, with great OO!” PHP5. All that I even noticed was that __construct() and private never worked. What were some other clues that could have tipped me off?
Well, anyway, I’ll be sure to look into how to switch to PHP5 tomorrow — It’s just a setting in the (mt) control panel, I’m sure. And then hopefully I’ll be off __construct()ing and privating in no time.







