<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Janitha Karunaratne</title>
    <link>https://www.janitha.com/</link>
    <description>Recent content on Janitha Karunaratne</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>2003 - 2025 Janitha Karunaratne</copyright>
    <lastBuildDate>Sun, 17 Apr 2011 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.janitha.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>About</title>
      <link>https://www.janitha.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/about/</guid>
      <description>&lt;p&gt;Hi, I&amp;rsquo;m Janitha. I solve problems and make stuff.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contact</title>
      <link>https://www.janitha.com/contact/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/contact/</guid>
      <description>&lt;p&gt;You can reach me at &lt;a href=&#34;mailto:janitha@janitha.com&#34;&gt;janitha@janitha.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://keybase.io/janitha&#34;&gt;https://keybase.io/janitha&lt;/a&gt;&#xA;GPG &lt;code&gt;0x8c4c48f0d69ab272&lt;/code&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;-----BEGIN PGP PUBLIC KEY BLOCK-----&#xA;&#xA;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&#xA;/s1evAaJCT3ko7VT/j/XpSYL&#xA;=vTDT&#xA;-----END PGP PUBLIC KEY BLOCK-----&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>Data is Beautiful</title>
      <link>https://www.janitha.com/articles/data-is-beautiful/</link>
      <pubDate>Sun, 17 Apr 2011 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/data-is-beautiful/</guid>
      <description>&lt;p&gt;Lately I&amp;rsquo;ve been working with large sets and analyzing them for work&amp;hellip; and as a side effect, I&amp;rsquo;m now hooked on the art of data visualization. A few weeks ago when I was getting started, I wanted a dataset that was somehow directly related to me that would also be able to produce a cool looking graph, so I decided to map out the publicly directed chatter on the &lt;code&gt;#startups&lt;/code&gt; irc channel I usually hang out in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Passive Splice Network Tap</title>
      <link>https://www.janitha.com/articles/passive-splice-network-tap/</link>
      <pubDate>Thu, 24 Dec 2009 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/passive-splice-network-tap/</guid>
      <description>&lt;p&gt;Wired networks are everywhere whether you like it not. Almost every building is wired inside out, from businesses to schools to hotels. Unfortunately in most cases, little or no thought given to the physical security of the wiring. Don&amp;rsquo;t take my word for it, just lift a ceiling tile in any hallway and take a peek for your self.&lt;/p&gt;&#xA;&lt;p&gt;This indirectly affect wireless networks as well, as the Access Points are still connected via a wired network. Most installations will employ proper wireless security measures, but nothing for the data sent back over the wire after being received by the AP.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Easy life with SSH Configs</title>
      <link>https://www.janitha.com/articles/easy-life-with-ssh-config/</link>
      <pubDate>Tue, 08 Sep 2009 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/easy-life-with-ssh-config/</guid>
      <description>&lt;p&gt;If you are ssh&amp;rsquo;ing constantly to a lot of boxes using long ssh&#xA;commands with many switches, you are doing it wrong. Make your life&#xA;easier with the ssh config file &lt;em&gt;~/.ssh/config&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;Host home home.example.com&#xA;    HostName home.example.com&#xA;    User j&#xA;    Port 12345&#xA;    LocalForward 45901 localhost:5901&#xA;    LocalForward 40080 localhost:80&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Now all you need to do is &amp;ldquo;ssh home&amp;rdquo; and it will connect using those&#xA;options. That easy. All the options can be found in ssh_config(5)&lt;/p&gt;</description>
    </item>
    <item>
      <title>URL Shortening Services</title>
      <link>https://www.janitha.com/articles/url-shortening-services/</link>
      <pubDate>Wed, 06 May 2009 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/url-shortening-services/</guid>
      <description>&lt;p&gt;Lately, all my primary technology news sources have been polluted with&#xA;articles about &lt;a href=&#34;http://www.twitter.com&#34;&gt;Twitter&lt;/a&gt; and other related&#xA;&lt;a href=&#34;http://www.tinyurl.com&#34;&gt;url&lt;/a&gt; &lt;a href=&#34;http://www.bit.ly&#34;&gt;shortening&lt;/a&gt;&#xA;&lt;a href=&#34;http://is.gd&#34;&gt;services&lt;/a&gt;. A part of my dies inside every time I hear&#xA;about one of these. I can understand the hype about Twitter, but the&#xA;only reason there is a hype about URL shortening is because of&#xA;Twitter.&lt;/p&gt;&#xA;&lt;p&gt;I have an open suggestion to Twitter that would benefit them, their&#xA;user base, and hopefully kill the URL Shortening market space in one&#xA;go (so it would be one less thing to pollute my daily tech news&#xA;with).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Listen to your Feeds</title>
      <link>https://www.janitha.com/articles/listen-to-your-feeds/</link>
      <pubDate>Wed, 08 Apr 2009 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/listen-to-your-feeds/</guid>
      <description>&lt;p&gt;Last night I was wondering how interesting it would be to have your&#xA;friends Facebook status updates, twitter tweets, and other types of&#xA;live feeds be read back as speech in real time as they are updated.&lt;/p&gt;&#xA;&lt;p&gt;A coffee cup later, jFeedSpeak was written. It&amp;rsquo;s a Feed-to-Speech&#xA;script I wrote in python and it accepts any number of RSS feeds&#xA;(facebook status updates, twitter, Google news, pretty much any RSS&#xA;you throw at it). The newest updates are piped in to Festival (Text to&#xA;Speech engine) which you can listen to (and optionally pynotify that&#xA;pops up a notification, but I commented that out for compatibility).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Telephone Number Geocoder</title>
      <link>https://www.janitha.com/articles/telephone-number-geocoder/</link>
      <pubDate>Sun, 05 Apr 2009 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/telephone-number-geocoder/</guid>
      <description>&lt;p&gt;Want to map out a whole bunch of telephone numbers by their location?&lt;/p&gt;&#xA;&lt;p&gt;That was my Sunday afternoon project. Inspired by @joshuabaer&amp;rsquo;s tweet&#xA;looking for such service, decided to implement one just for fun&#xA;today. Sorting through the data was fun, loads of wget, bash scripts&#xA;to cut, awk, grep and process, python to mix and match, some php to&#xA;whip out a interface, and sweet little mysql db to store it all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Don&#39;t Steal My Laptop</title>
      <link>https://www.janitha.com/articles/dont-steal-my-laptop/</link>
      <pubDate>Wed, 22 Oct 2008 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/dont-steal-my-laptop/</guid>
      <description>&lt;p&gt;So lately I&amp;rsquo;ve been hanging out a lot at Coffee Station and on campus&#xA;using my Laptop. Doing this, one of the biggest annoyances I had was&#xA;whenever I had to leave the area to get a coffee or something, I risk&#xA;leaving the Laptop unattended. Using a cable lock every time was&#xA;annoying, so instead I wrote a anti theft alarm script that utilizes&#xA;the Laptop&amp;rsquo;s built in accelerometer. Originally it&amp;rsquo;s meant to be used&#xA;for the HDAPS, or Hard Disk Active Protection System, to detect shock&#xA;and prevent data corruption, but I will be using it for a different&#xA;purpose. Here is a &lt;a href=&#34;http://www.youtube.com/watch?v=NgnV1lDRO6I&#34;&gt;demo video&lt;/a&gt;&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Facebook Face Extractor</title>
      <link>https://www.janitha.com/articles/facebook-face-extractor/</link>
      <pubDate>Thu, 18 Sep 2008 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/facebook-face-extractor/</guid>
      <description>&lt;p&gt;A few days ago I was messing around with some face detection libraries&#xA;when an idea hit me, what better place to look for faces than&#xA;Facebook! After a few hours and a copious amounts of coffee, I started&#xA;piling one idea after other until I ended with a rather interesting&#xA;combination of technologies and data sources.&lt;/p&gt;&#xA;&lt;p&gt;Before I explain any further, please step back for a second and&#xA;appreciate the insanity of information stored along with pictures&#xA;uploaded to Facebook. Not only are the images stored on Facebook&amp;rsquo;s&#xA;servers, but they are also tagged with who ever is in the image,&#xA;including their name and the xy coordinates of that person&amp;rsquo;s face on&#xA;the image.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Photo Organization</title>
      <link>https://www.janitha.com/articles/photo-organization/</link>
      <pubDate>Sat, 10 May 2008 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/photo-organization/</guid>
      <description>&lt;p&gt;When I finally have a need and I am looking for a tool/system to&#xA;accomplish that task, I tend to be extremely picky and very demanding&#xA;of certain features. This happened when I finally made up my mind to&#xA;consolidate all my photo&amp;rsquo;s in to one central system and organize&#xA;them. Pictures started coming out the woodwork, now I have a jumble of&#xA;hundreds of folders with thousands of pictures.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Port Multiplexer</title>
      <link>https://www.janitha.com/articles/port-multiplexer/</link>
      <pubDate>Fri, 15 Feb 2008 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/port-multiplexer/</guid>
      <description>&lt;p&gt;The other day I was trying to figure out how much I can do with&#xA;accessing only one port without tripping IDS before that&#xA;machine. Hiding a service or two services in one port. Lets take an&#xA;example, it would make more sense.&lt;/p&gt;&#xA;&lt;p&gt;You have a server with only port 80 open. How can I rig the server so&#xA;it would continue to serve web data as normal on port 80 to regular&#xA;clients, but at the same time allow special access or services through&#xA;the same port&lt;/p&gt;</description>
    </item>
    <item>
      <title>WRT350N External Serial</title>
      <link>https://www.janitha.com/articles/wrt350n-external-serial/</link>
      <pubDate>Fri, 07 Dec 2007 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/wrt350n-external-serial/</guid>
      <description>&lt;p&gt;I got my hands on a bricked WRT350N router was trying different magic&#xA;trying to flash a new firmware and get it working. I was trying to&#xA;connect it to a serial console when I realized that on the WAN port in&#xA;the back, on the opposite side of the RJ-45 jack there were 4&#xA;pins&amp;hellip; named UR1 UR2 UR3 UR3&amp;hellip; that got me thinking, could those be&#xA;for a serial connection Linksys started including in their new&#xA;routers??&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sort the Unsortable: Pictures</title>
      <link>https://www.janitha.com/articles/sort-the-unsortable-pictures/</link>
      <pubDate>Tue, 02 Oct 2007 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/sort-the-unsortable-pictures/</guid>
      <description>&lt;p&gt;Sometimes it&amp;rsquo;s necessary to sort sets of data based on metrics that&#xA;are not usually recognized by a computer such as artistic quality of a&#xA;picture. For example you can sort a set of numbers in increasing or&#xA;decreasing order easily because each element in the set is comparable&#xA;with another in a manner the computer can understand. For&#xA;example&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;Given set:&#xA;5 6 4 7 3 8 2 9 1&#xA;&#xA;Sorted by increasing order&#xA;1 2 3 4 5 6 7 8 9&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;This is possible for a computer to do automatically because it can&#xA;compare two elements and say which one is greater (4 is greater than&#xA;2).&lt;/p&gt;</description>
    </item>
    <item>
      <title>SMS and Command Line Fun</title>
      <link>https://www.janitha.com/articles/sms-and-command-line-fun/</link>
      <pubDate>Sat, 02 Jun 2007 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/sms-and-command-line-fun/</guid>
      <description>&lt;p&gt;Almost all cellphones and carriers support SMS&amp;rsquo;s now, and sms bundles&#xA;of hundreds or unlimited plans are really cheap. One spiffy feature&#xA;that most major carriers provide is email to SMS relaying. Below are&#xA;some of the major carriers relaying addresses.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;Alltel&#xA;1234567890@message.alltel.com&#xA;&#xA;AT&amp;amp;T Wireless / Cingular&#xA;1234567890@mmode.com&#xA;&#xA;Boost Mobile&#xA;1234567890@myboostmobile.com&#xA;&#xA;Cingular&#xA;1234567890@mobile.mycingular.com&#xA;1234567890@cingularme.com&#xA;&#xA;Nextel&#xA;1234567890@messaging.nextel.com&#xA;&#xA;Sprint PCS&#xA;1234567890@messaging.sprintpcs.com&#xA;&#xA;T-Mobile&#xA;1234567890@tmomail.net&#xA;&#xA;Verizon&#xA;1234567890@vtext.com&#xA;&#xA;Virgin&#xA;1234567890@vmobl.com&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;So if you want to send a SMS, send a email to the above email&#xA;format. The from and the subject fields will be added to the message&#xA;body. Check with your carrier about how long a message can be, usually&#xA;it&amp;rsquo;s 160 characters (including the from, subject and body&#xA;together). Now let&amp;rsquo;s make things fun.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Improve on Microwave Ovens</title>
      <link>https://www.janitha.com/articles/improve-on-microwave-ovens/</link>
      <pubDate>Thu, 19 Apr 2007 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/improve-on-microwave-ovens/</guid>
      <description>&lt;p&gt;I wondered a few days ago why I need to press a few buttons to set the&#xA;time and start the microwave oven every time I put something in it. If&#xA;I put something in the microwave, majority of the time it&amp;rsquo;s to either&#xA;cook it or to defrost it. Instead I would much prefer if the only&#xA;thing I had to do was to put something in the microwave and press only&#xA;a single button to start or confirm the microwave&amp;rsquo;s guess on what I&#xA;want to do. It&amp;rsquo;s not black magic, and can be implemented very&#xA;simply. Below is how my ideal (dream) microwave oven should work.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RIP A7M266-D</title>
      <link>https://www.janitha.com/articles/rip-a7m266-d/</link>
      <pubDate>Sun, 18 Mar 2007 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/rip-a7m266-d/</guid>
      <description>&lt;p&gt;Rest In Peace A7M266-D (March 2003 - March 2007). No&amp;hellip; it&amp;rsquo;s not a&#xA;person, but it&amp;rsquo;s my motherboard that served me well for 4 straight&#xA;years in my main server along with two Athlon 2000 MPs. When I say&#xA;straight years, I mean it was chugging numbers, rendering random stuff&#xA;or juggling files non stop except when I was moving it around or&#xA;during hardware upgrades. Not to mention how much traveling it had&#xA;done with me around the country for countless number of competitions&#xA;and LAN parties.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pale Blue Dot</title>
      <link>https://www.janitha.com/articles/pale-blue-dot/</link>
      <pubDate>Thu, 07 Dec 2006 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/pale-blue-dot/</guid>
      <description>&lt;p&gt;Carl Sagan is the man. Below is one of his most popular and insightful&#xA;quotations I have ever come across, and it manages to break my mind&#xA;every time I read it.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;PaleBlueDot1.jpg&#34; alt=&#34;Pale Blue Dot&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This was a response by Sagan regarding the above photograph &lt;em&gt;Voyager&#xA;1&lt;/em&gt; sent back, which includes our home, Earth.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;We succeeded in taking that picture [from deep space], and if you look&#xA;at it, you see a dot. That&amp;rsquo;s here. That&amp;rsquo;s home. That&amp;rsquo;s us. On it&#xA;everyone you love, everyone you know, everyone you ever heard of,&#xA;every human being who ever was, lived out their lives. The aggregate&#xA;of our joy and suffering, thousands of confident religions,&#xA;ideologies, and economic doctrines, every hunter and forager, every&#xA;hero and coward, every creator and destroyer of civilization, every&#xA;king and peasant, every young couple in love, every mother and father,&#xA;hopeful child, inventor and explorer, every teacher of morals, every&#xA;corrupt politician, every &amp;ldquo;superstar,&amp;rdquo; every &amp;ldquo;supreme leader,&amp;rdquo; every&#xA;saint and sinner in the history of our species lived there on a mote&#xA;of dust suspended in a sunbeam.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Broken Spam</title>
      <link>https://www.janitha.com/articles/broken-spam/</link>
      <pubDate>Mon, 23 Oct 2006 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/broken-spam/</guid>
      <description>&lt;p&gt;Getting Spam these days is normal, even with several spam filters, but&#xA;what&amp;rsquo;s interesting is when the spammer&amp;rsquo;s automated scripts are&#xA;malfunctioning. Take this for example, I had a couple of these sitting&#xA;in my inbox today.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Dear member,&lt;/p&gt;&#xA;&lt;p&gt;{SPUR_1}&lt;/p&gt;&#xA;&lt;p&gt;{SPUR_3}&lt;/p&gt;&#xA;&lt;p&gt;{SPUR_4}&lt;/p&gt;&#xA;&lt;p&gt;You may find what you need here: {SPUR_DOMAIN}&#xA;Just check yourself!&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Seems like what ever scripts they are using were suppose to replace&#xA;{SPUR_1} and other variables with random or targeted data. Sucks to be&#xA;that spammer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The LED Fan</title>
      <link>https://www.janitha.com/articles/the-led-fan/</link>
      <pubDate>Sat, 09 Sep 2006 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/the-led-fan/</guid>
      <description>&lt;p&gt;I noticed how boring my ceiling fan was just a few minutes ago. So I&#xA;decided to do a small modification to it to make it a little more&#xA;interesting.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;fan1.jpg&#34; alt=&#34;Fan&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;fan2.jpg&#34; alt=&#34;Fan&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I had 60 extra LEDs sitting around (excess from my LED Projector&#xA;project), so I took 4 of those, a cell phone battery, 4 resistors,&#xA;some wire and ductape (most important of them all). I had run out of&#xA;solder, so all the connections were made horribly by twisting the&#xA;wires. Ductape everything on the fan wings, put the battery as close&#xA;to the axis of rotation of the fan as possible (since you don&amp;rsquo;t want&#xA;the fan moving around because of balance issues).&lt;/p&gt;</description>
    </item>
    <item>
      <title>DIY LED Projector</title>
      <link>https://www.janitha.com/articles/diy-led-projector/</link>
      <pubDate>Wed, 12 Jul 2006 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/diy-led-projector/</guid>
      <description>&lt;p&gt;There have been lots of activity going on in the DIY Projector scene,&#xA;specially using a design involving a 15&amp;quot; LCD panel, two&#xA;&lt;a href=&#34;http://www.3dlens.com&#34;&gt;fresnel lenses&lt;/a&gt;, a projection lens and the&#xA;metal halide light sources. This design can be built for less than&#xA;$500 easily using all new components to project a bright and very high&#xA;quality image.&lt;/p&gt;&#xA;&lt;p&gt;Last year I had helped a few people in constructing DIY Projectors&#xA;based on the said design, but I observed a few features that I found&#xA;annoying. Most of these problems were due to the metal halide lamp, or&#xA;any type of lamp that dissipates lot of heat. These types of lamps&#xA;became very popular because they were economical, bright, have a good&#xA;color output and easy to find. Heat was a problem because most LCD&#xA;panels would not operate properly above 110F , so fans were needed to&#xA;cool the projector. The fans in return also creates a problem of their&#xA;own, sound.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Emacs OS</title>
      <link>https://www.janitha.com/articles/emacs-os/</link>
      <pubDate>Fri, 10 Feb 2006 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/emacs-os/</guid>
      <description>&lt;p&gt;The more I use emacs, the more fascinating it becomes. When one starts&#xA;exploring the deep end stuff of emacs, they start to realize that&#xA;emacs isn&amp;rsquo;t a text editor after all; it&amp;rsquo;s more like a virtual&#xA;operating system, or a regular text editor on every drug known to&#xA;date. A while back I read in the O&amp;rsquo;Reilly book on how to bypass init&#xA;and start a process such as bash instead. This was mainly used when&#xA;one wanted root access to their system but without knowing the&#xA;password.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Flight Fuel Dump</title>
      <link>https://www.janitha.com/articles/flight-fuel-dump/</link>
      <pubDate>Thu, 02 Feb 2006 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/flight-fuel-dump/</guid>
      <description>&lt;p&gt;When you get on a trans pacific flight, you would expect everything to&#xA;go smooth. But that didn&amp;rsquo;t work out so well for me. Just a few moments&#xA;after the take off from Detroit, I look out my window to see&#xA;something weird.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;fueldump1.th.jpg&#34; alt=&#34;Dumping fuel&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;I didn&amp;rsquo;t know wings were suppose to do that, and I fly somewhat&#xA;regularly. Then to take off my headphones and hear the announcement&#xA;that there is a &amp;ldquo;medical&amp;rdquo; emergency and that the flight will be&#xA;landing as soon as the fuel has been dumped out and some other things,&#xA;and I don&amp;rsquo;t really think much of it, some dude probably had a heart&#xA;attack. The reason for the fuel dump was that the flight was too heavy&#xA;to land with that much fuel. So the flight that was suppose to fly&#xA;longer than half a day is now cut down to 2 hours, great. And so we&#xA;land.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Raw IRC</title>
      <link>https://www.janitha.com/articles/raw-irc/</link>
      <pubDate>Mon, 28 Nov 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/raw-irc/</guid>
      <description>&lt;p&gt;Someone mentioned to me that they don&amp;rsquo;t have a irc client today. This&#xA;is no excuse, so of course I thought I will write a article on how to&#xA;connect to a IRC channel through raw connection. For this example I am&#xA;using netcat (nc) but you can also use telnet or similar.&lt;/p&gt;&#xA;&lt;p&gt;First thing to do is to Connect. For example sake, I am using&#xA;irc.freenode.org using port 6667.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Animated Xscreensaver Backgrounds</title>
      <link>https://www.janitha.com/articles/animated-xscreensaver-backgrounds/</link>
      <pubDate>Thu, 22 Sep 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/animated-xscreensaver-backgrounds/</guid>
      <description>&lt;p&gt;It turns out &lt;a href=&#34;http://www.jwz.org/xscreensaver/&#34;&gt;Xscreensaver&lt;/a&gt; can do&#xA;much more than just act as a screen saver. All the different screen&#xA;savers are actually separate applications. All of these can act as&#xA;your desktop as well. First navigate into your folder where you can&#xA;find all the screen savers. If you don&amp;rsquo;t know where do&#xA;this.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;# whereis xscreensaver&#xA;xscreensaver: /usr/bin/xscreensaver /usr/libexec/xscreensaver /usr/share/xscreensaver /usr/share/man/man1/xscreensaver.1.gz&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Its going to be in one of the results, in my specific distribution&#xA;their in /usr/libexec/xscreensaver. Once you navigate into that,&#xA;simply run your screensaver with the -root&#xA;switch.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Google IM and Jabber</title>
      <link>https://www.janitha.com/articles/google-im-and-jabber/</link>
      <pubDate>Sat, 23 Jul 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/google-im-and-jabber/</guid>
      <description>&lt;p&gt;It seems &lt;a href=&#34;http://it.slashdot.org/it/05/08/23/2316223.shtml&#34;&gt;slashdot&lt;/a&gt;&#xA;along with multiple&#xA;&lt;a href=&#34;http://news.com.com/Will+Google+say+hello+to+IM/2100-1032_3-5412359.html&#34;&gt;other&lt;/a&gt;&#xA;&lt;a href=&#34;http://www.nytimes.com/2005/08/22/technology/22google.html&#34;&gt;sources&lt;/a&gt;&#xA;are reporting the working of google&amp;rsquo;s Instant Messenger service dubbed&#xA;&amp;ldquo;Google IM&amp;rdquo; based off talk.google.com, which is suppose to use the&#xA;open source IM protocol &lt;a href=&#34;http://www.jabber.org/&#34;&gt;Jabber&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I really hope this will boost the Jabber&amp;rsquo;s popularity, and personally&#xA;I am forced to use aim now because everyone else uses aim around me,&#xA;but in a few months I will be dumping aim completely and hopefully&#xA;everyone else will too. Also if you have your own webserver, set up a&#xA;jabber server or obtain a webservice which already has jabber set up&#xA;for you so you can have your own @yourdomain.com jabber address which&#xA;might be desirable than say @gmail.com or @jabber.org or other jabber&#xA;services.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CGI C&#43;&#43; Helper</title>
      <link>https://www.janitha.com/articles/cgi-cpp-helper/</link>
      <pubDate>Wed, 20 Jul 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/cgi-cpp-helper/</guid>
      <description>&lt;p&gt;After starting on the Automatic Scheduler application, I have realized&#xA;there there are no simple program (there are big &amp;amp; bloated ones&amp;hellip;) to&#xA;enable me to develop C++ applications to run specifically as CGI&#xA;applications which does small annoying tasks such as extracting usable&#xA;data from the POST form data. So I am developing a CGI C++ helper&#xA;library, a very simple but complete library to help anyone rapidly&#xA;build C++ applications specially to run under a CGI environment. This&#xA;would include but not limited to, interpretation of the POST form&#xA;data, outputting special content-type and other header related&#xA;information, as well as implementation of what I like to call &lt;em&gt;cgiout&lt;/em&gt;&#xA;which would exactly as cout, except would automatically interpret&#xA;&lt;em&gt;endl&amp;lt;&lt;/em&gt; and &lt;em&gt;/n&lt;/em&gt; as &lt;em&gt;br&lt;/em&gt; so in HTML it would be the next line.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ascii Art, Xine, and SSH</title>
      <link>https://www.janitha.com/articles/ascii-art-xine-and-ssh/</link>
      <pubDate>Thu, 07 Jul 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/ascii-art-xine-and-ssh/</guid>
      <description>&lt;p&gt;When you mix these three things, aa xine and ssh, you get the most&#xA;pointless result ever, the ability to watch movies stored in your&#xA;computer over a ssh connection in ascii art remotely. Better yet in a&#xA;secure fashion.&lt;/p&gt;&#xA;&lt;p&gt;You need a few things, xine first of all along&#xA;with aa (ascii art library), and of course a ssh daemon&#xA;(optional). Now compile these up, install them, do what ever else you&#xA;have to do, just get them working (google up aaxine for more&#xA;documentation). Time to test it. Go someplace, and ssh into your&#xA;computer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sound of Data</title>
      <link>https://www.janitha.com/articles/sound-of-data/</link>
      <pubDate>Sat, 25 Jun 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/sound-of-data/</guid>
      <description>&lt;p&gt;Ever wonder what all the data in your hard drive sounds like? Or&#xA;simply want to kill the silence in your server room? Simple, just&#xA;direct devices into the audio device and listen to the sweet beautiful&#xA;sound of your data (or other device). Reminds me of the good old days&#xA;of 56k dialup. The more cluttered the data in your drive is, the more&#xA;interesting the sound is. As root issue the following&#xA;commands.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Un-Progress</title>
      <link>https://www.janitha.com/articles/un-progress/</link>
      <pubDate>Tue, 21 Jun 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/un-progress/</guid>
      <description>&lt;p&gt;It seems that I have under estimated the amount of time required by&#xA;these 5 week summer sources I am taking, which are squeezing in 15&#xA;weeks worth of information, a 3:1 compression ratio. This has crippled&#xA;most of my projects I had in mind for the summer, including this site&#xA;which is quite poorly being updated recently. The custom case design&#xA;mod I had in mind for almost 2 years will stay one more year stuck in&#xA;my head, adding more and more ideas (it seems it will never be done&#xA;though). I doubted I will ever come around to the tesla or the gauss&#xA;rifle projects, but they are definitely out of the scope for this&#xA;summer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fun with Cold</title>
      <link>https://www.janitha.com/articles/fun-with-cold/</link>
      <pubDate>Sat, 04 Jun 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/fun-with-cold/</guid>
      <description>&lt;p&gt;Low temperatures and things that cause items to drop their temperature&#xA;dramatically fascinates me, or simply process of taking away lots of&#xA;heat energy from random items around is quite fun. And one of the&#xA;easiest ways to do this is by letting something evaporate fast taking&#xA;away heat from around it, and normal gases in the liquid state do this&#xA;really well. Liquid Nitrogen is quite fun because of this, better yet&#xA;the cost to fun ratio is also good, but sadly its hard to get a hold&#xA;of (suppliers get real suspicious when a college students ask for&#xA;some). Well not to worry, there is an alternative. Just like its hard&#xA;to come by radioactive material but you can get small amounts (~5&#xA;microCuries of Americium 241) from your ordinary smoke&#xA;detectors. Less than great, but better than noting.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RFID in Clothing</title>
      <link>https://www.janitha.com/articles/rfid-in-clothing/</link>
      <pubDate>Thu, 02 Jun 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/rfid-in-clothing/</guid>
      <description>&lt;p&gt;Washing cloths to be me is quite possibly the most boring and time&#xA;consuming thing, and making this process faster is and optimal is on&#xA;the top of my list. I hate shopping for cloths, so I expect the few&#xA;cloths I do have (in which most are free from Lan Parties and other&#xA;events) not to fade away and go to shit, so I take the daunting task&#xA;of really reading what the stupid label says for each item. Then I&#xA;thought, wouldn&amp;rsquo;t it be nice if my washing machine can automatically&#xA;select which ones need hot, and which are cold, separation of color&#xA;and whites, and which shouldn&amp;rsquo;t be washed? The washing machine already&#xA;selects the amount of water required and the detergent according to&#xA;load it detects from weight, and also from density along with some&#xA;other factors (how much they stink?). Then RFID&amp;rsquo;s came to my mind.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dry Ice Cannon</title>
      <link>https://www.janitha.com/articles/dry-ice-cannon/</link>
      <pubDate>Mon, 16 May 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/dry-ice-cannon/</guid>
      <description>&lt;p&gt;Much improvements were done to the dry ice cannon in the past few&#xA;days. Old version 1.0 is below.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;dryicecannonv1_thumb.jpg&#34; alt=&#34;Dry ice cannon&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;As you can the only mechanism implemented on this was a simple one way&#xA;valve to put in compressed air, and on one side a screw in cap which&#xA;which was put in place to drop the dry ice from. But then we realized&#xA;that the screw in cap was very leaky. After insane amounts of sealant&#xA;that leak was fixed, but this rendered the cap pretty useless making&#xA;it only work by compressed air, which was no fun.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My 2am 0.066 Joule coil gun</title>
      <link>https://www.janitha.com/articles/2am-coil-gun/</link>
      <pubDate>Sat, 07 May 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/2am-coil-gun/</guid>
      <description>&lt;p&gt;Below is how I made a &lt;em&gt;Asynchronous linear induction motor&lt;/em&gt; which is&#xA;also known as a &lt;em&gt;gauss rifle&lt;/em&gt; or simply a &lt;em&gt;coil gun&lt;/em&gt; at 2am in 15&#xA;minutes.&lt;/p&gt;&#xA;&lt;p&gt;After beating the crap out of an old polaroid camera I picked up a few&#xA;weeks back from a garage sale for $1, I noticed a few really&#xA;interesting components. A somewhat large capacitor (409uF 350v), and a&#xA;solenoid (1cm long one, very small) used in opening and closing the&#xA;aperture of the camera very fast. So I did have a plan on building a&#xA;multi stage coil gun later on in the summer, but then I decided to use&#xA;this for now, since it was 2am and I was sick of studying for finals&#xA;needed to do something for a break. Quickly whipping out two 9V&#xA;batteries (all I had) in series, and connecting them to the&#xA;capacitor. Then ran two wires from capacitor ends and and connected&#xA;one to the solenoid. I found a nice metal piece that fit perfectly&#xA;into the solenoid, which I will use as the projectile (half diameter&#xA;of a pencil, 1.5cm long, iron/steel substance, works well with&#xA;magnets).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quest for the Perfect Window Manager</title>
      <link>https://www.janitha.com/articles/quest-for-the-perfect-window-manager/</link>
      <pubDate>Thu, 28 Apr 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/quest-for-the-perfect-window-manager/</guid>
      <description>&lt;p&gt;It seems that I have finally come to a decision about the perfect&#xA;Window Manager (at least for me), and that is just simply vanilla&#xA;enlightenment. I am not sure what else to ask for, I have tried&#xA;fluxbox, blackbox, windowmanager, along with several more. Some had&#xA;nice features, like the fluxbox/black box with the extremly&#xA;minimalistic, but it was too minimalistic. enlightenment doesn&amp;rsquo;t offer&#xA;much, maybe hog up just a tiny bit more memory than others, but it&#xA;working right out of the box has greatly pleased me. This along with&#xA;gkrellm, and some simple editing of the menu&amp;rsquo;s, I am set. Below are&#xA;some screen shots of the chosen one.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Basket Case</title>
      <link>https://www.janitha.com/articles/a-basket-case/</link>
      <pubDate>Fri, 08 Apr 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/a-basket-case/</guid>
      <description>&lt;p&gt;This was done about a year ago, when I was too lazy to carry my whole&#xA;computer to some event due to its size and unease of carrying. When&#xA;such situation comes up, one starts to think of ways to reduce the&#xA;weight. The problem with it was the steel computer case, which&#xA;accounted for about 80% of the total mass, which was no fun. Then it&#xA;hit me, what I needed was to somehow rip the guts out of my computer,&#xA;and transport just that. Another problem, circuits are exposed in the&#xA;motherboard, so if a metal part such as a power supply unit touches&#xA;the circuit boards when in use, bad things start to happen. When I&#xA;walked into my closet, I noticed the laundry basket, and got me&#xA;thinking. This resulted in the following.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Its Alive</title>
      <link>https://www.janitha.com/articles/its-alive/</link>
      <pubDate>Wed, 06 Apr 2005 00:00:00 +0000</pubDate>
      <guid>https://www.janitha.com/articles/its-alive/</guid>
      <description>&lt;p&gt;As you can see, I have finally set up and organized a website. A&#xA;proper one. I had one before, but the only thing it said was &amp;ldquo;under&#xA;construction&amp;rdquo;. Expect to find ideas and projects I am currently&#xA;working on, and other interesting things. This will not be a site&#xA;where I come to whine about my daily events and &amp;lsquo;vent&amp;rsquo; into the world,&#xA;as most people would use a blog for.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
