Game of Seven

Even when online social networks becomes common place, nothing much has changed in the way people meet each other.  One could even say social network is degraded somewhat by people hunting people they want to meet by following the visual map of relationships made possible by social network services.

One can imagine Power Law working at multiple levels to route attention to people with the right look, positions, professions, money, and connections.  Play forward a bit and one could see how the popular nodes becoming ragged pretty fast.

If a girl looks great, she'll get a lot of wannabe friends who ponied up money for the chance to say hello.  Even with traffic control of sort, she will eventually feel like a dumb whore, dumb because she ain't getting paid for her troubles.  Profit sharing is not a solution because that just leads to world-wide whore, sorry, dating networks.

If it's some business person in a key position like CostCo Executive VP of Purchasing, same thing happens except there is a different kind of wink-wink-nudge-nudge going on.  Social connections based on one-sided needs is not a social network IMHO and unstable by nature.  Over time, these networks will be sapped dry of valuable nodes, leaving behind only a network of predators.

As I mentioned before in my posts about the value of random encounters, new solutions are needed.  Game of Seven is one example.  The Game of Seven forms a random group of seven people that lasts a month as if seven random people got stranded on a deserted island.  One could run into great, mundane, or even terrible people.

You can sell individual Game of Seven too just like packs of Pokeymon or Yu-Ki-Oh cards.  You'll never know what you are going to get.  Maybe you'll meet the girl of your life.  Maybe you'll end up changing your definition of an a**hole.  The unknown is the product being sold.

To spice things up, each Game of Seven should be given a task to perform.  Result affects individual participant's stats that has some consequences.  If one acts like an asshole consistently, his stats should reduce his chance of meeting people with good stats.

Frankly, I have no idea whether solutions like the Game of Seven will work.  I am just using it as an example of possible solutions.

What is AtStake?

Many people are expressing surprise over the AtStake fiasco, firing of Dan Geer over a report (PDF) critical of Microsoft.  How can Microsoft or AtStake not behave that way when alternative is counter to survival instinct?

Of course, AtStake did not do Microsoft any favors by firing Dan.  All they did was confirm the concerns raised by the report: Microsoft can't help but be a bully even if it turned into a flower child overnight.  One doesn't have to be a bully for others to feel threatened.  It's like bringing a 800lb gorilla to a party and telling everyone to relax because it is so gentle.

Fu*k Six Degrees

I just wanted to say that six degrees of separation is real, but I don't give a damn about it.  One degree, friend of a friend, is where the action is and two degrees is the maximum under most social circumstances.

What this really means is that so called social network services are in the business of short-circuiting the six degrees of separation so the person you want to meet is one degree away.  In the case of dating service, the dating service is the short-circuiting friend/pimp.  That makes Jonathan Abrams the first pimp to be popular among VCs.

Hey, I got nothing against pimps.  I think they have a much better business model than most startups.

But then I do believe in Lassie so let's say there is some value in being able to meet friend-of-friend-of-friend-of-friend-of-friend-of-friend-of-friend.  Hold the music please.  They are not all friends, are they?  Dang.

Cave of Longhorn

A conversation from the near future overheard somewhere in Asheron's Call, Microsoft's MMORPG.

Fizban:  Hey, did you hear about the Cave of Longhorn?

Missalot:  Isn't Longhorn code name for Microsoft's new OS?

Fizban:  Yeah, its finally getting released so they are doing an adventure to promote the release of Longhorn.  Ad-venture, get it?

Missalot:  Haha.  So what's in the cave?

Fizban:  A user-friendly Minotaur named Longhorn.  He drops Longhorn discount coupons up to 50% off.  Longhorn is a tough mob though.  He'll stun you with Longhorn marketing mumbo-jumbo and power-hack with a double-headed axe named Scobleizer.  Best way to get him is to lure him into narrow corridors so his swollen head will get stuck.

Missalot:  Wow.  I could use 50% off.  Let's go get Longhorn!

Fizban:  Hehe.  You'll be a-mazed.

Good Dreams

Wednesday morning, I crapped in the middle of a public road.  I wasn't embarassed, although there were people walking around me, because I don't get embarassed by stuff like that.  But it was messy and I had the mess all over my hands and clothes.  Then I woke up.  Yeah, it was a dream.

When I told my wife about the dream, my wife said "Wow, a lucky dream.  Let's buy lottery tickets!"  You see, most Koreans believe dreams foretells the future.  Dreams with feces and pigs are considered lucky and are even bought and sold for small amount of money to transfer luck.  We didn't buy the lottery ticket because I was lazy and the California drawing was Wednesday night.

Thursday morning, I was in a bed with some girl when two Italian mobsters broke into the room.  One of the guys came over with a gun and placed the muzzle on my left temple.  I thought he was going to say something like in the movies, but something entered my brain and I died.  Then I woke up.  Yeah, two in a row.

I told my wife again and she consulted my mother.  Their conclusion was that death dreams are also good dreams.  They are not common like dreams involving feces or pigs so I didn't know.  My wife said, we should really buy some lottery tickets.

Koreans take dreams seriously.  If my mother-in-law calls out of the blue, it's because she had a bad dream about my wife.  When a Korean woman conceives a child, she is expected to have a Birth Dream (Tae-Mong) which differ from mundane dreams in intensity and content.  Some dream of birds or fishes jumping into their body.  Others see dragons or deers coming into the house.

Do Koreans really believe in these dreams?  Wrong question.  The right question is Why take unnecessary chances?  Aren't these dreams saying something about mental problems?  Again wrong question.  Why worry about the past when there is the future to worry about?

I am about to go to sleep now with my fingers crossed.  If I get run over by a herd of pigs in my dream, I am going to buy some lottery tickets as my way of saying I got the damn message!  ;-p

Update:

Dang.  I had a dream of something but I couldn't remember what it was.

Web Application Platform Comparisons

I found these informative links in my research into high performance web application platform and thought you might find them useful as well.

To start off, A Comparison of Portable Dynamic Web Content Technologies for the Apache Server provides good overview of the choices.  I think its numbers for Java Servlets are somewhat off, but not enough to affect the conclusions.  FastCGI + Perl was the clear winner in the paper, followed by mod_perl.  Only surprise was the poor performance of PHPmod_python was not test unfortunately.

If you are curious about the performance differences between Apache 1.3x and Apache 2.0x, Open-Source Web Servers: Performance on a Carrier-Class… provides some benchmarks.  This paper might be outdated though.  If you know of current state of the performance differences, let me know.  In short, the paper shows that there are only marginal differences except Apache 1.3x scalability was not consistent in one of the tests.

AMK's Diary blog post Web server performance clued me to SCGI which was designed to be easier to implement than FastCGI.  When Linux Weekly News switched from mod_python to SCGI, performance improved significantly.  The post goes on to suggest why this might be.

Understanding FastCGI Application Performance provides more thorough explanation of why FastCGI (and SCGI) performances are so good.  After reading the paper, I set out to compare FastCGI and SCGI and found this archived message by Michael Watkins.  If the numbers are right, SCGI is much faster than FastCGI.

SCGI is released by MEMS Exchange, an apparently non-profit organization serving chip fabrication centers.  MEMS Exchange also makes available a number of useful Python software for free, most interesting of which (at least to me) is Quixote.  Quixote is a Python web application framework that can support many architectures (see Quixote whitepaper).


a SCGI-based architecture

I would have liked to see how SCGI compared to mod_perl, but found only an informal comparison of FastCGI and mod_perl.  I would have also liked to see comparison of mod_perl-based Perl web applications and SCGI+Quixote based Python web applications, but found nothing in this run.

By chance, I did run across Apache Hello World Benchmarks, a very informative benchmark report.  It even compares popular Perl web application frameworks like Mason and HTML::ASP.  The numbers were enough to made me lose interest in Mason.  Phew.  I am saving a local copy of the benchmark because I know I'll be coming back to it often.

So, I'll be looking into SCGI and Quixote in the near future.  Did you know that during my wild younger days, my friends called me Don Quixote?

Update #1:

SCGI picture has dimmed a bit.  Only SCGI server implementation I could find was MEMS Exchange's which is written in Python.  This spells trouble for non-Python.  Also Apache2 version of mod_scgi, Apache module implementing SCGI client code, is not available.  Some efforts were made but they were abandoned.

I can't imagine mod_scgi being difficult to write, so it must be the lack of interest.  But lack of interest despite apparent superiority over other solutions doesn't make sense to me.  Geeks vote with their feet and lack of footsteps around SCGI leaves it looking less attractive to me.  Maybe it's Python being supposedly slower than Perl and its GIL (Global Interpreter Lock) curse.  In comparison, Perl looks awefully good in terms of geeks voting with their feet.

Speaking of popularity, mod_perl easily beats FastCGI despite the performance advantage FastCGI has.  Some of the reasons cited are: better support, bigger developer community, and tighter integration.

Herd behavior enhances survivability

Update #2:

Neil Schemenauer, author of mod_scgi, wrote to say mod_scgi for Apache2 exists but shouldn't be used for serious use until more testing is done.  He mentioned that there is nothing Python-specific about SCGI and he would be happy to provide support to people writing non-Python SCGI bindings.  He also pointed to mod_list as an alternative to mod_scgi but I couldn't locate it via Google.

Update #3:

Neil was referring to mod_lisp which sends request information in name-value pairs over local loopback.  As simple as can be.  While protocols might be simple, smart management of multiple workers will not be.  There are some room for improvement in this area (notice the weird URL for mod_lisp).

Fu*kwit vs Nitwit

There is an ongoing spat between two entries on my blogroll: Robert Scoble (aka Fu*kwit) and Russell Beatie (aka Nitwit).  This is how the blogwar went:

  1. Fu*kwit flame-linked to Nitwit:

    Microsoft-hater Ru$$ell Beattie says "M$ SmartPhones Catching Up."
     

  2. Upset by anti-anti-Microsoft-hater comments directed at him, Nitwit redirected all links referred from Fu*kwit's blog to US vs. Microsoft: Court's Findings of Fact document.
     
  3. "Dave" noticed the referrer-based-redirection and commented:

    Can you believe it — there are weblogs that turn away traffic based on referrer. This is bad practice. These people seriously need to take a refresher course in what the Web is about and how important links are and stop screwing around with them. I won't read sites that do this, and I certainly won't point to them. You should let the authors of the sites know that you won't either. If they don't want to be linked to, just take the site off the Web.
     

  4. Nitwit fired back with Weblog War #4553.
     
  5. I suggested a more moderate solution in a comment to Nitwit's post.
     
  6. Everybody ignores my suggestion and the war continues.

As Dave pointed out, refusing or redirecting access to free content based on referring site is an extremely distasteful act.  This is the sort of childish technical tricks that geeks often prefer doing instead of communicating like an adult.  All Nitwit really had to do was send Fu*kwit an e-mail.

Words are much more powerful than codes.

If anyone wants me to not link to your blog, just let me know.  Requests like that don't upset me.  I'll do likewise for distasteful links to my blog.  If I don't say anything, consider it acceptable practice until I say otherwise.  If I am too lazy to even express my disapproval, I deserve whatever I get.

PS: Fu*kwit and Nitwit are terms used within this spat to refer to Robert and Russell.  They are not my terms.  If I had to call them names, I would pick Childish and Irritable.

Replacing Notepad.exe

I don't know why I didn't think of replacing Notepad.exe until now.  I have much better editors like NoteTab and Metapad on my laptop, but I left Notepad in place and resorted to opening those files by drag-n-drop or open dialog because every software out there, including IE's view source, resorted to invoking notepad.exe to display files.

I finally had enough of crappy Notepad.

I chose Sc1, a special build of freeware open source text editor SciTE which is based on open source and platform-independent Scintilla text editing component, because Sc1 packs everything into a single EXE and has a small footprint (230K).  The downloaded file is the Sc1 executable file, not an installable package.  It's just ready to go and comes with syntax coloring support for most common text file types like HTML, Java, Perl, Python, XML, etc. 

HTML file in outliner mode

Perl source file

How to replace Notepad.exe on Windows XP

Windows XP has file protection so Notepad.exe will get restored if you just replace the file with renamed Sc1.exe.  Follow these steps:

  1. Download Sc1.exe from SourceForge and rename it to Notepad.exe
  2. Save a copy of the original Notepad.exe somewhere.
  3. Replace Notepad.exe in following three locations (order is significant):
     
    • %WINDIR%\\System32\\DllCache
    • %WINDIR%\\System32
    • %WINDIR%

      *%WINDIR% is your Windows folder (i.e. C:\\Windows)
       

  4. Press Cancel when a warning dialog appears.

That's it.  Enjoy.

Update #1:

If you are using Sc1.exe as Notepad.exe replacement and you are not happy with the default settings, drop this copy of SciTEGlobal.properties into System32 folder.  This config file changes default font to be monospaced and raises font size from 10 point to 12 point for my large screen and lowers tab size from 8 to 4.  The config file is amply documented so please do play with it.  For more documentation, visit the SciTE website.  You might also want to download the regular version of SciTE to get other property files to drop into System32 folder.

I know this is rather user-unfriendly, but I like the configurability of SciTE and the fact that I can ultimately make any change I want with the source code.

Update #2: 2003/10/06

David Schontzler wrote a batch file script to automate the installation process:

@echo off

@echo Backing up notepad.exe to %WINDIR%\notepad.exe.orig
copy %WINDIR%\notepad.exe %WINDIR%\notepad.exe.orig

@echo Replacing Notepad with SciTE
copy Sc1.exe %WINDIR%\System32\DllCache\notepad.exe
copy Sc1.exe %WINDIR%\System32\notepad.exe
copy Sc1.exe %WINDIR%\notepad.exe

@echo Copying SciTE preferences to %WINDIR%\System32
copy SciTE*.properties %WINDIR%\System32

Just pour the script into a batch file in the same folder as Sc1.exe and run.  Note that *.properties files are also copied.  Thanks David.

Update #3: 2003/10/09

SciTEGlobal.properties was updated to use 'findstr' instead of 'fgrep' for "Search in Files" command.  'findstr' is generally available while 'fgrep' is not.

Character Encoding Detection

For bilinguals like me, there is an often overlooked differences between IE and Mozilla: character encoding detection.

IE often gets confused about character encoding of a webpage and end up displaying garbage.  Manually changing the character encoding can sometimes fix the problem, but the problem is usually back again in the next page.  Also, attempts to change character encoding manually often conflicts with website deep-linking protections.

When this happens, I use Firebird (Mozilla variation) to read the page because they have a much better character encoding detection algorithm.

With Jchardet, a Java port of Mozilla Charset Detector, Java programs can enjoy the same level of charset detection excellence as Mozilla.  Awesome.  Thanks to Elliotte Rusty Harold for the link.

RIP Baltimore Technologies, Inc.

Baltimore Technologies, Ireland-based security company, is finally being put to rest by dismemberment (via Lynn Wheeler).

At its height, it had 1500 employees but PKI overhype and market collapse finally caught up with them.  In a way, overhyping and overselling is like overfishing.  Today, it's much more difficult to pitch PKI as a solution.  Similar story for CRM.

The world is changing all the time.  Fortunately, the world is also round so we'll see PKI rise again.