Sunday, August 31, 2008

Read-modify-write

Quite a bit of software development revolves around getting a piece of structured data from a store, modifying some part of it, and writing it back. If the store is local, and the setting is not very contentious - that is, the probability that two threads are going to be modifying the same structure at the same time is rather low - a mutex or a critical section provides an easy solution.

However, what if the object is managed by a remote web service? What if two threads reading and writing the same object is a common thing? Locking an object remotely is not easy - one has to deal with the situation where client goes away and leaves the lock hanging and other nasty corner cases.

Consider the following example. Let's say we have a structure that has title, description, and a checksum:

#define MAX_TITLE 128
#define MAX_DESCR 512
struct Record {
char title[MAX_TITLE];
char descr[MAX_DESCR];
unsigned long crc;
};

The record lives inside a blob store. Depending on the implementation, the blob store may or may not know about the internal structure of the record. To make the exercise interesting, let's assume that it does not own the crc computation algorithm - this happens on the client.

Depending on the API, the client can either write parts of the structure, or all at once.

The catch with updating the parts of the structure is that there is a field (crc) that depends on all of the rest of the structure.

Consider the following scenario: thread A reads the structure, modifies the title, and computes the new crc. Thread B reads the structure, modifies the description, and computes the new crc. Then both of them write the result of their work as (title, crc) and (description, crc). The new data structure ends up with the new title and the new description, but the crc is wrong - depending on who wrote last, it would be computed based on either the new title and the old description, or the old title and the new description.

The consistency problem can be rectified by only allowing writing the whole record at once, title, description and crc. This comes with its one set of problem - an early reader, later writer can wipe out changes by a different thread that writes its changes in between. In this scenario thread A reads the structure and updates title and crc. Thread B reads the structure and updates description and crc. Thread B then writes the data first, then thread A writes its changes out - wiping out modifications by thread B.

Short of distributed lock service (or a DTC) which makes the job very complicated and potentially rather slow, there is no direct solution to this problem. There is, however, a way to redefine the problem that makes it much easier: allowing the store to fail conflicting writes.

The question then becomes much simpler - how do we detect the conflict?

One easy (and quite standard way of doing it) is to maintain a version of the structure.

#define MAX_TITLE 128
#define MAX_DESCR 512
struct Record {
char title[MAX_TITLE];
char descr[MAX_DESCR];
unsigned long crc;
unsigned long version;
};

The version is read by the client and is handed back as part of the update request. It is incremented by the server every time the structure has been modified. If the client supplies the version number other than what currently is in store, the server assumes that the structure has already been modified by someone else, and fails the write. The client then can re-read the structure, reapply its changes, and attempt the write again.

Some systems use a time stamp instead, which makes it somewhat harder for a malicious client to game the system. The disadvantage of course is that one needs a counter with a high enough resolution that guarantees that a read and a write cannot complete within one "tick". Ever growing system performance coupled with the desire of OS vendors to preserve backwards compatibility (in this case, the resolution of a counter defined by a given API set) makes this approach brittle.

This approach is easy to understand, but it has a disadvantage - it exposes the internals of the concurrency management to the client and makes the client responsible for behaving in good faith.

How can we transfer the responsibility for the atomicity and correctness of the updates to the server? It turns out to be rather straightforward: for every read that results in the later update, we will let the CLIENT supply us with a hard to guess identifier (say, a GUID) to server as a transaction ID. We will accumulate these IDs in the internal implementation of the object (never to be returned to a client). We will only allow writes that are accompanied by a GUID that is known to us, and we will clear the known GUIDs the moment the write succeeds, immediately making all other updates stale.

// Synchronized externally
class RecordInternal {
private:
Record record;
set reads;
public:
void Read(GUID *id, Record *rec) {
*rec = record;
if (id)
reads.add(*id);
}
boolean Write(GUID &id, Record &rec) {
if (reads.count(id) == 0)
return false;
record = rec;
reads.clear();
return true;
}
}

Potential improvement would be to keep a map between the GUID and the timestamp of the read request instead of the set of all GUIDs - this would allow us to run down very old outstanding updates which will probably never complete because of the client failure.

On the client side, it would be convenient to wrap the messy business of generating the GUID in an "update" class, making the use of the API look as follows:

Update update;
Record record;
service.Read(update.id(), &record);
...update the record...
service.Write(update.id(), record);

Tuesday, August 26, 2008

Looking for great devs!

As Web 2.0 matures, a new paradigm is being born – massively distributed development, where a typical application runs on hundreds, thousands, sometimes tens of thousands computers at the same time. A new software stack that resembles familiar operating system concepts is being built to support this model.

Would you like to participate in the creation of the “Web 2.0 OS”?

Our team builds components the massively distributed applications will live and die by – deployment and monitoring. We have it all – complex algorithmic tasks, opportunity to write a lot of code, potential to influence the entire industry, and, last but not least, millions of cores to run our stuff!

Interested?

We’re looking for people with the experience shipping software in native languages and fluent in both computer architecture and algorithms. If your C/C++ is top notch and you can implement Dijkstra's algorithm in your sleep, send me your resume - resumes@solyanik.com!

Thursday, August 21, 2008

I am very confused...

According to this graphic in CNN Money section, every child has a probability of at least 24% to get into the top 20%. How is this possible?



http://money.cnn.com/2008/08/20/pf/college/college_price.moneymag/index.htm

Tuesday, August 19, 2008

Is McCain another Bush?

There was some discussion recently (not nearly as much as needed) whether McCain's policies are the same as these of George Bush. But is he as stupid? This article argues convincingly that yes, just like George Bush he lacks intellectual curiosity, his academic record is awful, and his approach to everything from morality to world problems is simplistic.

http://www.cnn.com/2008/POLITICS/08/18/cafferty.mccain/index.html

"John McCain graduated 894th in a class of 899 at the Naval Academy at Annapolis. His father and grandfather were four star admirals in the Navy. Some have suggested that might have played a role in McCain being admitted. His academic record was awful. And it shows over and over again whenever McCain is called upon to think on his feet."

Monday, August 18, 2008

So say you were a president of a very small country...

...and you had this very big neighbor with a huge army, and you were at war with this neighbor because you've done something that royally pissed them off. And say their troops were already controlling half of your territory, and had 100000% capacity to control the rest.

Would you be saying this?

“Unfortunately, today we are looking evil directly in the eye. And today this evil is very strong, very nasty and very dangerous, for everybody, not only for us.”

http://www.nytimes.com/2008/08/17/opinion/17dowd.html?em

Thursday, August 14, 2008

Quantum entanglement results in faster than light information transfer

This experiment separated two entangled photons by 18 (!) kilometers, then observed the effect of perturbing of one photon's state in the other - instantly!

http://www.nature.com/news/2008/080813/full/news.2008.1038.html?s=news_rss

If the results can be independently verified, it would have the significance of Michelson-Morley experiment that gave birth to special theory of relativity. http://en.wikipedia.org/wiki/Michelson-Morley_experiment.

This is a BIG deal!

Wednesday, August 13, 2008

Too much of a good thing

"As people do better, they start voting like Republicans - unless they have too much education and vote Democratic, which proves there can be too much of a good thing." -- Karl Rove

Unsurprisingly, the Wall Street editorial board agrees, once again, with the evil genius of the Bush Administration. In the latest opinion article, "For Most People,
College Is a Waste of Time" (http://online.wsj.com/article/SB121858688764535107.html?mod=rss_Today%27s_Most_Popular), they argue that the only thing people need is professional training, evaluated by trade exams - not education.

Training teaches skills, which can be used to work for Rupert Murdoch. Education teaches people how to think for themselves. Educated people, as Rove correctly observed, usually do not vote Republican...

Judging from the URL, this crap is in the "Most Popular" category, which is sad, but, again, not surprising. I assume that people who read WSJ Opinion page are the same people who get their information from Faux News.

Monday, August 11, 2008

This is beyond embarrassing...

Russia. Sexual harassment case. Judge rules: "If we had no sexual harassment we would have no children".

http://www.telegraph.co.uk/news/worldnews/europe/russia/2470310/Sexual-harrassment-okay-as-it-ensures-humans-breed,-Russian-judge-rules.html

Office Space

A sad, sad, sad, sad story from the trenches: http://whereisbob.wordpress.com/

This falls right in line with the one of my all-time favorites: http://dir.salon.com/story/tech/feature/2004/02/23/no_support/index.html

The sad reality is that a lot of classic vices of white-collar office environment is seeping into the industry that was rather immune to them in the past.

The good news is that there are still plenty of places where this does not happen. Finding them are not that hard - pick any top couple of products in any software area, and the companies building them are probably very, very good. After all, it's hard to build a great product without attracting - and keeping - great people. And great people do not keep very well in terrible environments.

But how do you get a job in a good environment? The easiest way is to be really good at the aspects of the job that are usually tested on the interview.

Most good companies look for essentially the same qualifications in an employee. Joel Spolsky summarises these as "Smart and gets things done" (http://www.amazon.com/Smart-Gets-Things-Done-Technical/dp/1590598385).

In reality, it is impossible to test these qualifications during the interview, so most interviewers look for indirect evidence, thus equating "smarts" with "great computer science skills", and "gets things done" with "demonstrable passion for technology".

The way computer science skills are tested in the interview are by having an interviewee solve an algorithmic problem, with possible segues into computer architecture (is your solution memory or CPU bound?).

Unlike the true intelligence, the skill of solving algorithmic problem can be developed. First, having a genuine interest in these matters helps a lot (if you don't normally care, a short refresher right before the interview produces only very limited results, but it is still better than nothing). There is a couple of really good books, of course, as well.

First is the venerable "Introduction to Algorithms" by Cormen, Leiserson, Rivest, and Stein (AKA "The CLR book"): http://www.amazon.com/Introduction-Algorithms-Thomas-H-Cormen/dp/0262032937.

Second is "Computer Architecture: A Quantitative Approach" by Hennessy and Patterson http://www.amazon.com/Computer-Architecture-Fourth-Quantitative-Approach/dp/0123704901.

It is important to point out that buying these books just to put them on the shelf 'till you have more time will not help - I guarantee it! You have to actually read them, and even do a few exercises :-).

A quick test - if you can implement quick- and merge- sorts, BFS and DFS walks, a basic hash table, delete an element from the binary tree, and analyze respective memory performance of heap- vs. quick- sort - all without consulting a book - you cover both Google and Microsoft's definition of developers' "intelligence" - and this means that you will be selecting the place where you will work next, and not the other way around.

Of course, most modern workplaces do not naturally maintain the algorithmic skills - people rely on Java/STL to do the right thing and do not go into details on how exactly they do it. Whatever is learned at school gets eventually forgotten, and as a result the probability to get a hire vote at most places where I worked before actually diminishes with "experience".

What about the "passion for technology" part of the puzzle? A couple of things help here.

Of course, being really passionate about something technology-related - tracking the progress in this area closely, reading about new developments, and ability to coherently discuss it in depth. When a developer tells me that (s)he thinks that XML is important, I ask "Why?" and then sit back and listen. If the answer does not elevate beyond the standard marketing blabber, it's not a good sign.

Having home projects beyond work and school is also important. This is the true sign of passion for the technology. I often ask people when was they last time they did something software developmentish outside work or school.

The unfortunate part of this "advice" is that it's essentially the same as "lose weight by eating less food" - it requires fundamental life changes. You get beneficial effects but at great cost, which only gets greater as the time goes and you settle - deeper and deeper - in your comfort zone. But no comfort zone is forever - the manager changes and... see the link at the beginning of the article.

But on the positive note, if you have already made the life changes, or have always led the healthy life :-) I have a job for you! Check out what we're doing here: http://1-800-magic.blogspot.com/2008/07/looking-for-great-devs.html and send me your resume!

Friday, August 8, 2008

Bin Laden's driver is sentenced to 5.5 years in prison

This morning NPR called the sentence "surprisingly lenient".

Next to come - Al Zawahiri's ice cream seller...

Thursday, July 31, 2008

Are you working on one of the most important problems in your field?

...and if not, why?

Republishing a story by Richard Hamming

START QUOTE

"Over on the other side of the dining hall was a chemistry table. I had worked with one of the fellows, Dave McCall; furthermore he was courting our secretary at the time. I went over and said, ``Do you mind if I join you?'' They can't say no, so I started eating with them for a while. And I started asking, ``What are the important problems of your field?'' And after a week or so, ``What important problems are you working on?'' And after some more time I came in one day and said, ``If what you are doing is not important, and if you don't think it is going to lead to something important, why are you at Bell Labs working on it?'' I wasn't welcomed after that; I had to find somebody else to eat with! That was in the spring.

In the fall, Dave McCall stopped me in the hall and said, ``Hamming, that remark of yours got underneath my skin. I thought about it all summer, i.e. what were the important problems in my field. I haven't changed my research,'' he says, ``but I think it was well worthwhile.'' And I said, ``Thank you Dave,'' and went on. I noticed a couple of months later he was made the head of the department. I noticed the other day he was a Member of the National Academy of Engineering. I noticed he has succeeded. I have never heard the names of any of the other fellows at that table mentioned in science and scientific circles. They were unable to ask themselves, ``What are the important problems in my field?''"

END QUOTE

Also, see http://1-800-magic.blogspot.com/2008/07/looking-for-great-devs.html :-).

Tuesday, July 29, 2008

Advice for young software engineers

I LOVE working with new graduates. People fresh out of college often exhibit the natural brilliance that has not yet been diminished by years of sitting in meetings and patching old poorly written code. They are unpolluted by bad practices they have not yet learned. They are full of enthusiasm, energy, and desire to change the world.

The great new graduates are also easier to hire than the great experienced developers.

We know where both populations concentrate - great students go to top computer science schools - Harvard, Stanford, CMU, MIT, and the like. Great engineers work at the top companies - Microsoft, Google, Apple, and the like.

The key difference is that the students get kicked out of their nesting spots with an astonishing regularity. The times and places are well known - so it's easy to harvest them right at the source :-).

Consequently, I've worked with a lot of very smart young people throughout my career, as a peer, a manager, and a mentor. Invariably, they were always interested in how they could grow to be great engineers. My advice always had come down to two points:

(1) Find great people to work with. The project itself is far less important than the team that is working on it. There are no mundane projects, but there are terrible teams, and a bad team (which usually starts with the bad manager) can spoil any project, no matter how good. Consequently, look for the great manager (unless you're working at Google, then the manager does not matter) - someone who you can trust, and someone from whom you can learn a lot.

(2) Find a place where you can write a lot of low-level code. Software development is both a science and a craft. Both are equally important. Staying close to hardware (no Java! no STL! no Python or JavaScript!) will help you really "get" the computer architecture and the algorithms. That's the science part. Writing lots of code is the only way to become a master craftsman. Writing new code on your own is better than working on even the best, most complex systems that someone else had done - we learn far more by doing than by observing.

This advice probably goes against the grain. These days every one of us knows of a friend whose friend has made it doing web gigs for a startup that was acquired by another startup. The problem is that every one of us who has been in this industry for a while also personally knows 10-20 people who went from a startup to a startup, never acquired any useful skills nor made any money beyond basic subsistence level (which can be quite high in the Silicon Valley, actually).

So if you're in this industry to get rich quick by harnessing the power of web advertising, you're in a wrong industry anyway. May I suggest turning your attention to investment banking? It's more money even quicker. But if you really care about the technology - learn it in the right place, learn it by doing, and learn it deeply. I can teach C programmer Java. I don't think the reverse is true.

More here: http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html, and by the way, we're looking for people who graduated from college knowing C or C++: http://1-800-magic.blogspot.com/2008/07/looking-for-great-devs.html.

Monday, July 28, 2008

Voter's Pamphlet

Democracy can be messy. We've just got our election guide for August 19th primary in the Washington State. Here's a selection of candidates for our (7th) congressional district...

Goodspaceguy Nelson (http://wei.secstate.wa.gov/osos/en/Pages/OnlineVotersGuide.aspx#ososTop) runs on the space colonization platform.

Mark A Goldman (http://wei.secstate.wa.gov/osos/en/Pages/OnlineVotersGuide.aspx#ososTop offers "a strategy based on truth, honor, dignity, compassion, courage, and love" - as the most specific part of his platform, that is.

Donovan Rivers (http://wei.secstate.wa.gov/osos/en/Pages/OnlineVotersGuide.aspx#ososTop) "will also work with elected officials" (italicised) if he gets elected. As opposed to working only with unelected officials as is commonly the case...

Al Schaefer (http://wei.secstate.wa.gov/osos/en/Pages/OnlineVotersGuide.aspx#ososTop) runs on separation from the rest of the United States (we need more candidates like this in the South!). He says "There is no IRS law saying wages are income".

Finally, Steve Beren, the Republican candidate. http://wei.secstate.wa.gov/osos/en/Pages/OnlineVotersGuide.aspx#ososTop. He runs as a "five star conservative – fiscal conservative, social conservative, national security conservative, immigration conservative, and optimism conservative."

Which raises two questions:
(1) what exactly is the "optimism conservatiove", and
(2) how stupid one can be to run as a "five star conservative" in possibly the most liberal place in the United States - the place where Jim McDermott (http://wei.secstate.wa.gov/osos/en/Pages/OnlineVotersGuide.aspx#ososTop) - possibly the most liberal congressmen in the United States - has been elected for 10 terms and enjoys something like 95% approval rate.

What's more, Steve Beren is - according to the pamphlet - employed by www.ShopLocal.com as a Director of Operations. If I were a shareholder of that company, I would sell sell sell sell now - what kind of workforce do these guys have if their director is this stupid? After all, even City College of New York has wised up and kicked this guy out after 2 years...

Looking for great devs

As Web 2.0 matures, a new paradigm is being born – massively distributed development, where a typical application runs on hundreds, thousands, sometimes tens of thousands computers at the same time. A new software stack that resembles familiar operating system concepts is being built to support this model.

Would you like to participate in the creation of the “Web 2.0 OS”?

Our team builds components the massively distributed applications will live and die by – deployment and monitoring. We have it all – complex algorithmic tasks, opportunity to write a lot of code, potential to influence the entire industry, and, last but not least, millions of cores to run our stuff!

Interested?

We’re looking for people with the experience shipping software in native languages and fluent in both computer architecture and algorithms. If your C/C++ is top notch and you can implement Dijkstra's algorithm in your sleep, send me your resume - resumes@solyanik.com!

Friday, July 25, 2008

Call of the Wild - Lessons of the Dalton Highway


  1. Life beyond the Arctic Circle is tough, therefore there is far less of it there. If you expect Yellowstone-like abundance, you will be disappointed.

  2. Spotting wildlife is not easy. The surest way to discover it is to watch for stopped cars and people with binoculars beside them. Since there is not much wildlife and a few people, this method does not always work. The rest is a combination of time, luck, sharp vision, and superior pattern recognition. Look for foxes late at night right before and after the Atigun Pass, hares during the sunset around the Arctic Circle, musk oxen within the last hundred miles before Deadhorse, and caribou in and around Deadhorse. There is various waterfowl in the lakes in the Sagavanirktok basin.

  3. Tundra looks very inviting and easy to navigate, but hiking on it is extremely difficult because of the ground composition - marshes and springy mounds. If you do decide to hike and can manage better than 1 mph over an extended distance, I will be impressed.

  4. Mosquitoes. There are clouds of them, but they are really stupid, which makes the indoor problem manageable. Outdoors is trickier – do not expect your repellent to work at all. Bring mosquito nets and mittens at the very minimum, or else you will stay in the car throughout much of the trip.

  5. The combination of the above almost guarantees that most of your time will be spent inside your vehicle enjoying the scenery. If you aren’t the type of a person who enjoys scenery, do not go...

  6. Do some of the driving at night. The angle of the polar sun casts at the landscape at night is different, and the wildlife is different as well. If at all possible, try to drive through the same parts of the road during the day when you’re going there, and at night when you’re coming back.

  7. Plan enough time for the trip. If you’re in an RV, your speed will never exceed 50 mph, even on paved surfaces. Most of the time it will be between 35 and 45, but if you don’t want cracks in your windshield, it is prudent to stop when the trucks go by, which will reduce your average speed (when driving) to around 30. It is 1000 miles from Fairbanks to Deadhorse and back, or about 30 hours of driving time. If you drive more than 4 hours on average, you don’t have enough time for side trips, wildlife viewing, and RV maintenance (cooking, cleaning, filling up), and the probability that you will see anything but the scenery goes down significantly.

  8. Stop when big trucks are coming by. A shower of pebbles hitting your windshield at a hundred miles per hour is very destructive. If you stop, the trucks often slow down as well, and the stones travel at thirty miles per hour instead – a huge difference.

  9. There are NO supplies along the highway, not even at Deadhorse. You can get cooked food on the Yukon River (MP 56), Hot Spot Café (MP 60), Coldfoot (MP 175), and in Deadhorse (MP 414). You can get lodging at all these places and additionally in Wiseman, which is a few miles north of Coldfoot, and a few more miles off the highway. But there are NO groceries anywhere – if you plan to cook, you need to take everything with you from Fairbanks.

  10. If you prefer drinking bottled water, you have to buy your supply for the entire trip in Fairbanks. There is none available on the road, or in Deadhorse. There is good artesian water at Five Mile Campsite (MP 60), and Marion Creek Campsite (MP 180), but the water at Deadhorse is pretty bad.

  11. Gas is available in Deadhorse, Coldfoot, Hot Spot Café, Yukon, and 10 miles before Fairbanks. The longest stretches without gas are Coldfoot – Deadhorse (240 miles) and Fairbanks – Yukon (134 miles). Remember that before the Dalton starts, there is a significant stretch of Elliott Highway (60 miles to Fairbanks) where services are also not available.

  12. Gas, water, and restrooms are relatively abundant on Dalton, but RV dumping facilities exist only in the very beginning and the very end. Dumping crap on the side of the road is not very nice. I suppose one can make a deal with one’s consciousness and dump the gray water in the gravel pits which are quite plentiful. But not being able to dump the black water degrades your RV experience quite a bit.

  13. In Deadhorse, the only place a RV can be parked is the Arctic Caribou Inn. Hook-up is electric only, but they will fill you up with water for free, and you can use their laundry and shower facilities. If you do not pay for parking, they may or may not charge you for the water ($1/gallon). There is another (free) water source at the Department of Transportation facility very close to the Inn. RV dumping is available at the Nana facility right next to the Arctic Caribou Inn as well. A tour of Prudhoe Bay can be booked through the Arctic Caribou Inn (they need 24-hour notice to run the background check, so do it before starting on the highway). There is cell phone service and wireless internet access in Deadhorse, at $10/day.

  14. Don’t plan to spend much time at Deadhorse – it’s an industrial zone, there’s nothing to do there. I do recommend the tour that the Arctic Caribou Inn operates, but it lasts for 2 hours. You can spend another 2 hours showering and doing the laundry. Other than that, even if you do find a place to hang out, everyone else around you will be working.

  15. Definitely make a stop at the Visitor’s Center at Coldfoot. Leaf through their collection of Dalton Highway stories, or watch a movie about the pipeline.

  16. There is no hunting (only bow hunting) along the Dalton north of the Yukon within 5 miles of the highway. There is no way to get beyond this corridor on car – only by hiking. The furthest you can go away from the Dalton on car is Galbraith, and this is only a mile and a half. As far as hiking on foot – see (2).

  17. Fishing is best in Jim River. Fishing is really bad in the Arctic plains past the Brooks Range. There are numerous lakes, but their shores are very marshy and unstable and the water is shallow and gains depth slowly. In most cases you need some kind of watercraft to fish.

  18. The Milepost (http://www.amazon.com/Milepost-2008-Kris-Valencia/dp/1892154242) and the Dalton Highway (http://www.alaskageographic.org/uploads/pdf/dalton-2008vg.pdf) publication by Bureau of Land Management are extremely useful, and both are a must have if you’re going on the Highway. However, both become outdated the day they are printed – be prepared for the unexpected!

  19. Make sure your tetanus shot is up to date, and maybe carry a supply of antibiotics – if you get hurt anywhere on the highway, there is no medical help between Deadhorse and Fairbanks. Otherwise if you step on a nail, say, in Coldfoot, you either have to abort the trip, or risk dying a few days later from tetanus.

  20. …and do not feed the bears!

Call of the Wild - July 12 - Finger Mountain - Fairbanks

Note: the story begins here: http://1-800-magic.blogspot.com/2008/07/call-of-wild.html

We spend much of the day cleaning the RV, filling it up with the water, fueling it up, and driving.

Hot Spot Café is out of ice-cream except strawberry, so instead of my favorite milk-shake I got the strawberry smoothie. I am still not sure who made the mistake – whether it was me saying that I want smoothie instead of the milkshake, or them making the smoothie instead of the milk shake.

The weather is fine and we pass more beautiful scenery.



Around 9 PM our trip on the Dalton comes to completion.



An hour and a half later we’re in Fairbanks where we spend the night at an RV camp.

The next day is hectic - we must return the RV by 11:15, wash it and pick up the rental car from the airport before that. The transaction closes nicely – all charges as expected, the guys at GoNorth do not add anything unfair. We even get a break on gas – the charge for the empty tank is actually lower than it would cost to refill it, although they will probably close this loophole soon. In retrospect, we should not have cleaned the RV – the charge for cleaning it would have been $235, but it would have saved us 3-4 hours of our vacation.

Call of the Wild - July 11 - Grayling Lake - Finger Mountain.

Note: the story begins here: http://1-800-magic.blogspot.com/2008/07/call-of-wild.html

In the morning I drop a few breadcrumbs into the water, and they are still there an hour later, which does not portend good fishing. Two hours later there are ducks in the area, and they pick at the breadcrumbs. We drive off.



On the side of the road there’s a ptarmigan. It looks, sounds, and behaves like a chicken.



It does not want to fly, but we chase it and eventually it does – just barely.



Our next stop is the Jim River. According to a local we met on the way there, this is THE place to fish. We can see some grayling right off the bridge. Unfortunately, it completely ignores our bait. Soon two more RVs roll in – that happen to have two families from Seattle area.

One good thing about Jim River is that it has very stable, very hikable banks. We walk a mile or so upstream, alternating between the forest around the river and the stony banks.



When we’re back the two couples that arrived after us are fishing. Not only that, they hooked a big salmon and are leading it to the dry land.





Eventually it tires out, and one of the fishermen comes to the water to release it – it’s catch and release only for salmon in the Dalton corridor, but at the last moment the salmon breaks free on its own. We pass the Arctic Circle again, and settle for the night at Finger Mountain.

Call of the Wild - July 10 - Farthest North Spruce Tree - Grayling Lake.

Note: the story begins here: http://1-800-magic.blogspot.com/2008/07/call-of-wild.html

After yesterday’s march we sleep in and take our time. We start really late, stop at the Visitor’s Center at Coldfoot again, and watch a movie about the Alaska Pipeline. Apparently this thing was built in just 2 years – and not surprisingly, at a 10x cost overrun - $8B vs. originally planned $800M. And you thought Vista was bad! They rushed the construction so much that in places they apparently did not do proper surveying. So in one place they realized that they do not know how to build a segment going through a particularly challenging terrain when it was too late. A lot of heroics ensued and the dangerous part was constructed after all, but it was a cliff hanger! I highly recommend the movie (http://www.netflix.com/Movie/American_Experience_Alaska_Pipeline/70097618).

After the Visitor’s center we go to the Coldfoot café. They have no ice cream, and this time the person behind the counter is not nice – she won’t let us refill our water tank. So we skip buying fuel here (we still have enough to Yukon), and head to Marion Creek for the water.

Then on to Grayling lake. This is supposed to be a good fishing place. We try to reach the lake from the higher bank, get thoroughly wet and almost drown in the marsh. The lower part of the road has much better access, but the lake is really shallow here. It starts raining again.

Thursday, July 24, 2008

Call of the Wild - July 9 - Deadhorse - Farthest North Spruce Tree

Note: the story begins here: http://1-800-magic.blogspot.com/2008/07/call-of-wild.html

We get up barely in time for the 10 AM tour of the oil field. After it was raining all night, the weather clears again. This starts looking like a pattern – two days of rain, two days of fine weather.

The tour starts in the presentation room at the hotel. The walls are plastered with various posters that explain how the drilling works, and agitate against feeding the bears. I hear and read this “Do not feed the bears” exhortation so often that I start believing that this is an integral part of American upbringing, at least in Alaska. Young kids are taught not to steal, not to drive drunk, and not to feed the bears.

There are also tons of pictures of wild animals – beers, moose, and caribou. We have now done the entire Highway, and we’ve seen two foxes, three hares, one ptarmigan, and a swan. And this is supposed to be the caribou migration period! I start suspecting that all these pictures are photoshopped, and the animals do not actually exist…

The tour consists of a short speech by a retired worker that does these tours, then a short movie about the oil production, then a bus ride through the oil field to the Arctic Ocean, an opportunity to wet one’s feet, or even go for a swim.

Listening to the presenter is fairly interesting. Several oil companies operate here in close cooperation, and their duties are divided – production, exploration and transportation of the same oil is handled by different oil companies. BP does production, for example, and Conoco does exploration. Long live US energy independence – brought to you by British Petroleum. Around the major players, there operate tons of contractors – companies that treat water, remove sewage, run hotel services, food preparation, etc. Minus the Army, I think I get the idea what the Green Zone in Iraq must look like.

The people here work in 12 hour shifts for 14 days straight, and then get 14 days off. When they are off, they have to leave the area – there is no extra space here. There is a plane that brings them to and from Fairbanks and Anchorage, but from there they have to find their own means of getting home. The hotel space is utilized to the fullest – every room has two beds – one for the person who works day shifts, another for the person who is in the night shift. The companies pay for living, food, laundry, uniforms, and on-site medical care (the workers still have to buy general health insurance, since all complicated cases are treated in Fairbanks or Anchorage).

The guide also talks about local wild life – the caribou herd (that apparently have increased since the facility was built by tenfold, which he says is because it provides some respite from mosquitoes, the caribou’s biggest natural enemy) and the grizzly bears. Wildlife has the right of way here – if it is crossing the road, the equipment must stop and let it pass.

The movie is focused on persuading the viewer that the environmental impact is the top concern here, and that it is very small.

After the movie, the bus takes us through the oil fields to the Arctic Ocean. There’s a bunch of cool equipment lying around. Look at the size of the tires on these things…



The older drill sites are outside the restricted area.





Their footprint is bigger. The newer ones drill wells that spread to cover a huge underground area from a relatively tiny pad.

Halliburton is everywhere, of course. This is where Dick Cheney got his ideas about the “healthy forest” initiative…



Finally, we get to the ultimate goal of the trip – the Arctic Ocean.



We get to wet our feet in it. Technically, there are supplies in the bus for those who would swim and the driver encourages us, but the wind is cold, and nobody partakes.



On our trip back, one thing becomes quite clear – the oil installation is good for the wildlife. We haven’t seen much wildlife on the way here, but on the oil field we finally see caribou – and the wildlife right of way in action.



We run into two more when we leave Deadhorse later that day – a mother…



…and her calf, which was hiding in a ditch until I startled it.







After the tour, Mom stepped on the nail while throwing the garbage away, and had to go inside the closed zone again to get a tetanus shot and antibiotics – there are no doctors in the Deadhorse itself, but there are some in the oil fields, and they kindly agreed to help. The same guy who gave us the trip drove her there – we could not enter the restricted area.

While she was getting help, we dumped our wastewater and filled our fuel tank. The gas pump at Deadhorse is weird – there are fuel hoses outside, and a really weird machine inside. The price of the fuel does not figure anywhere, until you get your final receipt – and for that, you have to insert your credit card again.
This is the pump outside…



…and inside.



We leave Deadhorse around 5, and within the first 40 miles run into a herd of musk oxen crossing the river. We notice them because there is another car parked along the highway, and several people with binoculars. The herd is 200-300 meters from the highway, but I can get within 50 meters to take these shots…











Then within the next 30 miles we run into another herd, this time on the right side of the road. Things definitely start looking up for the wildlife observing.



It starts getting late, but the sun provides just the right lighting for the scenery, and it is beautiful, so we just keep driving. This is the Sagavanirktok valley at 11 PM.



A nice view of the pipeline.



Rolling hills and a really beautiful blue river (this is still Sagavanirktok).



At times, the scenery outside looks almost identical to Windows XP desktop. We snap a few pictures…



A brown spot is barely visible 200 meters off the right side of the Highway. I go to investigate, and startle a moose – he was going to bed in a depression in the ground.



The moose runs away and gets to the other side of the pipeline. Are the sites where the pipeline is buried to create crossing points for big game really necessary, or are they created just to pacify the environmentalists?





A side trip to Toolik lake to take a dip in the lake at 1 AM in the morning, and we’re on the road again. At 2 AM the mountains reflect beautifully in the lakes by the road.





We traverse Atigun Pass at 3 in the morning – again! The Chandalar River really forks here…



Being up really late pays off again – we observe (and photograph) this red fox from literally 10 meters away.





We reach the Farthest North Spruce Tree soon thereafter and drop asleep in the parking lot.

Tuesday, July 22, 2008

Call of the Wild - July 8 - Toolik Lake - Deadhorse

Note: the story begins here: http://1-800-magic.blogspot.com/2008/07/call-of-wild.html

I wake up at 7 and go outside. The rain is intermittent. I leave a little bit of bread in the water not far from where we have parked to see if there is fish there, and go back to bed. At 9, I check back – the bread is all still there. There is no point to even attempt fishing, so we have breakfast and leave.

Mountains recede, and the landscape changes to rolling hills and then plains. It is completely deserted, except for a few birds. The plains look flat, but they are composed from millions of mounds 15-20 cm in height with a bunch of grass on top. The grass spreads around and covers the troughs between the mounds. But when you walk, you have to watch very carefully where you foot lands – the surface is very uneven. Often there is water in the troughs, too. There are many lakes all around. Some waterfowl starts appearing – ducks, geese, swans.

Once in a long while we see bicyclists on the road. This is masochism in one of its purest form. First, it rains every few days – and when it rains, it pours. One gets completely, thoroughly wet within half an hour of being in the rain, even in rain gear. Second, the mosquitoes. Bicyclists are not moving fast enough to shake them off, especially uphill, and the road is so bad that one can’t accelerate downhill either. Third, the trucks. When they pass, they pelt one with a shower of small stones. We always pull to the side of the road and stop when a truck passes by, but the rattle of stones on the windshield and the RV body still makes quite a racket. I wonder what happens when one of the bigger pieces strike the bicyclist. Fourth, you have to carry all your food with you – there are no stores that sell food anywhere on the highway. Finally, wild animals. There are definitely bears in the area, and wolves – we’re seen the foot prints. Trying to outrun one on a bike is not a good idea.



After the Brooks Range, the road stays mostly within the basins of two rivers – Atigun, and then Sagavanirktok, of which Atigun is a tributary. Both are quite shallow this time of the year.

The weather clears for a moment, and we make a stop along Sagavanirktok.



There is a boat landing here, and an automatic weather monitoring station. The river is wide and could in theory support fish. We try to fish, but don’t catch any. In the end our kids get completely entangled in the string, and I have to cut it.



We arrive at Deadhorse around 7PM that day. The drive is uneventful – the weather spoils again, so the endless plains around us are gray and devoid of the wildlife. We see a few birds – seagulls and others that we cannot identify, and we snap this picture of a swan at the very entrance of Deadhorse.



Deadhorse is not really a settlement. It’s a large industrial area that looks like the insides of the gravel pit – a lot of heavy equipment intermixed with units of temporary housing. These are called “hotels”, but they are not hotels in the normal sense of the word – they are companies that provide housing services to oil exploration corporations. They also house the few visitors that come to the area, but treat this part of their business as a public service rather than moneymaking enterprise.

The staff at the Arctic Caribou Inn is not very interested in our money at all – they tell us to pay for parking tomorrow, and fail to charge us for the tour – I have to remind them the next day to take our money. Simple parking is $10, parking with “hookups” is $25. The hookup is just electric, but they also do give us water fill-up on the side. More importantly, inside the hotel they have showers and a Laundromat – for free – which we use.

Before settling in on Arctic Caribou Inn, we drive around to see if anyone has RV hookups with water. We soon find out that The Milepost information about Prudhoe Bay is outdated. The only hotel company that has RV parking at all is the Arctic Caribou Inn. We also keep asking about RV dump, but nobody has heard about it. Yet it is very prominent on every map, and given the fact that this is the only one on Dalton Highway after Milepost 60, it is a very important location for us.

As a side note, the lack of RV dumping facilities alongside the Dalton is the biggest limiting factor for us – because of it our use of the RV bathroomis very limited. There is also no water between Coldfoot (milepost 175) and Deadhorse (milepost 415). We try to conserve water and almost always use the outhouses alongside the road, but still cannot stretch our water tank for longer than two days.

The Milepost lists Brooks Supply as a general store and a great source of information about the area. As far as a store, it is not very useful for a traveler – it carries neither food (except for snacks – potato chips and candy), nor water. The vast majority of the Deadhorse population are oilfield workers that live elsewhere, and the companies provide all meals while they are here – so there is no need for a store selling unprocessed food: nobody cooks. Other than that, the second floor of the store (general supplies) is Wal-Mart condensed into a couple thousand square feet. The first floor is hardware, and it is Home Depot’s tools section condensed into the similar floor space.

The good thing is, people here know where the RV dump station is – it’s at Nana station right next to the Arctic Caribou Inn.

So we go back to the Arctic Caribou Inn and settle in for the night, which means that we shower and do the laundry for the next two hours, then finally fall asleep at 3 AM. It is raining again.

Call of the Wild - July 7 - Galbraith - Toolik Lake

Note: the story begins here: http://1-800-magic.blogspot.com/2008/07/call-of-wild.html

It’s Monday and we wake up really late – not surprising for us, given the time we went to bed, but the kids are definitely sleeping in. It must be around noon before we have “breakfast” and move out for a hike.

A few words about food. The RV is really made for cooking. There is a pretty big refrigerator with a freezer compartment. We had two cans of ice cream in it at the beginning of the trip and now we’re down to about one half. There is also a gas range with an oven, and a microwave. The microwave contains our supply of freeze-dried meals from REI. These are damn good. Two cups of boiling water and 8 minutes make a pretty tasty meal. They constitute our dinner. We have 8-9 varieties, and I can see ourselves eating these throughout the entire trip without getting tired of them.

We also brought a bunch of cereals and a lot of dried fruit from Trade Joe’s, and Tanya cooks them for breakfast. We also bought four watermelons in Fairbanks. But we are down on drinking water – a 12-pack of green tea bottles, four 2.5 gallon containers of drinking water, two cartons of juice, and three bottles of lemonade are almost all gone – only one 2.5 gallon container remains. Soon we will have to start using the water filter and the iodine tablets. The water in RV is theoretically potable, but I don’t trust it.



The restroom at the Galbraith Lake Camp stinks. Literally and quite severely. Probably the worst restroom so far. I try to persuade everyone to start using the RV’s restroom – we were very conservative on our “black water” budget, since there are very few places where this can be dumped.

The morning was windy, and the mosquitoes disappeared, but the wind subsided by midday and they came out in force. We’re wearing full gear – raincoats, mesh masks and mittens. Still, there are clouds of them around us. We’re going to the lake which is roughly a mile to a mile and a half away. We’re carrying the gun and the fishing pole.

The road to Galbraith Lake looks like a meadow. In fact, it’s three-quarter marsh, and one quarter brush. Navigating it is hard – you have to watch your feet constantly and walking is more like jumping – from mound to mound. We quickly give up the green part and move to the riverbed. There we have to constantly cross various small streams, but at least it is solid ground.



The weather falls apart quickly. The morning was sunny, but by mid-day it’s raining full force. After an hour and a half we finally get to the lake and discover two things. First, the shore is not stable – it consists of really deep dirt with a layer of stones on top. When you step on the stones, your leg sinks several inches, and if you try to stand on it, it sinks further. Second, we have no idea how to operate our fishing equipment. Not only do we not know how to cast it without getting entangled in the string, but to untangle it, we have to remove the mesh mittens – and once we do that, the mosquitoes attack. Finally, the kids beg for mercy and we give up. Now it’s a long march back to the RV. At this point it starts raining really hard – a pouring shower. By the time we’re back in the RV we are soaked to the bone and very cold.

We spend the rest of the day sleeping – the constant knock of the rain outside is very conducive to it. We wake up around 8 and contemplate what to do next. There are many ideas, but one thing is clear – there is no appetite for staying in Galbraith Camp and its smelly restroom. We finally decide to go to the Atigun River and try fishing again.

Atigun River has stable banks, but unfortunately the river is quite shallow there, and there clearly is no way I can cast the hook far enough to anyplace deep enough where the fish could possibly exist. I try casting it from the bridge. It sort of works, and eventually the hook comes back without the bait. It is not entirely clear if this is because it was eaten, or because it had fallen off.

We give up after about an hour and decide to drive to Toolik Lake which is nearby. Camping here is prohibited, but because the RV leaves no external footprint, we decide that we’re going to claim that we’re parking, not camping. The road leads past the entrance to the research facility and to an opposite shore. There we go to sleep.