<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for saju</title>
    <link>http://www.advogato.org/person/saju/</link>
    <description>Advogato blog for saju</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Fri, 24 May 2013 00:35:05 GMT</pubDate>
    <item>
      <pubDate>Thu, 6 Mar 2008 13:32:27 GMT</pubDate>
      <title>6 Mar 2008</title>
      <link>http://www.advogato.org/person/saju/diary.html?start=15</link>
      <guid>http://www.advogato.org/person/saju/diary.html?start=15</guid>
      <description>Maybe I am not understanding this properly but java's&#xD;
threadlocal storage seems funky. Unlike in other non-java&#xD;
threading environments one cannot introspect a thread's&#xD;
local storage and retrieve the objects needed. To retrieve a&#xD;
thread local value one needs a reference to a ThreadLocal&#xD;
object which was used to create this TLS. This seems a bit&#xD;
funky; to retrieve a TLS value at a random point in that&#xD;
thread I need a reference to a global ThreadLocal object; so&#xD;
if I have to use a global object to grab TLS values I can&#xD;
just make my TLS values globals !&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; The only difference b/w globals and TLS is that the value of&#xD;
the TLS object can be unique per thread. This is cool but&#xD;
the inability to introspect a thread's TLS values without&#xD;
holding a global reference doesn't make sense. This stops me&#xD;
from  using TLS where I am unable to add/modify globals for&#xD;
some reason (say I am writing callbacks for an established&#xD;
framework).&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Ofcourse I probably didn't grok this right... maybe...</description>
    </item>
    <item>
      <pubDate>Tue, 4 Mar 2008 05:02:05 GMT</pubDate>
      <title>4 Mar 2008</title>
      <link>http://www.advogato.org/person/saju/diary.html?start=14</link>
      <guid>http://www.advogato.org/person/saju/diary.html?start=14</guid>
      <description>&lt;p&gt; I am not a Java person and have less than a week's&#xD;
experience working with J2EE, maybe my brain is not wired&#xD;
correctly to understand Java but I have significant&#xD;
programming experience in multiple languages and I have&#xD;
never seen such a proliferation of frameworks and abuse of&#xD;
xml in the name of declarative programming. Most of the&#xD;
latest Java based frameworks have a large amount of&#xD;
documentation explaining how they are different from the&#xD;
other frameworks and how using their framework apparently&#xD;
makes it easier for the programmer to concentrate on&#xD;
business logic and forget about the "grunt" work and loose&#xD;
ends. This clearly seems like a bunch of authors writing a&#xD;
lot of code to create a fwmk/api based on&#xD;
an idea which was simply not significantly different from&#xD;
the previous fmwk to stand on it's own merit.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;p&gt; Also why do most new java fmwks/api's state one of their&#xD;
goals as "making programming easier" ? Surely the J2EE&#xD;
programmer is smart enough to know that he should close&#xD;
files he has opened in his program ? Surely the answer to a&#xD;
bad programmer is not to create a brand new framework that&#xD;
closes opened files via code injection and declarative xml&#xD;
programming. If there is a problem with a existing framework&#xD;
or an api - maybe everyone should just try fixing it ? &#xD;
&#xD;
&lt;p&gt; &lt;p&gt; &lt;p&gt; I definitely don't have enough exposure to&#xD;
understand all&#xD;
the problems of Java or J2EE and the need for so many&#xD;
frameworks so you could definitely say I not qualified to&#xD;
comment on something that I obviously don't understand well&#xD;
enough. In my defense; neither do I have any significant&#xD;
experience in say Python, Lisp or Perl but I can already see&#xD;
that they have got their story right. Maybe after you have&#xD;
spent enough hours hacking stuff at ungodly hours, you just&#xD;
develop a sense of what is right and what is not, and Java&#xD;
and it's framework hell just does not seem right</description>
    </item>
    <item>
      <pubDate>Fri, 22 Feb 2008 11:40:13 GMT</pubDate>
      <title>22 Feb 2008</title>
      <link>http://www.advogato.org/person/saju/diary.html?start=13</link>
      <guid>http://www.advogato.org/person/saju/diary.html?start=13</guid>
      <description>I saw Spiderman-3 yesterday. It should have been named Mary&#xD;
Jane - 1. I was still recovering from the shock of watching&#xD;
Transformers, when I had to endure all that crappy teenage&#xD;
angst of spidey3. &#xD;
&#xD;
&lt;p&gt; Current mood - Disturbed </description>
    </item>
    <item>
      <pubDate>Sat, 16 Feb 2008 15:56:41 GMT</pubDate>
      <title>16 Feb 2008</title>
      <link>http://www.advogato.org/person/saju/diary.html?start=12</link>
      <guid>http://www.advogato.org/person/saju/diary.html?start=12</guid>
      <description>Just got a shiny new Dell E248WFP monitor. Awesome good.&#xD;
Hooked up my Macbook Pro to the monitor and everything works&#xD;
great. Well almost everything. "Mirror mode" forces the&#xD;
monitor resolution to drop to the macbook's resolution. &lt;p&gt;I&#xD;
will get myself a nice USB mouse and keyboard tommw and run&#xD;
my macbookpro in "clampdown mode". That should make me&#xD;
happy mmmm..</description>
    </item>
    <item>
      <pubDate>Fri, 15 Feb 2008 15:39:31 GMT</pubDate>
      <title>15 Feb 2008</title>
      <link>http://www.advogato.org/person/saju/diary.html?start=11</link>
      <guid>http://www.advogato.org/person/saju/diary.html?start=11</guid>
      <description>javax.net.ssl.SSLEngine adventures&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; I recently had to write a server in java that can speak&#xD;
SSL/TLS. The actual application protocol is handled by&#xD;
classes upstream to the SSL/TL layer. For scalability I&#xD;
decided to use Java NIO - which implied using the&#xD;
javax.net.ssl.SSLEngine.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; The SSLEngine api is pretty cool though could possibly be a&#xD;
bit better designed. Essentially the application needs to&#xD;
manage 4 buffers of data, 2 of which are read by and 2 of&#xD;
which are written to by the SSLEngine. Sounds easy, infact&#xD;
it is, if it were not for the Handshake and renegotiation.&#xD;
Calling an api on the SSLEngine can cause it to ask you to call&#xD;
another api which may in turn ask you to call the original&#xD;
... and so on.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; I first wrote the SSL layer using recursion but with upto 5&#xD;
exit points and special code to take care of stack unwinding&#xD;
and having to manipulate global buffers this was deemed too&#xD;
risky. So I re implemented the SSL engine via state&#xD;
transition. Since I was already playing with NIO and had to&#xD;
use a thread pool to handle concurrent clients, I decided to&#xD;
make the SSL processing asynchronous. Essentially I broke&#xD;
down the SSL processing (including breaking down the&#xD;
handshake and app layer protocol parsing) into various&#xD;
states, the currently executing thread would finish &#xD;
executing 1 state and hand over the "session" to the thread&#xD;
pool where another free thread will finish the next state.&#xD;
Ofcourse I have coded in optimization where an&#xD;
implementation of a state can decide whether to transition&#xD;
over a thread boundary or force the current thread to&#xD;
execute the next state.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Long story short. It works andit fits very nicely into the&#xD;
server's threading model.</description>
    </item>
    <item>
      <pubDate>Fri, 4 Jan 2008 11:57:43 GMT</pubDate>
      <title>4 Jan 2008</title>
      <link>http://www.advogato.org/person/saju/diary.html?start=10</link>
      <guid>http://www.advogato.org/person/saju/diary.html?start=10</guid>
      <description>My VLC player is tuned to Gothic and Darkwave radio stations&#xD;
while I hack a working AES implementation in Actionscript 3.&#xD;
Coincidence or what ? &#xD;
&#xD;
&lt;p&gt; Dear ECMA people please please provide us mortals with byte&#xD;
addressing</description>
    </item>
    <item>
      <pubDate>Tue, 1 Jan 2008 15:00:29 GMT</pubDate>
      <title>1 Jan 2008</title>
      <link>http://www.advogato.org/person/saju/diary.html?start=9</link>
      <guid>http://www.advogato.org/person/saju/diary.html?start=9</guid>
      <description>&#xD;
&lt;p&gt; Joel Spolsky's &lt;a&#xD;
href="http://www.inc.com/articles/2007/12/joel-spolskys-travel-survival-guide.html?partner=fogcreek"&gt;"Travel&#xD;
Survival" tips&lt;/a&gt;.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Tip #2 : Fly first class.&#xD;
&#xD;
&lt;p&gt; &lt;p&gt; Right. That's when you stop reading.</description>
    </item>
    <item>
      <pubDate>Tue, 1 Jan 2008 05:09:54 GMT</pubDate>
      <title>1 Jan 2008</title>
      <link>http://www.advogato.org/person/saju/diary.html?start=8</link>
      <guid>http://www.advogato.org/person/saju/diary.html?start=8</guid>
      <description>The Leopard and The Tata Indicom Plug and Surf thinggy; a&#xD;
story. &#xD;
&#xD;
&lt;p&gt; Well actually not much of a story. I got my hands on a "Tata&#xD;
Indicom Plug and Surf thinggy". This is really a Sungil cdma&#xD;
usb modem using Qualcomm's mobile station modem (MSM)&#xD;
chipset. Darwin groks the msm chipset alright.&#xD;
&#xD;
&lt;p&gt; So I plugged in the modem into the USB port, pulled up&#xD;
"System Preferences", selected "Networking", filled in the&#xD;
account details - which should be same for all tata&#xD;
subscribers i.e dial #777, creds are internet/internet. Then&#xD;
I went to the "Advanced" menu section and changed the&#xD;
"Vendor" and "Modem" from "Apple" and "Apple Modem v34" to&#xD;
"Generic" and  "Dialup Device". Hitting "Connect" should now&#xD;
get you online. &#xD;
&#xD;
&lt;p&gt; ps: i am posting this over the "tata indicom thinggy" </description>
    </item>
    <item>
      <pubDate>Thu, 2 Aug 2007 12:47:09 GMT</pubDate>
      <title>2 Aug 2007</title>
      <link>http://www.advogato.org/person/saju/diary.html?start=7</link>
      <guid>http://www.advogato.org/person/saju/diary.html?start=7</guid>
      <description>framework HELL&#xD;
&#xD;
&lt;p&gt; and what's with the java community and flashy library names ? </description>
    </item>
    <item>
      <pubDate>Mon, 4 Jun 2007 13:47:41 GMT</pubDate>
      <title>4 Jun 2007</title>
      <link>http://www.advogato.org/person/saju/diary.html?start=6</link>
      <guid>http://www.advogato.org/person/saju/diary.html?start=6</guid>
      <description>So I tried running Leenux on my shiny new dell d620 laptop.&#xD;
Since my linux skills suck and specifically since the 4th&#xD;
FC4 CD was fubar, I ditched the whole "put linux on my&#xD;
laptop" experiment and turned to FreeBSD.&#xD;
&#xD;
&lt;p&gt; fbsd 6.2 is lovely !. I used the 24 MB "boot" only iso image&#xD;
to get a install kernel on my box and performed the&#xD;
ports/packages install over the net. Very nice !&#xD;
&#xD;
&lt;p&gt; After spending a day configuring stuff I finally have the&#xD;
following working (or almost working..)&#xD;
&#xD;
&lt;p&gt; &lt;ul&gt;&#xD;
&lt;li&gt;Video @1200x800 - thanks to 915resolution - which was in&#xD;
"ports" yeah &#xD;
&lt;li&gt;Sound ! - had to get the snd_hda.ko driver. &#xD;
&lt;li&gt;Skype !!!! - yeah baby - (linux abi ofcourse :D) &#xD;
&lt;li&gt;xmms for my lovely mp3's&#xD;
&lt;li&gt;mplayer for all those pron mpegs.&#xD;
&lt;li&gt;firefox with flash7 (linux binaries). The flash 9&#xD;
crashes :( and there are no native flash binaries... &#xD;
&lt;li&gt;Java ! - yeah both the linux and native jdk &#xD;
&lt;li&gt;wired NIC - bge&#xD;
&lt;li&gt;USB - works like a charm&#xD;
&lt;li&gt;Wireless - if_wpi - maybe works maybe not - don't know -&#xD;
have to test yet - saw a bunch of mem align warnings on&#xD;
console though &#xD;
&lt;li&gt;fvwm2 -- mmm &#xD;
&lt;li&gt;acpi - well atleast I have it configured in my custom&#xD;
kernel&#xD;
&lt;/ul&gt;&#xD;
&#xD;
&lt;p&gt; So - freebsd is going to stay on my new laptop from now on.&#xD;
Feeling happy!&#xD;
</description>
    </item>
  </channel>
</rss>
