sâmbătă, 29 noiembrie 2008

[offtopic] Leonardo Da Vinci - Invenţiile unui geniu

Saptamana trecuta am reusit sa ajung in sfarsit la expozitia "Leonardo Da Vinci - Invenţiile unui geniu". Spun in sfarsit pentru ca de la inceputul lunii octombrie de cand s-a deschis am tot vrut sa merg si n-am apucat.

Este vorba despre o expozitie cu machete realizate din lemn dupa schitele lui Leonardo da Vinci. Sunt cam 40 exponate, unele reprezentand masini care au fost sau sunt inca folosite, altele - mecanismele care stau la baza acelor masini.

Las pozele sa vorbeasca:


Fierastraul  hidraulic
Fierastraul hidraulic: Curentul apei mobilizeaz roata, care la randul ei actioneaza fierastraul in sens vertical si provoaca avansarea caruciorului spre trunchi. Acest tip de fierastrau se mai foloseste inca in regiunile alpine.




Bicicleta
Bicicleta: Schitele acestui desen poarta semnatura elevului Sallai. Acest lucru, impreuna cu trasaturile desenului si lipsa particularitatilor, sugereaza ca schitele descoperite nu ii apartin lui Leonardo, ci elevului sau care probabil a vazut un model al bicicletei in atelierul maestrului.




Burghiul hidraulic
Burghiul hidraulic: Cu acest burghiu actionat de o roata hidraulica orizontala, Leonardo indica un mod de prelucrare a lemnului in vederea realizarii de tuburi.




Parasuta
Parasuta: Acest proiect demonstreaza cat de ingenioase si avangardiste au fost ideile lui Leonardo. Parasuta era construita din panza de in fixata pe un suport de forma piramidala, cu latura de 7m.




Rulmentul
Rulmentul: O serie de sfere interpuse intre doua suprafete in miscare evita frecarea si uzura celor doua suprafete. Si in acest caz Leonardo a perfectionat proiectul initial, creand o pista de miscare in forma de inel care sa permita sferelor sa se miste fara a veni in contact una cu cealalta.





Deltaplanul: Masinile de zbor concepute de Leonardo in tinerete sunt in general actionate de forta omului; in cea de-a doua parte a vietii, el intelege ca forta umana e insuficienta si decide sa foloseasca puterea vantului si a curentilor de aer. Deltaplanul este dotat cu o timona pentru controlul directiei de zbor.




Tancul
Tancul: Reluand ideea unui vehicul acoperit care sa penetreze liniile inamice, Leonardo concepe un vehicul greu, de forma unei broaste testoase, cu tunuri orientate de jur imprejur, ramforsat cu placi metalice. Problema mobilitatii o rezolva plasand in interior un sistem de manivele pentru invartirea rotilor actionate de opt oameni.






Cum functioneaza fierastraul hidraulic:




Expozitia va fi deschisa in foaierul Teatrului National de Opereta "Ion Dacian" pana pe 31 ianuarie 2009, zilnic intre orele 11-22. Un bilet intreg costa 20 lei, iar elevii si studentii au o reducere de 50%.

miercuri, 26 noiembrie 2008

XSL(T)

Acest articol vine in ajutorul celor mai putin familiarizati cu utilizarea limbajului XML si posibilitatile sale, in special folosirea fisierelor de tip stylesheet XSL.


Scurta descriere:

XSL este o prescurtare a eXtensible Stylesheet Language si a fost creat pentru ca se dorea un limbaj care sa descrie un fisier de stil pentru paginile xml.
Daca pentru HTML stylesheet-urile se realizeaza folosind CSS (Cascading StyleSheet), aceste fisiere insotind fisierele HTML, pentru fisierele XML nu exista un limbaj care sa permita definirea unui stil.

In HTML tagurile sunt fixe si fiecare browser stie sa afiseze aceste taguri, pe cand in XML se pot folosi orice taguri, iar browserele nu mai stiu cum trebuie afisata informatia, prin urmare se introduc fisierele XSL, care ajuta la descriea modului in care urmeaza sa fie afisate datele.

XSL este reprezentat de fapt prin 3 limbaje:
- XSLT(XSL Transforms) – un limbaj de transformare a documentelor XML
- XPath – un limbaj de descriere a structurii documentelor XML (de navigare in aceste documente)
- XSL-FO (XSL Formating Objects, numit astazi XSL) – un limbaj de formatare a documentelor XML


Cum se foloseste?

Pentru ca browserul sa stie ca afisarea xml-ului se face folosind un stylesheet de tip XSL in fisierul XML trebuie adaugate urmatoarele linii la inceput, inainte de continutul de date al fisierului:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml:stylesheet type="text/xsl" href="studenti.xsl" ?>

Fisierul XSL va contine urmatoarele randuri:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
........
</xsl:template>
</xsl:stylesheet>

Cel mai important element intr-un document XSLT este elementul <template>, care reprezinta o regula folosita in pattern matching. Acest element are urmatoarea forma generala:
<xsl:template match=”expresie XPath”>
continut dupa transformare
</xsl:template>
Aceasta formulare cauta elementele ce fac match pe expresia XPath data si inlocuiesc rezultatul intors in expresia dintre taguri, modificandu-i astfel modul de afisare (se pot afisa doar anumite campuri/atribute, se poate face un tabel, o lista, etc)

In cadrul tagului template se poate face selectarea mai multor elemente ale fisierului folosind o bucla for-each:
<xsl:for-each select="expresie XPah">
In plus, in interiorul acestei bucle se poate face o sortare de elemente folosind elementul <xsl:sort order="ascending/descending" select="expresie XPath" />, unde expresie XPath selecteaza campul/atributul dupa care se va face sortarea elementelor obtinute.
Un alt element ce merita precizat este <xsl:if>, care va permite executarea actiunilor din interiorul tagului doar in cazul indeplinirii conditiei continute. Un exemplu de folosire:
<xsl:for-each select="grupa/student">
<xsl:if test="varsta!='2 ani'">
actiuni
</xsl:if>
</xsl:for-each>
O alternativa pentru aceasta constructie este elementul <xsl:choose>, similar cu "switch" din limbajele de programare. Exemplu:
<xsl:for-each select="grupa/student">
...
<xsl:choose>
<xsl:when test!='2 ani'>
<B><xsl:value-of select="varsta"/></B>
</xsl:when>
<xsl:otherwise>
<I><xsl:value-of select="varsta"/></I>
</xsl:otherwise>
</xsl:choose>
Acest fragment va face ca studentii selectati sa fie afisati fie cu bold, fie cu italics, in functie de varsta lor.

Indicatii pentru laborator:
- folositi Mozilla; Internet Explorer nu vede corect fisierele transformate prin metoda XSL
- incadrati rezultatul intors de fisierul XSL de tagurile <HTML><BODY>...</BODY></HTML>, pentru a se crea un fisier ce poate fi vizualizat de browser


Sa parcurgem acum si laboratorul, pentru cateva observatii:
1. Afisati sub forma xHTML tabelat, continutul librariei. Capul de tabel trebuie sa contina campurile: ID | URL | Title | Authors | ISBN | Labels
Dupa cum se stie, pentru a crea in HTML o tabela se folosesc tagurile <TR></TR> (table row) ptr un rand si <TD></TD> (table data cell) pentru o celula in cadrul randului.
2. Aceeasi cerinta ca la 1) doar ca se cere sortari dupa anumite coloane (title, isbn,etc)
Aici se va folosi elementul de sortare prezentat mai sus.
3. Pentru importul de carti de la prieteni, avem nevoie de o lista de ISBN-uri:
- listati doar ISBN-urile pentru a putea fi usor introduse pe site
Se poate construi o singura coloana de tabela, sau o lista de elemente:
- <OL> ordered list
- <UL> unoredered list
, fiecare continand elemente de tip <LI> (list element).
4. Transformati fisierul sursa xml intr-un alt fisier xml cu unele modificari:
adaugati la fisierul xml doar anumite carti
Se va folosi constructia <xsl:if>, pentru care aveti si un exemplu mai sus.


Succes...

marți, 25 noiembrie 2008

Salarii din IT

V-ati gandit vreodata cam care ar fi salariile din domeniu IT? Care sunt ofertele pietii momentan? 
Dar sa vedem ce spun sondajele pentru 2008.
O placinta clara si gustoasa mai jos vorbeste de la sine:

Concluzie: daca esti angajat in Bucuresti poti castiga cu 30% mai mult decat daca ai fi in Cluj sau Timisoara si aproape dublu decat daca ai fi ales Constanta, Galati, Mures sau Oradea !!!

Unde e mai bine: la o companie straine sau una romaneasca???

Alta intrebare al carui raspuns cred ca e destul de evident. 
As putea sa lucrez pentru stat sau pentru o companie privata….Ce sa fac??
 
La stat: pierde lupta 
La patron: se gastiga aproape cu jumatate mai mult decat la stat!! Iar daca esti manager poate chiar si de 3 ori mai mult. Hai sa fim toti manager:P

Concluzie: daca lucrezi pentru o companie straina vei avea un salariu cu pana la 25% mai mare decat daca decizi sa fi patriot si sa lucrezi pentru una cu capital romanesc.


Ce e mai bine: un colectiv restrans sau mare (mai mult de 50 de persoane)???

Datele obtinute afirma ca numarul personalului nu conteaza asa mult cand e vorba de domenoul tehnic.

Dar daca ajungi sa fii manager poti avea cu pana la 30% mai mult intr-o companie mare.


 
Daca vreti sa vedeti si salariile efectiv pe domenii le gasiti  pe linkul de mai jos:
(datele sunt reale si pentru mai multe detalii puteti verifica si http://ghidul-salariilor.ro/salarii_2008.html)

luni, 24 noiembrie 2008

Retele sociale = retele de prieteni?

Oare cati intre noi au primit o cerere de prietenie de la un necunoscut pe una din retelele sociale si au acceptat? Cati au acceptat cu buna stiinta si cati au acceptat din greseala/neatentie/graba?

Nu pot sa spun ca am fost spam-ata la greu cu astfel de cereri, dar am avut cateva experiente mai dubioase care m-au facut sa fiu reticenta la astfel de invitatii. Spre exemplu, acum cativa ani am primit "add" la YahooMessenger de la un necunoscut. Am acceptat fara sa ma gandesc, am inceput sa vorbesc cu respectivul - la inceput chiar entuziasmata ca puteam sa imi mai exersez engleza -, insa foarte repede am aflat scopul sau, pentru care era dispus sa imi trimita si o camera web. Ce-i drept nu mi s-a parut periculos tipu, a zis de la inceput ce vrea si cand i-am zis ca nu ma intereseaza m-a lasat in pace, dar totusi nu vad de ce a trebuit sa imi dea mai intai "add". In aceeasi perioada am mai adaugat vreo 3 persoane, care erau ok, insa oricum nu am vorbit cu ei decat cateva zile, so why add them? Asa ca m-am hotarat sa nu mai dau "add" decat la cunoscuti.

Peste un timp a aparut un anume "mariusex" care voia sa ma adauge in lista lui de prieteni la YM. I-am dat de 2 ori deny explicandu-i ca vreau sa imi zica mai intai cine e si ce vrea, insa nu mi-a raspuns, dar a continuat sa imi dea "add". Mi-a trimis chiar si invitatie de prietenie la Netlog. I-am dat ignore si pana la urma am scapat de el.

In perioada aia am tot cautat informatii despre Yahoo Search Directory, sa imi dau seama cum au dat oamenii aia de mine. Eu nu m-am gasit, nu stiu cum m-au gasit ei..

Referitor strict la retele sociale: nu am cont decat pe hi5. L-am facut la invitatia unor prieteni, apoi am adaugat pe toti cei care imi trimteau invitatie si pe care ii cunosteam. Am refuzat un tip care cred ca facea colectie de "prietene" (avea cateva sute (mii?) de prietene si nici un prieten). Inca am cateva invitatii pending - oameni pe care mi-au trimis invitatie desi nu ii cunosc. Ultimul se numeste "cuculot lolozaur", are o poza cu Brad Pitt si mai multi prieteni, dintre care 5 sunt comuni. Inca n-am vrbit cu cei 5 prieteni comuni sa aflu cine este "cuculot lolozaur", dar tare sunt curioasa daca ei il cunosc sau au dat pur si simplu "add" fara sa se uite.

Si atunci ma intreb: pana la urma ce rol mai au retelele sociale? Doar sa construiasca grafuri oarecare intre diversi oameni? Daca vreau sa adaug pe cineva ca prieten la hi5 sunt informata ca:

"Eşti pe cale să adaugi pe X ca prieten. X va fi anunţat(ă) şi va trebui să confirme că sunteţi prieteni.(...)
Continuă doar dacă eşti prieten cu X.
"

Desigur, mesajul ese doar informativ, practic oricine poate adauga pe oricine. Dar de ce as adauga pe cineva pe care nu il cunosc? Am primit o cerere de prietenie de la cineva despre care mi-am putut da seama din profil ca face parte dintr-un grup din care fac si eu parte. De asemenea, de curand am primit o cerere de la o fosta colega, bune prietene in clasele primare, dar cu care am pierdut legatura dupa plecarea ei din tara. Pentru astfel de legaturi consider folositor hi5. Dar altfel mi se pare inutil, si pe alocuri exasperant ; si aici dau exemplul unei prietene urmarita de 3 ani de zile de catre un baiat care, dupa ce i-a descoperit profilul pe hi5, i-a trimis mesaje in nestire.
Sigur, nu Hi5 este vinovat, ci persoana in cauza, dar tocmai asta e intrebarea: nu si-au extns retelele sociale prea mult rolul? Prietenii nu se fac cu un click din maus; relatiile de prietenie se nasc si se consolideaza in timp.

Poate nu are legatura, dar mi-am adus aminte de un banc:

Q: De ce nu vorbeste o blonda in timp ce face sex?
A: Pentru ca mama i-a spus sa nu vorbeasca cu strainii.