<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:notbrainsurgery</id>
  <title>This is Not a Brain Surgery</title>
  <subtitle>random thoughts on technology</subtitle>
  <author>
    <name>notbrainsurgery</name>
  </author>
  <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom"/>
  <updated>2008-05-10T02:06:46Z</updated>
  <lj:journal username="notbrainsurgery" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://notbrainsurgery.livejournal.com/data/atom" title="This is Not a Brain Surgery"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:34605</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/34605.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=34605"/>
    <title>desktop mentality</title>
    <published>2008-05-10T02:06:46Z</published>
    <updated>2008-05-10T02:06:46Z</updated>
    <category term="desktop"/>
    <category term="at&amp;amp;t"/>
    <category term="wifi"/>
    <category term="smtp"/>
    <category term="mobile"/>
    <category term="iphone"/>
    <content type="html">The first versions of Windows Mobile (called back then Windows CE) were quite terrible. The problem is that designing software for mobile devices requires special thinking, and just shrinking desktop software into smaller screen space is hardly sufficient. For example, the whole Windows START button metaphor does not fit very well into tiny screen, because it is an extremely tedious task to navigate of 2-3 levels of popup menus just to start an application. And taking the stylus out each time to do so takes valuable second or two of user time.&lt;br /&gt;&lt;br /&gt;Another example: having one fixed time zone on device is maybe OK for desktop, but it is not acceptable for mobile phone or laptop. People do travel across time zones! So, making it easy to change your time zone without screwing up your calendar events is important. Both iPhone and Windows Mobile went this far. But it takes few more years of trial and error in mobile words to realize, like Nokia did, that after their travels people do come back home, and it is most convenient to have TWO time zones: home and visiting, and give a user easy way to switch between them.&lt;br /&gt;&lt;br /&gt;Now, to the problem that really irks me right now: SMTP servers. There is abundance of free WiFi hotspots available. Most of them, however, block SMTP traffic on port 25, except to their dedicated SMTP server. That's done to fight SPAM. The problem is that SMTP server settings on iPhone (and most other email clients I've seen on mobile devices) are not dependant from the access point you are using right now. So, AT&amp;T has nothing better than &lt;a href="http://www.wireless.att.com/support/knowledgeBase.do?content=KB72769.html" target="_new"&gt;suggest&lt;/a&gt; their customers to go and manually change SMTP settings whenever they switch between using their EDGE network and their own WiFi Hotspots! I think it is obvious, that user should be able to override SMTP server settings on mobile devices depending on his current access point ( as it is done for HTTP proxy WiFi network details screen under Settings). Or even better,this information should be obtained automatically, perhaps via DHCP.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:34356</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/34356.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=34356"/>
    <title>Importing audio books into iTunes</title>
    <published>2008-04-18T18:14:59Z</published>
    <updated>2008-04-18T18:14:59Z</updated>
    <category term="mp3"/>
    <category term="itunes"/>
    <category term="aac"/>
    <category term="audiobooks"/>
    <category term="mac"/>
    <category term="automator"/>
    <category term="import"/>
    <content type="html">I have worked out a procedure to import audio books into iTunes. Below you will find a link to &lt;a href="http://en.wikipedia.org/wiki/Automator_(software)" target="_new"&gt;Automator&lt;/a&gt; script which automates the following steps:&lt;br /&gt;&lt;br /&gt;1. Convert files to AAC: some older iPods could not remember playback position in MP3 files. For new ones you may want to use this step anyway to adjust bit rate to save space. I am using following import settings in my iTunes:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img72.imageshack.us/img72/1338/picture1ig8.png" border="0" alt="Image Hosted by ImageShack.us" /&gt;&lt;br /&gt;&lt;br /&gt;2.  Adjust volume by 30%. Some books are just not loud enough and I could not crank volume any more in my car. So as precaution I always adjust a volume by 30% - it always possible to bring it down while listening.&lt;br /&gt;&lt;br /&gt;3. Pre-set equalizer to "&lt;i&gt;Spoken Word&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;4. Set options song: "&lt;i&gt;Remember Playback Position&lt;/i&gt;" and "&lt;i&gt;Skip When Shuffling&lt;/i&gt;". Unset options "&lt;i&gt;Part of a Gapless Album&lt;/i&gt;" and "&lt;i&gt;Part of a Compilation&lt;/i&gt;".&lt;br /&gt;&lt;br /&gt;5. Set Genre to "&lt;i&gt;Audiobooks&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;I am using these steps for few years now and very happy with results. Additionally, if your chapter names have numbers at the beggning (e.g. "&lt;i&gt;01. Intrduction&lt;/i&gt;", "&lt;i&gt;02. First Chapter&lt;/i&gt;") you may want to use &lt;a href="http://henrik.nyh.se/2007/01/set-id3-track-numbers-from-filename-prefixes-in-itunes" target="_new"&gt;this iTunes script&lt;/a&gt; to conver them to track numbers.&lt;br /&gt;&lt;br /&gt;Now, as promised, an Automator workflow which performs steps 1-5 on a collection of audio files selected in Finder and adds them to iTunes as a new Playlist, called "&lt;i&gt;&lt;b&gt;New Audio Book&lt;/b&gt;&lt;/i&gt;". Download "&lt;a href="http://www.crocodile.org/lord/software/Import%20Audio%20Book.workflow.zip" target="_new"&gt;Import Audio Book.workflow.zip&lt;/a&gt;" and unzip it into "&lt;i&gt;~/Documents/Workflows&lt;/i&gt;". Now you can select files, start Automator and run this workflow. Alternatively, you can open it in Automator, choose "&lt;i&gt;Save As Plug-In&lt;/i&gt;"  menu and select "&lt;i&gt;Finder Plugin&lt;/i&gt;" format. After that you can right click on selected files in Finder and select "&lt;i&gt;More-&amp;gt;Automator-&amp;gt;Import Audio Book&lt;/i&gt;" to run this workflow on selected files.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:34079</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/34079.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=34079"/>
    <title>how to develop a killer facebook application</title>
    <published>2008-01-29T06:48:46Z</published>
    <updated>2008-01-29T06:48:46Z</updated>
    <category term="applications"/>
    <category term="rant"/>
    <category term="facebook"/>
    <content type="html">Facebook applications are the latest trend. Now everybody has to have one. Unfortunately, many people do not understand how to design a good facebook application. The usual approach is to take their web site and squeeze as much as possible of its functionality into facebook application. This is usually a very bad idea.&lt;br /&gt;&lt;br /&gt;Let us take as an example FlightStats. They have a pretty good &lt;a href="http://www.flightstats.com/" target="_new"&gt;web site&lt;/a&gt; with useful tools. They know how to track flights and seems to be doing it well. Now let us look at &lt;a href="http://www.facebook.com/apps/application.php?id=7442750869" target="_new"&gt;their facebook application&lt;/a&gt;. It is just a scaled down version of a web site.&lt;br /&gt;&lt;br /&gt;When you design Facebook application you need to aim to please two audiences. The first is obviously a user who has installed the application. He will see it on his profile page and can use it to access some information or to do something. The second, the most important audience, is his "friends" - people who visit his profile page.&lt;br /&gt;&lt;br /&gt;The value of putting every piece of information which user might ever need to his facebook page is dubious. You have to be seriously addicted to Facebook to make it your main window into the world and prefer feature-stripped and scaled-down facebook applications to real web sites, which are just one click away in the very same browser which you are using to access facebook. Call me old-fashioned, but I would rather go to google.com than install and use Google search widget on my face book page. So the first question to ask yourself is:  what are the reasons for profile owner to keep your application on his profile page? How it is useful to him or her?&lt;br /&gt;&lt;br /&gt;When we are talking about profile owner "friends" we should consider, whenever they are interested to see the application on somebody else profile page. For example, if I am to add Flight Stats application, would my friends be interested to track my mover flying to visit me for Christmas? Thus, the second question one should ask yourself is whenever the facebook application you are developing will be interesting or useful for other people to see on user profile.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img149.imageshack.us/img149/320/picture1rn5.png" alt="Image Hosted by ImageShack.us" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;By now you can probably figure out how to design good facebook application. Keeping these two audiences in mind and trying to present useful functionality to both of them (which does not have to be the same! The application could look and behave differently depending who is using it - a profile owner or a visitor).&lt;br /&gt;&lt;br /&gt;If you are serious about developing not just good but great applications you should find a way to explore unique advantages of the facebook platform. Ask yourself, what it is you can do on facebook which you could not do on your regular web site? Most obvious thing is to explore users social graph. For example, you can try to build features engaging user friends. Take a closer look at the most popular applications out there. They all engage users in this manner: leave a message on somebody's wall, send somebody a virtual gift, take a compatibility test together, challenge your friend to a game or quiz, compare tastes, etc. This gives users a chance to interact with each other and this is what really makes facebook applications viral (the holy grail of all web marketing people nowadays).&lt;br /&gt;&lt;br /&gt;Speaking about viral aspect: it feeds on something called &lt;a href="http://en.wikipedia.org/wiki/Network_effects" target="_new"&gt;netowork effects.&lt;/a&gt; To exploit that, you need our application to become even more useful with more users adding it. This way the value of application for each user grows with the number of users who have also added it. Let users help to distribute your application. For example taking a movie quiz and putting results on your page could be interesting. But allowing user to challenge one of his friends to take a movie and compare results makes your application viral.&lt;br /&gt;&lt;br /&gt;All of this might sound obvious, but as part of my consulting business, I have to explain these things regularly to customers coming to us for help facebook applications development.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:33991</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/33991.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=33991"/>
    <title>Google, Yahoo, Microsoft and MapReduce</title>
    <published>2008-01-21T22:24:00Z</published>
    <updated>2008-01-21T22:24:00Z</updated>
    <category term="algorithms"/>
    <category term="microsoft"/>
    <category term="mapreduce"/>
    <category term="yahoo"/>
    <category term="haskell"/>
    <category term="google"/>
    <content type="html">1. &lt;a href="http://en.wikipedia.org/wiki/MapReduce" target="_new"&gt;MapReduce&lt;/a&gt; is a software framework invented by &lt;b&gt;Google&lt;/b&gt;.&lt;br /&gt;2. &lt;a href="http://en.wikipedia.org/wiki/Hadoop" target="_new"&gt;Hadoop&lt;/a&gt; is open source implementation of MapReduce, &lt;a href="http://radar.oreilly.com/archives/2007/08/yahoos_bet_on_h.html" target="_new"&gt;supported&lt;/a&gt; (in part) by &lt;b&gt;Yahoo&lt;/b&gt;.&lt;br /&gt;3. The most coherent description of MapReduce I read so far, could be found in the &lt;a href="http://www.cs.vu.nl/~ralf/MapReduce/paper.pdf" target="_new"&gt;paper&lt;/a&gt; from &lt;b&gt;Microsoft&lt;/b&gt;.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:33718</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/33718.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=33718"/>
    <title>OpenID, SecurdID</title>
    <published>2007-12-07T02:40:19Z</published>
    <updated>2007-12-07T02:40:19Z</updated>
    <category term="securid"/>
    <category term="openid"/>
    <category term="paypal"/>
    <category term="rsa"/>
    <content type="html">Looks like &lt;a href="http://openid.net/" target="_new"&gt;OpenID&lt;/a&gt; is finally becoming popular (can't wait for blogger to &lt;a href="http://bloggerindraft.blogspot.com/2007/11/new-feature-openid-commenting.html" target="_new"&gt;enable&lt;/a&gt; it). If you want ot have secure OpenID, protected by RSA SecurID hardware token, &lt;a href="http://cavemonkey50.com/2007/08/paypals-new-security-key-opens-a-world-of-possibilities/" target="_new"&gt;here is how&lt;/a&gt; to get one for just $5 (requires PayPal account).&lt;br /&gt;&lt;br /&gt;Speaking about PayPal and SecurID: why on the earth they do not allow to use one token with multiple accounts? I happen to have two (personal and business) and I hate the idea of carrying two tokens.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:33317</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/33317.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=33317"/>
    <title>GMail as spam filter, using IMAP</title>
    <published>2007-11-04T01:54:40Z</published>
    <updated>2007-11-04T01:54:40Z</updated>
    <category term="imap"/>
    <category term="gmail"/>
    <category term="spam"/>
    <content type="html">One of non-obvious implications of Gmail &lt;a href="http://gmailblog.blogspot.com/2007/10/sync-your-inbox-across-devices-with.html"&gt;offering IMAP interface&lt;/a&gt;, is that now you can easily access from outside your SPAM folder. It might sound like not such a big deal, but it opens access to Gmail spam filtering technology, which seems to be very good.&lt;br /&gt;&lt;br /&gt;One obvious use is to use Gmail account as honey pot, and train your local spam filter using corpus of spam, caught by Gmail. I can see a cron task, fetching new spam from Gmail via IMAP and training &lt;a href="http://spamassassin.apache.org/"&gt;spamassassin&lt;/a&gt; with it via &lt;i&gt;'sa-learn'&lt;/i&gt; command.&lt;br /&gt;&lt;br /&gt;Another use would be to build a plugin for &lt;i&gt;spamassassin&lt;/i&gt;, which sends a copy of each new message to gmail account with SMTP, when waits for it to appear either in INBOX or in SPAM folder. Thus, one could use Gmail as a spam filter.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:33060</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/33060.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=33060"/>
    <title>broadband internet speed statictics</title>
    <published>2007-10-31T05:39:05Z</published>
    <updated>2007-10-31T05:39:05Z</updated>
    <category term="speed"/>
    <category term="dslreports"/>
    <category term="broadband"/>
    <category term="speedtest"/>
    <category term="dsl"/>
    <content type="html">For one of my projects, I needed data on average upload and download speeds for broadband users. Here is what I found:&lt;br /&gt;&lt;br /&gt;According to &lt;a href="http://speedtest.net/"&gt;speedtest.net&lt;/a&gt; as of today global average download speed is &lt;b&gt;3602 kb/s&lt;/b&gt; and upload speed is &lt;b&gt;796 kb/s&lt;/b&gt;. Quick tabulation of &lt;a href="http://www.dslreports.com/archive"&gt;dslreports.com data&lt;/a&gt; (in spreadsheet form &lt;a href="http://spreadsheets.google.com/pub?key=pO-QEOV01WVMw78obfzl2bA"&gt;here&lt;/a&gt;) gives us &lt;b&gt;2409 kbps&lt;/b&gt; and &lt;b&gt;571 kbps&lt;/b&gt; respectively.&lt;br /&gt;&lt;br /&gt;This is little higher when I anticipated. Especially I was surprised by upload speeds.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:32929</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/32929.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=32929"/>
    <title>Apple Mail and Broken URLs</title>
    <published>2007-10-19T18:22:39Z</published>
    <updated>2007-10-19T18:22:39Z</updated>
    <category term="delsp"/>
    <category term="wrapping"/>
    <category term="outlook"/>
    <category term="url"/>
    <category term="gmail"/>
    <category term="mail"/>
    <category term="flowed"/>
    <category term="apple"/>
    <content type="html">I am using Apple mail and love it. Except many people complained to me repeatedly that sometimes when I send long URLs they break into several lines and they could not click on them. Today I finally decided to investigate what's goind on.&lt;br /&gt;&lt;br /&gt;Apple Mail sends plain text messages with the following Content-Type headers:&lt;br /&gt;&lt;br /&gt;Content-Type: text/plain;&lt;br /&gt;	charset=US-ASCII;&lt;br /&gt;	delsp=yes;&lt;br /&gt;	format=flowed&lt;br /&gt;&lt;br /&gt;This is perfectly legal, per &lt;a href="http://www.rfc-editor.org/rfc/rfc3676.txt"&gt;RFC-3676&lt;/a&gt;. It does break long lines, but in a manner, that other mail client which undertand this format could reconstruct them back. For example if another Apple Mail is used to read the message, it looks perfectly OK:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/vzaliva/1638695334/" title="Photo Sharing"&gt;&lt;img src="http://farm3.static.flickr.com/2411/1638695334_5e0063cee1_o.png" width="696" height="165" alt="AppleMail.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately,  other popular clients do not understand this, as of today. Gmail:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/vzaliva/1637821733/" title="Photo Sharing"&gt;&lt;img src="http://farm3.static.flickr.com/2053/1637821733_ba8c94223b_o.png" width="350" height="169" alt="Gmail.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Outlook 2003:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/vzaliva/1638695544/" title="Photo Sharing"&gt;&lt;img src="http://farm3.static.flickr.com/2031/1638695544_6f55bb65c7_o.png" width="660" height="202" alt="Outlook 2003.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In examples above, I also tried to enclose the long URL in angle brackets, as recommended by &lt;a href="http://www.macosxhints.com/article.php?story=20070112124954101"&gt;some sources&lt;/a&gt;. This format is defined in &lt;a href="http://www.ietf.org/rfc/rfc2396.txt"&gt;RFC 2396&lt;/a&gt;, Appledix E: "Recommendations for Delimiting URI in Context". As you can see, this did not help either.&lt;br /&gt;&lt;br /&gt;It looks like that as of right now there is no sure way to put long URLs in messages send by Apple Mail without a risk of them being broken down, when displayed by popular mail clients. Common workardound is to use services like &lt;a href="http://tinyurl.com/"&gt;TinyURL&lt;/a&gt; to map them to shorter URLs.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:32626</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/32626.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=32626"/>
    <title>hashcash, Outlook Postmark</title>
    <published>2007-10-03T18:43:47Z</published>
    <updated>2007-10-03T18:43:47Z</updated>
    <category term="antispam"/>
    <category term="outlook"/>
    <category term="microsoft"/>
    <category term="patent"/>
    <category term="puzzle"/>
    <category term="spamassassin"/>
    <category term="spam"/>
    <category term="hashcash"/>
    <content type="html">Without much fanfare Microsoft have included in OutLook 2007 a &lt;a href="http://www.microsoft.com/mscorp/safety/technologies/antispam/default.mspx#4"&gt;Postmark feature&lt;/a&gt; which is using "Math Puzzle" for SPAM control:&lt;br /&gt;&lt;br /&gt;&lt;blockquote cite="http://www.windowsitpro.com/Articles/ArticleID/50050/50050.html?Ad=1"&gt;&lt;i&gt;"A new Outlook E-mail Postmark feature aims to make it easier for other Outlook 2007 users to receive legitimate messages that might otherwise be classified as spam. When a user sends a “spammy” message, Outlook performs the calculations necessary to solve a simple computational puzzle and adds information about the puzzle and the solution to the SMTP message header. Because that computation takes only a little time for one message or a few messages but would take a very long time for a spammer sending millions of messages, the presence of an Outlook E-mail Postmark in the message header is a strong indication that the message isn’t spam."&lt;/i&gt;&lt;/blockquote&gt;&lt;a href="http://www.windowsitpro.com/Articles/ArticleID/50050/50050.html?Ad=1"&gt;[1]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is basically an implementation of old good &lt;a href="http://hashcash.org/"&gt;HashCash&lt;/a&gt; idea. I think this is great that they are doing this. This is one of few ways which allows to combat zombie computers sending spam email. I wish this implementation become more mainstream in other mail clients.&lt;br /&gt;&lt;br /&gt;However, there are several problems with Microsoft approach. The first is that a Postmark feature is switched off my default &lt;a href="http://office.microsoft.com/en-us/outlook/HA100625921033.aspx"&gt;[2]&lt;/a&gt;. The second is that according to some reports&lt;a href="http://www.ferris.com/2006/06/30/outlook_2007_sp/"&gt;[3]&lt;/a&gt;, Microsoft owns a patent on this technology, which could stop its adoption by other email software vendors. I also have not found a clear technical specficaiton of Postmark implementation, which could be used, for example, to add postmark checking to SpamAssassin.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:32470</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/32470.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=32470"/>
    <title>2050 - The Year of the Linux Desktop</title>
    <published>2007-07-06T21:22:02Z</published>
    <updated>2007-07-06T21:22:02Z</updated>
    <category term="web20"/>
    <category term="widgets"/>
    <category term="widgetbox"/>
    <category term="gadgets"/>
    <category term="store"/>
    <category term="gadget"/>
    <category term="web"/>
    <category term="linking"/>
    <category term="widget"/>
    <content type="html">2008: &lt;a href="http://www.maximumpc.com/article/2008_year_of_the_linux_desktop"&gt;2008: Year of the Linux Desktop&lt;/a&gt;&lt;br /&gt;2007: &lt;a href="http://mywheel.net/blog/index.php/2007/04/23/2007-the-year-of-the-linux-desktop/"&gt;2007 - The year of the Linux desktop?&lt;/a&gt;&lt;br /&gt;2006: &lt;a href="http://www.linuxtoday.com/it_management/2006040800626RVSW"&gt;Government Computer News: 2006: The Year of Desktop Linux?&lt;/a&gt;&lt;br /&gt;2005: &lt;a href="http://www.expresscomputeronline.com/20050307/market07.shtml"&gt;“2005 will be the year of the Linux desktop”&lt;/a&gt;&lt;br /&gt;2004: &lt;a href="http://linux.slashdot.org/article.pl?sid=04/01/15/1531237"&gt; Linus Says 2004 is the Year for Desktop Linux&lt;/a&gt;&lt;br /&gt;2003: &lt;a href="http://www.linux-mag.com/id/1351/"&gt;The Year of the Linux Desktop:&lt;/a&gt;&lt;br /&gt;2002: &lt;a href="http://news.zdnet.co.uk/software/0,1000000121,2127602,00.htm"&gt;The Year Ahead: Linux continues to push for the desktop&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:32150</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/32150.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=32150"/>
    <title>Widget Web</title>
    <published>2007-06-26T23:48:09Z</published>
    <updated>2007-06-26T23:48:09Z</updated>
    <category term="web20"/>
    <category term="widgets"/>
    <category term="widgetbox"/>
    <category term="gadgets"/>
    <category term="store"/>
    <category term="gadget"/>
    <category term="web"/>
    <category term="linking"/>
    <category term="widget"/>
    <content type="html">&lt;a href="http://en.wikipedia.org/wiki/Web_widget"&gt;Widgets&lt;/a&gt; have become very popular recently. First, they appeared on Myspace as a way for users to spice-up their profiles. There are small companies living off widgets hosted on Myspace. Then Yahoo &lt;a href="http://widgets.yahoo.com/"&gt;adopted&lt;/a&gt; them. Then the concept spread to Desktop: &lt;a href="http://www.apple.com/downloads/dashboard/"&gt;Mac Widgets&lt;/a&gt;, &lt;a href="http://desktop.google.com/plugins/"&gt;Google Desktop Gadgets&lt;/a&gt;, &lt;a href="http://microsoftgadgets.com/"&gt;Microsoft Gadgets&lt;/a&gt;. Facebook officially embraced them, calling them "&lt;a href="http://developers.facebook.com/"&gt;applications&lt;/a&gt;" and making them a key building block of their platform. Why widgets are so popular and where it is all heading?&lt;br /&gt;&lt;br /&gt;Let us start from pre-web days. We had disjoined information in various formats. The main mantra of Web 1.0 was "link link link...." Web 2.0 was about data sharing. The message changed - not just link, but share data in machine readable format, plus provide APIs in form of  web services. I think the next logical step after data sharing is sharing functionality. You build your web site putting together pieces from other sites in form of widgets, gadgets, blocks, applications... whatever they will end up being called. &lt;br /&gt;&lt;br /&gt;&lt;i&gt;pre-Web days:&lt;/i&gt; CD with songs&lt;br /&gt;&lt;i&gt;Web 1.0:&lt;/i&gt; collection of MP3 files on the web with linked from different sites.&lt;br /&gt;&lt;i&gt;Web 2.0:&lt;/i&gt; podcast&lt;br /&gt;&lt;i&gt;Widget Web:&lt;/i&gt; embedded player widget&lt;br /&gt;&lt;br /&gt;There are also some early &lt;a href="http://www.widgetbox.com/"&gt;standardization efforts&lt;/a&gt; aiming at making widgets portable between Web and Desktop platforms. While many companies are concentrating on small flash and Javascript widgets, I think the future lies in more comprehensive embedded application platforms -  the direction Facebook is heading right now.&lt;br /&gt;&lt;br /&gt;Let us look at another example: web ads. It started in Web 1.0 days with simple banner ads, which were usually individually negotiated between advertisers and web sites owners. Now, in Web 2.0 days it a serious, well-developed business. There are web advertisement networks which are exchanging XML streams of advertisement requests to which comsumer-facing web sites subscribe to and then select and display ads based on keywords, user profile, going rates, budget, etc. But still, at the end user have to click on the ad and go to the advertiser's web site to make a purchase. In Widget Web days, I can imaging ads becoming mini-stores embedded in the pages. It shows you product ad, and if you like it, you can click on it and buy it right there, without leaving web page. This way instead of bringing users to your store you bring your store to them instead.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:31822</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/31822.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=31822"/>
    <title>One year later: programming languages and google trends</title>
    <published>2007-05-15T04:58:42Z</published>
    <updated>2007-05-15T04:58:42Z</updated>
    <content type="html">About one year ago I wrote about &lt;a href="http://notbrainsurgery.livejournal.com/28620.html" target="_new"&gt;Java being on decline&lt;/a&gt;, according to Google Trends. Today I decided to revisit this subject. However something far more interesting caught my eye. I think as technlogy matures it becomes a commodity and eventualy moves from drawing boards of early adopters (Silicon Valley) to vast production factories of the outsourcing word (India, China). Let us test this hypothesis:&lt;br /&gt;&lt;br /&gt;Group 1: &lt;a href="http://www.flickr.com/photos/vzaliva/499030412/" target="_new"&gt;Cobol&lt;/a&gt;, &lt;a href="http://www.flickr.com/photos/vzaliva/499078889/in/photostream/" target="_new"&gt;Oracle&lt;/a&gt;, &lt;a href="http://www.flickr.com/photos/vzaliva/499078861/in/photostream/" target="_new"&gt;C++&lt;/a&gt;, &lt;a href="http://www.flickr.com/photos/vzaliva/499078835/in/photostream/" target="_new"&gt;java&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Group 2: &lt;a href="http://www.flickr.com/photos/vzaliva/499030308/in/photostream/" target="_new"&gt;Web 2.0&lt;/a&gt;, &lt;a href="http://www.flickr.com/photos/vzaliva/499030278/in/photostream/" target="_new"&gt;Python&lt;/a&gt;, &lt;a href="http://www.flickr.com/photos/vzaliva/499078761/in/photostream/" target="_new"&gt;Ruby&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Can you see the trend?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:31581</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/31581.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=31581"/>
    <title>Fast4</title>
    <published>2007-04-14T05:34:41Z</published>
    <updated>2007-05-08T22:01:20Z</updated>
    <category term="idea"/>
    <category term="paper"/>
    <category term="selection"/>
    <category term="input"/>
    <category term="joystick"/>
    <category term="accelkey"/>
    <category term="mobile"/>
    <category term="trackball"/>
    <content type="html">I have produced &lt;a href="http://www.accelkey.com/AccelKeyWhitepaper.pdf" target="_new"&gt;a paper&lt;/a&gt; on my  idea about search method using 4-directional input device, like joystick or a trackball. Besides the obvious uses like mobile phone address book search, it could be also used in car navigation systems, portable music players, game consoles, etc.&lt;br /&gt;&lt;br /&gt;There is a demo for J2ME phones as well as Blackberry app which could be downloaded &lt;a href="http://www.accelkey.com/" target="_new"&gt;here&lt;/a&gt;.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:31447</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/31447.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=31447"/>
    <title>Using UsernameToken Authentication with Blogger and MetaWebLog APIs</title>
    <published>2007-02-20T18:13:49Z</published>
    <updated>2007-02-20T18:13:49Z</updated>
    <category term="metaweblog"/>
    <category term="api"/>
    <category term="authentication"/>
    <category term="blogger"/>
    <category term="paper"/>
    <category term="usernametoken"/>
    <content type="html">I have drafted a small note for one of the projects I am involved in. Here it is: "&lt;a href="http://www.crocodile.org/lord/metaweblog-wsse.pdf" target="_new"&gt;Using UsernameToken Authentication with Blogger and MetaWebLog APIs&lt;/a&gt;" - In case you ever need something like this :)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:31150</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/31150.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=31150"/>
    <title>I hate Smalltalk!</title>
    <published>2007-02-02T05:44:29Z</published>
    <updated>2007-02-02T05:44:29Z</updated>
    <category term="rent"/>
    <category term="job"/>
    <category term="smalltalk"/>
    <content type="html">A friend of mine sent me today a link to a Smalltalk-based web framework. That reminded me that I talked to my landlord last week. He is raising my rent because he lost his job. He could not find a job for 3 months. I asked what are his skills, and he told that he was doing Smalltalk programming last 5 years. He looked at some job-seekers web sites, and everybody wants some web stuff (big surprise!) which he have no clue about. He is considering taking some HTML and PHP classes. I am sure there is a morale here. There must be one, because my rent went up, and I feel that Smalltalk (or rather its demise) is responsible for that.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:30805</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/30805.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=30805"/>
    <title>tags hierarchies</title>
    <published>2007-01-21T02:19:04Z</published>
    <updated>2007-05-17T00:16:10Z</updated>
    <category term="hierarchies"/>
    <category term="grpahs"/>
    <category term="closeness"/>
    <category term="tags"/>
    <category term="generalization"/>
    <category term="clusering"/>
    <content type="html">Tags assigned by user to given set of objects often tends to have hidden implicit structure. Let us try to explore it:&lt;br /&gt;&lt;br /&gt;The first, the most obvious relationship is generalization. If all objects with the tag "A" always tagged with "B" (but not vice versa) then the tag "B" is more generic. (One can also describe this in terms of sets: a set of objects tagged with "B" is a superset of objects tagged with "A"). Examples of graphs depicting this type of relationship for two users (taken from real-life data) can be seen &lt;a target="_new" href="http://www.flickr.com/photo_zoom.gne?id=501439396&amp;amp;size=o"&gt;here&lt;/a&gt; and &lt;a target="_new" href="http://www.flickr.com/photo_zoom.gne?id=501473713&amp;amp;size=o"&gt;here&lt;/a&gt;. The arrow is pointing in direction on more &lt;i&gt;generic&lt;/i&gt; tag.&lt;br /&gt;&lt;br /&gt;Another interesting relationship I would call &lt;i&gt;"closeness"&lt;/i&gt;. On fixed data set this property shows how often a pair of tags happens to appear together on the same object. An example of graphs depicting this type of relationship can be seen &lt;a target="_new" href="http://www.flickr.com/photo_zoom.gne?id=501473813&amp;amp;size=l"&gt;here&lt;/a&gt; and &lt;a target="_new" href="http://www.flickr.com/photo_zoom.gne?id=501439202&amp;amp;size=l"&gt;here&lt;/a&gt;. The numbers above lines show absolute number of occurrences of two tags it link appearing together assigned to the same object. (It is probably makes sense to normalize them, for example by dividing by total number of tags assignments by given user.) This relationship is bidirectional.&lt;br /&gt;&lt;br /&gt;How this information could be used? First of all, it could be used for navigation in UI. One can devise navigation controls which allow users to traverse this hierarchy. Also this kind of relationship information could be used in various &lt;a target="_new" href="http://en.wikipedia.org/wiki/Data_clustering"&gt;clustering algorithms&lt;/a&gt;. Probably this information could also be used also in some collaborative filtering algorithms.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:30713</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/30713.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=30713"/>
    <title>MacOS, CIFS (Samba), WebDAV</title>
    <published>2007-01-14T02:01:35Z</published>
    <updated>2007-01-14T02:01:35Z</updated>
    <content type="html">In order to backup some files from my Macbook to &lt;a href="http://www.openfiler.com/" target="_new"&gt;OpenFiler&lt;/a&gt; server I did quick and very unscientific test: I have copied approximately 1.6Gb (iMovie project folder with 75 files) using 'cp -r' command first to disk mounted with &lt;a href="http://en.wikipedia.org/wiki/CIFS" target="_new"&gt;Samba&lt;/a&gt; and then with &lt;a href="http://en.wikipedia.org/wiki/WebDAV" target="_new"&gt;WebDAV&lt;/a&gt;.  SMB copy took 6.2 seconds and WebDAV took 5.3.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:30303</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/30303.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=30303"/>
    <title>changing OpenID provider</title>
    <published>2007-01-14T00:43:42Z</published>
    <updated>2007-01-14T00:43:42Z</updated>
    <content type="html">I am using &lt;a href="http://www.crocodile.org/" target="_new"&gt;www.crocodile.org&lt;/a&gt; as my &lt;a href="http://openid.net/" target="_new"&gt;OpenID&lt;/a&gt; URI. Since I am not running OpenID server of my own, the actual authentication was until recently delegated to &lt;a href="http://www.livejournal.com/" target="_new"&gt;LiveJournal&lt;/a&gt;. Yesterday I switched to &lt;a href="https://www.myopenid.com/" target="_new"&gt;MyOpenID.com&lt;/a&gt; as my identity server. Mainly because it supports &lt;a href="http://openid.net/specs/openid-simple-registration-extension-1_0.html" target="_new"&gt;Simple Registration Extension&lt;/a&gt; and overall have very nice interface for managing trusted sites and "personas". This is what I like about OpenID design: it takes just couple of lines of HTML code to turn URL into OpenID URI and you can change backend server easily anytime.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:29773</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/29773.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=29773"/>
    <title>Poor Man Video Thumbnail Generation</title>
    <published>2006-12-29T02:49:07Z</published>
    <updated>2007-01-01T21:45:33Z</updated>
    <category term="thumbnail"/>
    <category term="python"/>
    <category term="algorithm"/>
    <category term="video"/>
    <category term="image"/>
    <content type="html">If you are building yet another &lt;a href="http://youtube.com/" target="_new"&gt;YouTube&lt;/a&gt;-like service, eventually, you will be facing the problem of generating thumbnails for video clips. The simplest solution would be to get some random or fixed frame, and use is a thumb. Unfortunately, this does not always produce best results. You can try to implement more sophisticated algorithms, like described &lt;a href="http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=899354" target="_new"&gt;here&lt;/a&gt; (Quote:&lt;i&gt; "The shot and key frame are selected based on measures of motion and spatial activity and the likeliness to include people. The latter is determined by skin-color detection and face detection."&lt;/i&gt;). I did not have time and patience to implement such complex algorithms, so I came up with one of my own, which is really simple, could be implemented in couple of hundreds lines of code and works pretty well.&lt;br /&gt;&lt;br /&gt;The main idea is very simple: we analyze first few seconds of a clip and build histograms of color distribution per frame. Then, we average them, building an averaged color distribution histogram. Then we find a frame, which is closest to the average value (I am using &lt;a href="http://en.wikipedia.org/wiki/Mean_square_error" target="_new"&gt;RMSE&lt;/a&gt; to estimate "closeness"). We select a frame close to beginning of the video, which makes selection process faster (less frames to examine) and less likely to include spoilers. Selected picture is similar in color distribution to the overall video theme, making it more likely to display typical frame.&lt;br /&gt;&lt;br /&gt;I run it on few hundreds video clips, and it shows pretty good &lt;a href="http://www.crocodile.org/lord/thumbextraction/" target="_new"&gt;results&lt;/a&gt;. Of course, these results are not representative, I've selected most interesting ones but generally I think it is very usable. You can grab the &lt;a href="http://www.crocodile.org/lord/thumbextraction/vthumb.py" target="_new"&gt;source code&lt;/a&gt; and try it yourself.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:29454</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/29454.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=29454"/>
    <title>proprietary encryption</title>
    <published>2006-11-27T01:17:42Z</published>
    <updated>2006-11-27T01:17:42Z</updated>
    <category term="proprietary"/>
    <category term="encryption"/>
    <category term="xor"/>
    <content type="html">Whenever I am hearing about somebody implementing their own proprietary encryption, in the most cases it turns out to be combinations of bitwise exclusive disjunction operations plus some trivial data mangling.&lt;br /&gt;&lt;br /&gt;My interpretation of this observation is that the kind of people who do not understand why proprietary encryption algorithms are not good idea are usually could not come up with anything better than XORs.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:29308</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/29308.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=29308"/>
    <title>Mobile 2.0</title>
    <published>2006-11-08T19:10:57Z</published>
    <updated>2006-11-08T19:10:57Z</updated>
    <category term="web20"/>
    <category term="web"/>
    <category term="mobile20"/>
    <category term="mobile"/>
    <category term="diagram"/>
    <content type="html">I stopped by at &lt;a href="http://www.mobile2event.com/" target="_new"&gt;Mobile 2.0&lt;/a&gt; event this week. Frankly, I was little disappointed. In my opinion, mobile 2.0 is not about Symbian OS or Mobile Search or many other topics they have discussed. I was struggling how to explain to friends what it is about and come up with this diagram. Company names, are just examples. So, if you know interesting companies which fit upper right quadrant of this diagram, leave their names in comments to this post and let us see next year who will pop up to the top of the list.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/vzaliva/292465585/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/113/292465585_17af6ad830.jpg" width="488" height="500" alt="Mobile 2.0 explained" /&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:29183</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/29183.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=29183"/>
    <title>PeopleAggregator, modeilling relationships in social networks</title>
    <published>2006-09-14T08:47:44Z</published>
    <updated>2006-09-14T08:47:44Z</updated>
    <category term="marc canter"/>
    <category term="orkut"/>
    <category term="facebook"/>
    <category term="xanga"/>
    <category term="social networks"/>
    <category term="baychi"/>
    <category term="openbc"/>
    <category term="linkedin"/>
    <category term="myspace"/>
    <category term="broadband mechanics"/>
    <category term="peopleaggregator"/>
    <category term="friendster"/>
    <content type="html">For last few months, I was closely following developments in the social network space. Partially because of curiosity, partially for professional reasons (the project I am involved in for a customer). So I have an account at MySpace, Xanga, Orkut, Friendster, Facebook, LinkedIn, OpenBC, and others I forgot the name of. After opening all these accounts it is hard to not to start thinking about meta social networks and social network interlinking. As in many cases LiveJournal was a pioneer in this area not only with providing social networking functionality but also adopting such thins like FOAF and inventing things like OpenID (big Kudos to LJ folks!). &lt;br /&gt;&lt;br /&gt;So, when I have heard about &lt;a href="http://en.wikipedia.org/wiki/Marc_Canter"&gt;Marc Canter&lt;/a&gt;'s &lt;a href="http://www.broadbandmechanics.com/"&gt;PeopleAggregator&lt;/a&gt; I was very glad to see somebody finally doing something in this area. I have attended the talk he was giving at &lt;a href="http://www.baychi.org/"&gt;BayCHI&lt;/a&gt; meeting another day and must gladly report that he seems to be on the track to success both technically and business wise. &lt;br /&gt;&lt;br /&gt;Even though PeopleAggregator site needs more work to become something average internet non-geek user can comprehend and use, and some most exiting features like actually linking several existing accounts from several networks are yet to come, but I am sure we will see them soon. &lt;br /&gt;&lt;br /&gt;However, I would like argue a bit on the model he has chosen. As we know well from RDF world it is all about triples:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;(subject, predicate, object)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;In social networking world the subject is you, the object is some other person and the predicate is relationship type: a relative, a friend, a colleague, a classmate, etc.&lt;br /&gt;&lt;br /&gt;The fundamental problem which arises when you link various social networks is that semantic of the predicate varies from the network to the network. For example in Facebook world, the friend is very often a classmate. In LiveJournal, it is just somebody whose blog you read regularly via friend blogroll. In Flickr it could be either somebody whose photographs you like to watch (a ‘contact’ in their terms) or friend of family member to whom you would like to grant the access to some of your personal photographs not visible to general public. So if you try to connect your Flickr and Facebook accounts via some meta social networking site like PeopleAggregator the question arises: how to distinguish these relationship types in order to protect your and other people privacy.&lt;br /&gt;&lt;br /&gt;How PeopleAggregator choose to solve this problem? Marc's answer is something he calls "Persona". He suggests that you create several virtual identities with different contact lists, not shared between them. This is a very familiar concept for seasoned Internet users like myself. After all I have two blogs, separating my professional and personal blogging. But, this separation was done mostly because of limitations of existing blogging platforms. I do not hide my identity and in both blogs I am, well, myself, just discussing different subjects with different groups of people. &lt;br /&gt;&lt;br /&gt;Somebody may try to separate his virtual personalities further to hide some parts of his identity from different groups of his contacts. My answer to these people is that this is very unwise to expect to be able to protect their secret identities on the Internet. There are many ways to find out who is hiding behind your online alias, and generally you should always assume that your identity could be exposed at any moment.&lt;br /&gt;&lt;br /&gt;Now let us consider hypothetical example: Mark plays poker with Peter. Mark is an engineer and looking for a job. Peter works for a software company as VP of Sales and knows Mark only socially, via poker. The relationship between them looks like:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pics.livejournal.com/notbrainsurgery/pic/00001tpy/"&gt;&lt;img width="320" height="201" border="0" src="http://pics.livejournal.com/notbrainsurgery/pic/00001tpy/s320x240" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now, it is conceivable that Mark mentions that he is looking for a job and Peter has heard that his company is hiring engineers and offers to pass Marks resume to Lucy, his HR manager.&lt;br /&gt;&lt;br /&gt;Let us project this situation into the social networking word. Mark and Peter are both belong to "PokerWizzards" group at Orkut. At the same time Peter and Lucy are using LinkedIn. Of course, usually Peter does not expose his poker buddies to his business contacts, so when importing all his social network contacts to a site like PeopleAggregator he created two “Persona”. Let us call them "PeterWork" and "PeterPlay". Mark is also usually do not keep a link to his resume on his Orkut profile and might have separate OpenBC profile for his business contacts. As we can see, our relationship graph gets little more complicated:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pics.livejournal.com/notbrainsurgery/pic/00002c1a/"&gt;&lt;img width="320" height="182" border="0" src="http://pics.livejournal.com/notbrainsurgery/pic/00002c1a/s320x240" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Both Mark, and Peter now has split personality, with their own contact lists. Mark could not easily send his resume to Peter via his social networking channels first because he might not have it attached to his "MarkPlay" account and because he probably only his "PeterPlay" Persona, which is his personal non-work account at Orkut.&lt;br /&gt;&lt;br /&gt;Now let us assume they somehow managed to get Mark’s resume to Lucy and he somehow got hired by Peter’s company. Now they are colleagues and Poker partners at the same time:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pics.livejournal.com/notbrainsurgery/pic/00003490/"&gt;&lt;img width="269" height="240" border="0" src="http://pics.livejournal.com/notbrainsurgery/pic/00003490/s320x240" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Does that mean they would see two contacts for each other on their contact lists?&lt;br /&gt;&lt;br /&gt;I think a multiple Persona approach is not good for average Internet user. It is just too confusing. Instead of allowing user, to create multiple Persona it is much simpler to allow him to specify types of his relationships. A user should not be limited by list of pre-defined relationship types - he should be able to add his own. No social network could pre-program all variety of possible human relationship types like "Our kids are going to the same school," "Kennel club members," etc. Additionally, multiple relationship between two members should be allowed (which could be represented to a user as single relationship with multiple labels). And finally, a user should be able to control access to his personal information based on relationship type. For example, a fellow kennel club member will see a name of his terrier. If he also happens to be his coworker, he would see also his business phone number. And the final relationship diagram would look like:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pics.livejournal.com/notbrainsurgery/pic/00004ytk/"&gt;&lt;img width="320" height="234" border="0" src="http://pics.livejournal.com/notbrainsurgery/pic/00004ytk/s320x240" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:28620</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/28620.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=28620"/>
    <title>Java on decline</title>
    <published>2006-05-12T04:16:10Z</published>
    <updated>2006-05-12T04:16:10Z</updated>
    <content type="html">Recently released &lt;a href="http://www.google.com/trends" target="_new"&gt;Google Trends&lt;/a&gt; allowed me finally to check my feeling that Java is passed it's prime of popularity and now becoming legacy technology and ready to give way to new generation of programming tools. Here is a graph built with &lt;a href="http://www.google.com/trends?q=java%2C+C%2B%2B&amp;amp;ctab=0&amp;amp;geo=all&amp;amp;date=all" target="_new"&gt;this query&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/vzaliva/144894646/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/49/144894646_b49b472298_m.jpg" width="240" height="135" alt="Java vs. C++ at Google Trends" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see java is on steady decline for last couple of years. For comparison I also draw C++, mature language which is comfortably settled in its niche and shows neither growth nor decline over the same period of time.&lt;br /&gt;&lt;br /&gt;I think a new leader in popular programing languages is about to emerge. I do not know what would it be but I can guess that it would be interpreted (or rather byte compiled), dynamically typed, mostly object oriented language but with support for some functional programming techniques and rich library supporting Web and Internet technologies.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:28414</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/28414.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=28414"/>
    <title>iPods and podcast kiosks</title>
    <published>2006-04-19T03:37:04Z</published>
    <updated>2006-04-19T04:18:01Z</updated>
    <category term="software"/>
    <category term="ipod"/>
    <category term="podcast"/>
    <category term="kiosk"/>
    <category term="podcasting"/>
    <content type="html">While traveling with my iPod I realized that there is no easy way to update podcasts on the go, without syncing whole music library. I am now in a hotel, and we have high speed internet here on my wife's laptop. I would love to update some podcasts without messing up my music library, which is in sync with my own laptop, left at home.&lt;br /&gt;&lt;br /&gt;I have a feature request to Apple: when IPod is connected in "guest" mode to any other computer running iTunes, it should offer you to update your podcasts, fetching your subscription list from the iPod. This way you can be truly mobile, connecting your iPod to friends machines or PCs in internet cafe and updating your podcasts.&lt;br /&gt;&lt;br /&gt;Hey, maybe some day we will see iPod podcast update kiosks in hotels and airports - you plug your iPod into docking station, it fetches list of your podcasts from it, and downloads new episodes to your iPod.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:notbrainsurgery:28028</id>
    <link rel="alternate" type="text/html" href="http://notbrainsurgery.livejournal.com/28028.html"/>
    <link rel="self" type="text/xml" href="http://notbrainsurgery.livejournal.com/data/atom/?itemid=28028"/>
    <title>radical spam solution</title>
    <published>2006-04-13T18:26:20Z</published>
    <updated>2006-04-13T18:26:20Z</updated>
    <content type="html">Today, going through my spam folder I was again dismayed by amount of spam squeezing through my spam filters. No matter how good they would be, there always be a chance for some spam leaking through them. I understand some really busy people do not have time and patience for spam, and if they could afford personal assistant, he or she would screen all their messages. So here is an idea: somebody can open a service where somebody's email is screened real time by human screeners. Not only they could weed out spam, they could also categorize mail and mark it with priorities. Of course it would not be cheap, but for people who can afford it it would be a very valuable.</content>
  </entry>
</feed>
