Nov 11 2008

Hiram College

After I graduated from Aurora High School I was accepted to Hiram College, a private liberal-arts school in Northeast Ohio. I brought to college a more sophisticated work ethic than I had in high school, and an open mind. My first course, The Quest for Justice, was taught by one of my favorite professors, Ken Alpern. I’ll never forget my first class with him. Imagine 20 or so students loudly piling into a classroom. Ken just sat there, like a stone, stoic in his stature. Settling whispers and coughs crescendoed to a roaring silence. Still, he sat there gazing upon each of us. Clutching our copies of Plato’s Republic we sat there not knowing what to expect, and in a state of paralytic fear. Then he spoke, quietly and somber, yet somehow loud and thunderous, “Open your books. We will read the first sentence together. This will be the first sentence you will read as college students, and it will be from a text that has had profound impact on humankind. Remember this moment.” As he began to read aloud we read along in silence. It was Socrates talking, “I went down to the Piraeus yesterday with Glaucon, the son of Ariston.” In that day, my first day of classes, Ken set the tone for the way I approached higher education. He also, perhaps unwittingly, peaked an ongoing interest in philosophy. Over the course of 4 years at Hiram I had 3 courses with Ken all of which were top-notch. When one speaks of memorable teachers he surely has a place among my top 5.

Unlike many other students I knew coming into college exactly what I wanted to major in, computer science. Hiram’s CS department is extremely focused, challenging and educationally demanding. We are the only college in America to have an all female faculty, and also one of only a few that require 2 research projects before graduation instead of just 1 which others schools normally ask of their students. There will always be a place in my heart for the 2 senior faculty members, Obie Slotterbeck and Ellen Walker. Their lifetime experience alone is a wealth of knowledge, and their enthusiasm for the subject matter second to none.

My proudest moment as a professional student was my research project done in Ellen Walker’s Computer Vision course. I developed a fully supervised and trained vision detection system for classifying sign language letters within photographs. I approached the project with the same energy and determination I had in my chemistry project. I dominated the research and understood every technical detail required to make my system work. The satisfaction I had from the project was some of the purest ever felt. When I gave my presentation to my fellow students and professors a great exhilaration came over me. You know what’s a great feeling? Working your ass off for something that you know you’ll get an A in, and having 100% confidence going into a presentation that you won’t get anything but an A.

Like most people who look back on their college years I remember mine as being some of the best of my life. Unlike most people, however, I don’t want to look back on them as if I can’t have even better times ahead of me! I am not done with life! I still have things to offer this world and things to do. After graduating it was a very strange feeling to not be returning to school the next fall. I miss learning. I miss research. I miss that undescribable spark a person feels when they’re on a campus with other smart people who are equally active in educational endeavors. The atmosphere is viral and electric. Hiram College, if nothing else, injected into my soul a desire to learn even more than I know today. To defend freedom of thought. Lastly, by generating a pang (sometimes painful) that I should strive for even more learning.

In the words of Hiram’s motto — fiat lux — let there be light.


Nov 11 2008

I love computers

In 5th grade a lot of my friends began to get computers. I didn’t really know what they were, why someone would want one, or what they could do. After all my 8-bit Nintendo was enough technology for me. It wasn’t until I became friends with Nat Walizer, a classmate from Solon, that I began to realize the potential uses of computers. He introduced me to programming. Besides offering fun games, and a way to write papers for school, all Windows PCs were shipped with an interpretive language programming application called QBASIC. What this allowed you to do was to write lines of instructions telling the computer how to behave. I was instantly hooked. I can’t explain whether it was my affinity for logic, my desire to create things (as if I were God), or to just mess around with a cool piece of equipment. Something struck me in my core and I knew it even at that young age. This was what I wanted to do. This was me. I threw myself into QBASIC; often choosing to code instead of doing my homework. I created math games, adventure games and Pong. As my accumen and talent grew I developed graphically superior games such as a fishing game, a fighting game, a space invaders game and — my crowning achievement — a fully functional Monopoly game that had an on board screen that looked exactly like the real board.

The time I spent exploring the computer was in itself a course. When I chose to play on the computer I was developing the analytical skills programmers need. In retrospect I’m so happy that I worked on my programs than do some meaningless homework assignment. I wish I could convey the great feeling I have for my memory of these times.

As I grew older I developed greater skills and attacked more sophisticated languages. My foray into Windows applications was facilitated by Visual Basic. Then later, while in high school, my parents paid for private lessons in C++ at Hiram College from a student there. By the time I entered Hiram College as a student myself (you’ll read about this later) I had such a commanding understanding of underlying computer architecture and technology that I hit the ground running. While all these logical stimulations were good at serving my left side of the brain; they neglected my right side of the brain, and I needed to satiate it with art.


Nov 10 2008

Facebook Profile Image Hacking

Any savvy web developer who uses Facebook knows that you can pretty easily hack the image URL from the website by replacing the “s” (or sometimes “t”) in front of the image name with an “n” to get the full sized image.  For example http://profile.ak.facebook.com/v230/494/97/s58600109_2901.jpg gives a medium sized version of my profile pic whereas http://profile.ak.facebook.com/v230/494/97/n58600109_2901.jpg gives the actual size.

The trick is handy when you come across a person who’s not a friend, but you still want to view their full sized photo.

The problem is, of course, that this can be construed as a privacy violation since you’re circumventing the intended protection Facebook affords its members when they limit profile viewing.  I’m not going to debate what should, and should not, be allowed on the site — I am, however, going to make a simple suggestion on how Facebook can improve their profile image viewing, and prevent this type of hack.

The problem right now (unless I’m greatly mistaken and some Facebook developer can correct me) is that everytime we update our profile pic 3 versions are saved: a thumb, a small and a normal — T, S and N respecitvely.  That means there are 3 seperate jpg images on their servers which can be accessed by anyone with the internet who knows their URL.  As stated above this creates a concern for privacy.  The fact that Facebook creates 3 seperate images isn’t a problem; in fact they probably do this to rely on speed boosts from caching.  It’s not even a problem that they’re all named the same thing except for a one letter difference; although changing the name of each file would solve the problem.  This, however, would create a great deal of confusion if a human ever had to deal with the images, and could potentially require another 2 columns in a database.  The problem really boils down to whether the URL is hidden from hackers to prevent possible manipulation.

Truthfully, there are only 2 pieces of information Facebook needs to know in order to render a profile pic.  They are 1) the user id and 2) what flavor of the profile pic they need to render (ie. thumb, small or normal).  We also know that PHP can stream jpg image data as it’s script output.  So it’s then totally reasonable to propose that we can then use a URL for an image such: profilePicRenderer.php?profile=58600109&flavor=s

The profilePicRenderer.php page would then interpret this and stream the appropriate profile pic to the page as a jpg image.  If someone were to look at the source code of the rendered HTML they’d only see the profilePicRenderer.php URL.  Furthermore, since Facebook would be hitting their server (which they’d have to do anyway to return a jpg image in their current system) they’d have the added benefit of being able to do some privacy checking.  They can ask and answer the following: Is a person logged in who is trying to stream this jpg?  Is a person a friend of this person?  Do they have rights to view this image?  All the important privacy checks could be accounted for in a few CPU processing cycles.  True, performance might be hit, but the images would still be cached once the user “suffers” the first time.  A decent price to pay for peace of mind.

The only problem I could foresee is a caching issue.  Right now evertyime a user changes their profile pic the image name changes.  This in turn tells the browser to immediately download the new image and store that in the cache as well.  I think, note that I’m not sure, that we could get around this by always including a special string in our profilePicRenderer.php request which could look something like this: profilePicRenderer.php?profile=58600109&flavor=s&cacheTrick=23fj23kjf

The cacheTrick variable would be maintained on the server, and associated with the profile pic, but not the same name as the profile pic itself (since this is what we’re trying to avoid!).  This way each time a profile pic was changed by a user it would also create a new cacheTrick variable and this could be used to signal the browser that the cached image is old.


Nov 7 2008

HTML Form Tags

The <form> tag in HTML is used to wrap data elements (textboxes, checkboxes, radio buttons, etc.) on a webpage to prepare them for submission to the server. Nearly every form you fill out on a website uses a tag of some sort. But there’s one cosmetic issue that plagues tags, they don’t ever display in true inline!

When you wrap data elements with a tag you will probably see that there is additional whitespace above and below the and </form> tags when you’re viewing the actual website. This is because the <form> tag doesn’t respect true inline styling when it is rendered (or rather the browser doesn’t treat tags with true inline styling). This can sometimes be annoying when you’re attempting to layout a precise spacing scheme for a website you’re working on.

The best solution is to include a style attribute in the tag specifying a display element as inline. So you may want to do this:

<form action=”test.php” method=”post” style=”display:inline”>

form elements here

</form>

This will get around the cosmetic issue of the extra whitespace on both sides, and gives the developer ultimate control in spacing choices.


Nov 7 2008

5 Tech Gadgets I Can’t Live Without

I’m a big nerd, and I don’t care. I love gadgets, and I love depending on them and exploiting every facet of technology for my benefit. If there’s an electronic device or service that can make my life easier or better then it’s probably owned by me, or something I will own soon. I literally get a hard on for technology.

1. My PDA/Phone/Smart Device
This is perhaps the greatest marriage of devices in tech history, besides of course for the mouse and keyboard. Just a few years ago people would carry multiple devices (I was one of them!) but the day these two gadgets decided to get it on will live on as the greatest step forward for mobile computing. Pockets around the world cheered in relief. I use a Moto Q and it is absolute bliss. My life is on my phone, and my life would be nothing without my smart device. I feel naked without it.

2. My Car’s GPS Unit
Whether you have a top-of-the-line device, or your phone is spitting out turn by turn directions, it is by far one of the coolest affordable tech gadgets you can get today. As a person who likes having information available to him instantly, and who always wants to know what’s going on, how could I not have a GPS device? GPS is simply awesome, and when I drive a car without one (even if I know where I’m going) I feel lost. Having the ability to always click the “Take me home” button if I’m somewhere I don’t know is a very reassuring and soothing feeling. All cars should come standard with this feature – no questions asked.

3. DVR and/or TiVO
I’ve had my DVR for just one week and I’m already spoiled. How cool is it to pause live tv when you run into the kitchen for a snack? Or to record shows simultaneously while watching another channel? I’ve already set my DVR to record every single COPS episode in existence. The only thing I wish they’d add is the ability to skip commercials from recorded programs, or to include a “Jump ahead 30 seconds” button to quickly get to your program. Do you hear me Pioneer? Make this functionality and you will make even more money with your DVR devices. But even without this it is still just awesome.

4. My Laptop
I have a TX series Vaio from Sony, which is one of their smallest series. When I need computing power that I can’t get in my phone I pack up my Vaio and head out the door. It is my little baby, and does everything I need it to do when I’m not at my main computer at home. I’ve even downloaded a program called PDANet which allows me to get wireless internet through Sprint so I can browse websites whenever (and wherever) I want. My laptop is the perfect device to go to a meeting and take notes with, and to show presentations on. And when it’s time to play I pop in a DVD and it’s instantly a portable DVD player. Without a doubt it I’d be lost without it.

5. 360 and Wii
God made videogames so we can blow up our friends virtually. There is nothing quite like getting a group of friends together, drinking, and shooting things. Videogame consoles provide a mechanism to relax and have some fun unlike anything else out there. I love my 360 (even though it’s died once) and I find the Wii to be so incredibly unique that I play it almost as much as my 360. Take these two things away from me and I might blow up my friends for real, and who’d want that to happen?


Jun 16 2008

MIME types are getting ridiculous…

application/vnd.openxmlformats-officedocument.wordprocessingml.document = docx

A bit too much? I think yes.


Jul 9 2007

CTRL+Z Applies Only to Computers

This is sad. I was writing something today with a pen and made a mistake. Amazingly the first thought in my head was, “Don’t worry, Art, just press CTRL+Z to undo it!”

Definitely can’t do that in the real world. And that was definitely not the first time I’ve ever had that thought when I made a mistake writing.

I keep saying computers will be the eventual downfall of society but no one, especially Matt Coleman, listens to me.


Jun 21 2007

God reads knee mail!

I was caught at a red light today and saw a yellow bumper sticker proclaiming, “God reads knee mail!”

I sat there for a minute contemplating how awesome the bumper sticker was, and wondering where they bought it (note to self: search on Amazon when I get home). 

Then I looked down at my “WWJD” bracelet and thought, “Man, I am so glad other people out there love God and technology as much as I do. And I’m so glad that a bumper sticker exists combining the two.”

PS: Go see “Jesus Camp.” It will change your life… for the worse.


Jun 7 2007

Google Image Search Face Hack

Doing a Google image search? Want to only show images with faces in them?

Add “&imgtype=face” to the end of your URL and hit enter. 

The results will now be filtered by images only containing faces.


Dec 19 2006

“tiananmen square tank” Google Search

American Google Image Search for “tiananmen square tank”
http://images.google.com/images?hl=en&q=tiananmen%20square%20tank

Chinese Google Image Search for “tiananmen square tank”
http://images.google.cn/images?hl=zh-CN&q=tiananmen%20square%20tank