Archive for June, 2009

Lessons from building a compiler (and other semi-related musings)

Monday, June 15th, 2009

Note: I had a hard time thinking of a title, my apologies

This past Spring, I took a course on Programming Languages and Compilers which has been far and away the most challenging class I’ve taken in college. My friend (and project partner) Gary hit the nail on the head when he said something like: the project is insane, tests are incredibly hard, and even homeworks are non-trivial. However, after going through the course, both of us will tell you that we found the course incredibly valuabe. I feel like I’ve matured as a programmer and computer scientist over the course of the last semester and it’s largely because of my compilers class. I wish I could have taken it earlier because now I feel like I’ll get a lot more out of my future courses. Of course, had I taken it earlier, I wouldn’t have been able to keep up, and maybe wouldn’t have gotten as much out of it, introducing an interesting paradox.

As a background, the course covers a lot of the basics of compiler design and implementation. We don’t officially have a textbook, and our professor (Paul Hilfinger) wrote up notes that served as a text for the first half of the course. Unfortunately, as the class project heated up he spent more time working on that and didn’t get around to updating the notes. Not to rag on him, he spent more time working on the project than many of the groups and we frequently saw him responding to newsgroup posts as late as 2 AM. I hope that the next time he teaches the course, he does get to finish the notes as I like the material that he presented. Anyway, we covered most of the basic topics including lexical analysis, parsing, static semantics, types and type inference, code generation, runtime structures (functions, classes, exceptions) and some code optimizations. I actually found most of the course material very interesting which is unusual as typically I lose interest in certain parts of a course.

I mentioned we had a class project. The project was in a nutshell to build a compiler for python. Of course the project was broken into phases (lexing and parsing, static analysis, and code generation) to make sure we didn’t procrastinate and utterly fail. After each phase, the professor would release his implementation, which we could use to build the next phase, just so that we didn’t shoot ourselves in the foot with bad programming practices (which my group did for phase 1). The professor also provided us a runtime library and a virtual machine with a clean instruction set that we could use as a python interpreter, to split the challenges of code generation into two “easier” tasks.

I wanted to write a bit about this project because I feel like it’s one of my crowning acheivements so far as a young programmer. It’s one of the larger code bases I’ve worked intimately with, meaning I could tell you anything about any part of the code base without really looking at it. It’s a project that I spent so much time with in such a short period of time, that as nerdy as it sounds, I found myself dreaming about problems we had and waking up with solutions to them. And it’s definitely one of the most complex systems I’ve developed and completed successfully.

Of course, I didn’t do it alone. My partners in crime were Gary (mentioned above) and Brian, both hard workers and amicable people, the latter quality being especially important because we spent a LOT of time together. Our final project was due the Monday after the last week of class, and that weekend, we pretty much lived in our computer science building. Our hard work paid off and we submitted a mostly working final project (mostly working in the sense that we didn’t do some tricky things like using function values as keys to dictionaries, because we modified the function representation).

Apart from compiler design, our professor emphasized good programming practices that he drilled in by looking at our source code and grading us on our cleanliness. I learned some valuable lessons about documenting code, refactoring all the time, repeating yourself, thorough and systematic testing etc. Lessons that I read about all the time, but that really only get ingrained when you work on a large project and NEED to do them to maintain your productivity (and your sanity when it’s late at night). I’m happy to say that now days, I use comments wisely and am always looking for ways to avoid repeating myself.

Another auxiliary skill I developed while building this compiler was the ability to hand write ia32 assembly code. My only experience with an assembly language had been with MIPS and the two languages are very different. Hilfinger is big on practical knowledge, and since few (if any?) use MIPS outside of academia, he figured it’d be better for us to learn ia32 and use it as the target language. I, being very results oriented, wanted to learn only as much of ia32 as I needed to compile python code but we naturally ran into a lot of problems in the compilation. The only way we could figure out what we were doing wrong was to look at the assembly, figure out what it was doing, and then pinpoint what it was doing wrong, so that involved me learning a lot of the details that I didn’t set out to learn. By the end of it, my way of debugging was to look at a python program, hand-write the assembly for it, and then work to make our compiler produce similar output. I actually got pretty fast at it, much to my
surpise.

The most rewarding thing about the project was that it was really cool to see it work correctly. We tested by comparing the output of our binaries with the standard python interpreter (which actually made things really easy to test), but it was really cool to see all of our test programs compile and run correctly. When we finally got all of our tests to pass, I definitely felt a sense of accomplishment from completing such a monumental task. I don’t know if you get that sense in real software development, because your software is never “done” but the relief/joy/pride in completing almost made all the effort worthwhile.

The project isn’t something you can show off to a lot of people (like our pacman projects from AI), because I wouldn’t even expected non-computer-saavy people to know what a compiler is, but I find this to be further validation of how cool the project is. When you build a website and show it to people, they generally react positively, but when you build something that people don’t understand and they stare blankely at you, it validates that you are good at what you do. It’s similar to how my friends were awestruck when they found out their GSI (graduate student instructor) was studying quasi-smooth derived manifolds. When you are studying something that “no one” knows about and you’re successful, it’s very rewarding.

Everyone at Berkeley warns against taking compilers, because of how hard it’s supposed to be. However, my advice to Berkeley CS undergrads: definitely take the compilers class. I think it’s the single class that I’ve learned the most in, and it’s actually pretty rewarding too. But be prepared to work really hard.

The Language Barrier

Thursday, June 11th, 2009

Everyone speaks hebrew as their primary language here in Israel, and in interacting with people, I’ve noticed a couple of interesting things about languages. Almost everyone CAN speak english, but it isn’t their natural language (it’s kind of like how after only 6 years of studying spanish I CAN speak spanish, but in speaking spanish with spanish people I’ve met here, I’m not very effective at communicating in the language). I don’t have a hard to getting things done here because most people do speak English pretty well, and if they don’t, then there are always people around that can translate. However, in an environment where very few people naturally speak english, it is much harder to connect with people.

Given that I do spend some time in difficult interactions, I’ve been thinking a lot about languages in a variety of lights. Politically, languages can be a uniting factor (like it is in Israel), or conversely in can hinder unification attempts (like in India). Socially, speaking a different language from everyone else does have negative consequences on your relationships and interactions. And lastly, technically, the language that you think or operate in may close your mind to new ideas.

Language as a political tool
When you think about it, Israel is not incredibly different from India. Yeah, India is a much bigger country geographically and population-wise, but both were under British rule until the mid-20th century, both gained their independence around that time, and both are now relatively modern democratic nations (Israel more so and probably India less so). Further, Hinduism and Judaism are two of the oldest religions and both countries have rich ancient histories. Ok, so there are a lot of differences, but one I found interesting is about language, and how it affects the political environment.

There are tons of languages in India and although Hindi is the official language, unification did not come easy. Now, my view is that most kids in India, while knowing Hindi and their native language, are also very good (almost proficient) at English. I haven’t been to India in years so I could easily be wrong, but a lot of Indians come to the US and speak well enough for me to think this. I found some sources that counter this claim, but my friend Vivek, who lived in India for a couple of years recently supports me (but he went to an international school so…). And of course all of my Indian-American friends pretty much “know” just one language, and if they aren’t from an historically Hindi speaking area, it usually isn’t Hindi.

In contrast, in Israel, EVERYTHING is done in Hebrew (Ok that’s not entirely true, a lot of people speak Arabic and you do see street signs in Arabic). Since Israel was founded as a Jewish nation, there weren’t any real problems with making Hebrew the official language (except for the Arabs that were living here). All of the Arabs that I’ve met speak Hebrew fluently now, so here, everyone who calls themselves Israeli is fluent in Hebrew.

In Israel, practically everyone operates in Hebrew, and as a result, there’s more of a national sense of pride here. In India, I feel like this pride is lacking and the diversity in languages seems to correlated. The fact that it is much harder to settle on a national language in India is evidence that India is really diverse, and this diversity leads to less national pride. In Israel, not only does everyone speak Hebrew, but they are the only country where people speak Hebrew. If I were Israeli, hearing someone speak Hebrew would give us an immediate connection, just because we are both Isreali. One of my lab-mates was traveling in Europe with his family and another Israeli group overheard them speaking in Hebrew and the two groups started talking, simply because they shared this language. When he told me the story, he used the words “sense of national pride,” hopefully supporting my point.

Aside: While I’m here, I do the same thing with people speaking English. If I hear some one speaking English with an American accent, it’s an immediate connection.

So it’s pretty obvious that language is an indicator of how diverse a country is, but I never really thought that it could contribute to national pride.

Language as a Social Barrier
So even though I don’t speak Hebrew, I can communicate well enough to get things done here. However, I’ve noticed that I do miss out on a lot of things. As an example, I play Ultimate here and everyone that plays speaks English really well (In fact, many of the players spent considerable time in the US), but they naturally speak in Hebrew. So one time, there was a foul call that lead to an argument (as it is guaranteed to do in Ultimate), but this time the argument took place in Hebrew. I didn’t see what happened during the foul, but I couldn’t even figure it out by listening in. I could only decipher what happened by listening for tone and interpreting body language, from which I only learned a bit about the incident. After the uproar had died down, I asked what happened and was given a good explanation, but in the heat of the moment I could not participate.

Also, I went to a party this weekend and I found it really hard to interact with people. Of course everyone spoke English pretty well, but over the din of the music and in that kind of a setting, most of the people I talked to seemed reluctant to talk to me. Basically, people don’t want to have to think really hard to speak to someone at a party, so conversations are short and I didn’t really meet that many people. The party was still fun, but I definitely felt that I was at a social disadvantage by not speaking Hebrew.

In both of these situations, I felt left out of an experience because I don’t speak the native language here. Of course, if two people don’t speak the same language at all they are unable to connect, but here it’s hard (though not impossible) to connect with people even if they are quite familiar with English. You can have a conversation and build relationships, but it’s hard to share a lot of experiences without a common primary language.

Language as a mental prison
Ok that heading sounds a lot worse that what I’m going to get at. For my first week here, my parents and I sublet an apartment from this guy in Tel Aviv. When we met him, he was really nice and helpful, and in talking to him, I noticed that he used the participle verb form a lot, and in places that I (or other english speakers) would not use it. For example, he said something like: “When I am taking my bike to go somewhere, I usually am not leaving it for long, because bikes get stolen here.” A native English speaker would probably have said: “When I take my bike to go somewhere, I usually do not leave it for long …”, instead of using the participle form.

I noticed him say it a couple times and I’ve noticed a lot of Israeli’s use the participle in unconventional ways since then. A couple of days ago, I asked a friend about it and she said that it’s because in Hebrew they don’t have a participle form, they just have present, past and future. So, when people think in Hebrew but speak in English, it’s hard for them to figure out when to use the vanilla present tense and when to use the participle, resulting in unconventional uses.

So, I started thinking about how language affects how you think, and here’s where the article takes a technical turn. I think in English, so I’m sure my mind is constrained in certain ways that would not exist if I thought in a different language. Obviously, since I don’t think in another language I don’t know how that would be, right? And similarly, people who think in Hebrew are constrained in different ways that I am, like in how they are not sure about participles.

I think this is true for programming languages too. Over the past year, I’ve spent a lot of time programming in Java and Python, and as Java was my first language, it took me awhile to start using some of the more dynamic features in Python. For example, I don’t immediately see uses for dynamically adding a method to a class, and I think that’s largely because I think in a statically typed language. And recently I build a compiler in C++, and when I write in C++, I don’t think to use features like multiple inheritance, because I’m not used to them existing. Basically, the language that you think in tends to restrict how you use other languages, and it may result in you using a paradigm that works well in one language but that is horrible in another.

I’ve been reading a lot about functional programming and have spent a bit (not a lot) of time with Haskell. Everyone says Haskell is “hard” to learn if you’re used to imperative programming languages because you have to change how you think about programming. From this perspective, I completely buy that. It’s hard to get myself to think purely functionally because I’m used to methods having side effects and all of the stuff that isn’t “purely functional.” Since my first programming languages were all imperative, I’m constrained to think in a certain way, and it’s harder for me to think in a different way.

Of course you can get break those constraints, but it takes a lot of hard work in a new environment. With programming languages, I’m sure that if I spend a lot of time with Haskell, I’ll be able to think in the functional way. From observation it seems that the same is true for spoken languages. Of the Israeli’s that I’ve met, the ones that have lived in the states speak english like natives.

And so…
After spending tim here, I’ve begun to understand how important language is from a variety of perspectives. I find it quite interesting and it makes me a lot more excited to finish reading “The Languge Instinct” by Steven Pinker (but I’ve been “reading” it for like a year so we’ll see if that actually happens). I’m starting to think that traveling is really cool because you get to observe these kinds of things only when you dive into a new environment.

Comics

Monday, June 8th, 2009

So I just wrote this really long, hopefully thoughtful post, but it didn’t turn out as I wanted so this is much lighter. This article wound up in my RSS reader and it got me thinking about comics. I used to read tons of comics when I was a kid and nowadays when I look at the newspaper, most of the comics pretty much suck. Here are some of my favorites (in some loose ordering):

  1. First of all, Calvin and Hobbes is one of the greatest comics of all time, and that article attests to that. If you can get your hands on Calvin and Hobbes books, I highly recommend them. Bill Watterson treated his comics as artwork and he really does so much more with the inches of space than many other cartoonists. Also, his material is often deep and philosophical, and I think a lot of kids can relate to Calvin in more profound ways that other cartoons. Calvin is one of my favorite childhood characters because of his imagination and his cynicism.
  2. Tintin isn’t a newspaper comic, but more of a comic book. It’s originally a French comic book but it should not be hard to find English translations. The comic is quite popular and when I last went to Europe (years ago), I saw the comic book everywhere. Anyway, it’s a very good comic. It’s not like other comics in that it’s purpose is not comedy. They are about the adventures of this journalist (Tintin), who ends up travelling all over the place. And of course there is subtle humor scattered throughout, making these comics quite entertaining.
  3. Asterix again is like Tintin in that it is a French comic book. However, this one is more explicitly humorous. The humor is very unlike American humor, differentiating this comic from other popular ones. For one, the names of all the characters are puns, like “Asterix”, “Obelix”, and “Chief Vitalstatistics”. Read the comics for more of these puns, unfortunately I’m not if you’re still able to get them or where you can do so. There are tons of other humorous elements, in fact, there’s a wikipedia article about them.
  4. Foxtrot is another really funny comic that was in syndication until pretty recently. If you haven’t read it, you should read some on the website. It’s about your average American Family, and mostly about the three kids, a high school jock, a stereotypical freshman girl, and a super-nerdy fifth grader. I guess, the humor is pretty standard for American cartoons, but I related to a lot of the subject matter, more so than many other comics.
  5. Beetle Bailey. For some good old-fashioned laughs, check out this comic. My dad had a bunch of the comic books so I ended up reading them as a kid. Beetle Bailey is a lazy soldier and it’s about his the escapades of him and his camp.
  6. Dilbert. I started reading Dilbert as a teenager (much later than the rest), but I guess as a programmer, I can kind of relate to Dilbert’s life (though fortunately I’m stuck in a corporate hell-of-a-job). I didn’t enjoy this one as much as the others, but Scott Adams is still a really funny writer. I recently came across this, which definitely made me laugh.

And of course now there are web comics. I periodically read xkcd and phdcomics. So yeah, enjoy!

Israel II: Traveling vs. Living

Saturday, June 6th, 2009

My first week here in Israel was tons of fun, I got to travel a lot, eat good food, go to the beach, and pretty much enjoy the country. Last Sunday, I moved into a dormitory in Ramat Aviv and since then life has been quite a bit different. Several things contributed to this change, but the net result is that I’ve been spending a lot of time working and I’ve been thinking a lot about what’s going to happen after I graduate. First, why are things different…

I started working on Monday (which interestingly is the second day in the work week; the work week is Sunday-Thursday, Friday and Saturday are the weekend.) and so I’ve been pretty busy with work and I haven’t had the opportunity to travel like I did in week one. My work is really cool. I’m working on finding pathways in gene networks that seem to be linked to a specific disease (Here’s the paper I’m building on top if you’re interested). It’s interesting because the problem we’re working on reduces to Connected Set Cover and I just learned about the Set Cover problem in my algorithms class a couple of weeks ago (see this article for why I think this is cool). I’m working on optimizing our algorithm so we can run it on larger data sets efficiently and so that other researchers will be willing have the patience to use it. I’ve already made some progress in my first week (this is good because my time here is pretty short!). I think I’ll write more about my project (and Bioinformatics in general) as I learn more and spend more time working here.

Another key change is that I’m not with my family anymore. Last week I had people (my family) to travel with, and this week, although I’ve been meeting tons of people, I haven’t made many solid friends to do things with. It’s totally not what I expected but the dormitory isn’t really a social place at all. Although the building is 8 floors with many rooms per floor and they say that it’s full, I’ve only ever seen a handful of different people in the building. My lab-mates and other students say that no one wants to live in the dorms because they’re boring and old (the old part is definitely true). Many students prefer to live at home or in Tel Aviv, and then commute to school. Most of the people that I have met here are international students, but I’ve yet to meet a student from the US, although I do hear some American English every once in awhile as I walk around on campus.

One interesting thing is that in Israel everyone goes to serve in the army for 2 (girls) or 3 (guys) years. Then they all usually take a year off and travel before coming to college, so by the time they start their undergrad, they are 21 or 22. They become a lot more focused on their studies and it makes sense that they as “adults” they are just at a different place in life than college students in the US. Most of the people I’ve been meeting are older than me, and that grad students I work with are much, much older than me (many of them have kids!).

Still, I’ve met some really friendly people and I think this “lack of people to do stuff with” condition will quickly disappear. But since I don’t have much to do, I have been getting tons of work done.

I guess another key change is that I moved to Ramat Aviv, which although pretty close to the heart of Tel Aviv (where we stayed in week one), is completely different from Tel Aviv. Ramat Aviv is a much more residential area and as such, you can’t just walk around and find things to do. There aren’t many restaurants around, so I bought a cooking pot and have been making pasta (yup just like at Berkeley) for dinners. Most of the people I’ve talked to also do the same thing. Yesterday, I took the bus to Tel Aviv and enjoyed walking around there; I visited a couple of open air markets, hung out in a guitar store, and wandered around this huge mall. Despite going by myself, it was really fun to explore the city and people watch. Ramat Aviv is not like Tel Aviv at all in that sense. Although there is a pretty big mall (which supposedly is very trendy), there isn’t much else to do. Maybe that explains why students prefer not to stay in the dorms.

Also, I don’t have a roommate. It’s made me realize how cool it is to live with people, be it roommates, family, whatever. I think I’d prefer to have a roommate I didn’t particularly like than to live by myself. So this especially has got me thinking about what life will be like after I graduate. Hopefully, I’ll go to grad school and have a roommate there, but what if I don’t? I really don’t think I’d enjoy it, but maybe it’ll be different if you have a lot of people around, in your building and such. Here it feels like there aren’t that many people around at all.

I’ve been thinking a lot more about graduating and stuff but I think it may warrant it’s own post. Between writing the beginning of this post and now, I went to play ultimate with a team here and it was awesome. They really made me feel welcome even though I’m not on the team, and I don’t speak their language. I plan to keep playing with them and hopefully make some good friends there. A lot of the players on the team have spent a couple of years in the states so they speak english well. And a lot of the players are pretty good so I should get some decent ultimate in over the sumer. Unfortunately, I am really out of shape, and it’s quite hot/humid here so, we’ll see if I can hold my own on the field.

So to summarize this week, it’s been really different from the last week. It’s been interesting meeting people from places like South America, Romania, and of course Israel. Work has been really captivating, which is really good because I don’t feel like I’m wasting my time. I’m making progress on a couple of other projects I’m working on. As I said, it’s been different, but it’s still been pretty good.

Israel I: Traveling the Holy Land

Monday, June 1st, 2009

I’ve been in Israel for a week now and I plan to stay here for 2 more months until the end of July. I just started my work doing bioinformatics research at Tel Aviv University, but since work only started today I had the opportunity to explore the country for a week. Overall, the country is amazing. Geographically it is very diverse, with deserts in the south, beaches all along the west and mountains and plains in the north. And of course there is so much history, from biblical times, to the war for independence just 60 years ago. Almost everywhere you go you will find ancient ruins, religious points of interest and other monuments.

I think it’d be pretty hard to see everything Israel has to offer in a week, because I feel like we (My parents and I) were quite busy, but I still haven’t been to Eilat, Haifa, Nazareth and Be’er Sheva. We did end up going to Jerusalem, the Dead Sea, and Golan heights, with a drive through Galilee. Also, since I stayed in Tel Aviv, I spent quite a bit of time in Tel Aviv and have become pretty familiar with the city. Fortunately, since I’m here for two more months, I’ll get an opportunity to see all the things that I haven’t seen yet. Like this weekend I want to go to Haifa and hang out there, just to see what it’s like.

So here’s the synopsis of my travels thus far. It’s broken down by region.

Tel Aviv
I’ve spent 3 full days in Tel Aviv, two of them mostly taking care of errands and logistics for my stay at the university. The third day (actually the first chronologically), we went to many of the Tel Aviv hot spots, and the old port of Jaffa.

For a one-sentence history of Tel Aviv, Jaffa is an ancient port that became too crowded about 100 years ago (actually exactly 100 years ago) so some families moved a couple of kilometers north and founded the city of Tel Aviv. Now the port of Jaffa isn’t operational, but there are some ancient ruins around there that we visited. It wasn’t super interesting but still worth a visit as it wasn’t very far from where we were staying in old-town Tel Aviv.

Tel Aviv is the cultural center of Tel Aviv, while Jerusalem is the religious center. As such, the main streets are lined with cafe’s and small boutique shops. There are also several open-air markets scattered throughout the city where you can get produce, clothes, household supplies, and anything else you could want. There are several malls scattered throughout the city and they are very similar to our malls. You can always find a great place to eat and the food is amazing. I’ll write about food some other time.

Tel Aviv is also famous for it’s beaches. On Friday, which happened to be a holiday, we headed for the beach to find the beach packed with tourists and locals (I think mostly locals). People were lounging, tanning, swimming in the water, playing volleyball and generally having a good time. It’s not something I’ve seen much recently in the states and it lead me to some thoughts about Israeli lifestyle versus our lifestyle. As I spend more time here, I’ll have enough material to write about lifestyle in a separate post.

Jerusalem
On Tuesday, my parents and I went to Jerusalem with a tour group. We visited the Mount of Olives, the old city, and the Holocaust Museum. I definitely want to go back as there is still a lot more of the city that we didn’t get to see, but our visit was pretty cool.

The Mount of Olives is where Jesus ascended to heaven and it’s where the Messiah will come to resurrect everyone, so it’s quite a holy place. From the summit, you get an amazing view of old town Jerusalem. The old town is again a very holy place. It was founded by King Solomon years before Christ. Inside the old city, we visited the Western Wall, and the Church of the Holy Sepulchre (where Christ was crucified). We didn’t get to visit the Mosque on the Dome of the Rock (and I’m not sure if I’m even allowed to) but it’s another site that I’d like to visit.

The old city is incredibly busy and active. I think part of it is all of the tourists and worshippers who come there every day but on top of that the streets are lined with stalls and shops selling all sorts of things. A lot of the shops appeared to be targetting tourists, but I did see produce stands and other non-touristy shops. The whole visit to the old city was an awe-inspiring experience; seeing the religious sites and all of the worshippers was simply amazing.

Dead Sea
On Thursday, we took a different tour bus to the dead sea and the ruins of Masada. It was a bit of a drive but well worth it. Masada was a palace built by King Herod (back in the day) that was abandonded and then repopulated by the Zealots (a group of ultra-orthodox Jews). The Zealots were the seiged by the Romans and the Romans eventually took control of Masada after the Zealots honorably killed themselves rather than fight. The whole story of the place is fascinating and the ruins although partially reconstructed, were fun to explore. Masada is located up on a small plateau with an amazing view of the dead sea. We took a cable car up to the top of the plateau, but there is a hike up that seems like it’d be pretty fun to do if it isn’t too hot. Unforunately, we’re talking about the Judean Desert here, so it usually pretty hot.

After visiting Masada, we went to Ein Gedi Spa on the Dead Sea shores. At the spa there’s this place where you put this special mud all over yourself so I did that. Supposedly the mud is supposed to have like regenerative and healing properties, so a lot of elderly people come here for treatments. I thought it was pretty gross. Anyway, I got to float in the sea and that was amazing. The area we were in was really shallow but it’s not like that matters much. I found the whole thing really strange, but also really cool. Of course it all makes sense chemically, but even though I knew what to expect, I was still kind of shocked when I couldn’t sink. Anyway, the water was also really goopy and slippery and if you do go there, do not get it in your eyes; it stings like crazy.

Galilee and Golan
The Sea of Galilee is in the north-east of Israel and Golan Heights are to the East and North of Galilee. My mom knows someone living near Tel Aviv so he offered to show us around the area. Again we ended up doing a lot of driving, but we saw some interesting historic sights and had some amazing views.

We drove over the Israel Valley, which is an agricultural center and then onwards to the Sea of Galilee, where Jesus supposedly walked on water. We didn’t stop near the sea, but naturally it’s a very holy place for Christians. We essentially drove all around it, and had many amazing views of the sea and Tiberias, a coastal town.

Then we drove up to Golan Heights. This area is a huge plateau a couple-hundreds of meters above sea level, but it’s so big that after driving for awhile, you forget that you’re so high up. The area is filled with more recent history as the Golan was recently annexed by Israel from Syria in the war of 1967. There are tons of military relics such a bunkers, tanks, and outposts all over the area. Scarily, there are also several areas marked with “danger land mines” signs.

On our way back, we drove through Galilee, which is to the west of the Sea of Galilee. The area consists of these lines of mountains with valleys in between each range. It’s a very picturesque area but we didn’t stop here so I don’t have much else to say.

So that’s a brief summary of my travels so far. Of course there is tons more to say about my trip and I hope to talk about more soon. I took pictures of everywhere I went and I put some of them up on Flickr. Unfortunately, I ran out of space, but I’m seriously considering buying unlimited space in which case all of my pictures will be up soon. You can see pictures by clicking on “photos” on the right.