OpenSuse 10.3 … impresii

May 31st, 2008 Alex

Competiţie …

Calculatorul de acasă, deşi este decent, a cam stat pe bară timp de vreo şase luni din diverse motive. Foloseam cu mândrie Ubuntu Linux, dar la fiecare versiune nouă apar probleme noi şi aventual se rezolvă dar ulterior vine iar timpul să upgradezi la o nouă versiune şi m-am săturat de upgrade-uri.

Plus că fiecare versiune nouă vine cu software extrem de experimental, în stadiu beta de multe ori, iar de vrei versiuni noi ale aplicaţiilor pe o distribuţie mai veche, poate ai noroc să apară în „backports”, dar de obicei nu apare deoarece cultura în comunitate favorizează upgrade-ul distribuţiei.

Nu mă înţelegeţi greşit, încă iubesc Ubuntu Linux, şi probabil problemele astea de management se vor corecta.

Însă m-au enervat problemele din ultima versiune (Hardy Heron), şi am hotărât că cel mai bine ar fi o mică schimbare de perspectivă. Este destul de dificil să accept prea multe dificultăţi în ultimul timp fiind răsfăţat de Mac OS X şi parcă nu mai am energia necesară să caut pe forumuri soluţii la sute de probleme de fiecare dată când vreau să mă apuc de treabă.

Am încercat să mă reîmprietenesc cu Windows, că nu poate fi dracul atât de negru :) , mai ales că am o licenţă de Vista Home Premium, dar trebuie să spun că este un eşec, şi am stat 2 ore să-mi dau seama de ce îmi merge hard-disk-ul în continuu fără pauze … şi deoarece procesul ce-mi ţinea hard-ul ocupat era mascat în Task Manager cu „svchost” am dezactivat pe rând servicii ca Windows Search, Shadow Copy, până când am ajuns la SuperFetch.

Total inacceptabil, deoarece nu numai că-mi pune calculatorul în genunchi (şi este un calculator decent, cu Intel Core 2 Duo şi 2 GB de Ram), dar nici nu se pun instrumente de management la dispoziţie pentru a căuta cauza problemei. Tipic pentru Microsoft … utilizatorii sunt idioţi şi n-au ce căuta să umble la astfel de setări.

OpenSuse 10.3

După ce am hotărât că şi o distribuţie stricată de Linux este mai bună decât Windows, mi-am venit în fire :) … şi am instalat OpenSuse 10.3, iar în loc de Gnome, am ales KDE.

Probleme la instalare

Nu a fost ca o plimbare în parc, deoarece am avut probleme cu placa de reţea wireless. Am un D-Link dwl g122 rev C1, ce merge pe ultima versiune de Ubuntu, dar nu merge din start pe OpenSuse. Deşi driverul este prezent, aparent nu are firmware, şi a trebuit să-l instalez din surse, fiind destul de complicat, dar am închis ochii deoarece vina este a producătorilor hardware când vine vorba de wireless.

Dar oricum, a fost greu, şi problema este că trebuie să păstrezi sursele la driver prin preajmă, că trebuie reinstalat de câte ori faci upgrade la kernel … „show-stopper” cum ar zice americanul, şi „ca p*la” cum aş zice eu.

Mai sunt probleme pentru noi, românii, deoarece fontul configurat implicit nu suportă diacritice româneşti, nici cu sedilă, nici cu virgulă (poate am sărit vreo etapă la instalare?). Şi mi-am configurat manual fontul la setul „DejaVu” ce suportă caracterele respective şi de care sunt extrem de mulţumit.

Managementul de pachete

Iniţial arhivele de pachete cu care vine configurat OpenSuse nu sunt suficiente, mai ales dacă vrei să instalezi codecuri audio/video sau aplicaţii mai exotice. Eu am reuşit să instalez noi arhive folosind opţiunile valabile din „Yast/Software/Community Repositories”. Dar există şi o pagină Wiki ce descrie mai multe arhive valabile.

În versiunile precedente lumea se plângea de calitatea proastă a package managerului implicit, Miguel de Icaza recomandând Smart. Versiunea 10.3 aparent are un nou manager pe nume „zypper”, şi pare destul de capabil deşi se mişcă mai greu ca apt-get din Ubuntu/Debian şi mă cam oftică.

În OpenSuse a mai fost introdus sistemul One Click Install în combinaţie cu serviciul de build care este pus la dispoziţie de Novell … şi poţi căuta pachete pe “packages.opensuse-community.org” pe care le poţi instala cu un click pe butonul de „Install” din browser. Şi mi-am instalat în acest fel Firefox 3 Beta.

Aplicaţii Proprietare

DVD-ul OpenSuse 10.3 vine cu Adobe Acrobat 8, cu Flash Player 9 şi cu Real Player. Şi este foarte util deoarece sunt întreţinute pe repository-ul central (non-oss) şi beneficiază astfel de update automat. Driverul plăcii grafice s-a instalat automat, şi pot raporta că Tremulous merge fără probleme :).

O altă bilă albă este integrarea produselor proprietare … Adobe Acrobat merge fără probleme în Firefox, iar când am instalat Eclipse s-a instalat cu Sun Java 6 ca dependinţă (nu cu GCJ, sau alte prosti).

Impresii generale

Interfaţa este bine integrată, diferenţa de aspect dintre aplicaţiile KDE şi cele Gnome fiind minimă. Sistemul dă impresia de stabilitate, şi deja lucrez pe el cam de o lună la proiecte pentru şcoală.

Ca facilităţi prezente mai rar în alte distribuţii, OpenSuse 10.3 vine din start configurat cu meniul Kickoff, şi este belea de util, mai ales în combinaţie cu Beagle. Iar Yast este un instrument grafic de configurare a sistemului, şi deşi este din topor pe alocuri, în mare este intuitiv fiind aproape o soluţie completă de configurare a sistemului. Poţi configura „file sharing” cu Samba, securitatea sistemului (firewall, app armor, user management), tipul de autentificare (ldap, windows), reţeaua locală, diverse setări de hardware, etc…

Ca securitate, nu am experienţă cu OpenSuse, dar am putut seta firewall-ul destul de uşor cu Yast. Tot OpenSuse este livrat cu AppArmor, un serviciu de securitate ce previne accesul neautorizat al aplicaţiilor la resurse în afara domeniului lor de activitate, fiind o adiţie foarte necesară la sistemul de utilizatori standard, sistem ce nu oferă decât protecţie limitată. AppArmor poate fi configurat destul de uşor, şi sunt impresionat, mai ales că am experienţe nasoale cu SELinux.

Per total, până acum este OK şi chiar nu sunt generos la complimente, mai ales că m-am obişnuit cu interfaţa din Mac OS X, dar OpenSuse este bine integrat şi uşor de configurat.

Posted in linux, technology | No Comments »

RSI - spaima programatorilor

May 26th, 2008 Alex

De când am primit calculator de la ai mei părinţi, de prin clasa a 8-a, neavând disciplina necesară sau sfaturi de la experţi, am învăţat un stil de tastare mai rudimentar, dar care practic merge … după un timp degetele se deplasează singure în direcţia tastei dorite, şi cu un ochi la ecran şi unul la tastatură ajungi să tastezi destul de eficient … m-am măsurat în trecut şi tastam (lejer) cam cu 150-200 CPM, fiind destul de acceptabil pentru un programator care mai şi gândeşte înainte de a scrie cod :P .

În ultimul timp munca mi-o desfăşor pe un laptop, şi nu simţi nevoia să practici touch typing cu adevărat decât în momentul în care eşti forţat să lucrezi cu o tastatură mică şi ne-ergonomică. Adică am mai încercat în trecut să mă învăţ a tasta cum trebuie folosind programe ajutătoare gen KTouch, dar mi-a fost mereu mai comod să mă întorc la ce ştiam.

Şi s-a întâmplat inimaginabilul, deşi obişnuinţa stilului propriu a fost greu de înlăturat, am început să practic touch-typing. Şi sunt mai productiv, mult mai productiv. Viteza este doar de 250 CPM (aprox. 40 WPM) deocamdată, dar rata de eroare este de doar 2%. Şi sunt oameni ce pot tasta şi de de 3 ori mai repede (adică 750 CPM/125 WPM), adică se poate mult mai mult.

Ce este supărător este că am început să am dureri ale antebraţului la ambele mâini, şi cred că din cauza laptop-ului, deoarece m-am forţat prea tare să tastez eficient în poziţii incomode. Am mai avut mici probleme în trecut, gen degete şi încheieturi amorţite, dar este prima oară când mă îngrijorez. Şi desigur că stau şi mă gândesc că poate corpul omenesc nu e proiectat pentru touch-typing sau pentru sesiuni de 10 ore în faţa unui calculator. Şi aparent poate apare nu numai de la tastare … se pare că apare mai frecvent şi de la o utilizare necorespunzătoare a mouse-ului (nu vă gândiţi la prostii :)).

Un RSI netratat poate avea urmări permanente şi există programatori a căror carieră s-a terminat datorită indiferenţei faţă de ceea ce pare la început o simplă încordare a muşchilor.

Din păcate în România medicii nu cred că sunt pregătiţi pentru astfel de boli „moderne”, dar în general pe Internet sfaturile sunt următoarele:

  • o tastatură ergonomică se pare că face minuni (modelele de la Kinesis au review-uri super bune, dar sunt cam scumpe şi mă mai uit şi la modelele de la Microsoft, deşi stau şi mă gândesc că sănătatea mea este mai importantă decât $300)
  • este important să stai într-o poziţie cât mai ergonomică şi să iei pauze din oră-n oră (programe ce te obligă să iei pauză sunt folositoare aici)
  • cred că o să trec la Dvorak … deoarece layout-ul Qwerty a fost gândit special pentru a reduce viteza de tastare pe maşinile de scris, punând presiune mare pe degetele mici … şi n-am făcut-o până acum de lene
  • sportul şi medicina neconvenţională (gen acupunctură) ajută
  • este extrem de important să consulţi un medic (deşi suntem în România)

Dacă ai impresia că nu ţi se poate întâmpla şi ţie, întrebarea nu este „mi se va întâmpla?” ci mai degrabă „când?”.

Resurse utile:

Posted in lifestyle, linux | 9 Comments »

Linux, simbolul unei generații

February 8th, 2008 Alex

N-am făcut niciodată parte din RLUG, deși am încercat de mai multe ori să rezist câteva zile pe listele de discuții. Am rezistat un pic mai mult acum câțiva ani pe forumul dedicat distribuției mandrake (redenumită mandriva). Cred că sunt prea anti-social chiar și pentru astfel de comunități.

Părerea lui Petre m-a pus pe gânduri. Adică Linux este mainstream, și nu mai avem nevoie de comunități? De fapt ce este o comunitate Linux? Dacă ar fi să o definim ca fiind o adunătură de oameni cu interes pentru produsul Linux … la naiba, normal că sunt un grup de oameni uniți doar de dificultatea cu care poate fi instalat și utilizat acest sistem. În momentul în care produsul devine ușor de folosit datorită evoluției constante, comunitate normal că se destramă.

Linux este însă un ecosistem, unde ideile prind viață, și la fel ca-n viața reală, unele se materializează și altele nu. Și comunitățile care vor rezista timpului sunt cele unite de un țel constructiv. Și chiar regret că-n București nu există astfel de comunități, precum KDE, OLPC, și (de ce nu) lambda-the-ultimate. Este peste puterea noastră.

Când am încercat prima oară Linux, într-adevăr, am făcut-o ca să mă simt special, ca să fac parte dintr-un grup de elite. Eram pe drumul spre glorie. Însă am crescut, și nu mai am nevoie de gloria ștampilei ce o port datorită preferințelor mele. Și de fapt îmi provoacă repulsie aroganța, deși sunt în mare măsură vinovat de aceleași devieri de comportament.

Însă o comunitate care nu este unită de un țel constructiv, o comunitate al cărei motiv de existență este reprezentat de nostalgii, vise elitiste și probleme întâmpinate la servici, are tot atâtea șanse să reziste cât întrunirile fanilor Star Trek.

Este întotdeauna vorba de oameni și de idei, iar pentru unii Linux încă promite o revoluție într-o lume în care libertatea cuvântului și însăși esența cunoașterii este pusă în pericol în numele capitalismului, iar ideile ce stau la temelia ecosistemului încă nu au ajuns mainstream.

If I can’t dance, you can keep your revolution

- Emma Goldman

Posted in linux, rant | 3 Comments »

Android - platforma pentru aplicații mobile de la Google

November 14th, 2007 Alex

Titlu lung ce sună a advertising bullshit :)

Mi-a atras însă atenția, fiind o platformă bine gândită. Bazată pe kernelul Linux, include WebKit ca motor pentru browser, framework pentru redare de fișiere media destul de complet (și probabil proprietar), randare a fonturilor cu FreeType, randare interfețe 2D cu SGL, randare interfețe 3D cu OpenGL|ES, plus posibilitatea de combinație 2D+3D, SQLite inclus.

Nu sună rău deloc. Ce sună într-adevăr bine este Dalvik, mașina virtuală deasupra cărora vor rula aplicațiile. Dalvik este o mașină virtuală special optimizată pentru consum mic de resurse. Aplicațiile rulează pe Dalvik într-un proces propriu, în comparație cu JavaME care nu poate rula mai multe aplicații simultan decât folosind același proces. Asta înseamnă că aplicațiile care se blochează pe platforma Android nu blochează și alte aplicații (așa cum JavaME și .NET Compact Framework au potențialul să o facă).

Dalvik este cam ceea ce Java MVM ar fi trebuit să fie. Desigur, modelul este mult simplificat. Aplicațiile nu trebuie să ruleze în paralel, trebuie doar să ai iluzia că rulează în paralel. Atunci când se face switch între aplicații (de exemplu când ești în aplicația de email și vrei să iei datele de contact din lista de contacte) se salvează status-ul aplicației active, se închide aplicația și se trece la aplicația destinație. Cu alte cuvinte Dalvik știe de continuations.

Alt fapt interesant este că Dalvik *nu* rulează bytecode Java, având un limbaj bytecode propriu, optimizat fiind în contextul Android (consum mic de resurse, procese multiple, etc.). La deploymentul de aplicații .class sau .jar există un compilator ce face translația în bytecode Dalvik.

Framework-ul pentru aplicații nu este momentan lansat ca open-source, dar se pare că va fi lansat și licențiat cu licența Apache (probabil ultima versiune). Sunt un pic dezamăgit că nu am acces la codul sursă, dar Google se ține în general de promisiuni (cel puțin cele oficiale). Plus că Google oferă premii în valoare de $10 milioane dezvoltatorilor de aplicații ce vin cu idei interesante în cursul următoarelor luni. Deloc rău :)

Concurenții Android sunt SymbianOS, Windows Mobile, și câteva platforme bazate pe Linux, cum ar fi variantele ce folosesc Gnome Mobil (OpenMoko, OLPC) sau QTopia de la Trolltech. Android este interesant pentru dezvoltatori, stack-ul părând chiar solid, chiar și la acest preview. Deși OpenMoko este chiar mai interesant, efortul este foarte ad-hoc (în stilul bazarului open-source), și din păcate dezvoltatorii de telefoane sunt interesați de standardizări: de unde și motivul pentru care Java ME, oricât de oribil ar fi, a avut succes.

Update: am uitat sa pun linkul:  code.google.com/android/

Posted in linux, mobile, technology | 1 Comment »

Ubuntu 7.10

October 21st, 2007 Alex

Sunt dator cu câteva cuvinte pe subiect, dator fiind datorită banerului din dreapta :)

Folosesc Ubuntu ca sistem de operare principal de aproximativ un an, pe vremea când versiunea cea mai recentă se numea Dapper Drake.

Motto-ul Ubuntu este “Linux pentru fiinţe umane“, şi filozofia este vizivilă în facilităţile noi ale fiecărei versiuni, în forumurile prietenoase începătorilor, şi chiar şi în modelul de dezvoltare, punându-se destul de mult accentul pe uşurinţa în folosire.

Ubuntu 7.10, nume de cod Gutsy Gibbon, tocmai a fost lansat. Pentru facilităţile noi incluse aveţi detalii aici. Aruncaţi o privire, merită ;)

Posted in linux | 9 Comments »

Linux tips and tricks (1)

September 16th, 2007 Alex

Istoria liniei de comandă Bash

Bash reţine o istorie a comenzilor date. Şi după câteva luni de utilizare se adună destule artifacte valoroase :) De multe ori aţi vrea să vă reamintiţi vreo comandă pe care aţi dat-o acum câteva săptămâni, aşa cum am fost eu pus în situaţia asta, azi. Aveam nevoie să folosesc funcţia “split” în awk, dar am uitat cum, şi mi-a fost lene să caut pe net. Comanda era ceva de genul:

echo $PATH | awk '{split($0,sep,":"); for (x in sep) print sep[x]}’

Bash reţine toate comenzile date în fisierul .bash_history din directorul personal al utilizatorului. O variantă pentru căutare ar fi deschiderea fişierului cu un editor de texte.

O altă variantă este comanda “history” a cărei rulare este aproximativ echivalentă cu:

cat -n ~/.bash_history

Dacă vrei să deschizi istoria într-un editor de texte, dar nu vrei decât o functionalitate minimală (căutare şi scroll up/down), comanda e ceva de genul:

history | less

Pentru a căuta comanda mea în istoria liniei de comandă, o bună variantă ar fi:

history | grep split

Desigur, în linia de comandă merge să afişezi comenzi din istorie, una câte una, folosind tastele săgeţi UP/DOWN, sau combinaţiile de taste Ctrl-P/Ctrl-N. Se poate deasemenea căuta direct de la promptul liniei de comandă folosind combinaţia de taste Ctrl-R (reverse-interactive-search). Începeţi să tastaţi primele caractere ale comenzi, şi ultima comandă ce corespunde şirului introdus este interactiv afişată.

Raising Elephants Is Utterly Boring

Când calculatorul s-a blocat, deşi se întâmplă mai rar ca-n alte sisteme de operare, se poate totuşi întâmpla, iar combinaţia Ctrl-Alt-Del atât de familiară utilizatorilor de Window nu prea merge.

Restartarea sistemului de operare folosind butonul de RESET al calculatorului nu este sigură deoarece sistemul de fişiere poate fi corupt şi poţi pierde date importante.

Metoda cea mai sigură de restartare este apăsând pe rând tastele R-E-I-U-B în timp ce apăsaţi tastele Alt+SysReq.

Deci încă odată:

Alt + SysReq + R-E-I-U-B

Desigur, fiecare tastă din secvenţa REIUB face ceva diferit, şi poate fi folosită de una singură, dar personal uit mereu ce fac tastele respective (poate dacă mi se bloca calculatorul mai frecvent, le memoram :) ).  Însă un rezumat bun găseşti aici: http://en.wikipedia.org/wiki/Magic_SysRq_key

Omorârea proceselor blocate

Pentru omorârea proceselor blocate din consolă avem nevoie de PID-ul comenzii, găsirea sa făcându-se cu comanda ps. N-o să insist prea mult pe comanda ps, folosirea sa uzuală fiind ceva de genul:

ps ax | grep -i [a]pache

Rezultatul fiind:

 6569 ?        SNs    0:00 /usr/sbin/apache2 -k start
6573 ?        SN     0:00 /usr/sbin/apache2 -k start
6574 ?        SN     0:00 /usr/sbin/apache2 -k start
6575 ?        SN     0:00 /usr/sbin/apache2 -k start
6576 ?        SN     0:00 /usr/sbin/apache2 -k start
6577 ?        SN     0:00 /usr/sbin/apache2 -k start

În exemplul de mai sus procesul cu PID-ul 6569 este procesul principal (master), restul proceselor fiind copii creaţi de procesul principal.
Pentru omorârea unui proces se foloseşte comanda “kill”, ce transmite un semnal de oprire procesului:

kill 6569

Dacă procesul este capabil să răspundă la semnalul “kill”, atunci oprirea va fi facută de proces, nu de sistem. Şi procesele copil vor fi automat oprite, şi fără pierderi de date. Însă există situaţia în care procesul s-a blocat şi vrei să forţezi oprirea sa, comanda fiind astfel:

kill -9 6569

Die mother f*cker

Dacă ai vreun program ce rulează sub Wine (ex. Microsoft Office) şi vrei satisfacţie maximă când îl omori, poţi folosi psDoom, un progrămel bazat pe motorul jocului Doom creat de id Software :)

ss2.gif

Posted in linux, tips&tricks, unix | 2 Comments »

La mulţi ani, Linux

September 16th, 2007 Alex

tux2.png

Pe 17 Septembrie 1991 Linus Tolvards lansa versiunea 0.01 a kernelului Linux cu extrem de multă modestie. Codul sursă a devenit disponibil pentru oricine ar fi vrut să participe la dezvoltarea sa (deşi componente vitale cum ar fi compilatorul GCC si biblioteca standard GNU C erau deja valabile mulţumită proiectului GNU, simbioză fără de care GNU/Linux nu ar fi existat).

Linux împlineşte 16 ani. Este momentul perfect pentru adresarea câtorva cuvinte de suport comunităţii. Şi dacă vă puteţi permite, sărbătoriţi împărţind prietenilor CD-uri cu distribuţia dvs preferată.

Pentru mine Linux este o platformă, o comunitate, o stare de spirit. Fără ecosistemul Linux culoarea industriei IT ar fi cu siguranţă mult mai gri.

Nu pot decât să mulţumesc din inimă pasionaţilor ce au ajutat la dezvoltarea sa, deşi cuvintele sunt cam de prisos. Sunteţi eroii mei :)

P.S. Pentru mai multe mulţumiri din partea utilizatorilor de Linux, intraţi aici: linuxday.getnix.com

Posted in linux, passion | No Comments »