September 2004 Blog Posts
My buddy Ed posted some pics from Burning Man this year. This pedal powered Ferris wheel particularly caught my eye. How cool is that!
When you can't afford a hamster.
I wish I could have been there to try it. Visit Ed's blog to see some more great pics.
NOTE: He's got one of them stupid Xanga blogs so I can't link directly to the entry. You might have to hit the "Next 5" link a few times if you see this much later. The pics were taken on September 29.
You gotta love the Japanese for making such interesting products. The company that makes this disembodied arm pillow has sold 1000 units since last December.
It's actually genius if you think about it.
Aiko's pillow attempts to cop a feel
My arm always falls painfully asleep when my wife lays on it like in the picture. I could get one of these and reclaim my arm. Just as long as the pillow doesn't try to make any untoward moves.
Think back to the last week or month of IM conversations you've had. Perhaps you have archiving on and can actually read them. Now, I want you to take a megaphone and broadcast those conversations while at the same time emailing them to everyone in your address book. Don't forget to print a copy for your coworkers and boss. Quick poll of hands, who's willing to do this?
Except for you exhibitionists out there, there's probably not too many hands in the air (you can put them down now). What not many people realize (and for you techies, tell your non-tech friends) is that using an IM tool is equivalent to broadcasting your conversations. Now, not every company is listening to those conversations, but all it takes is a widely available network sniffer and an inclination.
IM clients send messages in clear text over the network. So if big brother feels like listening in, no problem. Some companies employ tools for archiving IM conversations by their employees and analyzing them to see if corporate secrets are being leaked.
If you're going to talk about sensitive topics, I'd recommend using an IM client that encrypts communications. The Jabber protocol provides encrypted communications. The client I'm using is Pandion (email@example.com).
You're employer does NOT need to know about that suspicious rash you acquired after your business trip to Asia.
Yesterday was a crazy day. Our production site runs on an older Dell disk array with three logical volumes each set up in a RAID 1+0 configuration. For you non geeks out there, RAID stands for Redundant Array of Independent Disks
(though some claim the I stands for Inexpensive
, I take no stand on this issue).
The matrix has you.
The point of a RAID 1+0 array is to provide high performance fault tolerance. Unfortunately, it seems that when one disk goes down in our array, others follow in its wake. Yesterday we had three physical disks report failures and one reported that it would probably fail in the near future. I appreciate the one disk giving us a heads up.
"Umm yeah, those other guys failed you. I think I'll hum along a bit and fail...say...sixish?"
Luckily for us, one of the failures was a misreport and we were able to immediately bring it online. The other two failures were on separate volumes, thus we could rebuild each of the drives. My coworker and I headed over to the data center to meet with a network engineer from our former parent company to take care of the situation.
Networking cables galore.
The entrance to the data center has one of them double lock chambers. Swiping a card provides access into the vertical glass tube. At this point you half expect all the air to be sucked out like a physics experiment gone awry. Once the door closes behind you, you swipe the card again in order to exit the tube on the opposite side. It was reminiscent of every episode of ALIAS where Sydney has to infiltrate a data center, only there were no paramilitary guards with machine guns.
The inside was volumnious, with several cages here and there humming with the sound of murmuring server racks. It sort of reminded me of the Core in the Matrix series. Posted prominently in the entrance was a sign forbidding the use of photographic equipment, so we had to place our cameras back in the car. However, my coworker had a phone cam with him and took a couple of pics of our servers. Don't tell anyone.
Twiggy is our new Italian Greyhound (not to be confused with a normal greyhound). She's around two years old (we don't know for sure) and she has a major case of Attention Deficit Disorder. Fully grown, she's only ten pounds.
Hello, my name is Twiggy
We're working around the clock to get her house trained. Apparently her previous owners didn't know how to take good care of her. She pretty much won't do her thing outdoors, prefering the comfort of the indoor accomodations. Also, if you look closely, you'll see she has stitches above one eye. She used to live in a yard with a terrier and a Rotweiler. Rotweilers are playful.
I have a major overbite so my tongue hangs out a bit.
Despite the accident with the Rotweiler, she still is very friendly to other dogs and people, and has an insatiable curiosity.
This is my mom Akumi on the day I was adopted
We have an excercise pen for her as IGs are not supposed to be left unattended in the house. They are superb climbers, and even better at falling and breaking a leg. When I take her for a walk, she tries to get into everything.
I like to sniff everything.
Well thanks for saying hi to the newest member of our family.
A little while ago I said we've decided to adopt a doggy. Well we did it. On Saturday we got a call that an Italian Greyhound was in need of a home immediately. So we drove out to Visalia (about three hours north of L.A. a little past Bakersfield) and picked her up.
Her name is Twiggy (after the 60s fashion icon) and I'll post some photos later. Needless to say, we're very tired as she is not yet house trained and seems to have lost her natural instinct NOT to soil her den.
I’m conducting some phone interviews today for a C++ contractor/employee. Man it’s been a long time since I’ve conducted interviews. I wish I kept a list of my favorite questions to ask.
Maybe I’ll start off with:
- What is your age?
- What is your sexual orientation?
- What is your race?
- Who are you going to vote for?
- Are you married or pregnant?
- What’s your religion?
- How fat are you?
- Would you be willing to line my pocket for this job?
Oh wait. Those are the questions that are ILLEGAL to ask. Doh!
Perhaps I should just re-read The Guerilla Guide to Interviewing.
My wife is in the fashion industry and as much as I love her dearly, I'll never understand the industry.
At least she's a pattern maker and not a designer, so she has no responsibility for this garbage.
Check out what all the fellas will be wearing at the next PDC.
Or is that a woman?
RSS Bandit Developer Torsten points out a very long and arduous process for enabling IPv6 in your .NET application. Here is the extremely tedious set of instructions.
[Via torsten's .NET blog]
A while ago one user complains about RSS Bandit was not running with installed/configured
IPv6 on a windows machine. Today I got the answer (by mail from Frank Fischer, Microsoft
Germany - thanks again!): open machine.config located at C:\Windows\Microsoft.NET\Framework\v1.1.xxxx\CONFIG
and change the XML tag:
<!-- <ipv6 enabled="false" /> -->
This change allows the framework to parse and resolve IPv6 addresses. So any .NET
application will be IPv6 enabled, not only RSS Bandit (but also ;-)
Gee, that seems like a lot of work to me. I'm going to reward myself with a beer. Thanks Torsten!
My office is 17 floors up with a nice view towards the Pacific. The ocean is a few miles away, so all I see is a sliver of blue on a clear day.
This is not one of those days.
It looks like the sky just puked a fuzzy brownish gray blanket over the ocean. I'm holding my breath when I go outside today.
I doubt these guys went out of business, but they're site has been unavailable since last evening. Perhaps someone bumped into the power switch?
UPDATE: Niels reports it is back up and indeed it is. Justin Pitts mentioned it was up for him which indicates it was a routing issue. I performed a Tracert and found that it died when it reached Alter.net. I was just making sure it wasn't a bigger outage over here.
A while ago I wrote up a post on Asynchronous Sockets. Ian was kind enough to send me an email correcting a few niggles with it and in an email exchange, cleared up a few other misconceptions about how sockets (and other IO operations for that matter) really work.
Well now he posts a great article that points out that a program doesn't always use a thread to perform some work.
There seems to be a popular notion that in order for a program to perform an operation, it must have a thread with which to do it. This is not always the case. Often, the only points at which you need a thread are at the start and end of the operation....
This is recommended reading.
Read the rest here
I obtained this certification several years ago and pretty much forgot about it. It really hasn't done me any good. The only benefit at the time was that it helped my former employer obtain Gold status as a Microsoft Solution Provider. However, I'm still waiting to see the real benefits of that status for them.
The benefit of any certification is fully dependent on the external perception of the certification and how well it represents skill and expertise. A PhD for example is generally highly regarded.
As it currently stands, the MCSD certification does not carry such respect. It seems this is due to Microsoft doing little to promote it. The status of a certification goes hand in hand with the people who carry the certification. When you see a lot of very talented smart people carrying a certification they are proud of, you strive for that certification.
Take a moment to think of the who's who of .NET development. How many have MCSDs? My guess is not many. I can't be sure, but I doubt that Don Box, Jeffrey Richter, Ian Griffiths, Chris Sells, etc... have this or even care for this certification. Otherwise they'd display it proudly just as Mr. Sells displays his IEEE member in good standing logo on his blog.
In any case, I'll display it anyways just in case it bears weight in the future. At the very least, I like the color scheme.
This is too funny. For any foreigners or Chinese press who read this blog, The Onion is satire.
"It's a sad day when an overzealous madman with a bomb strapped to himself can threaten our divinely inspired wave of destruction," Jassem said, idly polishing a rifle. "How in the world did we get to this point?"
Read the story from Fox News of all places.
The statement tells American voters that Abu Hafs al-Masri supports the re-election campaign of President Bush: "We are very keen that Bush does not lose the upcoming elections."
The statement said Abu Hafs al-Masri needs what it called Bush's "idiocy and religious fanaticism" because they would "wake up" the Islamic world.
And my Republican friends scoffed at the fact that Kerry won the endorsement of many European countries. Well it's better than being endorsed by Al Qaeda.
Found this interesting puzzle on BoingBoing. I figured it out. Can you?
This looks like an interesting problem. Lloyd Borrett writes:
[Via Boing Boing]
Take up the challenge of "Petals Around the Rose". Also read what happened when Bill Gates was introduced to Petals Around the Rose in June 1977. How he tackled this brain teaser is an interesting insight into the man at the helm of Microsoft.
Someday when I have a kid, the young squirt will sit upon my knee and ask:
Daddy. What's the difference between Progressive House and Progressive Trance? What does Dub sound like and how did it influence Chicago House? And where the hell does Speed Bass fit in all this?
Ha ha whoa there little one. One at a time please. Clean your room and all will be revealed.
Well now, I have just the site to show the little one. Ishkur's Guide To Electronic Music v2.5. This flash site provides an exploratory interface to discover the various genres and sub-genres of electronic music. Starting at the top level with House, Trance, Techno, Breakbeat, Jungle, Hardcore, and Downtempo, the site graphs the various predecessor genres leading up to the genre and then shows how the genre splits into sub-genres. The graphs place the genesis of these various genres in their proper time context. It's really quite nice.
For example, click on BreakBeat and you can see that the roots of BreakBeat are in Hip Hop. Plenty of musical samples are provided to help you gain understanding.
The best part is the author's irreverent descriptions. For example, in describing Happy House the author states:
The official music genre of Dance Dance Revolution, this is by far the most syrupy, saccharine music known to mankind. I bet they play this kind of stuff to calm lunatics at insane asylums locked in padded room with pink walls.
And he goes on and on. In any case, have fun exploring the various genres. And I highly recommend turning up your stereo volume as loud as possible and check out SpeedCore. Do it. Do it. Do it.
Found this here on Yahoo news. What is this frog doing?
Kermit takes revenge when Miss Piggy hooks up with Beaker.
Spanish zoologists have discovered that male frogs who are losers in love get their revenge by spreading their sperm over eggs that have been left by a pair of romancing amphibians.
You go boy! Exact that revenge. Can you imagine how awful it would be if humans engaged in this behavior.
Bitch left me for THAT asshole. Just wait till they have kids!
This is an animated gif. If it's not animated, then you're not seeing what I see.
The more times I watch this, the funnier it gets.
UPDATE: I removed the gif. Brian points out in the comments that the video is funnier.
Someone pointed this out to me on Amazon.com. A book entitled How to Date a White Woman: A Practical Guide for Asian Men.
The fact that such a book exists leaves me speechless. I didn’t realize there was a demand by asian men to seek out specifically white women. Perhaps it’s a backlash against the perceived phenomenon of white men "stealing" asian women. This is absolute hilarity.
Then again, being biracial myself, I can only say I support more interracial coupling. Viva Hapas! The real humor is in the customer reviews for the book. For example check out this one from a reviewer in Brooklyn:
I suppose I really have only myself to blame, but based on a cursory glance at its title, I assumed that this book was about forensic techniques for identifying the age of bones, along with other remains and artifacts. If, like me, you are looking for any insight into the applications of C-14 comparisons, strontium decay or the like, you will be disappointed. However, I gave this book to a friend of mine, Arthur Fong, who said he appreciated it.
Too bad there’s no sample pages because I’m dying of curiosity to see what hackneyed tips the author provides. I’ll tell you the best tip for dating a person of a particular race (not that I condone dating people specifically for the color of their skin). Spend time where they are.
Studies show that the major determinant in who you marry is your proximity to such person. You want to marry a white woman, find out where there are high concentrations of white women. Want to marry a rich woman, hang out in the Hamptons. Oh, and it wouldn’t hurt to shower often and treat them with respect.
I have the lovely task of importing a POP3 mailbox with 144524 messages into our database. I'm using a 3rd party component, but am quickly learning more than I ever wanted to know about POP3. For example, ideally you don't want to use POP3 for large mail boxes because POP3 isn't scalable.
Having read RFC 1939 which specifies the Post Office Protocol Version 3, I now understand why it isn't scalable. There are three phases to a POP3 session, the AUTHORIZATION phase, the TRANSACTION phase, and the UPDATE phase.
The AUTHORIZATION phase is simply a login phase. The USER command specifies the username to log in the mailbox with and the PASS command specifies a password. Once authenticated, the server enters the next phase.
The TRANSACTION phase is where the POP3 client does the real work. For example, the STAT command returns the message count within the mailbox. In order to retrieve an individual email, the Message Id is required. To get that, issue the LIST command with no arguments, and the POP3 server will list all the message ids and the size in octets. There's no way to specify a number of messages to return. So in my case, the command has to return the IDs and sizes for all 144524 messages. But wait, it gets better.
Once, a POP3 client is done issuing commands to delete messages in the TRANSACTION phase, none of those messages are actually deleted until the client issues the QUIT command. At that point, the POP3 session enters the UPDATE phase and the server starts to delete messages marked for deletion. As you can deduce, that could be problematic for a large mailbox.
Also, you might consider deleting messages in batches which is fine, but there's a hitch. The QUIT command terminates your session after the UPDATE phase is over and POP3 does not guarantee that the message ids you listed before will be the same in a separate session. Therefore you have to issue the LIST command at the beginning of each session to list every message even if you only plan to process a small subset.
In any case, I'm working with the author of the POP3 component I'm using to iron out some kinks and make this work. Once I trim this mailbox down, it should hopefully never get so big again.
Best. Band. Ever.
Reuters - Irish rock band U2 Tuesday disclosed the
title and set the release date for its next album, "How to
Dismantle an Atomic Bomb," which will hit shops on Nov. 23.
[Via Yahoo! News - Most Emailed]
Last night Akumi and I attended the Laugh Factory on Sunset to see our friend and up and coming comic Rick Ramos perform. I met Rick through Kyle as the two of them went to Northwestern together and both Rick and I gave toasts at two of Kyle and Cara's wedding receptions.
Most of the comics were latino, but there was a suprise appearance by Malibu's most wanted Jamie Kennedy who was there to try out some new material. However, Jamie didn't bring it like the other comics.
Before the show we didn't know what to expect and were admittedly a bit worried. We had never seen Rick perform and we asked each other,
"What if he's not funny? How akward will that be?"
The first guy was off to a slow start, confirming our fears that this show might be a bomb. But Rick took the stage like a Hurricane in the Bahamas and just rocked the floor. My gut is still busted from laughing too hard.
Several other top notch acts followed including one by a half-Filipino guy named Jo Koy who made everyone look like crying epileptics in a strobe light from laughing so hard.
If you're having problems with your computer after upgrading to Windows XP SP2 and you are using a software firewall such as ZoneAlarm or BlackIce, try uninstalling your firewall software and re-installing it. That solved the problem for me. BlackIce recommends uninstalling their firewall before upgrading to SP2.
On two different machines (one with ZoneAlarm and the other with BlackIce), I had simply upgraded to SP2 and turned off the Windows Firewall. Even so, my machines would freeze up, especially when performing network operations. It seems that even with the Windows Firewall off, there's some sort of contention for the network devices that is resolved by reinstalling.
One thing that bothers me about the CommentAPI is that the only response you get is the HTTP status code.
HTTP/1.1 200 OK
However, there are cases where it would be helpful to return more information. For example, when I post a comment on a blog that moderates its comment, the blog should note in the response that comments are moderated, allowing the application to notify the user as such.
Otherwise I might assume that maybe there was a problem in posting the comment and then use the web form within the blog itself to repost the comment, only to discover that comments are moderated.
This cracks me up.
It always infuriates me to see the conservative right quote the Bible to justify some of their policy choices. Mainly because I believe in a separation of church and state, but especially because of the passages they conveniently neglect that happen to fall in line with the liberal movement.
For example, when you look at the early Christian church, they pooled their resources and shared everything. When Ananias and his wife Sapphira sold a possesion and tried to keep back a part of the price, they were struck dead (Acts 5:1-11). Talk about socialism, no? Bush should heed that warning while he tries to give the rich a tax break while cutting back social programs. Luke 12:48 "For unto whomsoever much is given, of him shall be much required..."
Found on here via BoingBoing.
Dare puts this quote from Tim Bray up on his blog.
This has nothing to do with a California chip maker. Rather, its about a trip I recently
took to a conference called Intelink, where the people gather who run one of the worlds
biggest and most interesting intranets; the one that serves the community of U.S.
[Via Dare Obasanjo aka Carnage4Life]
I was amused to note that on one of the sub-intranets distinguished by being loaded
with particularly ultra-secret stuff, they were offering RSS
Bandit for the people to download and use.
Ok, I know 007 is actually a British Spy, but I couldn't think of a good U.S. counterpart.
Aaron Skonnard mentions that
When you take the custom authentication route and write a UsernameTokenManager (UTM), your implementation of AuthenticateToken must return the same secret (e.g., password) used on the client side to generate the hash/signature, depending on which option you use.
As he correctly points out, this makes security experts cringe and hide under the bed (see Keith Brown's cringing response where he proposes a solution).
The big issue is that your UsernameTokenManager needs access to the original cleartext password. But like any good security conscious developer, you don't store passwords as cleartext, do you? (I sure hope not. Bad security conscious developer. Bad!). Hopefully you do something along the likes of what Keith suggests in his MSDN column. For each user, he stores a randomly generated salt value and a hash of the cleartext password combined with salt value. The salt value is unique per user.
Keith points out that the secret returned by the AuthenticateToken method doesn't have to be the actual cleartext password. It just has to match the secret sent by the client. So if you store your passwords as an SHA1 hash, your client just needs to hash the password before creating the UsernameToken.
However, if you store your password as an SHA1 hash of the cleartext password + salt value, you're going to have to do a little more work. Your client isn't going to know the salt value for every user, so your client needs a way to discover that. This may require calling a separate web method just to query for the salt value given a user name. Service clients would be required to store that value (probably on a "session" basis) and use it when calling methods on the main web service.
Below is some sample code for doing just that. This assumes that user passwords are stored as described in the aforementioned article using salt and hash (no eggs, but do bring the ketchup). (My apologies for the ugly formatting, I didn't want the code to be too wide)
//Make an initial web service call to get the
//the salt value for the user "haacked".
//This should be stored by the client so its
//not called for every method of our main service.
MyServiceWse proxy = new MyServiceWse();
//In order to get the salt value, a special account
//"saltAdmin" is used to call GetSalt(). This account
//only has access to this method.
//This also requires that the client app knows the;
//saltAdmin's salt value up front.
string adminPassword = GetAdminPassword();
//implementation not shown.
= new UsernameToken("saltAdmin", adminPassword
string username = "haacked";
string salt = proxy.GetSalt(username);
// Hash password and salt.
string pw = "Password"; //assume this came from the user.
= new SHA1CryptoServiceProvider();
byte inputBuffer = Encoding.Unicode.GetBytes(pw + salt);
byte result = hashProvider.ComputeHash(inputBuffer);
string hashedPassword = Convert.ToBase64String(result);
//Set up the user's token.
//Notice we the hashed password instead of the cleartext one.
= new UsernameToken(username, hashedPassword
//Make the actual service call.
The AuthenitcateToken method of your custom UsernameTokenManager class can now just return the hashed password value for the calling user from your data store and everything will work just fine and security experts can come out from under the bed.
I read with amusement this recent post on Scoble’s blog in which someone writes him a note dictating the tools that “Influencers” use.
Influencers use weird crap. They use Macs and Linux, Mozilla, and other eminently hackable systems. They don’t generally run Windows and IE.
This is very similar to Paul Graham’s view
of what makes a great hacker, which revolves around the tools a hacker uses.
I don’t understand this focus on trying to nail the qualities of a great person (be it hacker or influencer) by focusing on the technologies the person uses. Let’s look back at influential writers such as Shakespeare and Whitman, they used pen and paper. Aha! Great writers use Pen and Paper.
When history looks back on great writers, I guarantee you that we do not focus on the tools they used. Rather, we focused on what they did. Their output. Do I know or even care what tools Steinbeck used to write The Grapes Of Wrath or Silvia Plath used to write Ariel? Hardly. It’s the legacy of their work and accomplishments that are remembered.
Call To Action Stop wasting your time trying to find the root of greatness by taking your narrow microscope and examining the tools a great person uses. This is as effective as documenting a randomly chosen idiosyncratic tick a person has to determine the cause of his or her influence. You’re trying to push an agenda and you’re not helping anyone. If you want to be a great hacker, influencer, or writer, focus on the necessary skills instead.
Found this on Wesner Moise's blog. He's discussing the performance implications between managed and unmanaged code.
The working set for SharpReader is 30Mb, FeedDemon is 23 Mb, and RSS Bandit is 4 Mb in their initial configuration on my machine. (In comparison, the working set for MS Word and MS Excel are about 18 Mbs.) So, actually in their bare configuration, RSS Bandit is the tightest of them all, even considering that RSS Bandit also uses the .NET runtime.
[Via .NET Undocumented]
So I am in the market for a Tablet PC and after a bit of research, the Toshiba Portege M200 is the top contender for my hard earned dollar.
I'm trying to cut down on the time I spend sitting at a desktop by using a tablet PC for email, reading and writing blog entries, etc... Basically non gaming and non development tasks. I think the high resolution of the M200 makes it a nice choice for reading.
So my main question for you is do you think there's a better Tablet PC out there (or about to be released) worth me looking at over the M200? Let me know. Thanks!
My favorite "offensive" license plate is:
Imagine seeing that one in your rear view mirror. Very clever.
[Via Jeff Sandquist - Microsoft Evangelist]
The Smoking Gun: Letters
of complaint about crude, off-color New York State tags
(Make sure you scroll down and click through the actual complaint letters)
If you installed SP1 for the .NET framework, you may notice that certain feeds are broken and return an HTTP Protocol Error. Dare looked into this and posted an explanation and workaround to the problem.
Apparently a lot of web servers out there are a bit loose with the HTTP specification while SP1 tightens compliance. So c'mon people, stick the chest out, shoulders back, stand up straight, and stick closely to the spec.
I think Chris Anderson is totally wrong here. I am currently the smartest person in the room.
I don't CARE if I'm also the dumbest person in the room. He's still wrong. ;)
(while talking to another senior person at Microsoft)
ChrisAn: "Have you driven a feature from scratch?"
Other: "Uhm, yes. I've worked on various platforms for the past 30 years, worked on
the first release of DOS for Arabic and Windows for the Middle East".
ChrisAn: "I'll take that as a yes"
Remember to self, you are never the smartest person in the room... ever.
Whoa! I saw this on Wired News. If anyone is in danger, it's me. I love getting right up to the subwoofers and feel the wind generated (of course wearing my etymotic earplugs).
Doctors report several cases of collapsed lungs apparently caused by loud music. They theorize that lungs may start to vibrate in the same frequency as the booming bass, which could cause a small rupture.
[Via Wired News]
[Listening to: Beat Blender - - (0:00)]
Wired printed an article recently (I wish I could remember the title) that discussed the network structure of relationships and fame. For example, imagine individuals as nodes in a big graph. Join the nodes by drawing directional vertices that indicate whether a person knows of another person. An arrow drawn from Bob to Alice indicates Bob knows Alice. The fact that there's no arrow from Alice to Bob indicates Bob's a total loser (or stalker).
In this graph, the average person's node will have a roughly balanced number of arrows pointing in as arrows pointing out. That makes sense because in general, you'll know around the same number of people that know you unless you're a total loner. But for the truly famous, say for example Bill Gates, the arrows pointing in hugely outnumber the arrows out, which explains the hoard of people asking him for money. The effect of this is that there's no way for Bill to have personal communications with everyone who knows of him. There's literally not enough time (not to mention incentive).
The article goes on to discuss how this relates to websites and blogs. For the relative unknown majority out there with blogs (such as this one), the number of arrows pointing in is quite small. Yep. Most likely, your blog is downright obscure. However, there is one advantage. Having a small readership allows one to actually participate in the small number of inane conversations that spark from time to time in the comments section of a post. The fact I even have a comments section is often indicative of the small audience I serve.
However, once you turn it up a notch in audience size, things change. For instance, you'll probably never get feedback from someone at the truly collosal sites such as CNN.com. Even sites that are somewhere in the middle such as Boing Boing and Slashdot have such a large audience that two-way communication is pretty non-existent.
To give you an idea of the mindshare these sites have, consider the following stats. A micro-node blog like mine gets around 40 web views and 150 aggregator views per post on average. That's pretty darn insignificant, but at least I can be pretty sure that those aren't all accounted for by my wife. Non-family members actually read this. "Hi y'all. Welcome! I come in peace!" Now suppose a site like BoingBoing decides to link to a post on this humble site like they did last week. Such an action leads to 18,365 web views (and counting) with 216 aggregator views. Keep in mind that this represents a small subsection of the entire Boing Boing readership who took the time to actually follow a link to some nobody's blog. Talk about alot of arrows pointing in.
Recently I blabbed on and on about how to create a sane build process. One question I've heard in the past is what's the point of a setting up a big formal build process when you have a very small project, perhaps with a team of one or two?
Well, I'd have to say there is no point to a BIG FORMAL build process for a small project. Rather, the build process should match the size and needs of your project and team. However, I will say this. Start early, because before you know it, your project and team will get big and you'll be glad you have a build process in place. In the early stages, a simple NAnt (or MSBuild) script will suffice. Over time, that script will grow and grow. That's exactly what I'm starting off with for Rss Bandit.
At this point, the script simply gets the latest version of the source code from CVS into a clean directory, compiles the code, and generates a compiled help file (.chm) using NDoc.
I plan to add a task to run unit tests, perform an FxCop analysis, and increment version numbers. However, I need to discuss version numbering with Torsten and Dare first. Eventually, I hope to add CruiseControl.NET integration. The purpose of this is to gain some experience with CCNET since I can't yet use it at work.
So this is all great and dandy, but the build file doesn't work. I'm not terribly familiar with CVS, so if anybody can help me get this working, I'll check it in to the CVS repository for RSS Bandit.
Get the BUILD FILE HERE.
I have yet to run this by a lawyer. Walt, Dan. Have I adequately covered my ass?
According to Yahoo News, Kobe Bryant's Rape case has been dismissed by the judge. So now begins the civil trial?
(A funny story I heard from somwhere. Supposedly its a true story.)
I was barely sitting down when I heard a voice from the other stall saying: "Hi, how are you?"
I'm not the type to start a conversation in the men's restrooms at a rest stop but, I don't know what got into me, so I answered, somewhat embarrassed, "Doin Just Fine!"
And the other guy says: "So what are you up to?"
What kind of question is that? At that point, I'm thinking this is too bizarre so I say: "Uhhh I'm like you, just traveling east!"
At this point I am just trying to get out as fast as I can when I hear another question.
Can I come over to your place after while?
Ok, this question is just wacky but I figured I could just be polite and end the conversation.
I tell him, "Well, I have company over so today is a bad day for me!"
Then I hear the guy say nervously...
"LISTEN, I'll have to call you back. There's an idiot in the other stall who keeps answering all my questions!"