viitorul hardware-ului liber

sâmbătă, 2 mart. 2013, 12:32

„Free Software”, sau „software libre”, e un concept cu care cititorul de cărămizi este, bănuiesc, obișnuit, dat fiind faptul că am tot tratat în trecut subiecte legate de dânsul. Să reluăm însă, în primul rând pentru rigurozitate, definiția dată de organul reprezentativ al softului liber, Free Software Foundation:

Free software is software that gives you the user the freedom to share, study and modify it. We call this free software because the user is free.

Ideea softului liber este deci una care ține de libertate și nicidecum de bani, iar în acest sens sintagma de „software libre” e ușor improprie: programele nu pot fi în sine constrânse în sensul libertății, libertatea aparținând sau nu, după caz, utilizatorilor de calculatoare numerice programabile, deci implicit de software, care nu-i nimic altceva decât informație. Iar libertatea de a „da mai departe” informație este esențială pentru supraviețuirea civilizației, după cum am menționat și în „arhiva de informație a rasei umane™”.

Firește, hardware-ul se încadrează și el în aceeași categorie, acesta având fundamente identice cu cele ale software-ului. Reprezentarea abstractă a unui calculator poate fi un program, un set de ecuații sau un circuit electronic, ideea din spate fiind absolut aceeași. Diferențele țin mai degrabă de aspecte practice cum ar fi tehnologia de fabricație, însă hardware-ul evoluează și el mai rapid sau mai lent, fapt care poate fi demonstrat de exemplu de istoriile procesoarelor Intel și ARM. În particular, arhitectura ARM a dus la o explozie de platforme hardware care mai de care mai interesante, care integrează CPU-ul clasic cu procesoare grafice, procesoare de semnal și așa mai departe. (mai mult…)

nethack

luni, 24 sept. 2012, 00:30

Dacă vă situați pe undeva în jurul vârstei subsemnatului — cam la un sfert de secol, plus minus –, atunci cel mai probabil că ați jucat Diablo. Pe de altă parte dacă sunteți mai bătrâni cu siguranță știți despre ce vorbesc, iar dacă sunteți mai tineri e posibil să fi auzit măcar de jocuri mai mult sau mai puțin mediocre cum ar fi Darksiders [i]. Să rămânem deci la punctul de reper Diablo, joc care a fost legendar în felul său.

Ei, cu mult înainte ca Diablo să fi fost măcar în proiect, un individ pe nume Jay Fenlason scria pentru PDP-11 [ii] un joc pe care acesta l-a botezat pur și simplu Hack, inspirându-se din altul numit Rogue. Jocul rula în consolă, folosind caractere ASCII pentru a desena tile-uri. Hack — la fel ca mai toate jocurile din genul său și care i-au urmat, inclusiv Diablo în mare măsură — era un top-down în care controlai ceva luptător generic, cu care trebuia să te plimbi prin catacombe și să căsăpești monștri. Sună cunoscut, nu? Mai mult, catacombele erau situate pe mai multe niveluri, iar scopul efectiv al jocului era ambiguu — cer e că trebuia să căsăpești vietăți și să cauți sau să cumperi arme mai bune, chestii care în jocurile de azi par cât se poate de naturale. (mai mult…)

  1. Am avut ocazia recent să asist la o sesiune de Darksiders II, fără a mă implica însă, deoarece mărturisesc că nu aș fi avut răbdare să joc mai mult de cinci minute. Grafica e faină, povestea e relativ ok (pentru unele definiții ale lui „relativ ok”), dar gameplay-ul… domnilor, gameplay-ul mi s-a părut groaznic. Din asta nu pot să înțeleg decât că posesorii de console n-au nici o problemă cu camerele mobile care zboară în direcții aleatoare când îți e lumea mai dragă și ai 2HP, în timp ce te lupți cu o hoardă de ființe drăcești care-s mai mult decât pregătite să-ți facă felul. Da’ bine. []
  2. Primul calculator pe care a rulat o versiune oficială de Unix, din câte știu. Hack a fost portat mai apoi pe DOS, varianta respectivă purtând numele de „hack121”. []

proiectele closed source sug (uneori)

sâmbătă, 1 sept. 2012, 13:58

[ studiu de caz. ]

Afirmația de mai sus nu vrea să implice faptul că proiectele open source nu sug (uneori), ci că pur și simplu proiectele closed source sug, adică-s nașpa în diferite feluri și din mai multe puncte de vedere, în funcție de ochiul care privește. De exemplu în opinia lui Richard Stallman [i] „closed source”, sau mai bine zis „non-free/libre software” este sursa răului absolut, pentru căcum să ai tu în casă o unealtă pe care să nu o poți modifica după bunul plac, de parcă oamenii incompetenți tehnic – adică majoritatea utilizatorilor de calculatoare – ar fi interesați de asta. Eu aleg să discut aici un punct de vedere mai relevant și absolut practic, și anume eficiența dezvoltării proiectelor software.

Discutam acum ceva timp despre eficiența proiectării programelor pe calculator. Deși aspectul are o importanță deosebită în ceea ce privește fundamentele ingineriei software, lucrurile se complică foarte mult în viața reală, acolo unde apar probleme de coordonare, deadline-uri, secrete și alți astfel de dragoni mai mult sau mai puțin plăcuți. Cu alte cuvinte gradul de „închidere” al unui proiect și dificultatea de mentenanță a acestuia sunt corelate pozitiv fără doar și poate, demonstrația fiind pe cât de evidentă pe atât de banală. În același timp livrarea pe piață [ii] e unul din factorii care pot face diferența între un proiect de succes și un rateu, dat fiind că clienții au nevoie de produs ieri [iii], nu peste un an. Nucleul Linux e în mod evident cel mai bun exemplu de succes, pentru că organizarea sa e de așa natură încât îmbunătățirile sunt aduse în (sau aproape de) producție în maxim trei luni de la apariția hardware-ului – nu musai pe piață. Dar să lăsăm Linux pe altă dată. (mai mult…)

  1. Despre care am putea presupune că contează ca ideolog al lumii software, el fiind unul din cei care au reușit să imprime avântul necesar apariției unor comunități de dezvoltatori care să producă așa-zisul „free software”. Eu am dubiile mele în privința individului, dar în fine, ce-i al lui e al lui – emacs de exemplu. []
  2. i.e. „time to market” []
  3. Și nu, acesta nu este un sofism. Gândiți-vă în felul următor: eu, client fiind, mă gândesc astăzi că mi-ar folosi chestia X. Eu nu sunt capabil și/sau nu îmi doresc să produc X, însă sunt dispus să plătesc mâine. Ori dacă X nu-i disponibil mâine pe piață iar eu m-am gândit deja că îmi doresc X, atunci se poate spune – cam tras de păr aș zice eu – că potențialii vânzători de X – actualii dezvoltatori – lucrează deja în pierdere. Cu alte cuvinte există întotdeauna un risc asociat „supra-marketării”, care poate genera mai mult „hype” decât este necesar. []

mediul de programe unix: descrieri, exemple.

duminică, 24 iun. 2012, 17:32

Un aspect pe care l-am omis când am analizat interacțiunea cu calculatoarele ca act de comunicare este acela că modul text are și el interfețele lui pseudo-grafice. Astfel pentru a distinge între linia de comandă și interfețele text folosim sintagma „Text-User Interface” sau TUI. Acestea sunt prezente în lumea calculatoarelor încă de la începuturile acesteia, fiind incluse și în DOS și Windows {1,2,3}.0 [i], având însă un grad mare de răspândire în lumea *nix.

Povestea pleacă de la faptul că la un moment dat a existat nevoia ca terminalele virtuale să fie independente de mașina fizică pe care rulează. Astfel au apărut bibliotecile terminfo și termcap, peste care au fost dezvoltate curses și mai apoi ncurses. Ultimele două au un API care îl ajută pe programator să aranjeze textul și să deseneze chestii cum dorește dânsul, dând astfel naștere unei interfețe care să fie mai intuitivă pentru utilizator decât CLI-ul.

Ceea ce mulți utilizatori Unix [ii] nu știu sau nu vor să știe e că traiul zilnic poate fi dus la fel de bine înafara modului grafic, ceea ce e mai ales util în cazul în care nu vrem să fim deranjați de chestii frumos colorate. Prin urmare vom purcede la a face o listă a programele de bază care alcătuiesc sau pot alcătui după pofte și nevoi mediul zilnic al unui utilizator Unix – cu mențiunea că unele din ele s-ar putea să fie disponibile decât pe GNU/Linux, din motivul că utilizatorii de BSD sunt probabil prea preocupați să-și miroasă bășinile pentru a le porta; glumesc, dar adevărul e pe undeva prin zonă. (mai mult…)

  1. Care-i de fapt un TUI foarte împopoțonat și cu suport mai bun pentru mouse. []
  2. Adică inclusiv de Linux, chiar dacă Linux e prin definiție „not Unix”. []

proprietatea intelectuală, implicații tehnice

vineri, 9 mart. 2012, 19:11

Dat fiind faptul că sunt filosof în aceeași măsură în care Ilie Moromete e filosof și dat fiind de asemenea faptul că nu sunt specialist în probleme de economie și cu atât mai puțin în probleme de drept, eu unul nu pot nici măcar să încep a concepe o etică a pirateriei. Eu doar am observat ceea ce mi se pare a fi o problemă gravă, iar mai departe cine are ochi să și-i belească.

Ceea ce pot face însă e să mă uit la problemă dintr-un unghi familiar mie, anume cel tehnic, unghi din care tot privesc lucrurile în ultimii șase ani sau mai mult. Scurta descriere a anatomiei modelului proprietar tratează deja o parte din aspectele care contribuie la toată această babilonie însă nu intră prea tare în detalii, astfel că rămâne ca dânsele să fie penetrate în cele ce urmează. Propun astfel să mergem în continuare pe linia produselor de tip software, în ideea că se pot face în principiu analogii cu restul lucrărilor mai mult sau mai puțin artistice care-s în același timp și proprietate intelectuală, dar mai ales deoarece software-ul pune cele mai mari probleme din acest punct de vedere.

Și voi începe direct cu motivul care stă la baza tuturor problemelor: software-ul în esența sa (și poate doar acolo) este fără dubiu o formă de exprimare aparținând domeniului public, în aceeași măsură în care pictura spre exemplu aparține domeniului public, în virtutea faptului că exprimarea denotă prin definiție comunicare. Diferența principală constă în faptul că expresia software-ului e îngrădită de rigoarea matematicii, orice algoritm convențional reducându-se la idiomuri/formalisme standard. (mai mult…)