Archive for March, 2011|Monthly archive page
I had an absolutely wonderful time in Florence! It is clearly a city for tourists, but the museums and landmarks are, none-the-less, magnificent. I was completely exhausted every night from walking around the small city and its museums. I probably gained five pounds just from eating the gelato every day, but it was totally worth it!
I went to the Galleria dell’Accademia to see the David statue. The statue itself is unbelievable. The intricacies of the sculpture impressed me the most, especially because it is 17 feet tall. Aside from David, there is a plethora of other sculptures and paintings in the Galleria dell’Accademia. I found it interesting that a significant number of artist from the last few centuries came from and worked in Florence (one statistic said 300 out of the 1000 most important artists were from Florence).
I spent one afternoon in the Galleria degli Uffizi. It seems like I could have spent all four days in the Uffizi and not seen everything. Its collection is only outnumbered by the Vatican itself! Nevertheless, I did see the Birth of Venus, which was incredible. For me, it seemed quite different from most of the other paintings in the Uffizi. I will let the experts speak to its magnificence, but I will say that all of the sculptures and painting were utterly amazing.
The second day, after seeing David and then walking around the Boboli gardens (an incredible place), I walked up to Piazzale Michelango. From there, I was able to get a great panoramic view of Florence. It also happened to be sunset, which made the view spectacular! The sun slowly descended behind a hill above Florence. I took several pictures of the sunset, but none quite capture the beauty and intensity of it. I have never seen anything so beautiful.
On my third day, I booked a whirlwind tour of Tuscany. In twelve hours I saw three places: San Gimignano, Siena, and a farm in the Chianti region. With about three or so hours in each location, I only got a brief introduction.
San Gimignano is a medieval walled town that is in remarkable condition considering it is 700 years old. It is known for having towers. Now there are only 14, but at one point it had something like 72 towers. I was able to climb to the top of one of the towers in the center (seen in the photo below). It provided a great view of the Tuscan landscape.
Siena is a beautiful town. It is an UNESCO world heritage site. I had lunch there before seeing the huge cathedral, Santa Maria della Scala. I was able to climb to the top of the panoramico for another great view of the Tuscan landscape. The cathedral itself is very ornate. It is made of white, pink, and black marble. It was hard to look at because it was so bright with the sun shining off of it. Inside there were tons of sculptures on the walls, ceiling, and floor by famous artists like Michelangelo. I also was able to snap some photos of the Piazza del Campo, which had about eight thousand tourists milling around it.
The tour concluded at the Casanova organic farm in the Chianti region. The farm produces wine, balsamic vinaigrette, olive oil, truffle oil, and a few other things. We were able to try two red wines, two dessert wines, 8 year old balsamic vinaigrette, 30 year old balsamic vinaigrette on ice cream, olive oil, truffle oil, and honey. It was all very very good. I was also able to see the sunset from the farm, which was incredible (photo below).
Overall, I sincerely enjoyed my time in Florence. It is certainly not a place that I would like to live as it is heavily geared towards tourists, but it is a place that I would like to visit again. There are so many incredible landmarks and museums that it was hard to see everything in four days. With such great sights and food, it is no wonder that so many people go there!
I arrived in Zurich 21 hours after leaving Seattle. I took the train from the airport which provided some pretty exciting views of Zurich.
I love the feeling in Zurich. The buildings are mostly old. The windows all have shutters. There are lots of cobbled streets and narrow walkways.
I stayed just south of downtown in a pretty touristy area. There is at least a dozen night clubs/bars in the same block as my hostel. The stores in the area are also fairly nice. It is hard to just window shop with so many appealing products in the window…
Across the lake was a pretty ritzy part of town. From there, I walked down the west side of the lake on a rainy morning and found lots of elegant apartment buildings. It must cost a fortune to live there. It cost me quite a bit just to eat in Zurich. A latte and croissant was 11 francs, which is about $12!
The attitude of the people reminds me of Seattle. They are a bit cold and unwilling to engage. The other travelers that I met were very interesting and engaging, though. I met people from Mexico, Lausanne Switzerland, London, Brazil, and Russia. Saturday evening I went to one of the local dance clubs with four guys from Laussanne. I left at 4:30 after dancing all night… I was not even close to the last person to leave!
I found an Apple reseller (essentially an Apple Store) when I was wandering around. The keyboards were surprising. They are QWERTZ keyboards! The Z and the Y are switched. They have a different layout for special characters.The surprising aspect is that these keyboards are not very useful for programming. Clearly they are not meant for use with the bash shell as the vertical bar, hash sign, curly braces, and square brackets are missing! I suppose a programmer would use two keyboards…
Overall, I enjoyed my time in Zurich. I will get another afternoon/evening there at the end of my trip. It is a beautiful place. Though, I don’t think I could visit more than a couple days without a very large budget.
After staying up all night celebrating the end of my academic career, I was whisked to Toronto, Canada via Air Canada.
I had a six hour layover, which lead to an exploration of the Toronto airport. Turns out Coyote Jacks Grill is a pretty good ‘fast food’ concept. By American standards it is high quality fast food. I had a burger on a croissant bun! I also discovered some of the art around the airport before giving thanks for free wi-fi.
If everything goes well, I will be in Zurich early Friday morning!
As I mentioned in an earlier post, I will be traveling through Europe in the latter part of March into early April. I considered going to several places including Germany and Amsterdam, but ultimately I decided to go with my original plan. So, Zurich, Florence, Barcelona, and Paris are the final destinations.
Ultimately it came down to budget and time. I wanted to spend at least three or four days in each city. I will be staying in hostels and traveling on overnight trains. I should have some interesting experiences. Without further ado, here it is:
- Mar-18 – Mar-20 Zurich, Switzerland
- Mar-21 – Mar-24 Florence, Italy
- Mar-25 – Mar-29 Barcelona, Spain
- Mar-30 – Apr-2 Paris, France
- Apr-3 Zurich, Switzerland
- Apr-4 Fly back to Seattle
I am planning to add blog posts throughout my trip, or at least brief updates. I should have some sporadic internet access.
I am really excited to leave! It will be quite a relief after completing school.
WikiGraph helps users visualize connections among Wikipedia articles. It uses links within articles to decide how articles relate to each other. It is a Flash application with a PHP data services api, and a MySQL database. The database contains about 8.3 million articles with 800 million links. Seven UW CSE students (including me) worked on WikiGraph as part of the Winter 2011 Software Engineering class.
Some of the Challenges
The 24 most significant relationships for an article are shown in a graph. The strength of a relationship is determined by link relationships and the length of the article (longer articles are more likely to be real articles as opposed to long pages of links). Mutual relationships are considered the strongest (article a links to article b and vice-a-versa) followed by outbound relations and then inbound relations.
It can take a long time to determine the 24 most significant relationships for some articles. For example, the number 0 article has hundreds of thousands of inbound links (articles that link to the number 0 article). It takes over 30 seconds to pull all those connections from the database and then sort them in order of significance.
This seemed like too much time to have users wait, so we implemented a caching system. If a graph is not already in the cache, the api quickly returns 24 connections that are not necessarily the strongest, but are a mix of inbound and outbound links. A background job is then initiated to cache the graph for subsequent requests.
It would be possible to cache all of the links at once, but due to limitations with our MySQL server we were not able to do this. Hence, it is done lazily. Some graphs, with too many links cause the database queries to timeout (there are too many results). If we had more time to work on the project, we would consider ways to cache all of the graphs initially so that every request would return the most significant connections quickly.
We used Google Code to develop the source code, track issues, and create documentation in the wiki.
The Flash Client
To develop the Flash application we used Flex 4 with ActionScript 3. None of our team members had ever developed a Flash application prior to January and we did not have access to Flash Builder. Flex was incredibly easy to learn for our team and it is open source! Everyone had significant Java and Object Oriented experience, and we found lots of documentation and tutorials which made it easy to get started.
We were also able to use FlexUnit 4 to run automated unit tests on our Flex/ActionScript source code. This proved to be easy to do in a Windows environment, but far more difficult on our Hudson build server which used Fedora 13. I will write a separate blog about getting FlexUnit, Hudson, and Fedora to work together harmoniously.
The PHP Data Services API
There is a pretty simple set of functional PHP scripts that implement all of the user actions. An OO paradigm is used to access the database.
We used PHPUnit to run automated unit tests. It was super easy and provided options for jUnit-like output which Hudson could easily chart.
The MySQL Database
Our database consumes quite a bit of space, so we opted to use an Amazon Web Service Relational Database Service. Our class was able to provide grants to use the AWS services. We were very pleased with the AWS experience. It allowed us to moderate how much space and memory we used for the database. That was useful when we wanted to perform administrative actions on the db. We could upgrade to a high memory, fast CPU instance while the admin operations took place, and then downgrade to a cheaper low memory, standard CPU for normal use.
I doubt that AWS needs any further commendations, but I highly recommend it.