July 2004 Entries
We saw a fantastic movie at the Landmark last night called Twilight Samurai. It stars Hiroyuki Sanada who played the bad ass in The Last Samurai who beats the crap out of Tom Cruise and was the Samurai leader's second in command.
What sets this movie apart from most Japanese Samurai movies is how vulnerable the hero is. He's trying to lead a simple life and struggles to make ends meet. He is sensitive to his daughters and senile mother (his wife died of consumption) encouraging the daughters to study the classics (quite atypical) along with their needlework. He isn't a typical bushido super-hero with perfect valor, but a petty Samurai who wants nothing more than to watch his daughters blossom into young women. As you might expect, it isn't always that easy to maintain a simple life for a Samurai with duties.
This isn't the movie for you if you're looking for one gratuitious battle after another. The fighting is scarce, but significant to the story, well done, and have a realistic look to them. There are no crouching tigers nor hidden dragons here.
There ought to be a law that requires employers to give their charges the day off due to great weather. Back in Alaska, we'd have the day off when it dropped to -60 F with snow up to your nostrils. They call it a "snow day". Well there ought to be a "good weather day".
Not that I needed it, I'm on vacation fool! No, I ask for this for all you suckers trudging to work while I was kayaking away on Lake Union in Seattle. We paddled our way through a channel to Lake Washington and had fun limboing underneath the freeway. Yes, underneath. There's a portion of the freeway directly over the lake, and portions of it are only three feet above the water. My wife and I nearly scraped our noses trying to glide underneath laying on our backs against the kayak.
Earlier today we cashed in my REI dividend buying my wife some nice sandals. Seattle has the nicest REI store I've ever seen, complete with a huge climbing wall. It made me nostalgic for the wilderness of Alaska. I had the sudden urge to climb mountains, wrestle bears and sleep in caves. Then again, L.A. has its own version of wilderness that's pretty wild too.
I'm here in Seattle hooking an unsuspecting Dan Kalish on the drug I call RSS Bandit. He just finished the Washington Bar (after having passed the Connecticut bar only a couple of years ago. Sucks to be a lawyer and move.) and is enjoying a quiet repose. This is my first attempt to a non geek on RSS.
My friend Julie showed me and Akumi around the campus today. She works for the Finance department in Building 4. When I say "campus", Microsoft really has a collegiate feel to it. We even saw a group sitting in a circle in a plot of grass having what appeared to be a discussion group. We had lunch at the cafeteria there and the food reminded me of my college dining hall, not terrible, but nothing to write blog about.
Seems like everyone we know in Seattle is trying to pimp it to us. Grace, whom we're staying with, is constantly pointing out how wonderful it is while Julie is selling both Seattle and Microsoft. She certainly knows how to sell Microsoft to a person like me (not that I need any selling). After lunch, she immediately took us by the soccer field where two lunchtime games were going on a perfect turf field. Need I see more?
After walking around a bit, we headed over to the Microsoft Store and Museum. The store didn't impress me too much, but the museum was neat, and not just because of the X-Box consoles. The old pictures of Bill and crew inspire a laugh and it was interesting to see the box for "Microsoft Adventure", one of their first games.
After our impromptu tour was over, we sat in the lobby of building 4 when I noticed a group of people on the other side of the glass walk by. I noticed a guy in an orange XML Web Services shirt and told my wife that the huge book in my backpack that adds all the bulk to my luggage was written by him. I would've liked to have introduced myself to Chris, but we were already on the outside of the glass.
We fly off tomorrow to Seattle and don't let me catch you even thinking about trying to snake my stuff. I live in a very bad neighborhood, you wouldn't want to be there after dark or in the nude. We have vicious blind dogs in the yard that have been raised on human meat and will bite anything that breathes or walks funny. And robots in the house with lasers and duct tape and ... and Barry Manilow CDs!
And...um.. we have cameras all over the place, and a direct upload to America's Funniest Home Videos so everyone can laugh at you when you're attacked by blind dogs, including the girl in HR who never looks in your direction you pathetic slob.
Besides, my stereo is out-dated and sounds crappy. But I hear the neighbors just bought a huge flat panel HDTV with a Bang & Olufsen stereo. You should steal their shit instead.
Google originally wanted to raise $2,718,281,828, but based on this article, I predict they'll be closer to $3,141,592,653. In any case, that's a big piece of pi. (sorry. really. don't shoot me.)
LOS ANGELES (Reuters) - Google Inc., the world's No. 1 Web search provider, said on Monday its highly anticipated initial public offer could be worth as much as $3.3 billion as it prices its stock in a range that could value the company at more than $36 billion.
[Via Reuters: Top News]
I have a bad habit of writing specs in the future tense. Since the system I’m spec’ing doesn’t yet exist, it’s so easy for me to fall in the habit of saying things like:
- This page will look like this:
- At this point the system will do this.
- The system will display that control here.
instead of:
- This page looks like this:
- At this point the system does this.
- The system displays that control here.
So what’s the big deal? Well there’s two big deals. Number one is a question of written aesthetics and the other is a more practical consideration. Ok, so they’re not all that BIG a deal. But let me continue.
Aesthetically speaking, using the present tense sounds more active and interesting. Remember all those lessons about active voice and passive voice in high school English? I think it’s made me paranoid.
Secondly, and more importantly, is that after you build the system and someone comes along and refers to you spec as a piece of documentation, it sounds kinda funny to say the system "will look like this" when it already "does look like this". You can argue that the system doesn’t respond till the user interacts with it so that saying "When the user clicks here, the system will navigate there" isn’t so off the mark. See my first point in response to that point. I thank you for your time.
Via Mr. Adam Kinney is this hilarious flash video about what happens when the Apple Switch campaign is coopted by Linux users.
My team, Nothend United, tied the Westsiders 2 to 2. Our goalie was phenomenal in staving off their aggresive attack, but sadly the opponents scored twice by capitalizing on deflections of our defense that took our goalie out of position. I scored one off of a penalty kick. For the record, I didn't dive. I never do.
I'm no professional musician, but I thought the acoustics at the Hollywood bowl was fantastic. They've been touting the improved sound with the new shell and improvements. The sound was sharp and clear.
The opening act played an Eastern influenced set with guitar, bongos, and even some Drum & Bass mixed in there. They were accompanied by Indian dancers on one side and break-dancers on the other. East meets west. I don't believe for a second that the break dancers are from this world. I think they are former Gumby rejects in the way they contorted and flipped. Of course, I've seen just as impressive dancers on 3rd Street Promenade.
Sidestepper soothed us with "In Beats We Trust", a very reggae-ish funky tune. Nortec Collective picked up the intensity a notch with some thumping music. The Crystal Method then brought it home with a nice selection of a few new tracks and several classics, ending with "Busy Child."
I have to hand it to Microsoft, they really do listen to their customers. And I don't mean in that head nodding "I hear you but I don't know what you're saying" kind of way so common with people who really want you to think they're listening, but have no time for you. I posted my question about device support on Don Box's Wiki and here's his response:
There are several small XML parsers (expat being the most well-known) that should make it exceedingly straightforward to implement basic SOAP functionality on your device (you will have to write some code, as the tool support is zip when using this approach). The challenge going forward is getting XML DSIG and Encryption, both of which require a real investment if your platform doesn't include support for them. How long it takes Sun to bring these technologies to J2ME is out of our control. If it's any consolation, we don't have them on .NET Compact Framework yet either. For the near-to-mid-term future, if you want reach, transport-level security is your best option for getting messages out of the device.
Now, I know this may be out of Don's control, but I think its pertinent and I might as well ask. The way I see it, a huge source of consumers for SOA will be mobile devices running on other platforms connecting to these services. Although J2ME (and BREW etc...) is out of Microsoft's control, now that Sun and Microsoft are good buddies, can we expect to see some more collaboration and perhaps even a bit of friendly pressure on Sun to provide toolkit support for WSE 2.0 now and Indigo near the time Indigo is released? At the very least Microsoft should be (and I imagine are) concurrently building Indigo support into the .NET Compact Framework. Out of curiosity, is that the case? Microsoft says they've run out of things to buy, but perhaps they should buy or start some spinoff companies to build toolkits for platforms that do not have decent support for Web Services. What better way to complete the chicken-egg problem than to make both?
Scientists will soon rip open the door to real Quantum computing. Will it be a peek into alternate universes? Or will it fizzle with a whimper?
Physicists have succeeded in entangling five photons for the first time. Although four photons have been entangled before, five is the minimum number needed for universal error correction in quantum computation. Moreover, the same team has demonstrated a process called "open-destination teleportation" for the first time (Z Zhao et al. 2004 Nature 430 54). The results represent a major breakthrough in efforts to exploit the laws of quantum mechanics in quantum information processing.
[Via Physics Web]
First Kyle, then Micah. I've bugged him, cajoled him, annoyed him, till finally he caved and installed RSS Bandit. Took about five minutes before he became a full fledged addict. I have a feeling he'll be up really late tonight. Next step is to get him set up with a .TEXT blog. I'm so eeeeevil.
I'm taking all of next week off of work. Wohoo! Well actually, I'm only on vacation from my day job. Monday and Tuesday I'll be working on some contracts I've got going on the side. Then on Wednesday, the little lady and I are heading out to Seattle to visit her best friend. Hopefully I'll have some time to work on RSS Bandit too.
Tonight I'll be going out for a few drinks with my buddy Micah. He quit his job and went independent. He's poised to take over the world soon, while I'm jockeying to position myself to ride his coattails. ;) He's got a lot of great ideas on how to make IT a value proposition and not a cost.
Saturday night, I have a big soccer game. Sunday I have an acupuncture appointment and we're going to the Hollywood Bowl concert. Whew! We're pretty busy this weekend.
In my last post I discussed a client who requires that we build a web service using a proprietary XML format (lets call it MyXML) so his mobile devices can interact with our platform.
Naturally, I didn't want to limit ourselves to one client, but looked at the big picture and decided I should build a standard Web Service using SOAP, but provide some sort of facade that would translate his MyXML requests to SOAP and translate the SOAP responses back to MyXML.
My first attempt was to write a Soap Extension. I was planning to do something like this (some code ommitted):
using System;
using System.IO;
using System.Web;
using System.Web.Services.Protocols;
/// <summary>
/// Soap Extension that transforms incoming MyXml to
/// SOAP and outgoing SOAP to MyXml.
///
public class MyXmlToSoapExtension : SoapExtension
{
Stream _soapStream;
Stream _tempStream;
/// <summary>
/// Transforms incoming MyXml to SOAP and outgoing SOAP to
/// MyXml
///
/// <param name="message">
public override void ProcessMessage(SoapMessage message)
{
switch (message.Stage)
{
case SoapMessageStage.BeforeDeserialize:
{
// Code to transform incoming _soapStream
// into the chained _tempStream via XSLT.
}
break;
case SoapMessageStage.AfterSerialize:
{
// Code to transform chained
// _tempStream and write result to
// the outgoing _soapStream via XSLT
}
break;
}
}
/// <summary>
/// When overridden in a derived class, allows a
/// SOAP extension access to the memory buffer
/// containing the SOAP request or response.
///
/// <param name="stream">
/// <returns>
public override Stream ChainStream(Stream stream)
{
// by overriding ChainStream we can
// cause the ASP.NET system to use
// our stream for buffering SOAP messages
// rather than the default stream.
// we will store off the original stream
// so we can pass the data back down to the
// ASP.NET system in original stream that
// it created.
_soapStream = stream;
_tempStream = new MemoryStream();
return _tempStream;
}
}
And man, it was working like a charm in my unit tests. I was converting straight up garbage into SOAP. The beauty of this scheme was that SOAP requests and MyXML requests were happily going to the exact same URL. Everybody was getting along. All I had to do was examine the request. If it was a SOAP request, I didn't change anything. If it was a MyXML request, I ran my transformations. For a moment, I was daydreaming about the articles I would write about how brilliant a solution I had created (not realizing there were other problems as well such as maintaining the transformations between MyXML and SOAP) until I noticed that my unit test was cheating a bit. When making the HTTP request, the test did the following sneaky thing:
HttpWebRequest request
= (HttpWebRequest)HttpWebRequest.Create("http://localhost/Svc.asmx");
//...Code Omitted...
request.Headers.Add("SOAPAction", "http://mynamespace/MethodName");
You see, a SOAP request is more than just the contents of the SOAP envelope (especially when using doc/literal/bare), there's also crucial information in the HTTP headers. So I removed that line in my test, and tried to add that line within my Soap Extension like so:
HttpRequest request = HttpContext.Current.Request;
request.Headers.Add("SOAPAction", "http://mynamespace/MethodName");
Not going to happen, my tests failed. By the time the HTTP headers reach my web server, they are READ ONLY. They won't let me get my grubby hands in there and change them. I might be able to convince my client to add this header to his clients for kicks, but I don't think he'd go for it. Why would he? He doesn't want anything to do with SOAP.
Now, unless someone comes along and shows me how to modify incoming HTTP headers from an ASP.NET service, I am going to resort to plan B. I will write an HttpHandler that takes in the MyXML, does the authentication etc..., figures out which method to call, and then call the appropriate Web Service method. I've put the code that implements my web service in another assembly like so:
<%@ WebService Language="c#" Class="Svc,MyAssembly" %>
That way my HttpHandler doesn't have to make a second HTTP request to the Web Service, but just use the underlying logic (assuming my methods don't access such things as the SoapContext etc...). I was hoping to avoid this type of duplication of efforts, but oh well.
UPDATE: As my friend Ben points out, I can modify the HTTP headers with an ISAPI filter, but that's a lot more work and I prefer to work within the ASP.NET model and not have to deal with ISAPI.
In this post, Tim Ewald talks about using Doc/Literal/Bare for your web service. There are several benefits he ticks off, but one seems to be the aesthetic effect of cleaning up the format of the XML within your SOAP message. In SOAP, the XML sent back and forth is just the wire format. As a typical developer, why should you care what the wire format is? In general, you shouldn't. If you have the tools to generate WSDL and generate a proxy off of a WSDL to call a web service, you're all set.
Unfortunately for me, it's not that easy. My job right now is to expose my company's platform to clients running cell-phones, set-top boxes, etc... These platforms are running J2ME, BREW, C, etc... Potential future clients are interested in SOAP, but our first client is dead set against it because they say it's too verbose for their tiny devices and there is scant tool support for them.
So I went and took some sand-paper to our SOAP services and shaved off every bit I could, smoothing out the edges, shortening the namespaces I have control over, making everything so "Doc/Literal/Bare" you'd blush just looking at it. Still, no go. They weren't having it. They have their own proprietary XML format they want to send to us over HTTP with a roll-our-own authentication scheme. I was hoping to take advantage of all the plumbing VS.NET and the .NET Web Services provide.
I recently watched a video in which Don Box and Doug Purdy discuss Indigo and SOA. They hope that most developers will not have to become plumbers and understand how it all works under the hood. You just use Indigo and it automagically takes care of it for you. You just focus on your business rules.
The problem I see arising is that as Microsoft takes web services and SOA to the next level, not everybody is keeping up. How will I get these people on mobile devices to interoperate with my service if they are lacking the tools to even generate simple SOAP messages? These guys didn't want to use XML until I showed them their format required very little change to make it XML compliant. As much as I don't want to know what's going on under the hood, I'm afraid I am forced to hike my pants down a bit and expose some butt crack to become a plumber.
In my next post, I'll talk about my solution to this problem and a problem I ran into.
Dare asks the question whether or not we should change the browser used by RSS Bandit. He was greeted by over 30 comments, mostly in favor of the switch. This is purely anecdotal, but I get the sense alot of people are upset by recent vulnerabilities in IE. I also get the sense that a lot of people feel that upstart browsers are toeing the line of innovation while IE has sat on its fat ass and done nothing lately.
Whether that's true or not, as Dare points out, integrating another browser into RSS Bandit is a bit of work and could open a whole can of worms. I'd like to point out that there's something you can do now with RSS Bandit as a stop-gap. It may not appease the die-hard Firefox or Gecko users, but hopefully it will help you feel more secure using RSS Bandit.
A little while ago I wrote up some documentation called Changing The Web Browser Security Settings which can be found on the RSS Bandit documentation site. There are two important features the document discusses. One is that you can have HTML links within RSS Bandit opened by an executable of your choice. This may not integrate with the nice Tabs within RSS Bandit, but at least you're using the browser of your choice.
If you decide to stick with IE, I suggest configuring the Security, Restrictions options. You can deactivate ActiveX controls (the source of most vulnerabilities) and browse in relative safety. The documentation describes the risk of checking each option.
The Reading Pane (or "Item Detail Pane") is not affected by these settings. It never allows any script or ActiveX controls. While we debate removing IE, you can read your feeds with more security. Happy RSS Reading.
 |
|
We're going to this on Sunday! Awesome! I better start looking for parking now. The Hollywood Bowl is a beautiful venue. It's nice to listen to some rocking music outdoors under the stars (if you can see them in L.A.)
|
 |
[Listening to: LTJ Bukem - Big Bud Emotionography - - (5:48)]
Via this article in Newsweek, I found an interesting blog geared towards the professional philosopher but open to others with an interest.
Although some posts such as Are Deontology, Consequentialism, and Pluralism the only viable theories of ethics? will give you a headache just trying to decipher the title, many of the posts (the aforementioned included) ask very thought provoking questions such as "Who Would Suffer the Greater Misfortune?. It may not help you track down that elusive threading bug, but it may help you deal with it philosophically.
One of the contributors is a professor at my alma mater, Occidental college.
Ian Griffiths blogs about the Monty Hall problem.
The problem, named after the host of a game show on which it sometimes appeared, is as follows:
There are three doors, behind one of which is a valuable prize, but you don’t know which door. Choose a door. You are not told straight away whether you’ve made the right choice. Instead, the host of the game will then open one of the doors you did not pick, showing you that there is no prize behind it. You are now offered the chance to change your mind. This effectively narrows down your choice - the prize is behind one of two doors, either the one you picked, or the door that neither you nor the host picked.
What should you do to maximize the probability of winning the prize? Should you stick with your first choice, or switch to the other door? Or does it not matter?
I love this problem as an example of a very straightforward but non-intuitive result. I once presented this problem to a group of young kids who were in a summer math and science enrichment program. They were floored by the result. I demonstrated the proof to the kids via both the logical proof (as Ian does) as well as by running a Monte Carlo simulation. I had two teams play the game over and over, one choosing to switch every time, and one choosing to stay. Like mathematical magic, over a series of 20 or so trials it becomes quite clear that always switching is indeed the better strategy. Argue with me as they did, they could not argue with their own eyes.
Now, lest you think that this is only difficult for non mathematical types to grasp, I used to frequent the sci.math newsgroups and with a bemused grin read the long rants of Ph.Ds in mathematics argue over this problem when I now knew a group of 13 and 14 year olds who could demonstrate the result to them.
I’d like to point out that in the real game show, Monty didn’t always give you the option of switching. Sometimes he’d just open the door you chose. When you add that unpredictable human element, all bets are off.
Beer Run!
AP - With their cell doors accidentally left unlocked, four county jail inmates escaped only to return the same night with beer.
[Via Yahoo! News - Oddly Enough]
I promised a friend I'd show him some pictures of the time we went to burning man in 2002. So of course, I figured might as well make a blog entry about it. For you geeks out there, the Playa (A nearly level area at the bottom of an undrained desert basin, sometimes temporarily covered with water) has a wi-fi network available. Every year, Black Rock City, a temporary city, is formed in the midst of the desert near Gerlach. This city is the host of the Burning Man festival. It's about a thirteen hour drive from Los Angeles and the closest city is Reno, Nevada which is about 4 hours away.
Let me introduce you to the gang of burners (people who attend Burning Man) that we camped with. Here we are demonstrating the preferred method of locomotion on the Playa. This assumes you're sober enough to ride correctly, which isn't as much an issue during the day as it is at night.
Took a right when we shoulda took a left on the Tour de France.
Although the heat is oppresive by day, there's plenty to see. One of my favorite installations is a replica of the Terror Dome from Mad Max movies. That's Akumi and myself climbing on it. At night, the dome is covered with people cheering on epic battles as two would-be gladiators strapped with bungie cords swing around whacking each other with foam padded sticks.
Two monkeys climb the extremely large jungle gym.
Can't you just feel the terror?
The primary danger on the playa is overheating and dehydration, so be sure to bring plenty of water. That's not to say that there aren't other unexpected hazards on the playa.
The author auditions for Jaws 5. (Notice the temple in the distance to the right)
Every year, Burning Man has a theme. The year we went the theme was "A floating world". This explains the presence of dolphins.
The author in a dead heat with Flipper.
Some of the installations on the playa are truly magnificent, such as the Temple Of Joy. The prior year, the artist who built this temple had built the Temple Of Tears as he had tragically lost a family member (I think his daughter). But in having overcome the pain and sorrow, he built this temple to celebrate the joy he had with her.
Our friend Laura parks at the Outhouse Of Joy.
Amazing what you can do with some balsa wood, glue and a lot of time.
And then, of course, there's the Man. At night, the Man is totally wired with bright blue neon lights. From any point in the camp, you can pretty much see him standing there as a beacon. Very useful if you happen to be trashed and have wandered off into the darkness of the playa. It's nearly impossible to get truly lost out there, but people are resourceful and manage to find a way.
The one on the lighthouse, not with the shades.
There are the occasional dust storms that can be downright aggravating. We only had to endure one or two. Huddling in the shade shelter we built in the middle of our camp site, we battened down the hatches and munched on snacks. Afterwards, a dust storm will leave a really beautiful sky in its wake.
Still not worth the pound of dust in my eyes.
At night, as the temperature dives, the playa really comes alive. I unfortunately don't have a lot of night pictures, but believe me when I tell you that anything and everything you've ever imagined in your sleep is crawling around. This place creates a bull market for the neon and glowstick industry. All the colored lights create a surreal nighttime wonderland. For example, as we walked about, we almost ran into this moving aquarium full of laughing people.
Nemo didn't sign up for this.
Every day on the playa is a build-up to the big day when they burn the Man. Preceding the burn is a parade of fire walkers, dancers, and mechanical fire-breathing dragons. It's truly a pyromaniac's wet dream. The intense heat of "The Burn" conjures up several dust devils with the appearance of sinister tornados dancing on the ashes of the Man. The following day, the Temple of Joy is burned, but we didn't stay around to see that.
The man. The man. The man is on fire. We don't need no...
Earlier I posted the factual backup from Michael Moore's website concerning Fahrenheit 9/11.
In an effort to be balanced, I present here a list of 56 deceits in Fahrenheit 9/11 from a person who voted for Ralph Nader in 2000. I mention that to point out that this is not a list from a rabid Republican. It's a bit long, but a worthwhile read to gain some perspective on the movie.
So when are we going to get a documentary that provides a more balanced view of what went down?
Thanks to Adam Kinney for sending me this.
We can't find Waldo, we can't find Osama, but we found Bobby. Hooray!
paulydavis writes "Former world chess champion Bobby Fischer, wanted since 1992 for playing a tournament in Yugoslavia despite U.N. sanctions, was detained in Japan for an apparent passport violation and will be deported to the United States."
[Via Slashdot]
I like this idea found on Boing Boing:
Whole Lotta Nothing has sent out a lazyweb request for a blogging plug-in that would allow a blogger's close friends to correct typos in his or her posts. I sure could use something like this.
This would be great for friends of mine like Koba who has a horrible spelling problem. ;) I'm constantly sending him emails of his typoz. Then again, I'd love to let him correct my typos, like the one at the end of the previous sentence.
Omer's post (Hey, everyone! It's the "Omer Asks For A Feature" time again!) reminds me that I have a feature request as well regarding references in Visual Studio .NET. I'd like to be able to reference an exe assembly. The C-Sharp compiler supports it, but VS.NET strangely does not.
The main reason I want this is it will help me keep my unit tests separate from the exe I'm testing as I talk about in this earlier post.
The production move went smoothly, but who sent the herd of rampaging elephants over to stomp on my head last night. Strangely enough, nary a hair on my wife's lovely head was touched.
Google apparently is behind this mysterious billboard that presents a nice number theory problem. I love number theory!
Of course, I could have written a program to sift through the digits of e to find the answer to this question, but I’m a pragmatic soul and figure why not just use Google since it’s 3 AM and I’m tired (I know, it’s cheating, but how good Google fault you for using Google?) The answer to this problem is also a website (7427466391) which presents a more challenging problem.
Congratulations. You've made it to level 2. Go to www.Linux.org and enter Bobsyouruncle as the login and the answer to this equation as the password.
f(1)= 7182818284
f(2)= 8182845904
f(3)= 8747135266
f(4)= 7427466391
f(5)= __________
Keeping in theme with Google’s love affair for the number e, I soon realized (by looking at this site that displays the first 2 million digits of e) that each of these numbers are consecutive 10 digit sequences of e.
I’ll give you a hint, if you sum the digits of each number (something I typically do to see if the numbers are divisible by 3), you’ll find an interesting result (other than they aren’t divisible by 3). That should lead you to the final answer with a bit of coding.
The final answer takes you to a recruiting page. What an ingenious and clever way to recruit talent, though I suppose by giving away the answer, I’ve defeated the purpose. How naughty!
I’m going to buck tradition and start a new craze just because I mean to. Let’s call it, blogging while buzzed. Perhaps it will be the next meme, fad whatever, but this won’t be the happy byproduct or unintended consequence of an event, but the sole purpose of this blog posting.
Yes, I know, I can’t be so pretentious to think that I can start a craze by just saying I’m doing so. But hey! I’m buzzed, I can do what I want! I can try to do all sort of impossible things. Requiring success is not on my radar. In fact, I’ll be right back in a few minutes while I find an elegant and simple solution to Fermat’s last theorem.
Everyone out there get buzzed and blog I say!
I’m back and man, I have written a fantastic solution in the margins of this blog, but I accidentally deleted it and wiped my drive with DOD level 7 erasing technology. Lots of 1s and 0s overwriting that bit of mathematical legendom. It’s rather freeing to take away all inhibitions and intelligence and just type words as they flow System.IO.StreamOfConsciousness.
As I mentioned earlier, I have a friend visiting from London. Let’s call him Michael (don’t let the fact that Michael is his real name bother you. We needn’t quibble over details).
In any case, since I have a production move at 2:00 AM (I’m just here to consult if things don’t go smoothly), I thought I might as well go out for a drink with my friend beforehand. So after a few dead-ends (it is a Monday evening after all), we end up at Temple bar where a very friendly band named Boku (meaning plenty) is playing.
I started the evening off with a Knob creek, moved to a whiskey sour, and ended up helping Michael and his friend finish their whiskey sour and mojito respectively. That leaves me quite loosened up for a 2AM production move that is currently moving along quite smoothly. We’re just waiting for the scripts to finish.
Yes, I do realize that any present and future employers will now consider me a loose cannon and will not want me near their production databases. But as I said, I’m only here on a consultory and supervisory role. I have no real access right now and am not a danger to our business (whew!). Besides, I’ve done production moves for a Fortune 100 client after several fine margaritas from El Cholo back when I worked at a Microsoft Gold Partner. I wouldn’t recommend that as a standard practice, but all went well. Till next time, over and out...
This may be a more palatable way to understand Fahrenheit 9/11 for many who are not fans of Michael Moore. His website has a list of the facts he presents in the movie along with the source.
Of course lacking from this list is a fact-checking list for each source. Also missing is what the significance of each fact is. Some may fall in the category "So What?" while (in my opinion) many others fall in the category "Hmmm... Time to vote Bush out."
This stolen from Koba-san
Well, the jury is still out on the effects of the Internet on American community. I thought the following clips from Putnam frame well the challenges that face those who wish to enhance social capital through the use of computer technology.
The absence of any correlation between Internet usage and civic engagement could mean that the Internet attracts reclusive nerds and energizes them, but it could also mean that the Net disproportionately attracts civic dynamos and sedates them. In any event, it is much too early to assess the long-run social effects of the Internet empirically… neither the apocalyptic “gloom and doom” prognosticators nor utopian “brave new virtual community” advocates are probably on target.
-- Robert D. Putnam, Bowling Alone: The Collapse and Revival of American Community, p. 171
Some of the allegedly greater democracy in cyberspace is based more on hope and hype than on careful research. The political culture of the Internet, at least in its early stages, is astringently libertarian, and in some respects cyberspace represents a Hobbesian state of nature, not a Lockean one. As Peter Kollock and Marc Smith, two of the more thoughtful observers of community on the Internet, observe, “It is widely believed and hoped that the ease of communicating and interacting online will lead to a flourishing of democratic institutions, heralding a new and vital arena of public discourse. But to date most online groups have the structure of either an anarchy [if unmoderated] or a dictatorship [if moderated].”
-- Ibid., p. 173
In a particularly striking parallel to the use of the telephone, a careful study by sociologist Barry Wellman and his colleagues of the use of computer-mediated communication by research scholars found that
Although the internet helps scholars to maintain ties over great distances, physical proximity still maters. Those scholars who see each other often or work nearer to each other email each other more often. Frequent contact on the Internet is a complement to frequent face-to-face contact, not a substitute for it.
-- Ibid., p. 179

[Via LostYouth]
You've got to see this video.
[Via Carl Franklin]
Michael from London and Dave from New York dropped in unexpectedly this week at the same time. We had a fun time driving around nearly all of L.A. yesterday.
Which is perfect for finding that bag of chips in the dark. Found this gem on Boing Boing about a recent scientific study that indicates puffing a joint can improve night vision. Of course this won't help you with the "beer goggle" effect.
Their results backed up claims by the Observer columnist Sue Arnold, who suffers from retinitis pigmentosa and is officially registered blind. She noticed several years ago that drawing on strong Jamaican skunk suddenly and temporarily enabled her to see things clearly. But Ms Arnold has since warned of side-effects that could impede night-time navigation.
"Only trouble was," she said, "I couldn't stand up."
[Via Boing Boing]
The blog you've all been waiting for, Jeff Richter is keeping a blog. Well actually, it's a Wintellog!. Several members of the Wintellect team have formed a group blog. It seems Jeff Prosise is holding down the fort as the most prolific blogger of the bunch.
I first met Richter (not that he'd remember me) in September of 2000 (or something like that) around the time when .NET was entering the beta phase. I attended a four day class in Redmond taught by him, with Dr. GUI in attendance. I also met John Robbins as he came out to dinner and a movie with the group. We went to see Charlie's Angels.
I can summarize Richter's teaching style in one phrase, "Ok, we'll just bust out ILDASM and take a look at...". Seemed like we were looking at ILDASM every five minutes, getting a sense of what was happening under the hood. It was great, though Reflector has taken ILDASM's place in my tool of choice.
In any case, Richter's book, Applied Microsoft .NET Framework Programming remains my favorite .NET book to date. Glad to see you in the blogosphere.
Ian Griffiths wrote this informative follow-up to my question on delegate references. The .NET framework definitely does not use Weak References to implement delegates.
Kurtis Blow once rapped
Basketball is my favorite sport,
I like the way they dribble up and down the court,
Just like I'm the King on the microphone, so is Dr. J and Moses Malone,
I like Slam-dunks, take me to the hoop,
My favorite play is the alley-oop,
I like the pick-and-roll, I like the give-and-go,
Cause it's Basketball, uh, Mister Kurtis Blow,
I'll be honest. Basketball is my second favorite sport, but by a slim margin to that sport of sports, soccer. Being 5' 9", soccer comes more naturally to me. I only made it to the JV level in high school basketball, but played at the Varsity and Division 3 college level in soccer, which is not saying much.
I've started playing basketball at the Y in the morning before work. It was a slow start, but today I had one of those games that reminds me why I love this game. I felt like I was firing on all cylinders.
When you take a moment to think about it, the computational output of your brain while playing sports is amazing. It will take a loooong time before a robot comes anywhere close. Think of all the unconscious calculations you make in a split-second play.
The ball is in the air, watch its trajectory and make sure to precisely cushion its landing in your hands. Avoid being called "Butter Fingers" for the third time today.
Meanwhile, react to the defender on your left. He's bumped into you slightly taking you a bit off-balance, so make sure to keep your balance, brace your leg to support the extra weight, and take a dribble. Oh, and don't forget to keep the dribble away from his hand reaching in. He'd like to get his hands on the ball you know.
As you are half falling, half stepping, be aware of the other defender closing in, he wants the ball too. There's a gap between the two defenders and one of your teammates is cutting to the basket. About time he figured that out. He's got a defender reaching in on his back. Is the gap wide enough? Wait a split second, take another dribble, hear the footsteps of another defender closing in, hear your stomach growl and wonder what you're going to have for breakfast.
There! The gap is just wide enough. Avoid the hands reaching in and throw it off the ground at just the right angle and just slightly in front of your teammate so it lands right into his hands, but away from his defender. Perfect! A perfect layup. Now enjoy the rush of adrenaline and go accept the high-fives and accolades from your teammates. Don't trip on the court.
This entire thought process occurrs in about a second. That's the rush of basketball my friend.
I have a big question that can probably be best elucidated via some code:
public class SomeClass
{
// This guy will raise an important event.
private EventSource _source = new EventSource();
public void AttachEventHandler()
{
// This guy will handle an important event...
BigEventListener listener = new BigEventListener();
_source.BigEvent += new EventHandler(listener.OnBigEvent);
//What happens to listener instance here?
//Will it be garbage collected?
}
}
So what happens after the method AttachEventHandler() is called?
I am assuming that the EventHandler delegate's reference to the OnBigEvent method
of the listener instance is a hard reference. In other words,even though listener is a
local instance and would normally go out of scope when AttachEventHandler ends,
that the listener instance is not collected because of the delegate reference. Is this
correct?
What a weekend in L.A! Beautiful sunny weather hovering in the mid seventies all weekend. I played soccer on both Saturday and Sunday. Watched Spiderman II (loved it). Had some of the best Chinese food I've had in a long while. Found time to work on RSS Bandit. Went bodysurfing at the beach. What more can I say? I'm a happy camper.
Michael Moore is keeping a blog. Now if I can convince him to provide an RSS feed.
10. That actor who played the President was totally unconvincing
9. It oversimplified the way I stole the election
8. Too many of them fancy college-boy words
7. If Michael Moore had waited a few months, he could have included the part where I get him deported
6. Didn't have one of them hilarious monkeys who smoke cigarettes and gives people the finger
5. Of all Michael Moore's accusations, only 97% are true
4. Not sure - - I passed out after a piece of popcorn lodged in my windpipe
3. Where the hell was Spider-man?
2. Couldn't hear most of the movie over Cheney's foul mouth
1. I thought this was supposed to be about dodgeball
A little while back, I had a few ideas about how to combat comment spam. My ideas were more geared towards a trust-based approach to stopping comment graffiti than spam, but they were a bit naive in some ways.
Lately, I've been following some conversations on various blogs attempting to address this problem. Dave Winer suggest that comments expire unless the owner does something about it.
Phil Ringnalda responds that he doesn't want the comments to ever get indexed. This problem seems likely solved by this suggestion in From The Orient that notes that simply stripping the links out of the text themselves will make sure Google doesn't index it.
As Derek Powazek points out, it is Google's voracious appetite for indexing pages that is the root motivation for people to comment spam a blog. One question I have about all this is doesn't Google honor the the robots.txt file or the META tag standard for excluding robots? Adding the following tag:
<META NAME="ROBOTS" CONTENT="NOFOLLOW">
tells Google not to index the links on the given page. Another option is to add a Robots.txt file and tell Google not to index your archives. Personally, I think this second option is too draconian. I think it's great that people find my blog when they search on how to select random records from SQL Server.
Perhaps what is needed is for us to get together and extend the Robots.txt standard and then push for Google to honor it. Now, I don't know exactly how Google indexes a website. I don't know if it parses it as an HTML tree, but supposing it does. It'd be great to have this ability.
<DIV noindex="false" nofollow="true">
Welcome to the comments section of this page.
The content here will be indexed, but the links will not.
Your spam's no good here.
DIV>
Another option is to just have a comment that indicates everything AFTER the comment should not be indexed:
This is easier for an web crawler to parse.
Combining this with an image verification system (like the one that comes with the ASP.NET resource kit from SAX), hopefully lowers the real motivation to comment spam a site. If it doesn't increase their page rank AND they can't automate posting it, why bother?
Another crazy idea I'll mention (and I know this will bog down the server a bit) is to use a component that converts text to an image. That way by default, the entire comment will not be indexed. Just thought I'd throw that out there.
I need to see if my brother-in-law can hook me up with one of these.
LONDON/TOKYO (Reuters) - Sony Corp. said on Thursday it is launching a Walkman digital music player capable of storing far more songs than Apple Computer Inc.'s market-leading iPod, while also undercutting iPod's price.
The Japanese consumer electronics maker said the 20-gigabyte device, which is its second hard-disk drive gadget aimed at unseating Apple and can store 13,000 songs, will be launched on July 10 in Japan, by mid-August in the United States and in September in Europe.
Dubbed the Network Walkman NW-HD1, it marks a major upgrade to the legendary Walkman brand and the announcement comes on the 25th anniversary of the introduction of Sony's groundbreaking portable music player -- July 1, 1979.
[via Reuters]
Koba asks:
If Michael Moore and George W. Bush collide, will they annihilate in a flash of light and energy?)
Perhaps if we did that, the energy output could fuel the country for centuries and we wouldn't need any of Iraq's oil.
Sweet! This is extremely exciting. Now developing for the Linux platform is becoming a
viable option. Perhaps I can start putting penguins in my office, post on Slashdot more often, and join the 1337. ;). Miguel notes:
We vastly underestimated the Slashdot effect. There were
85k hits in the first hour since we went live, and then the
machine collapsed under the weight and has remained in that
state despite repeated attempts to get some data out of it.
[Via Miguel de Icaza]
Found this on Scott Hanselman's blog. The iTunes Art Importer.
It uses the Amazon.com Web Service to find Album Covers for my iTunes collection - and it just works.
That is very cool, though there may be a licensing issue with Amazon as Joshua Flanagan notes:
I've thought about using the Amazon Web Services for similar purposes, but I believe it is a violation of their licensing agreement to store their images locally for more than 24 hours. So, in order for the Album Art feature to work, you would always need to be connected to the internet, so the image can be retrieved each day it is used. Check out the License Agreement link on http://amazon.com/webservices and see if you have a different interpretation.
Well, I'm always connected. Lawyer friends, any thoughts?