Archive

Archive for March, 2009

Translate software using Google

March 31st, 2009 Senko 3 comments

googtext

Automatic statistical translation tools like Google Translate are getting better and better. They still often produce nonsensical and grammatically incorrect translations (depending on available language corpus, I guess), but the translations can be used to understand the crux of the text.

So, what happens if we try to apply these tools to translating software (in specific, translating gettext potfiles, which is the most widespread way of providing i18n in free software I know of)? Might be good, might be bad, and it will probably be hilarious ;-)

So, that’s my new pet project, googtext, does. It’s a small wrapper around Google AJAX Language API that allows users to upload their potfiles, extracts the message ids, passes them through the language api, and saves the resulting message to a new potfile the user gets to download.

Translations generated by googtext should certainly be redacted by a real person, but I think it’s sometimes easier to improve upon a bad translation than start from scratch (depending on the situation), so this might have some use (or just might be funny :) So, try it and let me know what you think in the comments.

The entire code for this is in the public domain, so if you want to play with the code, you can download it here. Since I couldn’t find any python module for Language API, I’ve made a thin wrapper myself (gtranslate module). There’s also the googtext utility itself (commandline), and the accompanying PHP upload script and HTML pages.

Have fun!

Categories: English Tags:

Želite promovirati slobodni softver?

March 22nd, 2009 Senko 1 comment

Waterfall CC-BY-NC Jeffy Can

Ukoliko ste ljubitelj slobodnog softvera (neki bi rekli zagriženi Linuksaš iako softver o kojem se priča ne mora biti vezan s Linuxom), vjerojatno ste bar koji put pokušali (a možda i uspjeli) “konvertirati” nekog, objasniti im sve pozitivne strane slobodnog softvera i pokazati odlične (naravno, vama, različiti ljudi imaju različita mišljenja) programe koje mogu koristiti i mijenjati do milje volje.

Ta, ukoliko vama korištenje slobodnog softvera ima pozitivan učinak, zašto dobre stvari ne podijeliti s drugima, pogotovo ako pritom to vas ništa ne košta? A možda usput i pomažete promociji projekta koji koristite te vam je drago da na taj način i vi možete nešto pridonijeti samom projektu.

E, pa, osim ukoliko ste medijska zvijezda, političar ili crkveni poglavar (pa vam ljudi po defaultu vjeruju), postoji mnogo bolji način da pomognete slobodnom softveru.

Jednostavno - malo manje priče, malo više akcije. Umjesto da slijedeći put susjedu instalirate Linux i na kavi mu dokazujete koliko je OpenOffice.org bolji od M$ Officea (i u najboljem slučaju dobijete jednog preobraćenog), potrošite istu količinu vremena i istu količinu truda pomažući u povećanju kvalitete projekta do kojeg vam je stalo (i u najboljem slučaju pomognete velikom broju ljudi, a možda se netko odluči koristiti taj softver upravo zbog stvari koju ste vi napravili ili popravili).

Kako? Uzmite u obzir slijedeću kontradikciju:

  • Programeri slobodnog softvera obično se drže one “scratch my own itch”.
  • Pravilo izrade softvera za krajnjeg korisnika je “you are not your users”.

Odnosno, developer-hobist koji iz svojeg gušta radi nešto za sebe gotovo nikad neće napraviti točno ono što bi trebalo prosječnom korisniku. Zašto i bi, ako niti ne zna za potrebe prosječnog korisnika (što on nije po defaultu, jer je programer), ili mu rješavanje tih potreba nije pretjerano zanimljivo, zabavno ili svrsishodno.

Drugim riječima, hrpa programera slobodnog softvera prepuštenih samih sebi napravit će sustav koji će biti savršeno smislen, jednostavan, elegantan i koristan - njima (cf. CLI, Emacs te većina GNU projekta).

Jedan način rješavanja gornje kontradikcije između razvijatelja projekta i krajnjih korisnika je da netko plati programere da naprave stvari koje inače ne bi željeli, a koje su bitne kako bi cijela stvar bila korisna krajnjem korisniku. Ovo je princip na koji se baziraju svi open-source poslovni modeli: da open source “ispod čekića” dolazi spreman za krajnjeg korisnika, zasnivanje biznisa na open-sourceu ne bi imalo smisla.

Drugi način je da se u projektu osim razvijatelja aktivno uključe i krajnji korisnici - odnosno, vi. Za to ne morate znati programirati, ne morate biti stručnjak za računala, niti imati specijalne talente (npr. crtanje ili glazba za vizualne / audio teme). Ne morate čak ništa specijalno instalirati na računalo. Trebate samo svoj stav iz pasivnog korisnika pretvoriti u aktivnu stranu koja može pridonijeti u razvoju projekta.

Kako? Evo recepta:

  • Kada naiđete na grešku u bilo kojem programu koji koristite, nemojte frustrirano dizati ruke od problema, nego pokušajte prikupiti što više informacija (verzija softvera i sustava, debug output, točni koraci kako reproducirati problem, i slično) i prijavite problem na bug tracker. Prije prijave provjerite je li već netko drugi imao isti problem - ukoliko je, komentirajte i dajte informacije koje ste i vi prikupili! Programerima nikad dovoljno informacija. Ukoliko ste prvi s takvim problemom, prijavite bug, i budite aktivni ukoliko vas programeri zamole za pojašnjenje ili dopunu informacija. To iziskuje nešto više truda, ali je najbolji način da pomognete sebi i developerima.
  • Ukoliko program vizualno ne valja (ružan, nekonzistentan, zbrkan, teško se snaći i slično), to je bug, prijavite ga. Pritom razdvojite osobne preference (što bi se vama najviše sviđalo) i realne, konkretne razloge zbog kojih nešto nije dobro te ih nastojte objektivno predočiti. Budite konstruktivni i ne započinjte flamewarove.
  • Ukoliko imate ideju za feature ili cijeli program, razradite je i podijelite s ostatkom svijeta (primjer je blueprints na kojima ima svega, od wishlista, do vrlo razrađenih ideja za korisne projekte). Nemojte očekivati da će svi skočiti da ostvare vašu viziju, ali veća je šansa da će se netko prihvatiti dobre ideje, nego da će je baš on smisliti. Uostalom, moguće je da si već i developeri razmišljaju o nečem sličnom, i treba im moralni poticaj da se toga prime.
  • Ukoliko volite koristiti softver na hrvatskom, a vaš omiljeni program nije, ili je nepotpuno ili loše preveden, prevedite ga (ili dio), ili ispravite greške u prijevodu.
  • Pomažite drugim korisnicima (newbijima) svojim iskustvom u korištenju projekta, na IRC-u, mailing listama, forumima i slično. To ne znači da “visite” tamo cijelo vrijeme i manijakalno skupljate karmu pomažući svakome - jednostavno budite prisutni, ako vam za oko zapne zanimljiv problem - pomozite.
  • Ako ste se namučili da nađete neku informaciju ili riješite neki svoj problem, nađite FAQ, Wiki ili stranicu gdje to možete objaviti i postajte tamo. Slijedeći korisnik koji će tražiti tu informaciju će vam biti zahvalan.
  • U načelu: tretirajte zajednicu slobodnog softvera kao globalno selo i budite u dobrosusjedskim odnosima sa svima. Ne očekujte da vama netko bude sluga i brine se za vaše potrebe, ne budite vi drugima sluga, ali si međusobno pomažite u sitnicama kao što to dobri susjedi i čine. I budite pristojni prema onima koji ne dijele vaše mišljenje.

Ove stvari možda zvuče preočito i ne baš previše vezane uz promociju softvera. Ali najbolja promocija je kvaliteta. Korisnik koji počne koristiti neki proizvod zato što je kvalitetan je sretniji korisnik nego onaj koji je bio nagovoren ili prisiljen. Pomažući sebi pomažete drugima i pomažete širenju slobodnog softvera.

PPS. Mojim čitateljima koji se preferiraju držati profitabilne strane softvera - te dvije strane uopće nisu nespojive, dapače oko slobodnog softvera se mogu složiti konkretni i profitabilni. poslovni modeli. Više o tome nadam se uskoro…

Categories: Croatian Tags:

Empathy, Telepathy, Farsight, … ?

March 11th, 2009 Senko No comments

In the Telepathy stack there are a lot of components, so often it gets very confusing for people hearing about it for the first time. So, here’s a very basic breakdown:

Telepathy
A framework for doing IM and VOIP. Supports Jabber/GTalk, SIP, IRC, MSN, ICQ,… (not all of those support VOIP at the moment). It has no UI and the end user doesn’t really need to be concerned about it.
Empathy
A IM/VOIP client for GNOME that is using the Telepathy framework.
Farsight
An extension to GStreamer that supports VOIP. (Farsight devs, mea culpa for this dumbing down so much). Farsight is used by Telepathy for actually moving around audio and video in calls.

That’s it. Easy, no? :-)

Categories: English Tags: