... totul in realtime !
Sunday, January 10, 2010
OpenCV embedded in Concept Client
Am reusit sa integrez OpenCV in Concept Client, avand acum acces pe aceiasi interfata (cross-platform) la webcam. Odata cu accesul la camera video vine si un set de functii foarte interesante, de genul motion detector sau object detector. Cel din urma este chiar interesant, pentru ca pe baza unor xml-uri de configurare, poate detecta fetele umane, corpuri, etc.. API-urile OpenCV sunt foarte comode, iar eu am incercat sa le simplific si mai mult. Clientul acum este capabil sa inregistreze si video direct de pe webcam sau sa faca streaming.
... totul in realtime !
... totul in realtime !
Wednesday, January 6, 2010
Jucarii noi
Acum, daca tot am implementat tot ce mi-a trecut prin cap, am inceput sa ma joc. Prima problema de care m-am lovit a fost "shaped window" (de fapt, in Concept poate fi shaped-anything). Problema era ca trebuia setat in bitmap in format xpm. Foarte frumos, doar ca pe windows e relativ dificil sa gasesti unelte cu care sa faci xpm-uri. Atunci, am zis asa: setezi un png cu transparenta ca mask. Unde ai bit transparent, nu vei avea "fereastra" iar unde ai orice altceva, vei avea canvas.
Dupa cum se vede, este suficient sa setez o imagine ca mask, pt o fereastra rotunda. Atentie doar la ferestrele "principale" ce au obligatoriu titlebar (cel putin pe Win32). Solutia e sa creati o fereastra "copil" (transistient for). Aici, m-am jucat putin, si am setat o imagine ce era si vizibila, ca mask. O problema a fost suprapunerea imaginii peste fereastra (pentru ca apare o diferenta data de border-ul ferestrei. Ca solutie, am pus un scrollbar in spate, si m-am jucat doar din pozitia pe verticala, asa cum vezi aici:
E un pic de munca de trial and error potrivirea lor, dar merita in final, mai ales ca volumul de munca este simtitor mai mic decat pe orice alt framework.
Tot la capitolul joaca, sunt 2 noi feature-uri: Metoda Screenshot pentru controale si proprietatea DragIcon ce acum accepta orice, nu numai obiecte de tip RImage.
Astfel, pentru un buton, putem spune WriteFile(CApplication::Screenshot(button1), "button1.png") rezultand fisierul button1.png pe SERVER cu "fotografia" controlului, asa cum se vede pe client, cu skin-ul aplicat.
DragIcon-ul poate fi setat chiar cu controlul:
button1.DragIcon=button1;
Nu se vede cursorul mouse-ului in shot, dar e suficient sa-ti faci o idee cum am luat butonul de pe fereastra si i-am facut drag in afara ferestrei.
Observatie: Shaped-window nu este functional pe Mac OS X.
Dupa cum se vede, este suficient sa setez o imagine ca mask, pt o fereastra rotunda. Atentie doar la ferestrele "principale" ce au obligatoriu titlebar (cel putin pe Win32). Solutia e sa creati o fereastra "copil" (transistient for). Aici, m-am jucat putin, si am setat o imagine ce era si vizibila, ca mask. O problema a fost suprapunerea imaginii peste fereastra (pentru ca apare o diferenta data de border-ul ferestrei. Ca solutie, am pus un scrollbar in spate, si m-am jucat doar din pozitia pe verticala, asa cum vezi aici:
E un pic de munca de trial and error potrivirea lor, dar merita in final, mai ales ca volumul de munca este simtitor mai mic decat pe orice alt framework.Tot la capitolul joaca, sunt 2 noi feature-uri: Metoda Screenshot pentru controale si proprietatea DragIcon ce acum accepta orice, nu numai obiecte de tip RImage.
Astfel, pentru un buton, putem spune WriteFile(CApplication::Screenshot(button1), "button1.png") rezultand fisierul button1.png pe SERVER cu "fotografia" controlului, asa cum se vede pe client, cu skin-ul aplicat.
DragIcon-ul poate fi setat chiar cu controlul:
button1.DragIcon=button1;
Nu se vede cursorul mouse-ului in shot, dar e suficient sa-ti faci o idee cum am luat butonul de pe fereastra si i-am facut drag in afara ferestrei.Observatie: Shaped-window nu este functional pe Mac OS X.
Tags:
Concept,
drag and drop,
jucarii,
screenshot,
shaped windows
Saturday, January 2, 2010
Relatii neomogene
In sfarsit am reusit sa termin ceva ce-mi doream de foarte mult timp: relatii neomogene. Astfel, putem aveam o relatie intre o entitate si N alte entitati folosind acelasi membru (randate in acelasi view), fara ca cele N entitati sa aiba elemente comune.
Am atasat un screenshot in care avem o proprietate Media ce accepta Video sau Imagini, 2 entitati total diferite. In primul screenshot avem interfata de definire din Gyro:

Iar rezultatul arata cam asa:

Relatiile pot fi de tip many sau de tip one ("nomenclator", respectiv "exclusive"). In continuare, totul se poate face si prin drag and drop (view-ul stiind singur ce poate accepta si ce nu).
Un elemente cheie aici este posibilitate ordonarii entitatilor in view. Daca bifam "Reorderable" vom putea aseza elementele in view in ce ordine dorim. Ordonarea inca n-o putem face prin drag and drop (trebuie dat click drapta si Up sau Down).
Cu asta inchei sesiunea de lucru intensiv de sarbatori, sperand ca am reusit sa intaresc platforma.
Am atasat un screenshot in care avem o proprietate Media ce accepta Video sau Imagini, 2 entitati total diferite. In primul screenshot avem interfata de definire din Gyro:

Iar rezultatul arata cam asa:

Relatiile pot fi de tip many sau de tip one ("nomenclator", respectiv "exclusive"). In continuare, totul se poate face si prin drag and drop (view-ul stiind singur ce poate accepta si ce nu).
Un elemente cheie aici este posibilitate ordonarii entitatilor in view. Daca bifam "Reorderable" vom putea aseza elementele in view in ce ordine dorim. Ordonarea inca n-o putem face prin drag and drop (trebuie dat click drapta si Up sau Down).
Cu asta inchei sesiunea de lucru intensiv de sarbatori, sperand ca am reusit sa intaresc platforma.
Monday, December 28, 2009
Configurarea obiectelor GUI in Runtime
Terminand mai tot ce mi-am propus pentru zilele astea, mi-a trecut ceva prin cap: ce-ar fi daca am lasa un utilizator final al unei aplicatii Concept sa-si seteze anumite lucruri prin aplicatie, cum ar fi culoarea butoanelor sau poate chiar sa ascunda din campuri. Acum, totul e customizabil, asadar nu va putea edita absolut tot ce vrea el, ci va edita doar ce vrem noi. Ar trebui sa fie comod sa poata edita GUI-ul unei aplicatii Gyro in run-time ... ca pe wikipedia. Pentru asta am adaugat un control nou (de fapt l-am finalizat fiind un proiect abandonat acum cativa ani) - RPropertiesBox ce ne permite sa editam proprietatile unui obiect. Mai mult, am facut obiectul sa-si prezinte singur proprietatile folosind CApplication astfel: CApplication::DescribeObject(button1) ... iar asta ne returneaza toate informatiile despre proprietatile suportate. Apoi, folosind CApplication::ModifyObject(button1, "label") putem sa modificam proprietatile in RUN-TIME! Bun la debugging, bun la customizare. Atasez screen-ul de test.
Saturday, December 26, 2009
Suport flash fara Adobe pentru Concept
Am reusit sa compilez Swfdec pe win32, cu toate ca inca mai am ceva probleme legate de sunet. Acum se poate include un swf foarte usor intr-o aplicatie Concept.

Si acelasi lucru pe Mac:

Am testat cateva jocuri, cateva filmulete. Nu merg chiar toate dar oricum, pentru cei ce doresc suport Flash complet, exista ActiveX-ul de la Adobe. Va functiona din pacate doar pe windows.
Inca o noapte de Craciun cu Concept !

Si acelasi lucru pe Mac:

Am testat cateva jocuri, cateva filmulete. Nu merg chiar toate dar oricum, pentru cei ce doresc suport Flash complet, exista ActiveX-ul de la Adobe. Va functiona din pacate doar pe windows.
Inca o noapte de Craciun cu Concept !
Thursday, December 24, 2009
Uptime 99.999% cu Concept Cluster
Am pus in kit-ul Concept Server un Load Balancer(CLB=Concept Load Balancer). E fara dependinte, astfel incat sa poate fi pus pe orice masina (ce nu trebuie sa aiba si Concept instalat). Consuma 24k ram/user conectat. Nucleul foloseste un weighted round-robin, asigurand incarcare simetrica si proportionala cu capacitatea serverelor din cluster. Practic fiecare server poate avea alt sistem de operare: putem defini un cluster cu un server windows, unul bsd si unul linux fara probleme, fara ca userul sa observe vreo diferenta. Pe langa asta, CLB este capabil sa se lege la noi servere fara shut down si poate detecta serverele offline (putand de exemplu, peste noapte sa inchid o parte din servere). E frumos ca dupa screenshot-urile acelea frumoase de pe OS X sa trantesc si o consola.

Sa-ti explic scenariul:
Avem initial 4 servere, din care 1 nu functioneaza (cel cu FAIL). Deschidem 16 instante de Concept IDE (sau orice alta aplicatie Concept). Dupa ce deschidem cateva, anuntam ca vrem sa scoatem unul din servere (cel marcat cu REMOVED). Acesta nu va fi inchis automat ci nu va mai primi conexiuni. Va putea fi scos din sistem atunci cand nu mai are nicio conexiune activa, astfel incat sa nu deranjam niciun user. In momentul in care conexiunile ii ajung la 0, atunci va pleca din cluster. Mecanismul este foarte simplu, pentru ca fiabilitate este invers proportionala cu complexitatea.
Mai mult, load balancer-urile pot fi legate unul de altul, ca si cum ar fi servere (ele din exterior vazandu-se ca un server Concept).

Sa-ti explic scenariul:
Avem initial 4 servere, din care 1 nu functioneaza (cel cu FAIL). Deschidem 16 instante de Concept IDE (sau orice alta aplicatie Concept). Dupa ce deschidem cateva, anuntam ca vrem sa scoatem unul din servere (cel marcat cu REMOVED). Acesta nu va fi inchis automat ci nu va mai primi conexiuni. Va putea fi scos din sistem atunci cand nu mai are nicio conexiune activa, astfel incat sa nu deranjam niciun user. In momentul in care conexiunile ii ajung la 0, atunci va pleca din cluster. Mecanismul este foarte simplu, pentru ca fiabilitate este invers proportionala cu complexitatea.
Mai mult, load balancer-urile pot fi legate unul de altul, ca si cum ar fi servere (ele din exterior vazandu-se ca un server Concept).
Monday, December 21, 2009
Concept pe OS X Leopard
Dupa o saptamana in care m-am chinuit sa inteleg OS X-ul, am reusit sa fac distributia Concept Client 1.1 pentru Mac OS X 10.4 sau mai mare. Am facut-o intr-o masina virtuala 10.5.2 si au testat-o cativa prieteni pe 10.5.7. Mai jos de 10.5.2 nu pot garanta nimic, dar teoretic ar trebui sa mearga pe orice mai mare de 10.4. Serverul inca nu este disponibil pe OS X dar se compileaza foarte usor, pentru cine vrea neaparat. Trebuie doar instalat Xcode si darwinports si modificate flag-urile din makefile-uri din -shared in -dynamiclib. Probabil ca voi face un installer si pentru server, dar nu stiu exact cand se va intampla asta. Daca totusi cineva vrea neaparat, imi poate cere explicit asta si asa as fi mai motivat.
N-am apucat sa va mai spun cum am redus consumul de memorie cu ... 70% pe server. Asta pentru carcotasii care tot vorbesc de concept:// vs http://. Acum, teoretic sistemul suporta cam acelasi numar de useri simultani. Exista acum un flag: UseSharedMemoryPool in concept.ini. By default, e setat la 1 (true), dar daca va crapa, il puteti pune la 0(false). Atunci cand are valoarea 1, toata zona de cod pentru o aplicatie se incarca intr-o zona de memorie partajata iar pentru fiecare user se vor incarca doar cateva informatii specifice acelei conexiuni (in loc de a incarca si codul pentru fiecare user in parte, cum se intampla cand flag-ul este 0). Asta + multe alte operatiuni au redus consumul de memorie drastic.
Atasez cateva screenshot-uri de pe OS X:





N-am apucat sa va mai spun cum am redus consumul de memorie cu ... 70% pe server. Asta pentru carcotasii care tot vorbesc de concept:// vs http://. Acum, teoretic sistemul suporta cam acelasi numar de useri simultani. Exista acum un flag: UseSharedMemoryPool in concept.ini. By default, e setat la 1 (true), dar daca va crapa, il puteti pune la 0(false). Atunci cand are valoarea 1, toata zona de cod pentru o aplicatie se incarca intr-o zona de memorie partajata iar pentru fiecare user se vor incarca doar cateva informatii specifice acelei conexiuni (in loc de a incarca si codul pentru fiecare user in parte, cum se intampla cand flag-ul este 0). Asta + multe alte operatiuni au redus consumul de memorie drastic.
Atasez cateva screenshot-uri de pe OS X:





Monday, December 14, 2009
Concept 1.1 BETA
Munca multa in ultimul timp, in special pe partea de testare. S-au rezolvat toate bug-urile raportate pana acum (cu multe nopti nedormite). S-au implementat feature-uri noi precum suportul de Twitter (http://www.radgs.com/docs/help/Twitter.html).
Prin client, limita pentru filerequest a fost ridicata la ... infinit ... Din pacate inca exista limitar pe partea de primire de fisier, dar vor fi eliminate si acestea in curand.
Ma gandesc sa numesc cateva din persoanele ale caror idei se regasesc in GyroGears sau care au avut o cotributie majora in implementarea feature-urilor.
Dan Vasile - o gramada de bugfix-uri (nici nu mai stiu exact cate). Pe langa asta, a mai avut si multe idei
Doru Ilasi - editarea direct in view-uri. Nu a fost chiar ideea lui, dar m-a convins sa implementez asta in Gyro
Dan Craciun - semnaleaza si gaseste problemele cu UTF-8 pe Windows 7
Robert Shiplett - comentariile rautacioase, dar indreptatite despre o varianta "broken" de Concept strecurata in distributia oficiala. M-am invatat minte sa testez mai atent.
Emil Tereanu si Ruben Sainiuc - m-au scutit de zile intregi de a ma documenta despre ffmpeg si procesarea/conversia video
Vlad Nemes - cel care se uita ce se intampla prin lume si-mi zice si mie astfel incat sa ma ajute sa tin Gyro si Concept "in trend".
Am inceput sa paricip si pe la geekmeet-uri. Am avut feedback destul de interesant pana acum. Am fost in Cluj, Timisoara si Constanta. Trebuie sa recunosc ca cea mai "exotica" prezentare a fost cea de la Timisoara, unde cred ca voi merge de fiecare data cand voi avea ocazia. A fost poate prezentarea din care am invatat eu cel mai mult.
O sa tot amestec subiectele si voi vorbi si despre scrisoarea lui Monty. Circula pe internet un apel de a "salva MySQL"-ul venit chiar din partea creatorului acestuia. Cu riscul de a supara pe cineva voi spune:
- daca acest apel venea de la oricine altcineva, l-as fi sustinut. Atata timp cat vine de la cel care a vandut MySQL-ul, nu pot sa-l sustin. Este oarecum trist sa vinzi un produs iar apoi sa faci lobby pentru "salvarea lui". Nu as vrea sa folosesc cuvinte mai dure.
- din momentul vanzarii catre Sun, cred ca preluarea de catre Oracle putea fi anticipata. InnoDB a fost cumparat cu mult inaintea lui MySQL. Oare ce ar fi putut urma ?
- Oracle incearca sa creeze un monopol. Dar cred ca asta incearca orice companie ce se respecta, iar asta de cand lumea. Politica de monopol, vorbind "la rece", este cea mai sanatoasa pentru "practicant". Cand Monty isi incasa cecul, nu cauta acolo un raspuns afectiv ? Il respect foarte mult pentru ceea ce face si consider ca ar trebui sa se concentreze pe MariaDB lasand politica pentru politicieni. Sunt tare nerabdator sa incerc MariaDB.
Vezi BerkeleyDB, ce este acum tot in proprietatea Oracle... si a pornit tot ca open source.
- InnoDB+, un engine superior InnoDB e closed source! Iar asta este un lucru rau pentru ca ... ? Nu inteleg de ce trebuie sa fie totul open source. Sunt fan al open source-ului dar nu consider ca nu trebuie sa mai existe altceva in afara de open. Iar daca ne uitam cata politica e prin open source ... incep sa cred ca modelul closed e mai "liber".
Prin client, limita pentru filerequest a fost ridicata la ... infinit ... Din pacate inca exista limitar pe partea de primire de fisier, dar vor fi eliminate si acestea in curand.
Ma gandesc sa numesc cateva din persoanele ale caror idei se regasesc in GyroGears sau care au avut o cotributie majora in implementarea feature-urilor.
Dan Vasile - o gramada de bugfix-uri (nici nu mai stiu exact cate). Pe langa asta, a mai avut si multe idei
Doru Ilasi - editarea direct in view-uri. Nu a fost chiar ideea lui, dar m-a convins sa implementez asta in Gyro
Dan Craciun - semnaleaza si gaseste problemele cu UTF-8 pe Windows 7
Robert Shiplett - comentariile rautacioase, dar indreptatite despre o varianta "broken" de Concept strecurata in distributia oficiala. M-am invatat minte sa testez mai atent.
Emil Tereanu si Ruben Sainiuc - m-au scutit de zile intregi de a ma documenta despre ffmpeg si procesarea/conversia video
Vlad Nemes - cel care se uita ce se intampla prin lume si-mi zice si mie astfel incat sa ma ajute sa tin Gyro si Concept "in trend".
Am inceput sa paricip si pe la geekmeet-uri. Am avut feedback destul de interesant pana acum. Am fost in Cluj, Timisoara si Constanta. Trebuie sa recunosc ca cea mai "exotica" prezentare a fost cea de la Timisoara, unde cred ca voi merge de fiecare data cand voi avea ocazia. A fost poate prezentarea din care am invatat eu cel mai mult.
O sa tot amestec subiectele si voi vorbi si despre scrisoarea lui Monty. Circula pe internet un apel de a "salva MySQL"-ul venit chiar din partea creatorului acestuia. Cu riscul de a supara pe cineva voi spune:
- daca acest apel venea de la oricine altcineva, l-as fi sustinut. Atata timp cat vine de la cel care a vandut MySQL-ul, nu pot sa-l sustin. Este oarecum trist sa vinzi un produs iar apoi sa faci lobby pentru "salvarea lui". Nu as vrea sa folosesc cuvinte mai dure.
- din momentul vanzarii catre Sun, cred ca preluarea de catre Oracle putea fi anticipata. InnoDB a fost cumparat cu mult inaintea lui MySQL. Oare ce ar fi putut urma ?
- Oracle incearca sa creeze un monopol. Dar cred ca asta incearca orice companie ce se respecta, iar asta de cand lumea. Politica de monopol, vorbind "la rece", este cea mai sanatoasa pentru "practicant". Cand Monty isi incasa cecul, nu cauta acolo un raspuns afectiv ? Il respect foarte mult pentru ceea ce face si consider ca ar trebui sa se concentreze pe MariaDB lasand politica pentru politicieni. Sunt tare nerabdator sa incerc MariaDB.
Vezi BerkeleyDB, ce este acum tot in proprietatea Oracle... si a pornit tot ca open source.
- InnoDB+, un engine superior InnoDB e closed source! Iar asta este un lucru rau pentru ca ... ? Nu inteleg de ce trebuie sa fie totul open source. Sunt fan al open source-ului dar nu consider ca nu trebuie sa mai existe altceva in afara de open. Iar daca ne uitam cata politica e prin open source ... incep sa cred ca modelul closed e mai "liber".
Monday, November 9, 2009
Concept Application Server pe 64 de biti !
De cateva zile ma chinui cu portarea serverului Concept pe 64 de biti. Totul e aparent simplu, existant o singura problema (majora): sizeof(long) ... nu are rost sa intru in detalii, important e ca in final conversia a reusit, pastrand structura fisierelor executabile identica pe 32 si 64 de biti. Din pacate, pentru multi versiunea de 64 este disponibila doar pe Linux/BSD ... teoretic si pe Windows pentru cine are rabdare sa compileze dupa surse. Voi face eu asta in zilele urmatoare.
Am incercat sa fac totul din precompilare (astfel incat sa fie exact aceleasi surse si pe 32 si pe 64) si sper ca am reusit (am testat doar pe Ubuntu/64 biti pe un server pus la dispozitie de Doru de la Aplix). In rest, modulul de AES a fost modificat dupa descrierea lui Chris Lomont (care are o implementare foarte interesanta a algoritmului) iar cel de RSA al lui Hariyanto Lim, ce se pare ca nu-l mai intretine, a fost modificat de mine.
Clientul Concept inca nu este disponibil in versiune de 64 de biti, cea de 32 de biti functionand oricum fara probleme. Oricum, il voi porta si pe acesta in curand.
Am incercat sa fac totul din precompilare (astfel incat sa fie exact aceleasi surse si pe 32 si pe 64) si sper ca am reusit (am testat doar pe Ubuntu/64 biti pe un server pus la dispozitie de Doru de la Aplix). In rest, modulul de AES a fost modificat dupa descrierea lui Chris Lomont (care are o implementare foarte interesanta a algoritmului) iar cel de RSA al lui Hariyanto Lim, ce se pare ca nu-l mai intretine, a fost modificat de mine.
Clientul Concept inca nu este disponibil in versiune de 64 de biti, cea de 32 de biti functionand oricum fara probleme. Oricum, il voi porta si pe acesta in curand.
Monday, November 2, 2009
No marketing. Just software.
In ultimele zile am dormit doar cateva ore incercand (cu succes) sa convertesc clientul Concept de la GTKmm la GTK+. Asta inseamna un pachet simtitor mai mic. Toate componentele s-au rescris, iar in afara de ffmpeg, toate functioneaza perfect. O gramada de bug-uri s-au rezolvat - acum rularea este una curata, cursiva. Pe distributia de windows, s-a facut ugrade-ul la GTK 2.18 ce aduce nou "client-side windows" - o idee interesanta, ce bineinteles ca mi-a dat bataie de capt cu integrarea controalelor dependente de windows; practic se foloseste o singura fereastra nativa (a sistemului de operare) in care GTK-ul si GDK-ul isi deseneaza controalele (spre deosebire de versiunile anterioare, in care fiecare widget GTK avea propriul HWND/XID).
Zilele astea voi pune si noul site RadGs, orientat catre mai multa informatie.
Astea fiind spuse, voi trece la un alt subiect - lumea software-ului, acolo unde este ea astazi.
Am inceput printr-o discutie cu un fost coleg de facultate, unul din categoria putinilor programatori pasionati ramasi si, discutand de Android 2.0, si de bull****-ul de marketing din jurul lui imi spune:
"De ce .NET e la versiunea 3.5 si Java la 1.6 ?"
Si ... habar nu am ... totul a pornit de la faptul ca eu vreau sa schimb o versiune a Concept-ului (avand in vedere ca sunt peste 1000 de build-uri). In final, tot la marketing ajungem.
Pana si open source-ul a ajuns tot acolo ... marketing. Mai mult, open source-ul vad ca e din ce in ce mai mult asociat cu Linux-ul ... (nu cu Windows-ul, nu cu BSD-ul si nici cu cele N alte sisteme de operare open source). Cert e ca trebuie sa recunoastem: pentru end-user cel putin, cea mai comoda solutie ramane una proprietary. Ghiceste cineva care ?
Bun, sa revenim la open source. Eu propun urmatorul model:
open source = pasiune
pasiune <> bani
deci open source <> bani ceea ce rezulta intr-un model de business confuz.
Tot colegul meu, cel "anti-open source" imi zice ca exista open source facut de nebuni pasionati si open source facut ca o alternativa de monetizare a unui produs inferior... si bine zice.
Acum cateva zile explicam cuiva la LOAD, faptul ca sunt o gramada de afaceri gandite prost din start. Mintea mea de oligofren vede lucrurile asa: X ajuta comunitatea, iar aceasta isi manifesta recunostinta. Cum ? Plantindu-l. Un model simplu, ce a devenit complex, astfel in initierea unei afaceri (si da, includ ai si afacerile bazate pe open source) se are in vedere in primul rand profitul, astfel incat nu ne gandim "Cum ajutam comunitatea ?" ci "Cum maximizam profitul ?" ... oare, sunt asa de rupt de realitate ? Oare nu mai exista pasiune in ceea ce facem ci doar o foame nejustificata de bani ?
Din pacate open source-ul, asa cum il vad eu acum, in directia asta merge. Am vazut proiectele frumoase facute de studenti si nu vreau sa-i includ si pe ei in aceasta categorie. Cred ca ei sunt singurii ce mai au entuziasmul necesar.
In final, open source-ul tinde sa nu aduca mare lucru in plus fata de proprietary ... faptul ca un "client" are sursele nu inseamna mare lucru. Cei ce sunteti programatori, stiti bine asta. Ideea ca preia "open source-ul" si plateste consultanta, iar daca nu e multumit, poate merge la X eu zic ca-i cel putin ipocrita. O sa le spun de fapt solutii "open source proprietary". Cred ca asa ar fi corect.
Imi pare rau sa spun asta, dar in cele mai multe cazuri, open source-ul ajunge sa fie mai scump decat o solutie proprietara, daca clientul nu este atent. Mai mult, facem un pariu ? Sunt convins ca multi "cumparatori" de servicii peste open source, habar nu au ce-i ala open source... in final, open source cred ca ramane doar o strategie de marketing.
Mai e si tanti de la LOAD...
In sala, era o tanti, probabil lucreaza la o banca... era asa de suprinsa de modelul de business propus de open source ... si intreaba la un moment dat cum se plateste open source-ul si as fi vrut sa-i raspund "se plateste, chiar daca-i free software ... ba chiar se plateste ori de cate ori este nevoie".
Comentati. Dau 10 lei sau 2 beri primelor 10 comentarii ... in final, se poate si "free as in free beer". Berea sau banii se ridica de la mine, din Constanta. Asa ca va trebui sa suportati drumul pana-n Constanta. De asemenea, berea o voi da intr-un local cu intrare ce costa cel putin 30 de lei ... asta este implementarea gresita de open source. Acum, berile tot le dau.
Make software, not money
Zilele astea voi pune si noul site RadGs, orientat catre mai multa informatie.
Astea fiind spuse, voi trece la un alt subiect - lumea software-ului, acolo unde este ea astazi.
Am inceput printr-o discutie cu un fost coleg de facultate, unul din categoria putinilor programatori pasionati ramasi si, discutand de Android 2.0, si de bull****-ul de marketing din jurul lui imi spune:
"De ce .NET e la versiunea 3.5 si Java la 1.6 ?"
Si ... habar nu am ... totul a pornit de la faptul ca eu vreau sa schimb o versiune a Concept-ului (avand in vedere ca sunt peste 1000 de build-uri). In final, tot la marketing ajungem.
Pana si open source-ul a ajuns tot acolo ... marketing. Mai mult, open source-ul vad ca e din ce in ce mai mult asociat cu Linux-ul ... (nu cu Windows-ul, nu cu BSD-ul si nici cu cele N alte sisteme de operare open source). Cert e ca trebuie sa recunoastem: pentru end-user cel putin, cea mai comoda solutie ramane una proprietary. Ghiceste cineva care ?
Bun, sa revenim la open source. Eu propun urmatorul model:
open source = pasiune
pasiune <> bani
deci open source <> bani ceea ce rezulta intr-un model de business confuz.
Tot colegul meu, cel "anti-open source" imi zice ca exista open source facut de nebuni pasionati si open source facut ca o alternativa de monetizare a unui produs inferior... si bine zice.
Acum cateva zile explicam cuiva la LOAD, faptul ca sunt o gramada de afaceri gandite prost din start. Mintea mea de oligofren vede lucrurile asa: X ajuta comunitatea, iar aceasta isi manifesta recunostinta. Cum ? Plantindu-l. Un model simplu, ce a devenit complex, astfel in initierea unei afaceri (si da, includ ai si afacerile bazate pe open source) se are in vedere in primul rand profitul, astfel incat nu ne gandim "Cum ajutam comunitatea ?" ci "Cum maximizam profitul ?" ... oare, sunt asa de rupt de realitate ? Oare nu mai exista pasiune in ceea ce facem ci doar o foame nejustificata de bani ?
Din pacate open source-ul, asa cum il vad eu acum, in directia asta merge. Am vazut proiectele frumoase facute de studenti si nu vreau sa-i includ si pe ei in aceasta categorie. Cred ca ei sunt singurii ce mai au entuziasmul necesar.
In final, open source-ul tinde sa nu aduca mare lucru in plus fata de proprietary ... faptul ca un "client" are sursele nu inseamna mare lucru. Cei ce sunteti programatori, stiti bine asta. Ideea ca preia "open source-ul" si plateste consultanta, iar daca nu e multumit, poate merge la X eu zic ca-i cel putin ipocrita. O sa le spun de fapt solutii "open source proprietary". Cred ca asa ar fi corect.
Imi pare rau sa spun asta, dar in cele mai multe cazuri, open source-ul ajunge sa fie mai scump decat o solutie proprietara, daca clientul nu este atent. Mai mult, facem un pariu ? Sunt convins ca multi "cumparatori" de servicii peste open source, habar nu au ce-i ala open source... in final, open source cred ca ramane doar o strategie de marketing.
Mai e si tanti de la LOAD...
In sala, era o tanti, probabil lucreaza la o banca... era asa de suprinsa de modelul de business propus de open source ... si intreaba la un moment dat cum se plateste open source-ul si as fi vrut sa-i raspund "se plateste, chiar daca-i free software ... ba chiar se plateste ori de cate ori este nevoie".
Comentati. Dau 10 lei sau 2 beri primelor 10 comentarii ... in final, se poate si "free as in free beer". Berea sau banii se ridica de la mine, din Constanta. Asa ca va trebui sa suportati drumul pana-n Constanta. De asemenea, berea o voi da intr-un local cu intrare ce costa cel putin 30 de lei ... asta este implementarea gresita de open source. Acum, berile tot le dau.
Make software, not money
Subscribe to:
Posts (Atom)