Help Save UVU girl from Leukemia
October 10, 2009
Dear all,
I recently heard about Urangoo, a student from Monglia at Utah Valley University. She was diagnozed with leukemia and unless she has a blood marrow transplant, she only has a few months to live. The operation costs over $300,000 and she has no health insurance. I don’t know Urangoo, nor had I ever heard of her before. But her story has touched me profoundly, and I am doing whatever I can to get the word out, to give this beautiful girl the chance to live and be happy again. Please, spread the news about her and make any donation that you can, however small it is. Her web site has a link to a paypal account set up for her. Thank you all for taking your time to read this.
Lab 6
April 17, 2009
I did this lab in Netbeans and used a java libary that David Wilcox blogged about. It took me all 2 hours to finish this lab. I initially started it in PHP, but didn’t want to learn php gtk, so I just took advantage of the drag-n-drop functionality of netbeans, to create the UI. The code for actually approving the images/comments was pretty easy with this library, and boy did I appreciate using a statically typed language as opposed to PHP’s dumb errors that you only get to find out after you’ve ran the code, and in the process screw up some comments or images.
Lab 5
April 17, 2009
This was a breeze lab, after lab4. I found some really good tutorials on manipulating images with PHP’s gd libary. This lab didn’t take very long at all. One thing I would like to do (which is very simple) is to delete the images from my hard drive whenver I’m done storing them into the S3.
One problem I ran into with this lab is testing. Someone had left their image processing deamon running and I was never able to test mine live on the cloud. That issue replicated into another app server deamon, where messages were taken out of the /imageresults queue to the /approvalprocess queue. It turns out that the image description, submituser, and submitdate, were being put as arrays into the /approvalprocess sqs. It took me about a half hour to find out that before encoding the message into json, I had to enclose the description, submituser, and submitdate variables into double quotes so only the value got stored.
So, when creating the array instead of doing
$msg = array(…, ‘description’ => $description, …)
I had to do,
$msg = array(…, ‘description’ => “$description”, …)
Lab 4
April 17, 2009
Like for lab 3, I used PHP with the Tarzan libary to implement this lab. I had some rough patches along the way especially dealing with getting the images from the web server and putting them on to S3. Also, this was a good practice with the SQS queues for this lab.
The deamon’s weren’t so hard to write either. I just had all my deamons in separate files that would only run once, but had a deamons starter program that would loop endlessly starting up each deamon script every time through the loop.
Also, big thanks to Jeff Peters for putting the image and comment timelines all in one place, as they travel from the user through the different servers and Amazon aws’s.
Lab 3 – Implementation Notes
April 13, 2009
Lab 3 went pretty well. I used PHP to implement it with a library called Tarzan. Tarzan is pretty straightforward and has a very intuitive interface with some exceptions as far as documentation is concerned. After getting some pointers from Kekoa, I was able to finish it up quickly.
Currently, I’m struggling with Lab4, and have hit some dead end points so far, specifically using tarzan to send an image to S3 and creating new items in the domains. Tarzan is not very specific on this particular issue, so I don’t know whether I’m doing the right thing or not. Also, my extremely slow internet connection has been a pain to work on this lab.
appserver image submission
April 9, 2009
I’ve been thinking of several ways of generating the imagekey (and commentkey) but seems like there is some sort of convention going on. In fact, I don’t think I’ve seen any other format for these guids in our simpleDB other than “21a4ddf4-c23e-11dd-ad2d-123139026094″.
What are you guys doing to generate such things. I tried to see for a pattern, but can’t really tell so far. I thought about getting the IP and timestamp in milliseconds, concatenate them together to make the GUID, that would ensure uniqueness.
Creating and Persisting an AMI
March 4, 2009
This lab went pretty good. It wasn’t difficult at all, as long as you knew what you were doing. I spent a considerable amount of time understanding what the lab was supposed to do, and I don’t think I got it until I read the first few chapters of the O’Riley’s book “Programming Amazon Web Services”.
Once I understood the idea of Amazon web services, it was much clearer as to what I needed to do, and so I was able to complete the lab without much obstacles.
After I started an instance of a preconfigured AMI, I went ahead and installed all the software that I thought I will need for my AMI to have whenever I boot it up. Since I persited my AMI based on a Fedora Core OS, I just used ‘yum’ to install the packages such as java, mysql, python, modpython, boto, php, httpd, and some others.
Then I created a boostrapping script that would deploy my locally developed code to the AMI. I wrote the sample “Hello, World” web page in PHP, just to make sure my server on the cloud works properly, and used python for the bootstrapping script.
CS 462 – Large-Scale Distributed System Design
March 4, 2009
This class (coded as CS 462) at BYU is a project-oriented class, where we will be spending the entire semester building a large scale distributed system based on the Amazon.com web services. The system we will be building, is a photo-sharing web site where users can view/post pictures, make comments, and rate the pictures.
So far, the class has been fascinating, especially that it is being taught by one of the pioneers of online applications and someone who has vast experience with building large scale systems. It has been a joy attending the lectures from Dr. Phil Windley as we discuss very interesting issues regarding distributed systems.
The labs on this class are structured so that each piece can work as a standalone part of the distributed system, and as each lab is implemented, it will be integrated with the rest of the system. By the end of the class, we will have a complete working distributed system by integrating all six labs.
How to enable MultiViews in Apache
February 5, 2009
Sometimes, your URLs need to look something like http://hostname.com/list/popular, where popular is not a directory but a popular.php file inside the list directory and you don’t want to specify the file extensions. One reason for this could be that if you are only implementing the view of a web application that calls web services on an application server, the application server may have the URLs implemented that way, so you want to map the same URL paths and format.
Apache makes this easy with the MultiView option, which can be set within <Directory>, <Location> or <Files> section in httpd.conf.
The format of the Options directive is:
Options [option 1] [option 2] … [option n]
So, to enable MultiView, you would set that with the Options directive. For example:
<Directory "C:/xampp/htdocs"> #Other directives here...
Options Indexes FollowSymLinks Includes MultiViews
#Other directives here... </Directory">
Now, by having MultiViews as an option to the Options directive, I can just type http://hostname.com/list/popular, instead of http://hostname.com/list/popular.php