Besides the Beijing Olympics, the most talked about international news in the past week is Russia’s invasion of Georgia. The story behind this event is rather complex. In the mainstream news media, the story is told as the follows. After the collapse of the Soviet Union, Georgia became an independent democratic state . Unfortunately, not everyone who live in that country are loyal to the new government. Some people in that country were loyal to the Russian government, and they lived in the area of South Ossetia. Recently, the Georgian government sent in military troops to crack down these Russian loyalists. The outcome of this event angered Russia. Military tanks and troops were sent in from Russia to protect Russian interests and revenge the Georgian attacks in South Ossetia.
There is another side of the story — a fight for oil and gas control. Today, oil and natural gas demands in the Western European countries are supplied by Russia. In addition its national wealth of natural resources, Russia also controls most of the transportation pipelines. As the price of natural resources went sky high in the past few years, Russia gradually recovered its regional and international political power. The West doesn’t like this a bit. Since the Clinton administration, the US has spent a significant amount of resources to open new corridors for oil and gas supply lines to bypass Russia — building pipelines from the Caspian Sea to NATO ally Turkey. Supporting the Georgian government is part of this effort. Before the recent Russia’s invasion, Georgia was seen as a stable country for natural resource transportation.
Now, let’s fuse the above facts together to see a better picture of the region’s political struggle. First, the Western countries want to reduce Russia’s political power. By allying countries like Georgia, the West is able to inject its influence into that region. Bypassing Russia controlled pipelines effectively reduces Russia’s economic growth and political influence on the Western Europe. Second, as the economy of Russia improves, because of high oil and gas prices, it is able to strengthen its military and boost it’s influence in the neighboring countries. Russia’s recent aggressive actions toward Georgia is not without justification. It did so to protect its country’s interest. Third, it’s difficult to say that the US helping Georgia is simply for the idea of democracy and freedom. It’s obvious that helping Georgia to be independent from Russia can reduce the West’s dependence on Russia’s oil and gas and effectively reduces Russia’s political influence.
Really, Russia is not necessary evil, and the US is not necessary angel.
Read about these issues in the Economist, Busisnessweek and NYTimes:
Posted in US August 18th, 2008 by Harry Chen |
Tags: Current Affairs, politics, russia, US |
3 comments | Add to del.icio.us | Digg this article! | I Reddit
The Olympic Games in Beijing will kick off on 2008.08.08. Traditional media will spend billions on broadcasting the games in 220 countries. This year, social web media will play an important role in delivering news, videos and photos to the digitally connected world. Flickr is a leader in this game.
Olympic Games 2008 on Flickr:
Cool Pics:
Posted in China, Social Media August 3rd, 2008 by Harry Chen |
Tags: Beijing, China, flickr, Olympics, Social Media |
1 comment | Add to del.icio.us | Digg this article! | I Reddit
I came across a series of blog posts by Daniel Pietraru that deal with the use of exceptions in Java programming — I love it. The exception framework in Java provides a means for programs to signal and handle errors and other exceptional events. It’s not difficult to write code to throw and catch exceptions in Java. But, properly use exceptions in Java programs is not well understood by many developers.
There are three types of exceptions in Java: checked exceptions, unchecked exceptions and error exceptions. Checked exceptions are all exceptions that subclass from the java.lang.Exception class. When a method throws a checked exception (e.g., IOException), the client code must handle the exception by either defining a try-caught block or delay the exception handling by propagating the exception event up to a higher level code.
Unchecked exceptions are all exceptions that subclass from java.lang.RuntimeException. Unlike the checked exceptions, when a method throws unchecked exceptions, the client code is not required to define explicit code to handle the exceptions — e.g., NullPointerException.
Error exceptions, the last type of exceptions in Java, are all classes that subclass from java.lang.Error. These exceptions indicate serious problems that a reasonable application should not try to catch. For example, the exception java.lang.VirtualMachineError indicates the JVM is broken or has run out of resources necessary for it to continue operating. Developers rarely need to throw error exceptions or write codes to explicitly hand error exceptions.
When designing a Java API that throws exceptions, how should you choose to throw a checked exception and an unchecked exception? Daniel discussed this in Exceptional Java - Exception design relatively. An answer to this question is also described in Joshua Bloch’s Effective Java.
The basic guideline:
- Throw checked exceptions if the problems can be reasonably recovered in the client code.
- Throw unchecked exceptions to indicate programming errors (e.g., bugs in the client code and mistakes by a careless programmer).
Sometimes it’s difficult to draw a black-and-white line between which exception to throw given a specific exceptional condition. It’s really up to the developers to decide. Exception handling in Java if use properly can greatly improve software quality. It’s definitely valuable for developers to think about exception handling design early in their software development cycles.
Posted in Programming August 1st, 2008 by Harry Chen |
Tags: exception handling, java, programming |
No comments | Add to del.icio.us | Digg this article! | I Reddit