28 d’octubre 2006

Autopackage per a Ubuntu 7.0

Un dels majors defectes que li trobava a les distribucions Linux acaba de desaparèixer gracies a aquesta novetat. Es tracta del Autopackage que permet instal·lar fàcil i còmodament qualsevol aplicació en Ubuntu.

Aquest aplicatiu que vindrà en la nova versió de la famosa distribució de Linux (
Ubuntu 7.04) es semblant al “Agregar/Quitar programes” de Windows. Es tan senzill com fer doble clic sobre els instal·lable i ell s’encarrega de posar-ho tot en ordre, buscant inclús les dependencies que fan falta per el funcionament del que estiguis intentant instal·lar.

Tot i que en les ultimes versions de Linux ja havien avançat enormement en aquest camp (podies instal·lar fàcilment programes que estiguessin inclosos en la pròpia distribució o instal·lar paquets i dependencies manualment i sense gaires complicacions, els .Deb eren molt fàcils d’instal·lar...) si no tenies uns bons coneixements de Linux, afegir qualsevol programa que no vingués instal·lat o referènciat de sèrie era un calvari.

Els mes puristes segurament posaran el crit al cel, però ells sempre poden utilitzar la línia de comandes com han fet sempre.
Autopackage per els nou vinguts serà una opció molt interessant que segur que ajudarà a migrar molta gent interessada en aquest S.O i que com jo, no ho feia per aquest tipus de dificultats.

Ara mateix nomes resten un parell de inconvenients (sota el meu punt de vista) al Linux per no pensar-m’ho ni un minut a migrar:

- La poca seguritat que encara don al passar informació entre les particions de

Windows <-> Linux (vaig llegir que ja havien aconseguit escriure en FAT des de Linux però segurament encara esta massa verd, i no m’agrada fer de conillet d’índies).

- I segurament la mes important, es la falta de suport i dedicació dels fabricants de hardware a l’hora de fer drivers dels seus productes per al S.O del pingüí. En aquest moments al comprar-te un ordinador nou no tens caps seguretat de que trobis drivers per als teus components. Gracies a la comunitat Linux al cap d’un temps acaben apareixen però al principi es un problema que frena força.


Aqui us deixo un video on podeu apreciar la facilitat d'us del Autopackage.

Font: Barrapunto

22 d’octubre 2006

Google toolkit web + PHP

Com alguns ja sabreu estic començant a fer el projecte de final de carrera utilitzen algunes de les eines (Google Toolkit Web) que ens proporciona Google.

Al començament em vaig trobat amb dos problemes importants.

El primer era que no sabia exactament quins eren els objectes que podia posar, per a que servien o quines propietat i limitacions tenien. Una possible solució era aprendrem la API de memòria, però per sort vaig trobar una espècie de IDE per desenvolupar amb GTW (Google Toolkit Web). Aquesta aplicació (
VistaFei) es força util doncs et dona una idea bastant clara del que es pot fer i de les possibilitats que tens.

La segona em va proporcionar grans moments de desesperació. Esta molt be que et donguin una manera de programar en AJAX molt mes senzilla i estructurada però no em serviria de res sinó podia llegir d'una base de dades en temps d’execució.
Una primera aproximació (la mes útil i mes còmode) va ser la que m’oferia
aquesta web on s'explica un dels exemples que et pots descarregar de la web de Google . Es tracte d'utilitzar unes classes anomenades JSON, i que resumint el seu funcionament serveix per passar informació entre dos llenguatges (en aquest cas AJAX i PHP).

Així doncs el primer que s'ha de fer es descarregar-se la classe JSON en PHP. La podeu baixar
d'aqui. La sintaxi es tremendament senzilla. Us dong un exemple:

require_once("JSON.php");
include ("Conexio.php");
$conexio=Conectat();
$busqueda=mysql_query("select * from categories", $conexio);
$i=0;
while ($dades=mysql_fetch_array($busqueda))
{
$vector[$i]=$dades[1];
$i++;
}
mysql_close($conexio);
$json = new Services_JSON();
$output = $json->encode($vector);
print ($output);


Fins aquí tot perfecte, però aquí comença lo mes complicat. Com li diem a GTW que recuperi aquestes dades.

En la pròpia API ja venen incorporades les classes JSON necessàries, per tant no ens haurem de buscar tant la vida.

Per poder capturar les dades que em imprès en el full php, primer de tot accedir al full. Això ho farem mitjançant la funció "HTTPRequest.asyncGet".
Aquesta funció necessita 2 paràmetres. El primer es la URL que ens proporcionarà les dades i l'altre es un objecte d'una classe que implementi la interfície "ResponseTextHandler" que serà el que realment llegirà les dades.

Aquesta interfície t’obligarà a implementar la funció següent:
"public void onCompletion(String responseText)"

Serà cridat automàticament quan es generi l'event al connectar-te a una web. Així doncs en aquesta funció es obligatori escriure (podeu canviar el nom de la variable ;-) ):
"JSONValue jsonValue = JSONParser.parse(responseText);"

Heu de tenir molt en compte que l'objecte de la classe que implementi la interfície anterior, s'ha de crear en la mateixa funció HTTPRequest.asyncGet. Per exemple:

HTTPRequest.asyncGet("
http://192.168.1.3/prova.php", new CapturadorEtiquetes());

Això obliga a tractar les dades recuperades en la mateixa crida onCompletition ja que un cop hagueu sortir del àmbit del objecte haureu perdut tota d’informació. Tampoc servirà guardar-la en una variable externa a la classe ja que passa el mateix.

Així doncs la única sol•lució que he trobat es crear la classe com a classe privada dins la classe on tingueu declarades els widgets que hagi de modificar el ResponseTextHandle i tota manipulació de les dades rebudes del PHP fer-les dins aquesta classe. Això ens obligarà a crear classes diferents depenent dels propòsits que vulguem portar a terme amb les dades obtingudes.

Jo ho he fet així:

Classe Capturador (nomes extend les funcions de ResponseTextHandler i esta feta purament per comoditat)
public abstract class Capturador implements ResponseTextHandler
{

public void onCompletion(String responseText)
{
try
{
JSONValue jsonValue = JSONParser.parse(responseText);
fer(jsonValue);
}
catch (JSONException e)
{

}
}

public String treureComes (String origen)
{
return origen.replace('"',' ').trim();
}

public abstract void fer(JSONValue dades);
}

El que realment ens interessa es que en aquesta classe apart d'implementar "OnCompletition" (per no tenir-ho de fer en les següents classes)obligo a totes les classes que derivin d'aquesta a implementar la funció "fer" que es la que realment farà quelcom amb les dades obtingudes.

Ara, cada vegada que vulguem fer algú diferent amb les dades obtingudes del PHP nomes haurem de crear una classe dins de la principal (on s'implementi EntryPoint ) que implementi de "Capturador" i on nomes haurem d’especificar en la funció "fer" com manipularem les dades.


Espero que tot això us serveix. Si no us queda prou clar, aquí teniu el l'enllaç d'on baixar-vos tot el codi del exemple. Veureu que es força senzill.

16 d’octubre 2006

Exemples de l'incompetència

Fa 4 anys (abans d'entrar-hi) pensava que la facultat era un oasis en mig de la ineptitud general que camina per tot arreu, on les coses funcionaven amb precisió suïssa doncs estaven dirigides per gent amb estudis superiors, doctorats, etc... i que els alumnes universitaris era gent de be, competents i voluntariosos entre els quals jo em sentaria com l’ovella negre. Francament, no hagués segut gaire difícil no defraudar-me. Les meves dues ultimes èpoques estudiantils, no s’havien regit precisament per l’organització, coordinació i bones maneres de la gent amb la que em topava (tant professors i persones de les administracions com per el meus companys de classe).

Els primers anys de FP, vaig topa amb professores histèriques (no les culpo, tenien que aguantar molt), secretaries que et podien deixar esperant perfectament 10 min mentres parlaven tranquil·lament per telefono amb el noví de torn, vòmits a les parets del bar del institut que portaven allí exactament el mateix temps que nosaltres (per els que no ho recordin, FP durava 5 anys i quan jo vaig acabar encara hi eren) i alumnes eren capaços de fer servir una taula com si fos un monopatí.

Els dos anys del cicle, van ser mes calmats, però potser amb un major greu d’incompetència. Sense anar mes lluny vem aprendre VB amb un "professor" que tenia una carrera en papereria (no es broma, no), que no es movia de la cadira ni per explicar i que puntuava per carisma. No mes competent era la cap d’estudis que permetia que un espessiment com aquest estigues donant estudis superiors, i que tenia el valor de donar-nos un full amb el temari del curs que realment semblava prometedor, per desprès no anar mes enllà de muntar un sistema de comunicació per senyals de fum.

Casi em deixo lo millor... una empresa important va venir a buscar programadors a aquest fantàstic centre. Per queda bè es va pensar que s’enviarien els 4 millors alumnes del curs. Per raons X cap dels 4 va poder anar a treballar a aquesta empresa. Lo lògic es que haguessin anat els següents 4 millors... doncs com es comú en el mon en el que en moc (ja em direu si els demes mons també son així) , el sentit comú no va fer acte de presencia i es va passar a enviar a els 4 mes "amiguitos" del profe que feia la tria, que no eren ni de lluny, els 4 millors. Com veieu millorar no era especialment complicat.

Doncs b, tot i estar força lluny dels dos casos anteriors, la universitat no esta dirigida per gent gaire mes competent. Us il·lustraré amb uns exemples:

- Obrir la web on els alumnes s’han de registrar per poder escollir horari i grup en les practiques 1h mes tard del promès (normalment es fa de matinada, per lo que es una hora menys de son que pert l'alumnat) i s’ha d’estar vigilant per poder agafar l’hora que et vagi menys malament per el teu horari.

- Canviar l’horari de les assignatures passada una setmana del inici de les classes. (Et pot arribar a tirar tot l’horari que haguessis muntat i que desprès set sopalin assignatures de les quals t’hagis de des-matricular, amb el seu recàrrec bancari corresponent). De que serveix gastar fulls en fer una guia si desprès no et pots fiar?.

- No presentar-se a classe sense avisar, ni donar senyals de vida. (Els alumnes no tenen res millor per fer i viuen a 5 min de la facultat).

- Que dos professor de la mateixa assignatura no siguin capaços de posar-se d’acord en l’hora que començen les classes de practiques i quan arribin la meitat dels alumnes ja s’hagi explicat tota la practica i s’hagin de buscar la vida per saber, que, com i quan s’ha de fer les coses, perquè el professor de torn es nega a tornar-ho a explicar.

- Com sembla que tot s’enganxa menys la bellesa, els companys que havien arribat 30 min abans en comptes de buscar els seus companys de practiques, s’han sentat cada un en un ordinador diferent (com si fossin autistes) de manera que quan hem arribat els demes era impossible posar-te en un ordinador amb el teu company de practiques, perquè no en quedava cap amb dos seients lliures.

- Desprès de 1 mes i mig enviant e-mail's reclamant el certificat d’uncurs de lliure elecció, et diguin que s’han perdut les notes. Quan per fi aconsegueixes el paper ja es massa tard i tot i estar en època de matricules la senyoreta de secretaria et digui que no t’ho pot convalidar fins dintre de 4 mesos, perquè ja s’ha acabat el termini.

- Com pot ser que un professor universitari sigui incapaç d’ajudar-te en un problema que tens en una practica enviada per ell mateix i que acabis descobrint que ell no sap gaire mes del que ha explicat a classe, fins el punt d’afirmar coses que desprès pots demostrar que son falses.

- Perquè s’agafen professors estrangers que no parlen bè el nostre idioma (ja no dic el català, sinó ni tants el castellà) per donar assignatures universitàries. No en tenim prou amb la dificultat de la matèria que a demes em de concentrar-nos mes en entendre el que diu que en assimilar conceptes?

- Com es que donen classes professors que no s’ha apliquen ni els seus propis consells, i venen a classe sense saber, no ja com es fa la practica, sinó ni tant sols que ha de fer.

Segurament podria posar mes exemples (per exemple en el camp professional us podria explicar un bon grapat mes), però no vull avorrir-vos mes...


Esperem que nosaltres no acabem un dia dintre del mateix grup que els esmentats





02 d’octubre 2006

Anàlisi dels 8 llenguatges de programació amb més demanda

Goood Moorning!

Avui us porto un interessant anàlisi dels 8 llenguatges de programació amb més demanda del mercat espanyol segons un estudi d'estar per casa d'un navegador que ha mirat l'oferta de feines que hi ha en alguns dels principals portals d'Internet: infojobs

En el link de la font trobareu informació més detallada d'on he extret aquest post.
Que aprofiti!!


  • PHP (Hypertext Preprocessor)
És bo apendre'l perquè és un dels lleguatges més populars, la seva fluïdessa i la rapidessa
dels seus scripts i el seu prometedor futur el fan molt apte per desenvolupar aplicacions
Web.
més informació: http://www.php.net

  • C# (C Sharp)
És una part essencial de la plataforma .Net, C# combina els millors elements de múltiples llenguatges d'àmplia difusió com són: C++, Vaja, Visual Basic o Delphi.
L'idea principal darrera d0aquest llengutage és combinar la potència de llenguatges com C++ amb la senzillessa de Visual Basic i que la migració de C, C++ i Java sigui quasi inmediata.
més informació: Microsoft

Curisositat: el seu creador, Anders Heljsberg, va ser el creador també de Turbo Pascal, Delphi o Visual C++.

La demanda d'AJAX no només és àmplia sino que de qualitat segut a la dificultat d'aquest llenguatge. Si l'eina de Microsoft Atlas destinada a l'aplicació AJAX té èxit això suposarà un important augment de demanda en aquest camp.

La raó de major pes es que és utilitzat per milions de pàgines web per validar formularis, crear cookies, detectar navegadors i millorar el disseny. El seu fàcil aprenentatge el fa un llenguatge molt sol·licitat.
més informació: http://www.javascript.com/

La potència del Perl a l'hora de processar grans quantitats de dades el fa realment popular a l'hora de desenvolupar aplicacions del costat del servidor, aprendre Perl o PHP és bàsic a l'hora
de desenvolupar aplicacions Web.

Aprendre C és bo ja que alhora que ho fas aprens també altres llenguatges com Java o C# ja que comparteixen la seva sintaxis.

Simple i funciona, l'us d'Active Record de forma eficient cimplifica i agilitza el desenvolupament de forma notable. Al minimitzar el treball amb la base de dades (escrivint triggers i procediments emmagatzemats) i emplear un únic llenguatge per tot el desenvolupament es consegueix minimitzar el temps de desenvolupament (time2market)
més informació: http://www.rubyonrails.org.es/

L'intent de Microsoft per introduir-se en el mercat de les pàgines Web el fa molt popular i no està de més saber-ne.
més informació: http://www.asp.net/


font: tufuncion.com

01 d’octubre 2006

La Ministra de Cultura demana
"el dominio de la Ñ"

Acabo de llegir un article d'un coneguit diari que la ministra de cultura (que més haviat en té poca) vol demanar a Bill Gates "el dominio de la Ñ en la red" aprofitant que vindrà a Espanya per què se li concedeix el premi Princep d'Asturies de Cooperació Internacional.

A més també va dir "los gestores de la cultura debemos hacer cosas más llamativas"...en fi, us deixo que penseu en aquestes paraules i per qui vulgui saber alguna cosa més d'aquest tema podeu veure el següent enllaç per a que veieu què vol demanar la ministra.

font: La Vanguardia