Archive for category School Related

You know its finals time…

Analytics Pageview Rankings

A few quarters ago, I took PHIL 230. Our final exam had a quote id section so I quickly wrote a quiz app which I distributed to the class. Since then, the professor has been circulating the link as a study tool. So once a quarter, my web traffic spikes a day before each final exam :).

Last Quarter's Statistics

This Quarter's Statistics

Pageview spike this quarter

Last Quarter's Statistics

If you want to try it out, swing over to:

DISCLAIMER: I wrote this in all of two hours or so and never looked back… I know there are some backend flaws, so don’t break it please :)

No Comments

Senior Project Done!


Finally! It is done! The weight of 50 pages of senior project in my hands make me happy. If you’re interested in reading it, it’ll be up on digital commons soon enough (keep an eye out for a link).




eWeek 2010!

I have not posted for a while, mostly because this quarter has been busy as hell! Most of it thanks to eWeek (Engineers Week). I’m on of the directors for eWeek and that means I’m responsible for overseeing and planning over 22 events over 4 days.

We did some pretty cool stuff for eWeek, the biggest thing in my opinion was our awesome barcode system! In the past, we used “passports” as a marketing tool to encourage people to attend our events. At the beginning of the week, people can pick up a passport and at every subsequent event they attend they get a stamp. The more stamps they collect, the more prizes they become eligible for (including a HDTV!). While this system was effective in increasing event attendance, I saw an opportunity to collect more useful statistics by using a barcode tracking system.

I developed a web application in collaboration with Brian Oppenheim which allowed us to track who came to our events and when they came to our events. This data allowed us to analyze the effectiveness of our publicity, popularity of events, the most effective times to schedule events, major (EE, ME, CSC, etc.) representation at events, etc. etc.

I’ll probably have to write a blog post about this system eventually… but for now… enjoy these photos!

(also a video to come).

eWeek 2010 Website:

Photos on Flickr:

Day 1 (Tuesday):

Day 2 (Wednesday):

Day 3 (Thursday):

Day 4 (Friday):

, , , , , ,

No Comments

Fractal Landscapes

CPE 471 Fractal Landscape

This might be the most interesting graphics project I’ve worked on all quarter. Most of the other projects were pretty boring but this one… I just can’t seem to put down. I finished it at 2AM last night, but managed to stay up till 6AM tweaking it for performance. I didn’t even realize the time pass. Anyway, I spent most of today further modifying the lighting and various characteristics to make the scene look more realistic.

So first, if you haven’t heard of fractal landscapes, here is a little background reading:

The initial rendering: Recursion depth 9.

CPE 471 Fractal Landscapes

CPE 471 Fractal Landscapes

The first aesthetic addition I added was fog. Fog is very trivial to add in OpenGL. Then I added sky. Sky was pretty simple too, it is a square with a gradient sitting in the background.

CPE 471 Fractal Landscapes

CPE 471 Fractal Landscapes

CPE 471 Fractal Landscapes

At this point, I was pretty satisfied… but I was unhappy with the resolution of the landscape… the polygons were still too large and you can see where they join. So, in order to increase the recursion depth, I had to optimize my program further. The first optimization I had to do was to speed up the rendering. For 9 levels of recursion, about 262,144 polygons are drawn per frame. For 10 levels of recursion, about 1 million polygons are drawn per frame. Initially, without optimization to my original approach, I was able to get the program to run at an acceptable frame rate at 8 levels of recursion. After simple optimization, I got to 9. And after working on it today, my program handles 11 levels of recursion (just not smoothly :P). I think 11 looks pretty good so I actually have not tried more. The trick was to reduce the number of calculations that needed to be done at the time of rendering. I essentially performed all the calculations for the vertices, normals and colors before hand and stored them in a linear array. Then during rendering, I simply load them all into a GL_QUAD_STRIP.

After I was satisfied with this, I also played around with lighting. Initially, the scene was lit by a single light source from behind the camera. This is not very realistic because the sun isn’t always directly behind you. Anyhow, I turned that light off and added a light source from the right as well as a orange-ish light from the back to give the mountains some backlight and define the shape a little.

Here are some examples rendered at recursion depth 11.

CPE 471 Fractal Landscapes

CPE 471 Fractal Landscape

It was interesting to think about to light this landscape. Photographers constantly think about how their subjects are lit and how to light them, but rarely do they ever have the opportunity to light an entire mountain!


ACM–WGBH Initiative Finds Large Gender Gap

An ACM press release today announced that they have findings which confirm that there is low interest among females in computer science. Well we already knew that… so how do we fix it? That’s the real question.

And another interesting point from the press release:

80 percent of today’s college freshman—the very students that grew up with computers—said they had no idea what computer science majors actually do.


Anyway, I’m excited to be a part of our school’s outreach initiatives to increase interest in computer science. Hopefully, more incoming students will actually be aware of what computer science really is.

Links: Press Release <>

, , , , , ,

1 Comment

Cal Poly Open House 2009

I created a video from photos taken at Cal Poly’s Open House 2009.  Still photos are shot by my 40D and timelapses were done by the Rebel XT tethered to a MBP.

Cal Poly Open House 2009
from Prentice Wongvibulsin on Vimeo.

(Or watch it HD on Facebook)

And check out the photos here:


No Comments

Baker Fourm Notes




SUNDAY, MAY 4, 4:30 to 5:30 P.M.


  • Age of Information and Telecommunications
  • Age of Oil, Automobiles and Mass Production

IT Revolution is Changing the Way People Communicate

“The Internet Is Empowering”
Billions of people to communicate and collaborate using all forms of human expression–data, voice, video–without regard to location, whether at work, at home, at school or on the road.

Friend in Africa is building two libraries a year. Two are already done. Building two more this year.

Using the internet — he can connect the libraries in Wiscansan (sp?) and Vaswana (sp?). “The network”

“Without the internet, this could never happen.”

“It is truly becoming a global community”

Tried to take away Guava juice and…

“They electronically stormed us, they took down our network for a couple of days”

I-Zone Wiki

  • Open to entire company
  • Collaborative workspace: employees create, comment and/or modify ideas
  • Top ideas developed in Action Leadership Forum

“Information can freely flow into teams who can implement and develop those ideas.”

“This is the Future Polytechnic Grad”

  1. Ability to think like a scientist — problem solver.
  2. Effective working in teams — multi-disciplinary, multi-functional
  3. Good communication skills — writing and speaking
  4. Depth of knowledge in their field
  5. Ability and desire to continue to learn
  6. Diversity awareness in broad contexts — people, ideas, cultures, disciplines

“The ability to go deep, but also be broad.”

No Comments


For a class I’m taking next quarter, I was looking for a lightweight repository I could host on my shared host which would replace SVN.  I came across Mercurial and after playing around with it a bit, I think it may prove to be a very powerful tool.  This tool will work well for this project because there will only be two people working on the project and the complications of using SVN will only inhibit productivity.  The big idea for Mercurial is getting rid fo the central repository.  Instead, each client “clones” the repository and works off their own local repository.  When they’re done making changes, they “push” their work back to the central repository.  When changes have been made by other users, you “pull” those changes.  see the quick start.

Mercurial Quick Start


Quick Start Guide

The key feature I really like about Mercurial for this project is the fact that it is very lightweight.  It works without having to modify Apache!  This allows me to use my shared host to host my repository!  Something you can’t do with SVN.  All it is is a CGI script.  See our repository:

, , ,

No Comments