Hollywood meets Video Conferencing

Since I haven't used any videochat software, let alone multiway video conferencing system (MVCS), I am not sure if a brief inspiration I had this afternoon is implemented or not.  The inspiration was to enhance the MVCS experience by emulating what movie directors do to help the audience follow conversations in movies.  It's Hollywood meets video conferencing.

This is how I see the system working.  When a person (A) speaks, the view changes to A.  When another person (B) breaks in, the view switches to B, but the view will briefly switch back to (A) several times while B is speaking.  When B finishes, the view switches back to A.  When A doesn't respond immediately, the view switches to show other attendents intelligently.  The intent here is to catch the facial reactions to weave the conversations into a drama so the system remembers the interaction history like who spoke when, in reaction to whom, for how long, etc.  When two people talk at the same time, the screen is divided into two parts to minimize the ping-pong effect.  Questions are also detected and 'the camera' scans the likely 'suspects' for reactions.

Brief overlaying of textual information about the person on the screen commonly seen in detective TV shows should be also useful when participants are not familiar with each other (i.e. community meeting with 1000 attendents).  It's smartly done based on whether it helps the viewer or not.

Lastly and appropriately going overboard, dramatic sounds can be injected either automatically or by participants like sounds of suspense or those funny sounds talkshow DJs like to use (video-smileys?).  Appropriate video clips (i.e. Three Stooges or Groucho Marx) can also be injected similarly by the moderator or attendence.

While I think it is unlikely someone haven't thought of this before, I thought the idea was interesting enough to share, just in case.

Coolplayer

When WinAmp came out, it became my default MP3 player and assigned to the task of drowning out noise from outside my office.  I was happy and kept upgrading it, but along the way I notice that WinAmp was starting to get rather big.  Do I need all that fancy graphics and features?  Not really.  I usually just turn it on and let it play while I am working or I hop from tune to tune while relaxing with a glass of wine in my hand.

Anyway, I got curious enough to see what other choices were out there and found Coolplayer, a tiny open source MP3 player for Win32.  It's written in C and it's binary consists of just one 300K EXE file.  Installation?  What installation?  Just run the EXE.  It still has too much unnecessary graphics and I think its memory footprint should stay below 5mb instead of popping up to 9mb while playing (probably to load the active MP3 file into memory) but it basically fits my needs.

OSGi

OSGi is a standard lightweight API for plugin framework (useful for building microkernels) with a bias toward the needs of network devices.  Recently it gained some momentum when the Eclipse team replaced their original plugin mechanism with OSGi (actually, they paved over it rather than replace).

First full version of Oscar, an implementation of OSGi, was released yesterday.  Also checkout OSGi bundle repository and this nice tutorial of how OSGi can be used.

Iranian Nukes

Iran's Foreign Minister Kamal Kharrazi recently said:

Iran will not give up its rights to the peaceful use of atomic energy as well as its right to supply nuclear fuel to its power plants.

OPEC's second largest oil producing nation needs nuclear power plants?  Note that Iran also has the world's second largest natural gas reserve.  Hmm.  Maybe they have the world's largest BS reserves they are dying to export.

Eclipse 3.0 RC2

I had been using Eclipse 3.0 RC1 for the past week but it was sluggish and I ran into a few hangups, so when I saw that Eclipse 3.0 RC2 was available, I got right on it.  Definitely better.  Startup is faster and shutdown takes only a second.  Nice.  I think I'll stick with this one until the final release is out which is due end of this month.  Eclipse bug count looks healthy although Platform UI and SWT team seems to be struggling a bit.

Downloading Eclipse took forever btw.  They have mirrors but mirrors are troublesome to use because it forces the user to find the package among the mirrors to download.  They should use BitTorrent IMHO and turn the mirrors into seeds.  BitTorrent needs to be more location-aware (actually route-aware) though.

Impact of Offshoring

According to a survey commissioned by Bureau of Labor Statistics, just 2.5% of jobs lost are due to offshoring.  AFL-CIO thinks the survey is faulty.  My own experience suggests the number is bigger, at least in the Silicon Valley where I work.  At one company I have worked with for many years, it's engineering department was downsized to barebones and replaced with a large growing team of engineers in India.  2.5%?  Not even close

Bush Slept With Washingtonienne?

Here is a picture of Jessica Cutler (aka Washingtonienne), who blogged about her attempt to sleep with different men everyday of the week in Washington D.C., and Wonkette, supposedly a well-known blogger who apparently enjoys poking politicians with her blog.

Meanwhile, confusion reins across the language barriers.  At least one Korean newspaper (Sports Seoul) misinterpreted a National Enquirer article and reported that Bush himself, and not his appointee, slept with Jessica Cutler.  While neither papers are pillars of journalism in their respective countries, I thought it was hillarious that Korean readers are nodding their head as if they expected such naughty behavior from American Presidents.

In their defense, I think the National Enquire headline (Bush Sex Scandal) put them in a wrong frame of mind.  Below is the snippet from the Korean article, just in case they fix and deny later.

게다가 더욱 충격적인 사실은 부시 대통령이 댓가를 지불하고 관계를 가졌다는 것이다.

'내셔널 인콰이어러'지와의 인터뷰에서 커틀러는 "나는 부시와 관계를 가진 것에 대해 후회하지 않는다. 그러나 일기를 쓴 것에 대해서는 지금 후회하고 있다"고 밝혔다. 또 그는 "나는 블로그가 나의 친구들에게만 공개될 것이라고 생각했다. 많은 사람들이 이런 글을 올리지 않나?"라고 반문했다.

Korea, A Nation of Spoons

I think Korean food is wonderful.  After all, I have eaten it all my life and I still eat it three meals a day (thanks to my wonderful wife).  But what I haven't noticed until recently is how Korean cuisine is uniquely 'spoon-centric'.  Other countries use spoons as well, but they are usually brought out only when there is a need (i.e. soup).  In Korea, spoon is the primary utensil.

As long as I could remember, I had a spoon and chopstick with my name on them.  By that, I don't mean my name was inscribed on them, but I could recognize my utensils by the shape, color, feel, and sometimes smell (well, I was a little paranoid when I was little).  With every Korean meal, my spoon and chopsticks were laid side-by-side like a couple married for life.  Which is the male?  The spoon, of course.  It's masculine and uncompromising where chopsticks are feminine and versatile.

Why is Korean cuisine so spoon-centric?  Because a proper Korean meal comes with a bowl of rice and a bowl of soup for each person.  The spoon is used for both the rice and the soup.  The chopstick is used mainly for the side-dishes where, in China or Japan, chopstick is used for practically everything.  Also, there is usually a shared soup in the center for which spoons come in handy.  These center-soup is usually served piping hot and has a name that ends with either Tang or Jhigae (i.e. Maewoon-Tang or Kimchi-Jhigae).

Hmm.  This post made me hungry.

Update:

FatMan Seoul is the blog to visit if you want more stories and mouth watering photos (thanks to James for this wonderful tip).  I particularly loved the photos in the Dak-galbi post.  Yum!

No Citadels For You!

Maciej Ceglowski has an amusing tilt to his writing style.  Despite being a staunch Francophile, he trounces French army colorfully:

Right – with the most powerful army in Europe, you stood idle and let Germany rearm in explicit contravention of a treaty signed with you just a dozen years before. And then you did nothing when Germany began an unprovoked war with Poland, preferring to dig in to your fortifications rather than strike the weakly defended German industrial heartland with your ninety seven combat divisions. When the decisive attack finally came, almost a year after the start of hostilities, you disintegrated with stunning celerity. Your greatest living war hero completely discredited his country serving as the leader of a collaborationist rump wartime state, and your conduct during and after the war was ambiguous at best. You brought shame upon your country in Algeria and Indochina. You conducted nuclear tests in the South Pacific way after that had gone completely out of style.

You sank a fucking Greenpeace ship.

NO CITADELS FOR YOU!

LL, LALR, and GLR

If you are like me, you have a tattered copy of the Dragon book on your bookshelf and have a fading memory of LL(k) and LALR(1) lores gained through your battles with Yacc, Bison, JavaCC, and ANTLR.  Mostly, you remember wasting a lot of time wrestlig with the tool.

What I didn't know was that new parsing algorithms have appeared on the scene while I was busy in the ready-to-ship world: GLR (Generalized LR) and Earley.  Actually, they are old algorithms whose latest implementations have now become competitive with the more popular yet more restrictive cousins.  For more info on why they should be considered alongside LL and LALR, read John Aycock's Why Bison is Becoming Extinct.

Here are some popular GLR and Earley implementations to get you started:

  • ElkHound - C++, BSD, sep. scanner (supposedly fastest)
  • DParser – C, BSD, scannerless
  • SGLR – scannerless

Earley implementation:

You might also want to read Current Parsing Techniques in Software Renovation Considered Harmful.