Monday, August 30, 2010

Google Translate in Ghana (Ewe Chronicles)

I couldn't attend day 2 of the Google Ghana translation exercises due to a meeting I had to attend elsewhere (Yes on a Sunday, what is your problem? my work is that tedious sometimes) so back to what I was saying;
My brother attended and from his report this is what my other comments and conclusions are;
Its just interesting how these things are going on. to be honest Ghana isn't the only country with such problems am not certain of Nanjala's (The Google Kenya rep) comment when she said "The translation for each language usually takes two days, it took you all one day and its good work, Congratulations!" hmmmmm well very encouraging and I would have probably made the same comment when I needed people for day 2. hahahahahhahaha (ok cut out the jokes) to the point, lets just say its normal we could have been extra ordinary though, by getting the right people for the job. maybe am taking this whole thing seriously like it was the world cup heheheh lets just skip it. enough of it right? Ghana has successfully translated all the required text and data presented by Google in Ga and Ewe and its waiting for scrutiny and approval. Good Job!
And the Akans, Greaaat Job, You are good to go and you are already gone. Am proud. lets just not get controlled lets control. its not about what they want cos in the end they will give them back to us. lets set the rules, lets not follow them cos we have not set them yet.
All thesame about the translation, lets just be better next time.... Gambatte Ghana, Gambatte!!!

Saturday, August 28, 2010

Shell-Storm.org #WarGame

Yea I signed up for the shell-storm annual hacking thing and Oh My God! am still on level1 and I just thought I blog what am doing which is practically nothing! hahahhahahahaha

am here attempting to break throught the servers and pass level1 at least level 1. the usually way to do these things is by Buffer overflow; take this example for instance which I got from Ivan who is 2nd with 55000 points. the competition is 12 hours and he is done 10 rounds less than 2 hours WTH?
anyway here is the file; and please be mindful these things I blog here are for educational and professional purposes only, I do not expect you to use them for harm. should you do that I disclaim, denounce, disassociate, dishonor, dismount and dis...(etc) all negative events that may rise from it;
ENJOY;

Consider this code:

#include

int main(){
printf("I'm this cool right now: [%d]\n",0);
}

And the compiled binary:
student@csci4971:/tmp$ gcc -o a a.c
./a
student@csci4971:/tmp$ ./a
I'm this cool right now: [0]

Lets fire up gdb and patch that to something better than 0.

(gdb) disas main
Dump of assembler code for function main:
0x080483e4 : lea 0x4(%esp),%ecx
0x080483e8 : and $0xfffffff0,%esp
0x080483eb : pushl -0x4(%ecx)
0x080483ee : push %ebp
0x080483ef : mov %esp,%ebp
0x080483f1 : push %ecx
0x080483f2 : sub $0x14,%esp
0x080483f5 : movl $0x0,0x4(%esp)
0x080483fd : movl $0x80484e0,(%esp)
0x08048404 : call 0x804831c
0x08048409 : add $0x14,%esp
0x0804840c : pop %ecx
0x0804840d : pop %ebp
0x0804840e : lea -0x4(%ecx),%esp
0x08048411 : ret
End of assembler dump.
(gdb)

T
The printf call is here:

0x080483f5 : movl $0x0,0x4(%esp)
0x080483fd : movl $0x80484e0,(%esp)
0x08048404 : call 0x804831c

Two arguments are being pushed.
Argument 1 is:
(gdb) x/s 0x80484e0
0x80484e0: "I'm this cool right now: [%d]\n"

Argument 2 is: 0x0

The instruction that pushes the 0 is 8 bytes long (fd - f5)

0x80483f5 : 0xc7 0x44 0x24 0x04 0x00 0x00 0x00 0x00

The 0 happens to be the last 4 bytes. The exact format of your instruction
can be found in the instruction manuals. Or through trial and error, you'll
start to get a feel for it.

(gdb) break main
Breakpoint 1 at 0x80483f2
(gdb) r
Starting program: /tmp/a

Breakpoint 1, 0x080483f2 in main ()
(gdb) set *0x80483f9 = 0x00000539

Now the program is patched.

(gdb) disas main
Dump of assembler code for function main:
0x080483e4 : lea 0x4(%esp),%ecx
0x080483e8 : and $0xfffffff0,%esp
0x080483eb : pushl -0x4(%ecx)
0x080483ee : push %ebp
0x080483ef : mov %esp,%ebp
0x080483f1 : push %ecx
0x080483f2 : sub $0x14,%esp
0x080483f5 : movl $0x539,0x4(%esp)
0x080483fd : movl $0x80484e0,(%esp)
0x08048404 : call 0x804831c
0x08048409 : add $0x14,%esp
0x0804840c : pop %ecx
0x0804840d : pop %ebp
0x0804840e : lea -0x4(%ecx),%esp
0x08048411 : ret
End of assembler dump.
(gdb)


(gdb) c
Continuing.
I'm this cool right now: [1337]

Program exited with code 040.
(gdb)

well so that is it.
I already told you am on level 1 so don't expect me to do explanations for you. you should find out and lemme know instead of asking then what? (Sorry if you did not ask "Then what?" my bad) lol...

even if I don't get to level 10 (The Final stage) I would have known that I at least was in the competition... (My consolation)......

Google Translate in Ghana (Ga Chronicles)

Am currently at the Google translate workshop at Ashesi University in Labone Accra. its supposed to be a two day workshop day 1 covering Ga and day 2 Ewe both local languages of the Ghanaian Community.
So am in the first day of the workshop and its very interesting what am looking at here. I have always wanted to see how literate and illiterate people in terms of computing would behave when they have come together to do things. you know, like there is a project and the non technical people have ideas needed for the technical people to complete their tasks right. so here it is I have seen it and it did not take a travel over the seven seas. lol

Ok, to my experience; am seated here with another guy doing the translation thing, he is good at the language so we get a word or phrase together from the google translate console found here ggogle.com/transconsloe] and work it out. there is another man who has is supposed to be the language supervisor since he is good at the language. now here is the problem being faced here;
Words and phrases are being translated without the clear understanding and history of it and this is causing a lot of stir ups. its actually very simple. am not good in the Ga language though am a Ghanaian and just by working with this guy next to me I have realized a few interesting words and phrases some of which I never could have figured out in a million years if I was to meet it alive and kicking. :-D. The situation is this; words like windows, homepage, Home, etŋ all related to the web and computers and the suggestions being made are surprising. everyone seems to have a different definition of things related to ŋomputer which proves that they do not really understand computers and just as my first post on this particular blog stated; people know computers but don't understand it so such things become difficult. its very simple "Windows" as in the frames you see on your screen is defined as its name due to its relationship to the aŋtuall windows object. therefore translating such a word should maintain same meaning so in Ga it should be "Saŋflɛ" in this way its able to keep its shortness and direŋt meanings. Am a programmer and its very important when words are kept short, it makes the work easy and makes our users not skip "IMPORTANT INSTRUCTIONS"
My graŋe is that this very translation exercise does not end here. It goes all the way to whenever so I can always go back to change a few words. and then for the words that were not changed and were maintained with english names I ŋould also go baŋk to "independice" them like Dr. Nkrumah did to Ghana. :-D lol...

At the end of it all here is my official comment:
In next events such as this is, I suggest we get language speakers (professionals) who are related a bit to computers or something. else if we are gonna use people who aren't "Technically Inclined Enough" then we should adapt the idea of having the technical people give a clear definition of a phrase, word, sentence, blah blah blah before the language experts give a meaning to it. Take a word like "Spam" which simply means fat in meat (or similar) is used in place of junk mail. translating such a word we do not neccessarily need to translate it "AS Is" there has to be a bit of change in it so I will suggest a word familiar to "Something Unwanted" what we are looking for is short and meaningful words since am more of a fante speaker than ga I will give a suggestion for a Fante suggested word which is "Bozzi" meaning a "Fibroid" who wants a fibroid in their stomachs at anytime? well just as no one wants spams in their mail boxes.
Here is what we need to know, realize and understand; Google has given us the liberty to suggest what words to use in this database and for us to use in the end. we should use words that will make s happy not what will please them. its that simple. some of y'all after reading this may have your comments but thats what makes us different and I want to see how different you are so make it known down there as a comment. back to the case; we should define things as we want them not how others want them, we are setting the rules so lets set it right at the same time too. I love the Akan translation: Google Home -> Google Fiee, etc its just cool. lets do the same "Gas" lets do it! "Gambatte! Ja mata! (Japanese, now flexing my other language abilities) lol :D