You are on page 1of 49

#0

5)
6/utterfly7

AO 0 NMERO 0 2012-11-05

HD DEVELOPERS +
Hackers &
Magazine digital de distribucin mensual sobre Software Libre, Hacking y Programacin

Staff
Celia Cintas Licenciada en Informtica *ugenia /a0it %r1uitecta 2L%MP %gile Coac0 *liana Caraballo Ingeniera de Sistemas +illy Programadora Indira /urga Ingeniera de Sistemas Milagros Infante *st( Ingenier3a Informtica Sorey 2arc3a %r1uitecta de Software 4ecely !3az Maestra en Inteligencia %rtificial

Hackers !e"elo#ers Magazine se distribuye ba$o una licencia Creati"e Commons %tribucin &oComercial Com#artirIgual '() *res libre de co#iar, distribuir y com#artir este material( +,** %S I& +,**!-M.

HD DEVELOPERS +
Acerca de
Hackers !e"elo#ers es un Magazine digital de distribucin libre y gratuita, sobre Software Libre, 0acking y #rogramacin( Se distribuye mensualmente ba$o una licencia Creati"e Commons(

Hackers &

#0

Este mes en Hackers & Developers...


4 a0ora 81u9 +ramework PHP usar9: (((((((((((((((((((((((((((((((((((((((((((((((((((' Creando una ca#a de abstraccin con PHP y mys1li((((((((((((((((((((((((((((((; 8Por 1u9 Pyt0on:(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( <= *m#ezando con 2oogle %## *ngine((((((((((((((((((((((((((((((((((((((((((((((((((((<> ?0e Hitc00iker Pyt0onits@s 2uide to t0e 2alaAy((((((((((((((((((((((((((((((((((BC 2&DELinuA Ser"ersF ?ricks ?i#s(((((((((((((((((((((((((((((((((((((((((((((((((((((('< Contribuyendo en el e1ui#o de traduccin al es#aGol de 2&-M*(((((('= 8La crisis del software:(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( 'H Las cuentas claras y el #roceso de desarrollo concreto (((((((((((((((((((((((=B La Ieb Semntica y sus -ntolog3as (((((((((((((((((((((((((((((((((((((((((((((((((((=C D.(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( =>

Cola ora
8Juieres colaborar con H! Magazine: KHay "arias formas de 0acerlo. *n"3a tu art3culo Puedes en"iarnos tu art3culo a colaboraL0dmagazine(org !istribuye la re"ista %yMdanos a llegar a ms #rogramadorasEes distribuyendo la re"ista a tus contactos o #ublicando enlaces a w w w(0dmagazine(org en las redes sociales( Haz un donati"o Puedes a#oyar a H! Magazine *conmicamente( *n"3anos tu #ro#uesta aF donacionesL0dmagazine(org

... Hacker es alguien que disfruta jugando con la inteligencia...


Richard Stallman
Free Software, Free Society Pg. 97, GNU Press 2 ! "2 !2

Contacta
Si lo deseas, #uedes en"iar tu consulta a contactoL0dmagazine(org #ara 1ue una de nuestras eA#ertas, te res#onda en el siguiente nMmero( ?ambi9n #uedes en"iarnos tus comentarios, sugerencias u o#iniones sobre la re"ista, escribi9ndonos a lectoresL0dmagazine(org

ASCII ART

Este mes: Butterfly by chris.com >> Pg. 48

_______ LLLLLLLLLLL __LLLLLLLLLLLLLL LLLLLLLLLLLLLLLLL _LLLLLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLL _LLLLLLLLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLLLL L _LLLLLLLLLLLLLLLLLLLLLLL LL LLLLLL~~~LLLLLLLLLLLLLL _L _LLLLL LLLLLLLLLLLLL L~ LLL~ LLLLLLLLLLLLL LL _LLL _LL LLLLLLLL LL LL~ ~~ ~LLLLLL L _LLL_LLLL___ _LLLLLL LL LLLLLLLLLLLLLL LLLLLLLL L LLLLLLLLLLLLLLL LLLLLL LL LLLLLLLLLLLLLLLL LLLLL~ LLLLLLLL_______ L _LLLLLLLLLLLLLLLL LLLLLLLL ~~~~~~~LLLLLLLLLLLLLLLLLLLLLLLLL~ LLLLLL ______________LLL LLLLLLLLLLLLLL ______LLLLLLLLL_ LLLLLLLLLLLLLLLLLLLL LLLLLLLL~~LLLLLLL~~~~~~ ~LLLLLL ___LLLLLLLLLL __LLLLLLLLLLLLL LLLLLLLLLLLLL____ _LLLLLL_ LLLLLLLLLLL~~ LLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLL ~~~LLLLL __LLLLLLLLLLL _LLLLLLLLLLLLLLLLL_ LLLLLLLLLLLLLLLLLL_ LLLLL LLLLLLLLLLL~ LLLLLLLLLLLLLLLLLLL ~L ~~LLLLLLLLLLLLL LLLLLL _LLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLLL_ LL LLLLLLLLL LLLLLLLLL LLLLLLLLLLLLL LLLLLLLLLLLLL~LLLLLL~L LL ~~~~~ ~LLLLLL LLLLLLLLLLLLLLL__L LLLLLLLLLLLL_LLLLLLL LL_ LL_ _ LLLLLL LLLLLLLLLLLLLLLLL~ ~LLLLLLLL~~LLLLLLLL ~L ~LLLL ~L LLLLLL~ LLLLLLLLLLLLLLLL _LLLLLLLLLL LL LLLLLLL___ LLLLLLLLLL LLLLLLLLLLLLLLLL LL~LLLLLLLL~ LL LLLLLLLLLLLL LLLLLLL~ LLLLLLLLLLLLLLLL_ __L _L LLLLLLLL LLL_ LLLLLLLLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLL L~ LLLLLLLL LLLLLLL~LLLLLLLLLLLLLLLL~ LLLLLLLLLLLLLLLLLLLL___L_ LL LLLLLLL LLLL LLLLLLLLLLLLLL ~~LLLLLLLLLLLLLLLLLLLLLLLL LLLLL~ LLLLL ~~~~~~~~~ LLLLLLLLLLLLLLLLLL_ _ LLL _LLLLL ~~~~~~LLLLLLLLLL~ LLLLLL LLLLL _LLLLLL LLLLL L L LLLLLLL LLLLL__LL _L__LLLLLLLL LLLLLLLLLL LLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLLLL ~LLLLLLLLLLLLLLLLL~~ LLLLLLLLLLLLL ~~~~~~~~~

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

& a'ora ()*+ ,rame-ork PHP *sar+.

Hace m*c'os a/os tom+ la dec$s$0n de espec$al$#arme en el desarrollo de So1t-are -e 2 me volv3 41ree5 6espec31$camente con el len"*a7e PHP6. Por s*p*esto8 $n$c$+ los 4p$n$nos5 con la pro"ramac$0n estr*ct*rada 6como la ma9or3a6. !$entras $ a desarrollando m:s apl$cac$ones me da a c*enta de )*e tra a7a a de manera desordenada 9 )*e e;$st3a m*c'a red*ndanc$a de c0d$"o8 por s*p*esto a'3 conoc3 POO 9 por ende )*+ es *n ,rame-ork <=> 98 cas$ $nstant:neamente v$ la l*#.

Escrito por: ?nd$ra @*r"a (Ingeniera de Sistemas)


Indira es ?n". de S$stemas de Per. Gestora de Proyectos de desarrollo de soft are, pro"ramadora PHP, analista, n!e"a amante de las metodolo"3as A"$les. A#ora en"!elta en !na n!e"a a"ent!ra$ s! %ro%ia em%resa &?C Pro7ects& dedicada al desarrollo de Soft are.
Be sC A'o!t.me$ #tt%$((a'o!t.me(indira'm Redes soc$alesC ) itter$ D$nd$ra m

a mayor*a de los %rogramadores %refieren tra'a+ar con !n frame or,, !na de las m-s grandes ra.ones es %or/!e nos facilita el desarrollo de soft are, e"itando reescri'ir el mismo scri%t, adem-s de contar con el so%orte de !na com!nidad (0) /!e est- en constante mo"imiento me+orando y creando n!e"as li'rer*as /!e "algan "erdades. 1s !n ali"io tenerlas a la #ora de desarrollar. )am'i2n #ay /!e recordar /!e todos ellos !tili.an las me+ores %r-cticas, %or tanto %odremos centrar los esf!er.os en los re/!erimientos de cliente. Primero em%e.aremos mencionando /!e e4isten m!c#os frame or,s de P5P %ero /!e
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

PHP

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%ara elegir alg!nos #ay /!e tener en c!enta ciertos criterios, los mencionare a contin!aci7n$ Rap$de# H per1ormance, lo /!e %ermite al !s!ario !na me+or e4%eriencia en la e'. Separac$0n de v$sta 9 c0d$"o PHP, c!ando se tra'a+a !n %royecto tra'a+amos con dos ti%os de e/!i%os, los desarrolladores y los diseadores, los dos tra'a+an al mismo tiem%o %or lo tanto el frame or, nos tiene /!e 'rindar esa facilidad. Se"*r$dad, esto %ermitir- contar con los m*nimos re/!isitos de %rotecci7n contra ata/!es 9SS y 6S:;. Soporte de vers$ones, /!e so%orte la ltima "ersi7n de P5P. OR!(8), 6ontar con !na %ro%ia o en s! defecto /!e so%orte otras. Pop*lar$dad 9 tama/o de la com*n$dad , lo /!e m-s se reconoce de !n frame or, es el crecimiento /!e #a tenido, las n!e"as ideas, la cantidad y calidad de %l!gins, etc. C*rva de aprend$#a7e(<), recomenda'le %ara %oder me+orar t! ni"el de %rogramaci7n.

=n e+em%lo comn %ara "er la diferencia entre P>> y %rogramaci7n estr!ct!rada es$ si /!ieres "alidar !n e?mail /!e reci'es de !n form!lario, en "e. de tener /!e im%lementar toda esa %arte (y adem-s #acerlo 'ien) %!edes #acer !so de clases e4istentes en @end como Zend_Validate_EmailAddress(), y lo mismo %asa en los dem-s frame or,s$

Pro"ramac$0n estr*ct*rada
function comprobar_email($email){ $mail_correcto = 0; //compruebo unas cosas primeras if ((strlen($email) >= 6) && (substr_count($email,"@") == ) && (substr($email,0, ) != "@") && (substr($email,strlen($email)" , ) != "@")){ if ((!strstr($email,"#")) && (!strstr($email,"$"")) && (!strstr($email,"$$")) && (!strstr($email,"$$")) && (!strstr($email," "))) { //miro si tiene caracter % if (substr_count($email,"%")>= ){ //obten&o la terminacion 'el 'ominio $term_'om = substr(strrc(r ($email, #%#), ); //compruebo )ue la terminaci*n 'el 'ominio sea correcta if (strlen($term_'om)> && strlen($term_'om)+, && (!strstr($term_'om,"@")) ){ //compruebo )ue lo 'e antes 'el 'ominio sea correcto
$antes_'om = substr($email,0,strlen($email) " strlen($term_'om) " );

$caracter_ult = substr($antes_'om,strlen($antes_'om)" , ); if ($caracter_ult != "@" && $caracter_ult != "%"){ $mail_correcto = ; EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

if ($mail_correcto) return ; else return 0; -

POO
$email = $t(is">&et.e)uest()">&et/ost(#email#, #none@e0ample%com#); $1ali'ator = ne2 3en'_4ali'ate_5mail6''ress();

8Jue 0ay en el menM del d3a:


5oy %or #oy e4isten ?como lo mencionamos anteriormente? m!c#os frame or,s de P5P, %or cierto alg!nos %odr*an ser me+or %ara ciertos ti%os de desarrollo, la mayor*a de ellos c!m%len con m!c#os de los criterios /!e mencionamos, %ero listare los /!e a mi %arecer son los me+ores$

Jend ,rame-orkC 1ste frame or, es ro'!sto con m!c#as li'rer*as y /!e claro tiene como res%aldo a @end la em%resa creadora de P5P, lo c!al le da m!c#a m-s sol"encia, algo /!e tiene @end /!e no los dem-s es el desaco%lamiento (A) c!enta con !na l*nea de a%rendi.a+e alta, esto a mi %arecer es m!y im%ortante, %or cierto es el frame or, /!e act!almente !so. =rl$ #tt%$((frame or,..end.com(

S9m1on9C 1ste es otro de los frame or,s m-s s7lidos, c!enta con miles de '!ndles (%l!gins) Bo li'rerias %ara @endC, de #ec#o se toma m!y en serio todo lo referente a seg!ridad, tanto /!e incl!so #an %agado !na cara a!ditor*a del c7digo lle"ada a ca'o %or !na em%resa e4%erta en seg!ridad, adem-s c!enta con !na >:D m!y '!ena /!e es Eoctrine. =rl$ #tt%$((symfony.com(

CakePHPC ;!e el %rimer frame or, /!e !se, a!n/!e %or %oco tiem%o, es sencillo de a#* s! nom're, '!ena doc!mentaci7n, considero /!e s! c!r"a de a%rendi.a+e es menor lo c!al tam'i2n da !na '!ena salida %ara %royectos %e/!eos. =rl$ #tt%$((ca,e%#%.org(

&$$C 1ste es otro de mis fa"oritos lo recomiendo %ara a/!ellos /!e reci2n se inc!rsionan
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

en !n frame or, r-%ido de a%render, y c!enta con !n generador de arc#i"os "*a e' (llamado Gii), /!e %ermite crear $ D7d!los, controladores, modelos y form!larios 6:=E (F) , /!e te #ace la "ida f-cil. :ealmente %!edes tener a%licaciones listas en min!tos y con !na "ista res%eta'le. Gii tam'i2n c!enta con m!c#os %l!gins. =rl$ #tt%$(( .yiiframe or,.com(

:ecomiendo /!e "isiten esta %-gina$ #tt%$(( .'est e'frame or,s.com(com%are? e'?frame or,s(%#%(

=na %reg!nta m!y interesante /!e yo misma me #ice es, (& podr3a desarrollar m$ prop$o 1rame-ork. , %!es la res%!esta es !n SI rot!ndo, %or s!%!esto /!e como regla es !sar la me+ores %r-cticas, rec!erden /!e otras %ersonas %odr*an darle mantenimiento en el f!t!ro.

LotasC (H) =n ;rame or, es (%lataforma, entorno, marco de tra'a+o). Eesde el %!nto de "ista del desarrollo de soft are, !n frame or, es !na estr!ct!ra de so%orte definida, en la c!al otro %royecto de soft are %!ede ser organi.ado y desarrollado. (0) 3a com!nidad del soft are li're es !n t2rmino /!e #ace referencia informal a los !s!arios y desarrolladores de soft are li're, as* como los %artidarios del mo"imiento de soft are li're. (8) 1n la %r-ctica esto crea !na 'ase de datos orientada a o'+etos "irt!al, so're la 'ase de datos relacional. 1sto %osi'ilita el !so de las caracter*sticas %ro%ias de la orientaci7n a o'+etos ('-sicamente #erencia y %olimorfismo), facilitando el tra'a+o con diferentes 'ase de datos. (<) =na c!r"a de a%rendi.a+e descri'e el grado de 24ito o'tenido d!rante el a%rendi.a+e en el transc!rso del tiem%o. A men!do se cometen m!c#os errores al comen.ar !na n!e"a tarea. 1n las fases %osteriores dismin!yen los errores, %ero tam'i2n las materias n!e"as a%rendidas

(A) Se %!eden tra'a+ar las li'rer*as %or frame or,.

se%arado y si se desea !tili.arlas en otro

(F) 6:=E es el acr7nimo de las c!atro f!nciones '-sicas de acceso a !na 'ase de datos (6rear, >'tener, Act!ali.ar y Iorrar)

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

Creando *na capa de a stracc$0n con PHP 9 m9s)l$

m9s)l$8 es el conector para ases de datos !9SNL recomendado por PHP8 para $nteract*ar desde t* apl$cac$0n con *na ase de datos !9SNL. Pero crear *na capa de a stracc$0n "en+r$ca8 re*t$l$#a le 9 or$entada a o 7etos8 s*ele ser *n dolor de ca e#a. En este art3c*lo8 veremos como lo"rar crear *na capa de a stracc$0n a ases de datos8 s$mple 9 m*9 1:c$l de *sar.

Escrito por: E*"en$a @a'$t (Ar/!itecta G3ADP & Agile 6oac#)


1!genia es Ar)*$tecta de So1t-are, docente instr!ctora de tecnolog*as OLA!P (GN=(3in!4, A%ac#e, DySJ3, Pyt#on y P5P) y A"$le coac' (=)N) es%eciali.ada en Scr!m y e9treme Programming. Diem'ro de la ,ree So1t-are ,o*ndat$on e integrante del e/!i%o de De $an Hackers.
Be sC 6!rsos de %rogramaci7n a Eistancia$ Agile 6oac#ing$ .e!genia'a#it.com Redes soc$alesC ) itter ( Identi.ca$ De*"en$a a'$t .c!rsosde%rogramacionadistancia.com

i alg!na "e. intentaste crear !na ca%a de a'stracci7n a 'ases de datos, !tili.ando el conector mys/li en estilo orientado a o'+etos, sa'r-s /!e #acerlo es !n gran dolor de ca'e.a.

Pero ()*+ es e;actamente m9s)l$ 9 en )*+ se d$1erenc$a de m9s)l. I-sicamente, como 'ien se define en el man!al oficial de P5P, mys/li es P*na e;tens$0n me7orada del conector m9s)lQ. 1ntre las %rinci%ales diferencias, se enc!entran adem-s, s!s dos grandes "enta+as$ Permite tra'a+ar en estilo orientado a o'+etos (tam'i2n contina %ro"eyendo so%orte %ara estilo %rocedimental)K

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

PHP

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

Nos facilita !na forma seg!ra de filtrado de datos en sentencias SJ3, %ara %re"enir inyecciones SJ3K

Sin d!das, mys/li es !na gran "enta+a frente al antig!o conector. )iene !na gran cantidad de clases, m2todos, constantes y %ro%iedades m!y 'ien doc!mentados H. Sin em'argo, entender la doc!mentaci7n %!ede ser !na tediosa tarea, en la c!al, #allar !n %rinci%io y !n fin, se %odr- con"ertir en la %eor %esadilla de t! "ida. As* /!e entonces LDanos a la o'raM G a crear !na ca%a de a'stracci7n con mys/li orientado a o'+etos.

,ecetario #ara crear una ca#a de abstraccin a bases de datos con mys1li
3o %rimero /!e de'emos tener en c!enta, es /!e n!estra ca%a de a'stracci7n de'er%ro"eer de m2todos %'licos, /!e %!edan ser llamados de forma est-tica, %ara crear !n o'+eto conector, no sea necesario. Para %oder lograr !na ca%a de a'stracci7n gen2rica, la clave es !tili.ar ReflectionClassF %ara crear !na instancia de mysqli_stmt y mediante ReflectionClass->getMethod, in"ocar al m2todo bind_param. Ee lo contrario, %re%arar !na cons!lta SJ3 y enla.arle los "alores a ser filtrados, ser- im%osi'le.

#en en c$enta %$e &ara seg$ir los e'em&los de este art(c$lo, es necesario contar con la versin 5.3.6 o s$&erior, de PHP.

Pro#iedades
N!estra ca%a de a'stracci7n, tendr- !na nica %ro%iedad %'lica, destinada a almacenar los datos o'tenidos tras !na cons!lta de selecci7n. 1l resto de las %ro%iedades, ser-n de -m'ito %rotegido, accesi'les solo desde n!estra clase y clases /!e #ereden de 2sta.
class 789onnector { protecte' protecte' protecte' protecte' protecte' static static static static static $conn; $stmt; $reflection; $s)l; $'ata; : : : : : ;b<eto conector m=s)li preparaci*n 'e la consulta >?@ ;b<eto .efle0i1o 'e m=s)li_stmt >entencia >?@ a ser prepara'a 6rra= contenien'o los tipo 'e 'atos mAs los 'atos a ser enlaBa'os (serA recibi'o como parAmetro)

H 0

#tt%$((%#%.net(man!al(es('oo,.mys/li.%#% #tt%$((%#%.net(man!al(es(class.reflectionclass.%#%
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

public static $results; -

: 9olecci*n 'e 'atos retorna'os por una consulta 'e selecci*n

3a cons!lta SJ3, de'er- ser seteada en los modelos (clases) donde se re/!iera, incl!yendo marcadores de %ar-metros (em'e'idos con el signo N), en la %osici7n donde !n dato de'a ser enla.ado. =n e+em%lo de ella, %odr*a ser el sig!iente$
$s)l = "CD>5.E CDE; pro'uctos (cate&oria, nombre, precio) 46@F5> (G, G, G)";

Dientras /!e el array $data, de'er- contener, como %rimer elemento, !na string con el ti%o de datos y los elementos sig!ientes, ser-n los datos a ser enla.ados (todos de ti%o string)$
$'ata = arra=("isb'", "{$cate&oria-", "{$nombre-", "{$'escripcion-", "{$precio-");

1l %rimer elemento, siem%re re%resentar- el ti%o de datos corres%ondiente al marcador de %ar-metro /!e se desea enla.ar. Siendo los ti%os de datos %osi'les$ s (string), i (entero), d (do'le) y b ('lo').

M9todos
Conectar a la ase de datosC
protecte' static function conectar() { selfHH$conn = ne2 m=s)li(78_I;>E, 78_F>5., 78_/6>>, 78_D6J5); -

:e/!erir- < constantes %redefinidas (se recomienda definir en !n arc#i"o settings)$ DB_ !"#, DB_$"ER, DB_%A"" y DB_&AME.

Preparar *na sentenc$a SNL <con marcadores de par:metros>C


protecte' static function preparar() { selfHH$stmt = selfHH$conn">prepare(selfHH$s)l); selfHH$reflection = ne2 .eflection9lass(#m=s)li_stmt#); -

3a clase ReflectionClass de P5P, c!m%le !n %a%el f!ndamental$ solo a tra"2s de ella %odemos crear !n o'+eto m's(li_stmt refle4i"o, siendo 2sta, la nica alternati"a /!e tenemos %ara %re%arar sentencias SJ3 con marcadores de %ar-metros, de forma din-mica. 3a %ro%iedad est-tica $s(l (self))$s(l) ser- creada %or el nico m2todo %'lico /!e tendr- la clase.

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

=0

Enla#ar los datos con la sentenc$a SNL preparadaC


protecte' static function set_params() { $met(o' = selfHH$reflection">&etJet(o'(#bin'_param#); $met(o'">in1oKe6r&s(selfHH$stmt, selfHH$'ata); -

3a %ro%iedad est-tica $data /!e se %asa como seg!ndo %ar-metro a in"o,eArgs, tam'i2n ser- seteada %or el nico m2todo %'lico. 1n este m2todo (set_*arams), la "aria'le tem%oral $method, llama refle4i"amente (a tra"2s del m2todo getMethod de reflectionClass), al m2todo +ind_*aram de la clase m's(li. 1n la sig!iente instr!cci7n, a tra"2s del m2todo in,o-eArgs de ReflectionClass, le %asa %or referencia a +ind *aram, los datos a ser enla.ados con la sentencia %re%arada (almacenados en el array $data). Podr*a decirse /!e in,o-eArgs, se com%orta de forma similar a call_.ser_f.nc_arra'().

Enla#ar res*ltados de *na cons*lta de selecc$0nC


protecte' static function &et_'ata($fiel's) { $met(o' = selfHH$reflection">&etJet(o'(#bin'_result#); $met(o'">in1oKe6r&s(selfHH$stmt, $fiel's); 2(ile(selfHH$stmt">fetc(()) { selfHH$resultsLM = unserialiBe(serialiBe($fiel's)); -

1ste m2todo es !no de los m-s Ocom%le+os y re'!scadosP, /!e incl!so c!enta con alg!nas O%se!do?magiasP !n tanto OrarasP como el !so de las f!nciones seriali/e y .nseriali/e en la la misma instr!cci7n. Pero analic2moslo detenidamente. El par:metro $fields ser- reci'ido a tra"2s del nico m2todo %'lico /!e crearemos en n!estra ca%a de a'stracci7n (este m2todo, a la "e., reci'ir- este dato, tam'i2n como %ar-metro, %ero o%cional). 1ste %ar-metro, ser- !n array asociati"o, donde las cla"es, ser-n asociadas al nom're de los cam%os, y el "alor de esas cla"es, al dato contenido en el cam%o. Si t!"iese la sig!iente cons!lta SJ3$
>5@59E nombre, 'escripcion, precio N.;J pro'ucto OI5.5 cate&oria = G

Di array asociati"o, %odr*a %aracerse al sig!iente$


$fiel's = arra=("/ro'ucto" => "", "7escripci*n" => "", "/recio" => "");

m's(li->+ind_res.lt() enla.ar- el cam%o %rod!cto.nom're a la cla"e Prod!cto,


EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

==

%rod!cto.descri%cion a la cla"e Eesri%ci7n y %rod!cto.%recio a la cla"e Precio.

3as instr!cciones$
$met(o' = selfHH$reflection">&etJet(o'(#bin'_result#); $met(o'">in1oKe6r&s(selfHH$stmt, $fiel's);

se com%ortan de forma similar, a s!s #om7nimas en el m2todo setQ%arams. 3lama refle4i"amente al m2todo +ind_res.lt de la clase m's(li y le %asa %or referencia, el array $fields.

En el *cle while, estamos asociando iterati"amente los datos o'tenidos a n!estra %ro%iedad %'lica $res.lts. Pero Rc7mo lo #acemosN R%ara /!2 seriali.ar y deseriali.ar los datosN$
2(ile(selfHH$stmt">fetc(()) { selfHH$resultsLM = unserialiBe(serialiBe($fiel's)); -

1n cada iteraci7n, stmt->fetch nos est- retornando n!estro array $fields, asociado al registro de la ta'la, so're el c!-l se est- iterando. 1s decir, /!e en cada iteraci7n, stmt>fetch nos retornar- algo como esto$
// conteni'o 'el arra= $fiel's arra=("/ro'ucto" => "I7 Ja&aBine", "7escripci*n" => "Ja&aBine 'i&ital 'e e'ici*n mensual sobre >oft2are @ibre, IacKin& = /ro&ramaci*n", "/recio" => "0%00");

Pero n!estro array $fields, #a sido %asado %or referencia. 1rgo, en cada iteraci7n, s! contenido ser- modificado. Si a mi %ro%iedad est-tica $res.lts, le agrego como elemento, !n array /!e est- siendo modificado %or referencia en el momento /!e lo estoy asignando a mi %ro%iedad est-tica, mi %ro%iedad est-tica, ser- tam'i2n, modificada en cada iteraci7n. Para %re"enir eso, seriali.o mi array $fields y lo almaceno en $res.lts seriali.ado. Pero como l!ego necesitar- rec!%erarlo, a#orro !n %aso y lo deseriali.o en la misma iteraci7n. Al seriali.arlo, estoy Om-gicamenteP em!lando !na Oinm!ta'ilidadP de los datos asociados.

Cerrar cone;$ones a $ertasC


protecte' static function finaliBar() { selfHH$stmt">close(); selfHH$conn">close(); -

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

=F

Tn m+todo pU l$co )*e e7ec*te todas las acc$onesC


public static function e<ecutar($s)l, $'ata, $fiel's=Nalse) { selfHH$s)l = $s)l; : setear la propie'a' $s)l selfHH$'ata = $'ata; : setear la propie'a' $'ata selfHHconectar(); : conectar a la base 'e 'atos selfHHpreparar(); : preparar la consulta >?@ selfHHset_params(); : enlaBar los 'atos selfHH$stmt">e0ecute(); : e<ecutar la consulta if($fiel's) { selfHH&et_'ata($fiel's); - else { if(strpos(selfHH$s)l, strtoupper(#CD>5.E#)) === 0) { return selfHH$stmt">insert_i'; selfHHfinaliBar(); : cerrar cone0iones abiertas -

La estr*ct*ra de control de 1l*7o cond$c$onal , /!e !tili.a el m2todo e0ec.tar(), es la encargada de discernir si se trata de !na cons!lta de Olect!raP a la 'ase de datos %ara as*, llamar al m2todo get_data, o si se trata de !na cons!lta de Oescrit!raP (INS1:), =PEA)1 o E131)1). 1n ese caso, "erifica si es !na escrit!ra de ti%o OINS1:)P %ara retornar la id del n!e"o registro creado.

Cdigo com#leto de la ca#a de abstraccin


class 789onnector { protecte' static $conn; protecte' static $stmt; protecte' static $reflection; protecte' static $s)l; protecte' static $'ata; public static $results; protecte' static function conectar() { selfHH$conn = ne2 m=s)li(78_I;>E, 78_F>5., 78_/6>>, 78_D6J5); protecte' static function preparar() { selfHH$stmt = selfHH$conn">prepare(selfHH$s)l); selfHH$reflection = ne2 .eflection9lass(#m=s)li_stmt#); protecte' static function set_params() { $met(o' = selfHH$reflection">&etJet(o'(#bin'_param#); $met(o'">in1oKe6r&s(selfHH$stmt, selfHH$'ata); protecte' static function &et_'ata($fiel's) { $met(o' = selfHH$reflection">&etJet(o'(#bin'_result#); $met(o'">in1oKe6r&s(selfHH$stmt, $fiel's);
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

=%

2(ile(selfHH$stmt">fetc(()) { selfHH$resultsLM = unserialiBe(serialiBe($fiel's)); -

protecte' static function finaliBar() { selfHH$stmt">close(); selfHH$conn">close(); public static function e<ecutar($s)l, $'ata, $fiel's=Nalse) { selfHH$s)l = $s)l; selfHH$'ata = $'ata; selfHHconectar(); selfHHpreparar(); selfHHset_params(); selfHH$stmt">e0ecute(); if($fiel's) { selfHH&et_'ata($fiel's); - else { if(strpos(selfHH$s)l, strtoupper(#CD>5.E#)) === 0) { return selfHH$stmt">insert_i'; selfHHfinaliBar(); -

8Cmo utilizar la ca#a de abstraccin creada:


1n todos los casos, siem%re ser- necesario in"ocar est-ticamente al m2todo e+ec!tar, %as-ndole al menos dos %ar-metros$ la sentencia SJ3 a %re%arar y !n array con los datos a enla.ar a la sentencia SJ3 %re%arada$
$s)l = "CD>5.E CDE; pro'uctos (cate&oria, nombre, 'escripcion, precio) 46@F5> (G, G, G, G)"; $'ata = arra=("isb'", "{$cate&oria-", "{$nombre-", "{$'escripcion-", "{$precio-"); $insert_id = DBConnector::ejecutar($sql, $data);

6!ando se tratare de !na cons!lta de selecci7n, se de'er- adicionar !n tercer %ar-metro, el c!-l ser- !n array asociati"o, c!yas cla"es, ser-n asociadas a los cam%os de la ta'la$
$s)l = ">5@59E nombre, 'escripcion, precio N.;J pro'uctos OI5.5 cate&oria = G"; $'ata = arra=("i", "{$cate&oria-"); $fiel's = arra=("/ro'ucto" => "", "7escripci*n" => "", "/recio" => ""); DBConnector::ejecutar($sql, $data, $fields);
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

=G

print_r(DBConnector::$results);

3a ltima l*nea, m!estra con !n *rint_r() como acceder a los res!ltados de la cons!lta, mediante la %ro%iedad est-tica $res.lts.

(Por )*+ P9t'on.

!*c'o<a>s pro"ramadore<a>s se pre"*ntan por )*+ pre1er$r P9t'on a otros len"*a7es de pro"ramac$0n8 c*:les son s*s venta7as 9 los m*c'os Vpor)*+sV )*e lo 'acen *n len"*a7e "en$al8 adem:s conoceremos m:s de esta 1$loso13a con el Jen de P9t'on.

Escrito por: !$la"ros Alessandra ?n1ante !ontero (1st. Ing. Inform-tica)


Est*d$ante de ?n"en$er3a ?n1orm:t$ca. Diem'ro de APESOL (Asociaci7n Per!ana de Soft are 3i're) y de la com!nidad de soft are li're L*men'ack. Diem'ro del e/!i%o de trad!cci7n al es%aol de OLO!E. A%asionada %or el desarrollo de soft are, tecnolog*a y gadgets. Eefensora de tecnolog*as 'asadas en soft are li're y de c7digo a'ierto.
Be sC Ilog$ .milale.net

Redes soc$alesC ) itter ( Identi.ca$ Dm$lale

yt#on, no, no la ser%iente, es el leng!a+e de %rogramaci7n (nom're /!e %ro"iene de la afici7n de s! creador %or el gr!%o de #!moristas 'rit-nicos Donty Pyt#on) /!e ya #ace !n '!en tiem%o "iene demostrando s! magnificidad al momento de desarrollar. 1n estos tiem%os e4iste !na gran cantidad de leng!a+es de %rogramaci7n, m!c#os de ellos sim%les, com%licados, f-ciles, enredados y otros m-sK %ero e4isten tam'i2n m!c#os %or/!2s #ace ya !n m!y '!en tiem%o la gente %refiere a%render %yt#on y so'retodo !sarlo %ara grandes %royectos de desarrollo.

Pyt#on tiene !na sinta4is sim%le, clara y sencilla, el ti%ado es din-mico, %osee !na gran cantidad de li'rer*as dis%oni'les y so'retodo c!enta con !na gran %otencia. Podemos

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

P4?H-&

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

=I

mencionar casos de 24ito con Pyt#on, %or e+em%lo$ Google, Ga#oo, la NASA, Go!)!'e, entre otros m-s.

Seamos !na com%araci7n sim%le entre leng!a+es (Pyt#on y 6TT), %or e+em%lo, si /!eremos crear !n %rograma %ara calc!lar e im%rimir la s!ma de HT0T8T<TAT...TA0$
Pyt#on
( = ran&e( , , ) print sum(()

6TT
1oi' main () { int suma; for (int i=0, i+=,0, iPP) suma=sumaPi; cout++suma; -;

6omo %odemos notar la diferencia en la cantidad de l*neas de c7digo es m!y nota'le y %!es este ya es !n %!nto m!y fa"ora'le %ara Pyt#on y /!e %!eda ser llamati"o a los dem-s. Alg!nas de las caracter*sticas nota'les de Pyt#on son$ B0C =sa !na sinta4is elegante, #aciendo de los %rogramas /!e escri'e m-s f-ciles de leer. 1s !n leng!a+e f-cil de !sar /!e #ace sim%le /!e s! %rograma tra'a+e. 1sto #ace a Pyt#on ideal %ara el desarrollo de %rototi%os y otras tareas de %rogramaci7n ad? #oc, sin com%rometer la manteni'ilidad. Siene con !na gran 'i'lioteca est-ndar /!e so%orta m!c#as tareas de %rogramaci7n com!nes como la cone4i7n a ser"idores e', 's/!eda de te4to con e4%resiones reg!lares, leer y modificar arc#i"os. 1l modo interacti"o de Pyt#on #ace /!e sea f-cil de %ro'ar fragmentos cortos de c7digo. )am'i2n #ay !n entorno de desarrollo incl!ido llamado IE31. Se %!ede e4tender f-cilmente aadiendo n!e"os m7d!los im%lementados en !n leng!a+e com%ilado como 6 o 6TT. )am'i2n %!ede ser em'e'ido en !na a%licaci7n %ara %ro%orcionar !na interfa. %rograma'le. Se e+ec!ta en m!c#as com%!tadoras y sistemas o%erati"os diferentes$ GN=(3in!4, Uindo s, Dac>S, m!c#as marcas de =ni4, >S(0, ... 1s soft are li're en dos sentidos. No c!esta nada descargar o !sar Pyt#on, o incl!irlo en s! a%licaci7n. Pyt#on tam'i2n %!ede ser li'remente modificado y redistri'!ido, ya /!e mientras el leng!a+e tiene derec#os de a!tor est- dis%oni'le 'a+o !na licencia de c7digo a'ierto.

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

=K

Alg!nas caracter*sticas del leng!a+e de %rogramaci7n de Pyt#on son$

=na "ariedad de ti%os de datos '-sicos est-n dis%oni'les$ nmeros (coma flotante, com%le+o y enteros largos de longit!d ilimitada), cadenas (AS6II y =nicode), listas y diccionarios. Pyt#on so%orta %rogramaci7n orientada a o'+etos con clases y #erencia mlti%le. 1l c7digo %!ede ser agr!%ados en m7d!los y %a/!etes. 1l leng!a+e so%orta e4ce%ciones de crecimiento y ca%t!ra, lo /!e res!lta en el mane+o de errores m-s lim%io. 3os ti%os de datos tienen ti%ado f!erte y din-mico. De.cla ti%os incom%ati'les (%or e+em%lo, tratar de aadir !na cadena y !n nmero) %rod!ce !na e4ce%ci7n ele"ada, %or lo /!e los errores son ca%t!rados %ronto. Pyt#on tiene f!nciones de %rogramaci7n a"an.adas como generadores y listas de com%rensi7n. 3a gesti7n de memoria a!tom-tica de Pyt#on lo li'era de tener /!e asignar man!almente y li'erar memoria en s! c7digo.

)a alegr(a de codear en Python de*er(a estar en +erlo corto, conciso, con clases legi*les %$e e,&resen m$cha acci-n en $na cantidad &e%$e.a de c-digo claro / no en &ginas y &ginas de c-digo tri+ial %$e a*$rre al lector hasta la m$erte. "" G$ido 0an Ross$m 1creador de Python2

Nen de P yt0on
1l @en de Pyt#on f!e escrito %or )im Peters, el c!-l c!enta con 00 aforismosBHC$

H. 5ermoso es me+or /!e feo. 0. 14%l*cito es me+or /!e im%l*cito. 8. Sim%le es me+or /!e com%le+o. <. 6om%le+o es me+or /!e com%licado. A. Plano es me+or /!e anidado.

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

=M

F. Eis%erso es me+or /!e denso. V. 3a legi'ilidad c!enta. W. 3os casos es%eciales no son s!ficientemente es%eciales como %ara rom%er las reglas.

X. A!n/!e lo %ragm-tico gana a la %!re.a. H0. 3os errores n!nca de'er*an de+arse %asar silenciosamente. HH. A menos /!e se silencien e4%l*citamente. H0. 6!ando te enfrentes a la am'igYedad, rec#a.a la tentaci7n de adi"inar. H8. Ee'er*a #a'er !na Z y %referi'lemente s7lo !na Z manera o'"ia de #acerlo. H<. A!n/!e %!eda /!e esa manera no sea o'"ia a %rimera "ista a menos /!e seas #oland2s. (Nota$ G!ido "an :oss!m es #oland2s) HA. A#ora es me+or /!e n!nca. HF. A!n/!e m!c#as "eces n!nca es me+or /!e [a#ora mismo[. HV. Si la im%lementaci7n es dif*cil de e4%licar, es !na mala idea. HW. Si la im%lementaci7n es sencilla de e4%licar, %!ede /!e sea !na '!ena idea. HX. 3os es%acios de nom'res son !na gran idea Z Ltengamos m-s de esasM

G te %reg!ntar-s$ RE7nde est- el nmero 00N, %!es #ay m!c#as teor*as %ara e4%licar el #ec#o de /!e no a%are.ca en la lista (e4%l*citamente #a'lando), no #ay !na "erdad a'sol!ta, %ero la m-s ace%ta'le es el significant #ites%ace, /!e los es%acios son im%ortantes y %!es +!stamente des%!es de los HX #ay !n es%acio en 'lanco /!e no es im%rimi'le (%ero si est- im%reso). Si !sas %yt#on 0.H.0 en adelante %!edes leer la filosof*a en c!al/!ier l!gar en el /!e est2s, tan solo con %oner la sig!iente l*nea de c7digo (esto es considerado como !n #!e"o de %asc!a de regalo al encontrarlo de manera tan f-cil con !n sim%le comando).
>>> import t(is

G o'tendr-s esto$
>>> import t(is E(e 3en of /=t(on, b= Eim /eters 8eautiful is better t(an u&l=% 50plicit is better t(an implicit% >imple is better t(an comple0% 9omple0 is better t(an complicate'% Nlat is better t(an neste'% >parse is better t(an 'ense% .ea'abilit= counts% >pecial cases aren#t special enou&( to breaK t(e rules% 6lt(ou&( practicalit= beats purit=%
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

=R

5rrors s(oul' ne1er pass silentl=% Fnless e0plicitl= silence'% Cn t(e face of ambi&uit=, refuse t(e temptation to &uess% E(ere s(oul' be one"" an' preferabl= onl= one ""ob1ious 2a= to 'o it% 6lt(ou&( t(at 2a= ma= not be ob1ious at first unless =ou#re 7utc(% Do2 is better t(an ne1er% 6lt(ou&( ne1er is often better t(an Qri&(tQ no2% Cf t(e implementation is (ar' to e0plain, it#s a ba' i'ea% Cf t(e implementation is eas= to e0plain, it ma= be a &oo' i'ea% Damespaces are one (onKin& &reat i'ea "" let#s 'o more of t(ose! >>>

An*mate a com%ro'ar %or ti mismo c!-n genial es Pyt#on y tam'i2n a %oner en %r-ctica el @en de Pyt#on e incl!si"e tenerlo como filosof*a %ara c!al/!ier %royecto de desarrollo /!e em%rendas.

,eferencias
B0C Pyt#on Programming 3ang!age >fficial Ue'site Ben l*neaC$ \#tt%$(( i,i.%yt#on.org(moin(IeginnersG!ide(>"er"ie ] B6ons!lta$ 0F de >ct!'re de 00H0C BHC Pyt#on Programming 3ang!age >fficial Ue'site Ben l*neaC$ \#tt%$(( .%yt#on.org(de"(%e%s(%e%?0000(] B6ons!lta$ 0F de >ct!'re de 00H0C

www.cursosdeprogramacionadistancia.com

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

=S

Empe#ando con Ooo"le App En"$ne

Ooo"le App En"$ne <OAE> es *na plata1orma como serv$c$o )*e nos perm$te alo7ar apl$cac$ones -e 9 correrlas so re la $n1raestr*ct*ra de Ooo"le. En este art3c*lo veremos al"*nas de las venta7as )*e nos proporc$ona 9 *n pe)*e/o t*tor$al para conocer s*s 1*nc$ones :s$cas.

Escrito por: ,$ll9 (Programadora)


Est*d$ante de pro"ramac$0n, con #a'ilidad %ara el diseo. Acti"ista de la c!lt!ra y el soft are li'res. Interesada en el desarrollo e' y de "ideo+!egos. !$em ro de P9t'on Ar"ent$na y OrTL$C (Gr!%o de =s!arios de Soft are 3i're de 67rdo'a).
Be sC Ilog$ #tt%$(( .missfilly.com.ar

Redes soc$alesC ) itter$ D!$ss,$ll9s Identi.ca$ D!$ss,$ll9

!%ongamos /!e /!eremos desarrollar !na a%licaci7n e' %or di"ersi7n y %onerla a dis%osici7n de otros !s!arios, %ero no %agar %or s! alo+amiento. > si lo #acemos con fines comerciales y no estamos seg!ros de /!2 tan e4itosa %!ede llegar a ser, y %or lo tanto no sa'emos si es redit!a'le %agar %or !n ser"idor. RJ!2 tan genial ser*a %oder alo+arla de forma grat!ita, f-cilmente, y %ro'arla con !s!arios realesN 6on Google A%% 1ngine, de forma grat!ita contamos con escala'ilidad a!tom-tica y !na c!ota de H GI de almacenamiento de c7digo y datos est-ticos %ara n!estra a%licaci7n, dis%onemos de !n entorno de desarrollo local %ara testearla y de !na 'ase de datos (Google A%% 1ngine Eatastore) y tenemos la %osi'ilidad de !tili.ar !n dominio %ersonali.ado, entre otras m!c#as o%ciones. Si n!estra a%licaci7n es e4itosa o /!eremos am%liarla, y so're%asamos la c!ota8 de GA1 (cantidad de rec!rsos /!e se nos %ermite cons!mir %or d*a), %odemos #a'ilitar s! fact!raci7n, /!e tiene %recios 'astante acotados, %ara ad/!irir m-s rec!rsos. GA1 !tili.a Pyt#on o ^a"a, y act!almente tiene so%orte e4%erimental %ara Go. )am'i2n incl!ye li'rer*as de terceros, %or e+em%lo (en el caso de %royectos en Pyt#on 0.V) E+ango,
8 #tt%$((de"elo%ers.google.com(a%%engine(docs(/!otas
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

P4?H-&

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

F0

^in+a0, l4ml y Py6ry%to, entre otras, a!n/!e a la #ora de !tili.arlas de'emos tener m!y en c!enta c!-les son s!s "ersiones so%ortadas y las %osi'les modificaciones /!e %!edan #a'er tenido al ser ada%tadas a GA1. A%render a desarrollar %ara esta %lataforma es relati"amente sencillo, y !na de las grandes "enta+as (/!e enc!entro %ersonalmente) es la e4celente doc!mentaci7n con la /!e c!enta.

Corriendo nuestro @Hello, world.@


3o %rimero /!e necesitamos #acer %ara em%e.ar a desarrollar !na a%licaci7n %ara GA1 es descargar el SE_<, en este caso el SE_ %ara Pyt#on y 3in!4. =na "e. e4tra*do, encontramos dentro !na car%eta llamada ne1_*ro0ect_tem*late, /!e contiene, como s! nom're lo indica, !n tem%late con los arc#i"os '-sicos de los /!e constar- n!estra a%licaci7n. Go colo/!2 el SE_ en mi home, co%i2 el tem%late en el mismo directorio y lo renom'r2 OmiQ%rimerQa%licaci7nP$
fill=@elric R $ cp "r &oo&le_appen&ine/ne2_pro<ect_template/ /(ome/fill=/ fill=@elric R $ m1 ne2_pro<ect_template/ mi_primer_aplicacion/

Pro ar n!estro ello2 1orld3 (/!e ya "iene en el tem%late '-sico) es tan 1:c$l como e+ec!tar el ser"idor e' de desarrollo$
filly@elric ~ $ pyt on !oo!le_appen!ine"de#_appser#er$py ~"ne%_project_te&plate"

G listo, ya tenemos n!estra a%licaci7n corriendo en !n ser"idor local. Podemos "erla ingresando a localhost)4545 desde n!estro 'ro ser.

(N*+ pas0. Si a'rimos el arc#i"o de Pyt#on main6*', /!e contiene el n!estra a%licaci7n, "eremos el sig!iente c7digo$
import 2ebappS class JainIan'ler(2ebappS%.e)uestIan'ler)H 'ef &et(self)H self%response%out%2rite(#Iello 2orl'!#) app = 2ebappS%O>TC6pplication(L(#/#, JainIan'ler)M, 'ebu&=Erue)

ello2 1orld3 dentro de

Semos /!e contamos con la =:3 `(`, /!e corres%onde a la clase Main andler, la c!al #ereda de 1e+a**76Re(.est andler, !n #andler de re/!ests gen2rico de Google. 1l m2todo get !sa self6res*onse, el o'+eto de res%!esta glo'al !tili.ado %or este frame or,.
< #tt%$((de"elo%ers.google.com(a%%engine(do nloads
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

F=

Si /!isi2ramos crear otra =:3 %ara n!estra a%licaci7n, %odr*amos reem%la.ar el c7digo %or$
import 2ebappS class JainIan'ler(2ebappS%.e)uestIan'ler)H 'ef &et(self)H self%response%out%2rite(#Iello 2orl'!#) class 't er(a!e)andler(%e*app+$,equest)andler): def !et(self): self$response$out$%rite(-. is is a different pa!e$-) app = 2ebappS%O>TC6pplication(L(#/#, JainIan'ler), (-"ot er-, 't er(a!e)andler)M, 'ebu&=Erue)

A#ora %odemos acceder a la n!e"a %-gina en localhost)45458other desde !n 'ro ser.

?em#lates
Para mantener n!estro c7digo lim%io, contamos con el sistema de tem%lates de GA1, /!e nos %ermite tener el 5)D3 se%arado del c7digo de la a%licaci7n %ro%iamente dic#a, !tili.ando !na Osinta4is es%ecial %ara indicar d7nde a%arecen los datos de la a%licaci7nP A. Para %ro'arlo, %rimero creamos !na car%eta tem*lates en el directorio de n!estro %rograma, y en s! interior !n arc#i"o inde96html con el sig!iente c7digo$
+!7;9EU/5 (tml> +(tml> +(ea'> +meta c(arset="utf"V"> +title>Ji primer aplicaci*n+/title> +/(ea'> +bo'=> +( >WIola, mun'o!+/( > +p>Ji nombre es // na&e 00%+/p> +/bo'=> +/(tml>

Ees%!2s, cam'iamos el c7digo del arc#i"o main6*' %or$


import 2ebappS i&port os fro& !oo!le$appen!ine$e1t$%e*app i&port te&plate class JainIan'ler(2ebappS%.e)uestIan'ler)H 'ef &et(self)H pat = os$pat $join(os$pat $dirna&e(__file__), -te&plates"inde1$ t&l-) te&plate_#alues = /-na&e-: -2illy-0 self$response$out$%rite(te&plate$render(pat , te&plate_#alues)) A #tt%s$((de"elo%ers.google.com(a%%engine(docs(%yt#on(gettingstarted(tem%lates
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

FF

app = 2ebappS%O>TC6pplication(L(#/#, JainIan'ler)M, 'ebu&=Erue))

1l m7d!lo 1e+a**7 contiene el motor de tem%lates de E+angoF, y %or lo tanto !tili.a la misma sinta4is. 3a f!nci7n tem*late6render(*ath2 tem*late_,al.es) toma la r!ta del arc#i"o del tem%late y !n diccionario, c!yas ,eys son los nom'res de las "aria'les a ser reem%la.adas en el tem%late (indicados entre lla"es do'les en el mismo, como en el caso de :: name ;;) con s!s res%ecti"os "alores.

La !atastore
Google A%% 1ngine Eatastore nos Oofrece !n almacenamiento s7lido y escala'le %ara las a%licaciones e'PV. 3os datos de !na a%licaci7n se escri'en en entidades, cada !na de las c!ales c!enta con !na id /!e la identifica (ya sea asignada a!tom-ticamente %or la Eatastore o creada %or nosotros). 1n GA1, todas las cons!ltas de'en ser inde4adas %re"iamente, y se !tili.a !na "ersi7n sim%lificada de SJ3, denominada GJ3.

Tn 1orm*lar$o :s$co Samos a crear !na %-gina con !n form!lario '-sico %ara n!estra a%licaci7n, /!e nos %ermita g!ardar en la Eatastore los datos ingresados, y adem-s nos m!estre los registros e4istentes. Para em%e.ar, en la car%eta tem*lates creamos otro arc#i"o, llamado, %or e+em%lo, form6html, con este c7digo$
+!7;9EU/5 (tml> +(tml> +(ea'> +meta c(arset="utf"V"> +title>Ji primer aplicaci*n+/title> +/(ea'> +bo'=> +( >Normulario+/( > +(S>Cn&resar 'atosH+/(S> +form met(o'="post"> +p> +label for="firstname">DombreH +/label> +input t=pe="te0t" name="firstname"> +/p> +p> +label for="lastname">6pelli'oH +/label> +input t=pe="te0t" name="lastname"> +/p> +'i1 class="error">// error 00+/'i1> +input t=pe="submit" 1alue="5n1iar"> +/form> F V #tt%s$((docs.d+ango%ro+ect.com(en(H.<(ref(tem%lates(a%i( #tt%s$((de"elo%ers.google.com(a%%engine(docs(%yt#on(datastore(o"er"ie
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

F%

+(S>7atos e0istentesH+/(S> +'i1> /3 for person in people 30 4p5// person$last_na&e 00, // person$first_na&e 004"p5 /3 endfor 30 +/'i1> +/bo'=> +/(tml>

3os statements encerrados entre `ab` y `bc` son %ro%ios de la sinta4is del sistema de tem%lates de E+ango. A contin!aci7n, necesitamos crear el #andler %ara n!estro form!lario, incl!ido s! m2todo *ost (%ara c!ando los datos del form!larios son en"iados)$
class NormIan'ler(2ebappS%.e)uestIan'ler)H 'ef &et(self, first_name=##, last_name=##, error=##)H people = 'b%T)l?uer=(#>5@59E Q N.;J /erson ;.75. 8U last_name#) pat( = os%pat(%<oin(os%pat(%'irname(__file__), #templates/form%(tml#) template_1alues = {#first_name#H first_name, #last_name#H last_name, #error#H error, #people#H peopleself%response%out%2rite(template%ren'er(pat(, template_1alues)) 'ef post(self)H first_name = self%re)uest%&et(#firstname#) last_name = self%re)uest%&et(#lastname#) if first_name an' last_nameH p = /erson(first_name = first_name, last_name = last_name) p%put() self%&et(first_name = first_name, last_name = last_name) elseH self%&et(error = #Do completaste al&uno 'e los campos%#)

Para crear !na entidad en n!estra 'ase de datos, !tili.amos !na clase /!e #ereda de d+6Model, /!e im%ortaremos al %rinci%io de n!estra a%licaci7n. 1ntonces, n!estro arc#i"o main6*' se "er- de esta forma$
import 2ebappS import os from &oo&le%appen&ine%e0t%2ebapp import template from &oo&le%appen&ine%e0t import 'b class JainIan'ler(2ebappS%.e)uestIan'ler)H 'ef &et(self)H self%response%out%2rite(#Iello 2orl'!#) class 2or&)andler(%e*app+$,equest)andler): def !et(self, first_na&e=--, last_na&e=--, error=--): people = d*$6ql7uery(-89:9C. ; 2,'< (erson ',D9, B= last_na&e-) pat = os$pat $join(os$pat $dirna&e(__file__), -te&plates"for&$ t&l-) te&plate_#alues = /-first_na&e-: first_na&e, -last_na&e-: last_na&e,
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

FG

-error-: error, -people-: people0 self$response$out$%rite(te&plate$render(pat , te&plate_#alues)) def post(self): first_na&e = self$request$!et(-firstna&e-) last_na&e = self$request$!et(-lastna&e-) if first_na&e and last_na&e: p = (erson(first_na&e = first_na&e, last_na&e = last_na&e) p$put() self$!et(first_na&e = first_na&e, last_na&e = last_na&e) else: self$!et(error = ->o co&pletaste al!uno de los ca&pos$-) class (erson(d*$<odel): first_na&e = d*$8trin!(roperty(required = .rue) last_na&e = d*$8trin!(roperty(required = .rue) app = 2ebappS%O>TC6pplication(L(#/#, JainIan'ler), (-"for&-, 2or&)andler)M, 'ebu&=Erue)

A#ora, c!ando nos dirigimos a localhost)45458form en n!estro 'ro ser, com%letamos los cam%os del form!lario y %resionamos el 'ot7n O1n"iarP, "emos n!e"amente el form!lario, con los datos /!e aca'amos de ingresar de'a+o de OEatos e4istentes$P. Si agregamos m-s registros, 2stos se listar-n +!nto con los anteriores, res%etando el orden alfa'2tico del cam%o Oa%ellidoP.

(N*+ pas0. 1l c7digo /!e aca'amos de escri'ir f!nciona de la sig!iente manera$ H. 6!ando %resionamos el 'ot7n en"iar se e+ec!ta n!estro m2todo *ost, /!e toma los "alores ingresados en el form!lario y los g!arda en s!s res%ecti"as "aria'les (first_name y last_name, es decir, nom're y a%ellido). 0. 6omo necesitamos tanto !n nom're como !n a%ellido %ara la %ersona /!e g!ardaremos en n!estra Eatastore (re(.ired < #r.e, en la clase %erson, #ace /!e sea re/!erido), el m2todo *ost c#e/!ea /!e ning!na de las "aria'les sea !n string "ac*o, y l!ego crea !n n!e"o registro en la entidad %erson. 8. Si falta com%letar alg!no de los cam%os (!na de las "aria'les es !n string "ac*o), se renderi.a n!e"amente el form!lario, esta "e. %asando el corres%ondiente error a tra"2s de tem*late_,al.es=>error>?, c!yo "alor es !sado %ara reem%la.ar :: error ;; en el tem%late. <. 6ada "e. /!e se renderi.a el form!lario, el m2todo get re%asa todos los registros e4istentes, y %or cada !no de ellos el statement :@ for *erson in *eo*le @; del tem%late escri'e !n %-rrafo de 5)D3 con los datos de la %ersona.

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

FI

Conclusin
=na "e. #emos testeado n!estra a%licaci7n y /!eremos s!'irla, todo lo /!e resta es seg!ir los %asos indicados en la secci7n corres%ondiente W de la doc!mentaci7n de GA1. A#ora /!e #emos "isto !n %antalla.o m!y general de esta %lataforma, lo /!e nos /!eda %or #acer es %ensar en lo /!e /!eremos %ara n!estra a%licaci7n, Ly sentarnos a codearM

W'e H$tc''$ker P9t'on$tsVs O*$de to t'e Oala;9

En este art3c*lo 'aremos el desca ellado $ntento de plotear *na "ala;$a esp$ral mor1ol0"$camente Ppse*do correctaQ8 para esto 'aremos *soHa *so de P9t'on se"*$do de s*s sec*aces Sc$p9 9 !a9av$. Tt$l$#ando 'asta el cansanc$o 1*nc$ones lam da8 mapeos 9 1$ltros entre otros 9*9os.

Escrito por: Cel$a C$ntas (3icenciada en Inform-tica)


L$cenc$ada en ?n1orm:t$ca (=NPS^I), act!almente reali.ando Doctorado en Procesam$ento de ?m:"enes (=NS), Eocente (=NPS^I), Intento de sysadmin (66) y code mon,ey el resto de las #oras $). Pyt#onera %or defecto con alarmantes inclinaciones #acia Prolog y otras #ere+*as.
Be sC Ilog$ #tt%$((yetanot#erlog. ord%ress.com( Redes soc$alesC ) itter ( Identi.ca$ DRW,!cel$a

#tt%s$((de"elo%ers.google.com(a%%engine(docs(%yt#on(gettingstarted(!%loading
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

P4?H-&

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

FK

e de'e aclarar /!e el tit!lo reside en ingles %or/!e no e4iste trad!ctor #!mano /!e %!eda lle"ar a otro idioma este t*t!lo sin m!tilar s! sentido #!mor*stico. Antes de meternos com%letamente en el c7digo, de'emos %ensar como esto es %osi'le, %ara desenmaraar esto de'emos tener dos conce%tos 'ase m!y en claroK J!2 es !n Autmata CelularN G recordar /!e eran las Coordenadas Polares. Se %romete /!e en !n tiem%o x el lector y %odr- com%render %ara /!e son necesarios estas definiciones.

*ntre %utmatas y Coordenadas


3os A!t7matas cel!lares son am%liamente !tili.ados en el -m'ito cient*fico, en %rocesamiento de im-genes (y seg!ramente m!c#os casos m-s), ya /!e con modelos sim%listas se %!ede llegar a sim!lar(tra'a+ar com%ortamientos s!mamente com%le+os. 3o c!al a la #ora de %rogramar nos otorga !na %lacide. in"al!a'le.

)os 3$t-matas 4el$lares &ro+een $n modelo matemtico, sim&le, discreto y determinista &ara sistemas *iol-gicos, f(sicos com&$tacionales y ms. 3 &esar de s$ sim&le constr$cci-n, los 3$t-matas 4el$lares han demostrado ser ca&aces de re&rod$cir5generar com&ortamientos com&le'os. 6olfram !972
Para darnos !na idea gr-fica, %ensemos en !na grilla (0E), en el c!al cada celda %!ede tener !n estado dado en !n tiem%o discreto t y este estado de%ende, "isto de la forma m-s sim%le, del estado de s!s O"ecinosP, es decir, de las celdas /!e lo rodean. 3a teor*a de a!t7matas cel!lares e4cede los #ori.ontes de este artic!lo %ero en BHC se %!eden "er gran cantidad de papers de s! %rinci%al %ro%!lsor Stephen Wolfram. 3o /!e res%ecta a coordenadas %olares, solo de'emos tener en c!enta las ec!aciones /!e nos %ermitan %asar las mismas a coordenadas cartesianas. x =r cos () y =r sin ()

Eonde r es el radio y s! -ng!lo. A#ora %or/!e !sar coordenadas %olares si n!estros a!t7matas son !na grilla c!adric!lada N, la res%!esta es sim%le, n!estro a!t7mata tiene !na "ecindad circ!lar, si !no lo %iensa tiene 'astante sentido ya /!e la morfolog*a /!e estamos '!scando es circ!lar.

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

FM

%utmatas y 2alaAias
=n a!t7mata cel!lar en 0E %!ede ser !sado como !n eficiente constr!ctor de gala4ias y !na #erramienta %ara o'ser"ar s! e"ol!ci7n. 1ste modelo mantiene la estr!ct!ra es%iral !sando como entrada datos so're formaci7n estelar, %osici7n, tamao y "elocidad y la rotaci7n de la gala4ia. B0C A contin!aci7n daremos los %asos %ara la constr!cci7n de n!estra gala4ia tomando como 'ase los dados en B0C. H. 3as celdas %!eden tener HA %osi'les estados ("ida de !na formaci7n estelar(dt), con cero denotamos la a!sencia de estrellas o formaciones. 0. Eada !na celda acti"a, se e4amina s! "ecindad y estas tienen !na %ro'a'ilidad de iniciarse de HF a 00b, en este caso %artic!larmente se tra'a+o con HWb. 8. 6ada celda tendr- tres datos cr!ciales, radio y -ng!lo, %ara detectar s! %osici7n y !n estado /!e nos indica en /!e eta%a se enc!entra n!estra formaci7n. <. 3!ego de e4aminarlas incrementamos en !no a todas las estrellas acti"as %ara denotar s! edad /!e se "er- refle+ada en !na %aleta de colores, y a%licamos !na f!nci7n de rotaci7n.

1n la secci7n anterior #a'l-'amos de coordenadas %olares, en este %!nto %odemos "isl!m'rar c!al ser- s! !tilidad. Para %oder e"al!ar cada celda de'emos conocer s! %osici7n y ya /!e #a'lamos de generar gala4ias del ti%o es%iral estas coordenadas dem!estran ser las indicadas.

1n la ;ig!ra tomada de B8C %odemos o'ser"ar !n e+em%lo de la "ecindad a la /!e nos referimos. 1l modelo tomado de B8C /!e consta de N c*rc!los conc2ntricos, cada anillo es di"ido en 6N regiones. 6ada celda tiene normalmente F "ecinos, si la celda se enc!entra acti"a, es decir, si se gener7 !na formaci7n de estrellas, a medida /!e a"ance la sim!laci7n tam'i2n lo #ar-n s!s estado (tiem%o de "ida o me+or dic#o edad). 3a o'tenci7n de los %atrones no es del todo tri"ial, ya /!e estas no rotan en forma r*gida. 3a "elocidad de rotaci7n "ar*a r-%idamente cerca del centro de la gala4ia y en radios
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

FR

s!%eriores se "!el"e 'astante %lana. 1n toda la .ona %erteneciente a los 'ra.os de la gala4ia la "elocidad circ!lar es inde%endiente del radio, lo /!e nos indica /!e la "elocidad circ!lar es inde%endiente del radio y /!e la "elocidad ang!lar no es constante 1 y decrese en forma de .B8C r

Im#lementacinF 2alaA#y
Primero daremos !n 're"e paneo de las #erramientas !tili.adas$ P9t'on es !n leng!a+e de %rogramaci7n /!e %ermite tra'a+ar con mayor ra%ide. e integrar sistemas con mayor eficacia. Se %!ede a%render a !sar Pyt#on y o'tener 'eneficios casi inmediatos en la %rod!cti"idad y red!cir los costos de mantenimiento. Para m-s informaci7n #tt%$((%yt#on.org( Pr9mate; es !n editor 'asado en PyJt, /!e so%orta I!ndles de )e4tDate, contiene Sni%%ets, resaltado de sinta4is, entre otras 'ondades. Para m-s informaci7n #tt%$((%rymate4.org( ?p9t'on es !na s#ell interacti"a /!e aade f!ncionalidades e4tra al modo interacti"o incl!ido con Pyt#on, tales como resaltado de l*neas y errores mediante colores, !na sinta4is adicional %ara el s#ell, a!tocom%letado mediante ta'!lador de "aria'les, m7d!los y atri'!tosK entre otras. 1s !n com%onente del %a/!ete SciPy. Para m-s informaci7n #tt%$((i%yt#on.org( L*mP9 %ermite mani%!lar de manera r-%ida y eficiente arreglos n!m2ricos tales como "ectores y matrices (%ero tam'i2n arreglos m!ltidimensionales de rango ar'itrario). Para m-s informaci7n #tt%$((n!m%y.sci%y.org( Sc$P9 contiene m7d!los %ara o%timi.aci7n, -lge'ra lineal, integraci7n, inter%olaci7n, f!nciones es%eciales, ;;), %rocesamiento de seales y de imagen, resol!ci7n de >E1s y otras tareas %ara la ciencia e ingenier*a. 1st- dirigida al mismo ti%o de !s!arios /!e los de a%licaciones como DA)3AI, GN= >cta"e, y Scila'. Para m-s informaci7n #tt%$(( .sci%y.org( !a9av$F es !n %rograma interacti"o (en forma o%cional) /!e %ermite ela'orar gr-ficos en 8E de los datos cient*ficos en Pyt#on con sci%y. 1s el s!cesor de DayaSi %ara la "is!ali.aci7n 8E. Para m-s informaci7n #tt%$((maya"i.so!rceforge.net(

A#ora "ayamos al c7digo, este %!ede 'a+arse de B<C en este art*c!lo solo "eremos fragmentos c!asi interesantes. Para la distri'!ci7n de las estrellas tomamos la f!nci7n detallada en B0C. 1n el c7digo se %!ede "er fle+ada en$
%%%% import scip=%stats%'istributions as 'is %%%%
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

FS

class Tala0=H 'ef __init__(self, ra'io, nei&(bor(oo')H """CnitialiBe t(e &ala0= 2it( some ra'ius an' t(e c(osen nei&(bor(oo' """ self%'istributionNunc>tars = 'is%r1_'iscrete(name=#custm#, 1alues=L(0, ),(0%VX, 0% 6)M) self%'istributionTas = 'is%r1_'iscrete(name=#custm_&as#, 1alues=L(0, ),(0%Y,0%Z)M) %%%% %%%%

Para agregar !n %oco m-s de aleatoriedad se agrego la f!ncion de distri'!ci7n distributionGas. 1n !n comien.o se trat7 de tomar la f!nci7n &real& %ero se t!"o /!e modificar %ara /!e esta aleatoriedad a%are.ca. Podemos "er los res!ltados generados tomando estas f!nciones de distri'!ci7n en la fig!ra$

Para refle+ar la "elocidad ang!lar e4%licada en la secci7n anterior se im%lemento dentro de la clase Galaxy la sig!iente f!nci7n.
%%%% 'ef &ro2t(Nunction(self, star)H """Cncreases &ro2t( of eac( star""" if star%state > ,H star%state = 0 star%state P= tr=H :set an&ular 1elocit= star%an&le = star%an&le P / float(star%r) %%%% %%%%
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%0

%%%%

3a forma en /!e se rastrillo la gala4ia, es decir, "er el estado de los "ecinos aledaos a !n cm!lo estelar, %ara sa'er si se de'*a crear !n n!e"o cm!lo o no, se m!estra a contin!aci7n en el c7digo$
%%%% %%%% 'ef scannin&(self)H """>ee state of stars an' c(an&e formations""" for s in self%starsH localDei&(bor(oo' = ifilter(lamb'a starH starL M == starL0M%r P ,iBip(self%stars, repeat(s%r, len(self%stars)))) map(self%birt(Nunction, localDei&(bor(oo') :6t t(is line 2e a&e t(e Tala0=% map(self%&ro2t(Nunction, self%stars) %%%%

,eferencias

Links
it# 6ell!lar A!tomata, Er. Irian :. _ent, 3. S.

BHC Ste%#en Uolfram$ Articles on 6ell!lar A!tomata B0C Dor%#ology and Eynamics of Gala4ies National :adio Astronomy >'ser"atory.

B8C Percolation Dodel of Galactic Str!ct!re. P.1. Seiden and 3. S. Seiden and
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%=

Sc#!lman. Ad". P#ys., 8X$H?A<, HXX0. B<C 67digo ;!ente

Wr*cos 9 conse7os para resolver pro lemas 1rec*entes de 1orma r:p$da8 senc$lla 9 por )*+ no8 d$vert$da C>

Escrito por: E*"en$a @a'$t (Ar/!itecta G3ADP & Agile 6oac#)


1!genia es Ar)*$tecta de So1t-are, docente instr!ctora de tecnolog*as OLA!P (GN=(3in!4, A%ac#e, DySJ3, Pyt#on y P5P) y A"$le coac' (=)N) es%eciali.ada en Scr!m y e9treme Programming. Diem'ro de la ,ree So1t-are ,o*ndat$on e integrante del e/!i%o de De $an Hackers.
Be sC 6!rsos de %rogramaci7n a Eistancia$ Agile 6oac#ing$ .e!genia'a#it.com Redes soc$alesC ) itter ( Identi.ca$ De*"en$a a'$t .c!rsosde%rogramacionadistancia.com

&a"egar en Internet saltando restricciones utilizando a 2oogle como #roAy

!c#as "eces, /!eremos ingresar a !n sitio Ue' y no %odemos. Ga sea %or/!e la red desde la c!al estamos intentando ingresar 'lo/!ea el acceso a dic#o dominio o %eor an, %or/!e n!estra IP se enc!entra en !n rango de I%s restringidas %ara acceder a dic#o dominio (generalmente, de'ido a /!e %or 7rdenes +!diciales, el %ro"eedor de Internet, ser"idor o el mismo tit!lar del dominio, se "io for.ado a restringir el acceso, %or e+em%lo, a I%s de ciertos %a*ses).

1ste %ro'lema, generalmente se res*elve *t$l$#ando *n pro;9, %ero no siem%re tenemos la %osi'ilidad de config!rar !no. Sin em'argo, el serv$c$o de trad*cc$0n de
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

?IPS ?,ICOS

OLTHL$n*; & ServersC Wr$cks & W$ps

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%F

s$t$os Be de Ooo"le (e incl!so, otros ser"icios de trad!cci7n), de forma indirecta, actUa como *n pro;9, ya /!e %ara mostrarnos dic#o sitio Ue' trad!cido, nosotros accedemos a Google y es Google /!ien accede al sitio Ue' Ocon s! IPP y no con la n!estra.

1ntonces (c0mo *t$l$#ar a Ooo"le como pro;9. D!y sim%le. 1n la 'arra de direcciones del na"egador, !tili.aremos la sig!iente =:I %ara acceder al sitio Ue' restringido$
(ttpH//translate%&oo&le%com/translateGsl=en&tl=es&u= ttp:""%%%$restrin!ido$co&

E7nde htt*)881116restringido6com ser- la =:3 del sitio Ue' a /!e /!eremos acceder. 3os dos %rimeros %ar-metros ?N161SA:I>S? de la =:I anterior, sl y tl re%resentan el idioma de origen y destino res%ecti"amente. Para leer el sitio Ue' en s! idioma original (sin trad!cci7n), al %rimer %ar-metro (idioma de origen, sl) se le %!ede indicar !n idioma /!e N> sea el "erdadero. Por e+em%lo, si el sitio Ue' est- en es%aol, a sl le indicamos en.

)ener en c!enta /!e idioma de origen y destino de'en diferir. Por eso, si OmentimosP en el idioma de origen, en el de destino, s* %odremos indicar el "erdadero$
(ttpH//translate%&oo&le%com/translateGsl=es&tl=en&u= ttp:""%%%$face*oo?$co&

%bre"iando comandos en el (bas0rc

i ya lograste cansarte de tener /!e escri'ir !na y otra "e., largas listas de comandos %ara reali.ar !na acci7n re%etida, te m!estro dos o%ciones %ara /!e ?desde a#ora? %!edas e"itarlo f-cilmente$ al$as y 1*nc$ones.

1n el 6+ashrc tienes la %osi'ilidad de crear alias de comandos y f!nciones. Eic#o arc#i"o se enc!entra en 8home8t.-.s.ario86+ashrc

%lias
3os al$as %!eden ser"irnos %ara crear Oa're"iacionesP de comandos y arg!mentos /!e !tilicemos con frec!encia. Por e+em%lo (!na sencilla %ara /!e se entienda)$ 1n "e. de tener /!e escri'ir ls -lha, solo escri'ir ls$
alias ls=#ls "l(a#

Sim%le RciertoN 3a sinta4is siem%re de'e ser$


alias abre1iacion=#lista 'e coman'os = ar&umentos#

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%%

+unciones
Para %rocesos m-s com%le+os, %odemos !tili.ar 1*nc$ones, so're todo, si alg!nos %ar-metros no s!elen ser siem%re ig!ales$
function m', { p(p "r "ec(o m',(#$ #) % c(r( 0);" -

3a f!nci7n anterior, nos %ermitir- e+ec!tar el comando mdA seg!ido de !na cadena a hashear y nos im%rimir- en %antalla el #as# DEA de dic#a cadena, !tili.ando P5P?63I. $A re%resenta el %rimer arg!mento %asado al comando mdA.

Pugar con usuarios molestos es ms di"ertido 1ue blo1uearlos

stoy com%letamente seg!ra de /!e alg!na "e., !n !s!ario molesto de t! Sitio Ue', te gener7 dolores de ca'e.a y terminaste 'lo/!eando s! acceso. Pero R%ara /!2 amargarte si %!edes di"ertirteN

8e'a al molesto5a log$earse en t$ sistema y di+i9rtete:


Personalmente, #ay dos cosas /!e me di"ierten m!c#o #acer, c!ando !n !s!ario Ose %one %esadoP. =na de ellas, es red$r$"$rlo a al"Un s$t$o Be /!e nada tenga /!e "er con el m*o, cada "e. /!e detecto /!e se enc!entra log!eado en el sistema$
if(isset($_>5>>C;DL#user#M)) { if($_>5>>C;DL#user#M == #nombre"'el"usuario"molesto#) { eader(-:ocation: ttp:""%%%$#aticano$#a-); e0it(); -

Pero otra o%ci7n, es 'acerle creer )*e la p:"$na a la )*e $ntenta acceder8 no e;$ste$
if(isset($_>5>>C;DL#user#M)) { if($_>5>>C;DL#user#M == #nombre"'el"usuario"molesto#) { eader(-)..("@$@ ABA >ot 2ound-); e0it(); -

Eefiniti"amente, modificando los enca'e.ados 5))P, son m!c#as las cosas /!e %!edes #acer %ara di"ertirte y e"itarte dolores de ca'e.as K)

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%G

Contr$ *9endo en el e)*$po de trad*cc$0n al espa/ol de OLO!E

C0mo 1*e )*e me an$m+ a contr$ *$r en !ald$tas !ent$ras8 en el e)*$po de trad*cc$0n al espa/ol de OLO!E so re c*:n "en$al es contr$ *$r al e)*$po 9 c0mo tam $+n t* p*edes 1ormar parte de esto.

Escrito por: !$la"ros Alessandra ?n1ante !ontero (1st. Ing. Inform-tica)


Est*d$ante de ?n"en$er3a ?n1orm:t$ca. Diem'ro de APESOL (Asociaci7n Per!ana de Soft are 3i're) y de la com!nidad de soft are li're L*men'ack. Diem'ro del e/!i%o de trad!cci7n al es%aol de OLO!E. A%asionada %or el desarrollo de soft are, tecnolog*a y gadgets. Eefensora de tecnolog*as 'asadas en soft are li're y de c7digo a'ierto.
Be sC Ilog$ .milale.net

Redes soc$alesC ) itter ( Identi.ca$ Dm$lale

ace ya oc#o meses estoy contri'!yendo en Dalditas Dentiras, soy %arte del e/!i%o de trad!cci7n al es%aol de GN>D1 B0C, #asta el momento ya #e cola'orado en W diferentes m7d!los con trad!cciones$ en la g!*a de !s!ario de Piti"i y de 6onglomerate, en el contenido estatico de la %agina e' de GN>D1, en GIDP con !na %arte de los di-logos y de los mens, en el I= de e"ol!tion?,ola' y de gn!meric y act!almente estoy trad!ciendo la secci7n de f!nciones de gn!mericBHC). =no de mis #o''ies (!n #o''y fore"er alone $P ) es trad!cir, desde %e/!ea siem%re me agrad7 la idea de a%render otros idiomas y a medida /!e a%rend*a ingl2s me interes7 m!c#o el tema de las trad!cciones y se "ol"i7 de esta manera en !no de mis %asatiem%os fa"oritos, al %rinci%io solo lo #ac*a en mi entorno m-s cercano, /!i.-s %or alg!na necesidad en las clases o %or si algn familiar o amigo necesita'a leer algo escrito originalmente en ingl2s, en es%aolK l!ego c!ando em%ec2 a entrar en el m!ndo del soft are li're y del c7digo a'ierto, tam'i2n me em%e.7 a interesar la ingenier*a de soft are y "* /!e %od*a #acer algo con ese %asatiem%o en 'eneficio de alg!na com!nidad o %royecto real.
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

S-+?I%,* LI/,*

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%I

1s as* como em%ie.o a !sar GN>D1 y l!ego me entero de la e4istencia y el tra'a+o en Eamned 3ies (Dalditas Dentiras), esta es la a%licaci7n e' !sada %ara gestionar la locali.aci7n del %royecto GN>D1 (lH0n, este es !n n!mer7nimo, !na %ala'ra /!e contiene nmeros, se considera la %rimera y la ltima letra de la %ala'ra y las dem-s letras se reem%la.an %or el nmero /!e re%resentan las omitidas). Dalditas DentirasB0C est- 'asada en el ;rame or, e' E+ango , ofrece m!c#as estad*sticas (act!ali.ado a cada commit) , ofrece !n fl!+o de tra'a+o de re"isi7n con diferentes roles (trad!ctor, re"isor, committer y administrador), mane+a m!c#os S6S(ES6S (c"s, s"n, git, merc!rial, '.r) , est- organi.ado en torno a e/!i%os e idiomas, en"*a mensa+es a las diferentes listas de correo del e/!i%o , ofrece canales :SS de las acciones (Sertim!s) %ara cada idioma y e/!i%o , >%enIE y a!tenticaci7n local , detecta cadenas /!e se rom%en %or congelaci7n, tam'i2n %ermite e4aminar las estad*sticas en tiem%o real de los m7d!los /!e se "ienen trad!ciendo y gestiona el fl!+o del tra'a+o de las trad!ccionesK es soft are li're y s! c7digo f!ente est- dis%oni'le 'a+o la licencia GP3 de GN= B8C. Se dice /!e el nom're "iene de !na conocida frase %o%!lari.ada %or Dar, ) ain /!e atri'!ye al %rimer ministro 'rit-nico c!ando di+o$ O5ay tres clases de mentiras$ las mentiras, las malditas mentiras y las estad*sticasP, era !na frase /!e descri'e el %oder de %ers!asi7n de los nmeros y en %artic!lar el !so de las estad*sticas %ara refor.ar los arg!mentos d2'iles B<C.

;<l lector ideal es $n trad$ctor. <s ca&a= de desmen$=ar $n te,to, retirarle la &iel, cortarlo hasta la m9d$la, seg$ir cada arteria y cada +ena y l$ego &oner en &ie a $n n$e+o ser +i+iente>. 3l*erto ?ang$el
Di e4%eriencia siendo %arte del e/!i%o de trad!ctores al es%aol de GN>D1 #a sido genial, ya /!e a%arte de /!e el trad!cir es !n #o''y %ara mi, el sentir /!e %!edes ay!dar a los dem-s a %oder !sar soft are /!e originalmente est- en ingl2s y "er c7mo a#ora %!eden !sarlo en es%aol, es gratificante sa'er /!e a!n/!e sea !na %i.ca de t! contri'!ci7n le ser- de !tilidad a alg!ien m-s al %oder !sar soft are en s! idioma nati"o. An*mate a ser %arte de este %royecto, solo tienes /!e darte !n tiem%o %ara %oder contri'!ir con GN>D1K escri'ir !n mail a la lista de correos, %resentarte y decir /!e deseas cola'orar es todo lo /!e necesitas %ara em%e.arK toda la informaci7n detallada %odr-s encontrarla en la %-gina oficial de Dalditas Dentiras de GN>D1BAC.

,eferencias

Links

B0C #tt%$((lH0n.gnome.org(teams(es( BHC #tt%$((lH0n.gnome.org("ertim!s(gn!meric(master(%o?f!nctions(es


EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%K

B0C3i"e GN>D1 Eamned 3ies #tt%s$((li"e.gnome.org(Eamned3ies B6ons!lta$ 0W de >ct!'re de 00H0C B8C Dalditas Dentiras Acerca de #tt%$((lH0n.gnome.org(a'o!t( B6ons!lta$ 0W de >ct!'re de 00H0C B<C #tt%$((en. i,i%edia.org( i,i(3ies,QdamnedQlies,QandQstatistics BAC #tt%$((lH0n.gnome.org(

El *so mas$vo de d$spos$t$vos tecnol0"$cos 9 serv$c$os a trav+s de $nternet8 'a "enerado en todo t$po de entornos8 neces$dades 9 retos de cara a los 'o9 por 'o9 sed$entos cons*m$dores de tecnolo"3a. S$n em ar"o (N*+ tan consc$entes son las personas de )*e cada ve# e;$sten menos pro1es$onales ent*s$asmados por constr*$r a)*ellas cosas )*e dan por sentado en s* cot$d$an$dad. La cr$s$s pro1es$onal de los $n"en$eros de so1t-are est: serv$da.

Escrito por: Sore9 Oarc3a (1s%ecialista en Eesarrollo de Soft are)


Ar)*$tecta de so1t-are y docente !ni"ersitaria. ,*ndadora de la com*n$dad Avanet y miem'ro de ?EEE S* secc$0n !edell3n. L3der de $nvest$"ac$0n 9 desarrollo %ara mo"ilidad y retail en L$neaDataScan.
Be sC Ilog$ #tt%$(('log.soreygarcia.me Redes soc$alesC ) itter ( Identi.ca$ Dsore9"arc$a 3in,edIn$ #tt%$((co.lin,edin.com(in(soreygarcia

l cam'io generacional es e"idente, los entornos cotidianos se #an "isto im%actados en mayor o menor medida %or la ado%ci7n "ertiginosa de la tecnolog*a. Alg!nas sit!aciones generadas %or esta "irali.aci7n, %rod!cto de la f!si7n entre la
.#dmaga.ine.org

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

I? S-CI*!%!

(La cr$s$s del so1t-are.

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%M

mo ilidad! las redes sociales y el ofrecimiento de ser icios en la nube , se #an "!elto %ro'lemas cotidianos de alg!nos escenarios. )al es el caso de la cons!meri.aci7n de las tecnolog*as de la informaci7n, /!e se #a con"ertido %ara las organi.aciones en !na 'atalla contra el !so incorrecto del tiem%o y rec!rsos, la f!ga de informaci7n y la !tili.aci7n de dis%ositi"os no a!tori.ados en los e/!i%os y redes cor%orati"as, entre otros. Pero le+os de estas sit!aciones /!e se #acen e"identes %or im%actar de forma negati"a los intereses de alg!nos %ocos con %oder y dinero, otras crisis sobre ienen de manera m"s lenta y silenciosa desde hace algunos a#os. 3a tecnolog*a es %o%!lar y la constr!cci7n de la misma de'er*a ser %o%!lar de facto, o eso #ace creer el cine, con %ersona+es /!e se "!el"en #2roes o grandes "illanos %or sa'er %rogramaci7n de com%!tadoras. Para /!ienes solo nos toca las noc#es de trasnoc#o a ca!sa de clientes /!e no sa'en lo /!e /!ieren, re/!isitos y legislaciones /!2 cam'ian m-s /!e el afectado clima o mantener c7digo no doc!mentado de otro %rogramador, es e"idente /!e el tema es muy ciencia ficcin, %ero tal %arece /!e no es as* de com%rensi'le %ara la mayor*a de la gente. 1l %ro'lema consiste en /!i2nes y c!-ntos son los /!e no lo com%renden. P!es 'ien, la mayor*a de %ersonas /!e desconocen los detalles del $ue hacer de la ingenier%a de soft&are, son m!c#os de los c!ales e+ercen en las com%a*as el rol de !s!arios y clientes de los %royectos de soft are, y /!e e4igen en s!s a%licaciones cosas modernas como las /!e "en en la tele"isi7n, an!ncios %!'licitarios, doc!mentales o art*c!los de re"ista, y /!e en %ro de s! %ro%ia "ida moderna y s! ado%ci7n de n!e"as tecnolog*as, /!ieren lle"ar s!s o'soletos m2todos y %rocedimientos em%resariales #acia entornos "ang!ardistas, esto sin contar %or s!%!esto, /!e adem-s desean lle"ar este mismo estilo de "ida a s!s tareas %ersonales, diarias y cotidianas. De e ser 1:c$l de 'acer (no. )al %areciera /!e s*, todos los d*as en los maga.ines se leen #istorias de +7"enes /!e se #icieron ricos des%!2s de "ender a grandes com%a*as, a%licaciones /!e constr!yeron en !n %ar de semanas o noc#es, y /!e #oy %or #oy son !n #it entre los !s!arios de tecnolog*a, en esa %ers%ecti"a, claro /!e de'e %arecer ser f-cil de #acer. 3a res%!esta tiene m-s de !n im%licado y m-s de !na #istoria de trayectoria, a !s!arios y n!e"os %rofesionales, lamento informarles /!e no siem%re es as*, me+or an, /!e casi n!nca es as*. =sar la misma re%etida #istoria de c7mo An"r9 @$rds se #a #ec#o la a%licaci7n m-s %o%!lar o como !ark J*cker er" se #i.o millonario y famoso, y arg!mentar /!e tenemos la %osi'ilidad de ser !no de ellos, es tanto como in"itarlos a com%rar !n 'oleto de loter*a, o me+or, %ara tener m-s o%ort!nidad de ganar, moti"arlos a com%rase dos. 3a realidad es !n %oco diferente %ara la mayor*a y lo es an m-s c!ando no eres !n desarrollador moderno /!e %ersig!e iniciar s! %ro%io em%rendimiento, si no /!e te enlistas a tra'a+ar en %e/!eas o grandes com%a*as. Doti"aciones %ara esos (nosotros) los m-s com!nes, no #ay m!c#as, y sin em'argo los #oy afectados %or la carencia de %rofesionales de soft are sig!en %reg!nt-ndose 'por $u( no hay suficientes ingenieros de sistemas e inform"tica) Si !sted a%enas se est- enterando, esa es la sit!aci7n. Alrededor del m!ndo la demanda de %rofesionales en sistemas calificados, s!%era la oferta. 3as necesidades de las organi.aciones no est-n c!'iertas, y los esf!er.os de m!c#os se centran en moti"ar los
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%R

%rofesionales en formaci7n, n!e"os %rofesionales e incl!so a c!al/!iera /!e se crea con ca%acidades, en /!e ser pro"ramador de so1t-are adem:s de "en$al es 1:c$l. Go estoy de ac!erdo con lo %rimero, %ero a /!ienes an no conocen de estos menesteres, lamento informarles n!e"amente, /!e solo les est-n contando !na %arte de la #istoria. 6ontrario a este disc!rso %ro"eniente en ocasiones #asta de entidades g!'ernamentales, c!ando las grandes com%a*as '!scan %ersonal %ara recl!tar, las solicit!des "an de lo sim%le a lo irrisorio. Dientras alg!nos contratan %ara cargos /!e re/!ieren de e4%eriencia y conocimiento, a est!diantes o a%rendices, otros solicitan %ersonal con e4%eriencia %rofesional y conocimiento en metodolog*as y mlti%les tecnolog*as. 1n am'os casos la rem!neraci7n no com%ensa el ni"el de res%onsa'ilidad o el %erfil solicitado. Adem-s, #ay /!e "er como m!c#os de los /!e en distintos escenarios %rom!e"en el disc!rso de /!e c!al/!iera %!ede ser !n %rogramador, no contratar*an a alg!ien em%*rico en s!s %ro%ias em%resas a menos $ue fuese un genio, %!esto /!e conocen 'ien el costo de tener /!e ed!carlos en %rocesos !n %oco m-s ela'orados como los /!e re/!ieren las f-'ricas de soft are o sim%lemente la em%resas /!e ya s!frieron %or aos en carne %ro%ia, los %ro'lemas de #a'erse %ermitido tener #2roes constr!yendo soft are, en "e. de %rofesionales con mentalidad "isionaria y /!e %re"ieran /!e en el soft are #ay algo m-s /!e #acer /!e el /!e las a%licaciones f!ncionen a'ora, y ese algo m-s, es /!e desp*+s, otros tendr-n /!e mantenerlo y #acerlo f!ncionar tam'i2n. 3a ingenier*a de soft are, el )*e 'acer de los %rofesionales de soft are, no alcan.7 a mad!rar y ec#ar ra*ces y ya es s!'estimado. 1l 'ien intencionado tra'a+o acad2mico #oy est- siendo desec#ado ante el llamado a las masas a !tili.ar t!toriales "irt!ales y alg!nas #oras de dedicaci7n %ara formarse en el arte de #acer soft are. 6reo /!e malentienden eso de *el arte+! %!esto /!e a tal decli"e no nos referimos los %rofesionales /!e afect!osamente lo llamamos de esa manera. 1ntre tanto el im%acto y efecto de este disc!rso, no me+ora ni ay!da a moti"ar a los adolescentes en /!e eso de P'acer so1t-areQ de'a ser e+ercido desde el -m'ito %rofesional. 'Con $ue finalidad lo har%an si de otro modo pueden construir tecnolog%as modernas y di ertirse m"s) Por otro lado 'Cu"ntos tutoriales de internet podr%a leerse uno en los mismos , o - a#os $ue toma la formacin profesional) 1s as* como res!lta e"idente y alarmante, la %reoc!%ante dismin!ci7n de n!e"os est!diantes en las carreras t2cnicas, al %!nto de en alg!nos casos lle"ar a !ni"ersidades a eliminar las carreras de s! oferta acad2mica, ante la im%osi'ilidad de lograr /!e estas sean sosteni'les y renta'les con la escasa afl!encia de est!diantes. 1l disc!rso m-s r!idoso act!almente se centra en /!e marca es la me+or, como lograr crear !na em%resa en %ocos d*as /!e te #aga rico m-gicamente y c!ales %osi'les creaciones, %rod!cto del sentido comn, no se enc!entran %atentadas. P!es 'ien, en el -m'ito social, las %eleas est-n le+os de ser c!al es o no la me+or tecnolog*a, e incl!so si es li're, gratis o %aga. Para /!ienes somos ar/!itectos de soft are nada de+a m-s claro /!e alg!ien no tiene idea del tema, c!ando da arg!mentos 'asados en la %asi7n y no en las realidades de cada escenario, cliente y %royecto. Sin em'argo el r!idoso colecti"o y s!s temas de moda, tiene le+os s! atenci7n de las %ro'lem-ticas de orden m!ndial como lo res!lta #oy en d*a la falta de f!er.a la'oral calificada y con e4%eriencia s!ficiente %ara
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

%S

so%ortar los %rocesos de negocio de %e/!eas y grandes com%a*as, lo tendr-n en mente c!ando sea s! em%resa o em%rendimiento el /!e sea afectado. 3a o%ci7n, al menos en las %e/!eas com%a*as es sencilla, es necesario contratar al $ue lo sabe hacer, y si tiene !n %rofesional /!e sa'e #acerlo "ers!s algn no %rofesional /!e %!ede dar el *mismo aparente resultadoP a la mitad de salario, la elecci7n se #ace e"idente. 3os efectos de #acer soft are /!e sim%lemente f!nciona, "ienen con los aos, c!ando los negocios crecen, las necesidades cam'ian, las reg!laciones im%onen n!e"as directrices en los sistemas, y entonces llega el mantenimiento y los controles de cam'ios. 3as escenas cl-sicas llegan con facilidad a la mente de c!al/!iera /!e #aya %asado %or la misma sit!aci7n$ '.nde est" la documentacin) '/u( clase de programador hi0o seme1ante cdigo) G la me+or de las e4%resiones es$ 23ay $ue hacerlo desde cero4 25os tomar%a m"s entenderlo! $ue ol er a hacerlo4 5agamos !na sencilla com%araci7n$ R/ui(n en su sano 1uicio permitir%a $ue alguien le hiciera una cirug%a a cora0n abierto tan solo por$ue io el procedimiento en un ideo en internet o por $ue ley un tutorial $ue explicaba facil%simo cmo hacerlo) :es!lta m!y o'"io sentar !na %osici7n frente a esta %reg!nta 'Por $u( no resulta igual frente al escenario tecnolgico)

@A$i9n en s$ sano '$icio &ermitir(a %$e alg$ien le hiciera $na cir$g(a de cora=-n a*ierto tan solo &or%$e +io el &rocedimiento en $n +ideo en la Bnternet o &or%$e lo ley- en $n t$torial %$e e,&lica*a facil(simo como hacerloC
Si a !sted la medicina y el #acer soft are no le %arecen escenarios com%ara'les, %erm*tase anali.ar %or !n seg!ndo, c!ales son los as%ectos de s! "ida en los /!e el soft are tiene !n rol f!ndamental. Eesde los escenarios m-s sencillos y cotidianos, como las tan de moda a%licaciones en los dis%ositi"os m7"iles, #asta los entornos sociales m-s sensi'les como la medicina y la 'anca, #acen %arte de esos escenarios /!e a #oy tienen m-s necesidades de las /!e %!eden ser c!'iertas %or los %rofesionales /!e se est-n generando en las !ni"ersidades. 'Ser" $ue se ha con ertido en apremiante educar a la poblacin en general en las artes y la ciencia de construir soft&are) 1ntre tanto las solicit!des sig!en en a!mento, y como ya lo #e mencionado, cada d*a #ay m-s necesidades en las em%resas de #acer soft are del ti%o /!e sostiene los %rocesos de negocio im%ortantes, y mientras m!c#os intentamos moti"ar a los +7"enes en formaci7n so're lo edificante de e+ercer %rofesionalmente el rol de ser constr!ctor de soft are, el %laneta se des'orda en iniciati"as en las /!e es 'ien"enido constr!ir soft are de c!al/!ier manera. '.esmoti ar el traba1o serio y el e1ercicio profesional ser" la salida correcta a la intensa demanda de soft&are) 'A $u( costo se pretende figurar como empresa! marca o pa%s en los indicadores de las tiendas de aplicaciones) '.nde $ueda el e1ercicio acad(mico de hacer de la calidad un h"bito de las personas dedicadas al soft&are)

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

G0

Son m!c#os los actores im%licados en el detrimento del ecosistema %rofesional y acad2mico de las ingenier*as de sistemas e inform-tica, no es el caso c*lpar el d$sc*rso de moda de seme7ante s$t*ac$0n , sin em'argo si es !n llamado de atenci7n. 3a 'rec#a entre el m!ndo acad2mico y el em%resarial est- %lanteada #ace m!c#o tiem%o en m-s de !n -rea de conocimiento, #oy, en el -rea de la constr!cci7n de soft are #ay !na 'rec#a m-s, entre los escenarios /!e re/!ieren de la %rofesionali.aci7n o al menos de !na e+ec!ci7n m-s sensata y centrada en la calidad y los esf!er.os e in"estigaciones de tantas %ersonas, y los escenarios de los em%rendedores y s!s m-/!inas de #acer em%resas y a%licaciones en 's/!eda de alg!na /!e sea e4itosa. 3a %reg!nta final del %lanteamiento de este %ro'lema es 'Cmo moti amos la profesionali0acin ante el discurso de mar6eting del emprendimiento moderno)

Las #ro#uestas
5ace !n tiem%o esc!c#2 #a'lar a !n em%resario local, c!ya com%a*a es e4itosa y reconocida en el cam%o de la ingenier*a de soft are, %or contarse entre las %ocas del %a*s /!e #an alcan.ado el ni"el A de 6DDI, de #ec#o %or ser la %rimera. S!s ideas %lantea'an los ni"eles de insensate. /!e "i"*amos y de c7mo la ingenier*a de soft are no ser"*a %ara m!c#o m-s /!e %ara /!e tener %royectos ig!almente fallidos, dir*a yo, fallidos con estilo y m!y costosos. Al finali.ar de #a'lar este #om're, des%!2s de ec#ar %or el %iso la moral de todos los asistentes al congreso acad2mico en el /!e %artici%-'amos, sali7 del sal7n sin ofrecer ni !na o%ci7n, ni !na es%eran.a, y lo %eor, sin l!gar a o'+eciones o de'ates. Ante tal desfac#ate. me eno+2 'astante, sin em'argo #oy al finali.ar este art*c!lo entiendo algo de eso /!e llam2 Os! %ro%ia insensate.P. 1s insensato le"antar todas estas /!e+as sin ofrecer !na sol!ci7n al res%ecto, lo es, y no sa'en c!-nto lo lamento. 6onsidero sin em'argo /!e #ay %ersonas /!e deseamos #acer cosas diferentes a lo /!e "emos /!e s!cede en n!estras realidades la'orales, y de a#* s!rgen cantidad de mo"imientos en la red y en la cotidianidad, de gente y com!nidades dis%!estas a ensear lo /!e sa'en, a transmitir toda esa e4%eriencia /!e ad/!ieren en el camino e intentar /!e otros %asen %or "*as diferentes. J!i.- es !n %aliati"o, %ero es lo /!e %odemos #acer /!ienes no tenemos el %oder de mo"ili.ar go'iernos, instit!ciones y em%resas a cam'iar de mentalidad. 3e"antar la "o., c!estionar a otros so're lo /!e est- s!cediendo, incenti"ar a otros a com%artir y seg!ir intentando cam'iar el r!m'o, son acciones alcan.a'les y tangi'les, %or lo /!e contin!ar #aciendo esf!er.os de este ti%o desde todas las iniciati"as colecti"as e indi"id!ales %osi'les, %ro%ende ca%tar la atenci7n de a/!ellos /!e en s! la'or si tienen el poder y la responsabilidad de im%actar %ositi"amente los escenarios en los c!ales se le otorg!e !n mayor ni"el de dignidad al esf!er.o %or la pro1es$onal$#ac$0n 9 e7erc$c$o d$"no de la ?n"en$er3a de So1t-are como a%orte a los distintos -m'itos sociales.

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

G=

% t3tulo #ersonalF acad9mico y em#resarial


1scri'ir este art*c!lo tiene "arias ra.ones de ser, /!i.- demasiado e4tensas %ara ser %!'licadas, sin em'argo !n %ar de ellas son im%ortantes. 3a sit!aci7n es real, es real en los entornos acad+m$cos 9 empresar$ales, es%acios en los c!ales me desen"!el"o como %rofesional act!almente y donde #ay m!c#as m-s cosas /!e decir /!e las /!e %od*a escri'ir acerca de c7mo estos entornos est-n los %rinci%ales causas y causantes de las desmoti"aciones act!ales %or el est!dio !ni"ersitario de este ti%o de %rofesiones. Sin em'argo, #an e4istido y e4istimos los /!e creemos /!e a!n/!e el ecosistema acad2mico re/!iere m!c#os a+!stes, este ti%o de formaci7n te da #erramientas /!e enri/!ecen t! "isi7n y e+ercicio %rofesional, desde el est!dio disci%linado, #asta la formaci7n en 2tica y sensi'ili.aci7n de las sit!aciones sociales y #!manas, ca!sas %or las c!ales se forman todo ti%o de %rofesionales. A t%tulo personal, esto no me #ace a+ena a sa'er /!e #ay grandes talentos, admirados %or m!c#os en el -m'ito de la tecnolog*a y #asta en la cotidianidad, )*e no 'an neces$tado de 1ormac$0n acad+m$ca, %ero creo /!e la %ro'lem-tica social "a !n %oco m-s all- de las excepciones y llega al %!nto de #a'lar de las o%ort!nidades /!e tiene la %o'laci7n general y de #ec#o las necesidades de la misma. 1s en esa 7%tica es%ero la lect!ra de este art*c!lo, %!es si 'ien soy del ti%o de %ersona /!e %rom!e"e el a%rendi.a+e, el a!toest!dio en todas s!s formas y maneras, considero /!e el e+ercicio de desmeritar la academia 'a+o la %remisa de /!e los *h(roes+ tecnol7gicos de n!estra generaci7n +am-s terminaron la !ni"ersidad o de /!e m!c#os #oy en d*a afirmen incl!so /!e s!s #i+os no asistir-n a ella, no es en a sol*to *n d$sc*rso pos$t$vo, y /!e es necesario e/!ili'rar los mensa+es de las %artes y como siem%re, cerrar brechas entre los diferentes entornos propuestos.

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

GF

Las c*entas claras 9 el proceso de desarrollo concreto

La cal$dad en los procesos de desarrollo de so1t-are es m:s )*e llenar doc*mentos por llenarC es el es)*eleto de soporte para la toma de dec$s$ones 9 la asert$v$dad en la sat$s1acc$0n del cl$ente. Lo todo es cam$sa de 1*er#a8 pero m*c'as de s*s 'erram$entas 1ac$l$tan el tra a7o 9 d$sm$n*9en la presenc$a de errores 9Ho pro lemas d*rante la e7ec*c$0n del pro9ecto.

Escrito por: El$ana Cara allo (Ing. de sistemas)


?n"en$era de desarrollo sen$or y m$em ro act$vo de AVALEW. A%asionada %or todo lo relacionado con la ingenier*a de soft are y los %rocesos de calidad %ara desarrollo. Siem%re a'ierta a a%render y a com%artir lo /!e los aos de desarrollo me #an enseado.
Redes soc$alesC ) itter ( Identi.ca$ Del$anaca 3in,edIn$ #tt%$((co.lin,edin.com(in(elianacara'alloa

magine este escenario$ !sted tiene #am're y entra a !n resta!rante. 1l mesero ama'lemente le %reg!nta /!2 desea comer, a lo /!e !sted le res%onde$ Oalgo ricoP. Seg!idamente /!ien lo atiende le nom'ra todos los %latos /!e #ay en la carta y !sted sim%lemente le dice$ O%!es tr-igame lo me+or /!e tenga dis%oni'leP. 1l mesero le descri'e el %lato /!e %ara 2l es el me+or del resta!rante %ero !sted le dice /!e no le g!sta la carne y se retira arg!mentando /!e se "a %ara otro resta!rante donde entiendan lo /!e /!iere. 1l mesero se /!eda %ensando en %or /!2 no indag7 lo /!e el cliente /!er*a y le g!sta'a antes de ofrecerle el %lato. Si trasladamos este conte4to al am'iente de desarrollo de %royectos de soft are$ RSe le #ace familiarN D!y seg!ramente s*. =no de los %ro'lemas m-s com!nes en este ti%o de %royectos es lograr concretar lo /!e #ay /!e #acer %ara /!e el soft are f!ncione como de'e de ser. Eice la m-4ima /!e el
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

S-+?I%,* J%

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

G%

cliente siem%re sa'e lo /!e /!iere, lo /!e no tiene claro es c7mo lo /!iere, y es a#* donde si se tiene !n '!en so%orte de %rocesos y los mecanismos necesarios %ara el mismo, la %ro'a'ilidad de /!e el %royecto sea e4itoso a!menta. 1s im%ortante siem%re e4igir claridad so're lo /!e se "a a #acer y n!nca tra'a+ar so're s!%!estosK incl!si"e ay!darle a aterri.ar las ideas y g!iarlo en caso de /!e est2 e/!i"ocado en ciertos conce%tos t2cnicos, %!es si las 'ases del %royecto est-n mal #ec#as, m!y %ro'a'lemente terminar- siendo !n O%royecto at*%icoP /!e cons!mir- rec!rsos y generar- %2rdidas en l!gar de ganancias. 1l %roceso de acercamiento y esta'lecimiento de relaciones con el cliente %!ede ser "isto como !n matrimonio$ %rimero #ay /!e ser amigos y l!ego no"ios, antes de casarse con 2l. 6omo en toda relaci7n, #ay /!e desc!'rirlo, conocerlo, %ara %oder as* enamorarlo y amarrarlo. Si desde el comien.o se intentan for.ar las relaciones comerciales sim%lemente %or ser !n O%e. gordoP, se caer- en el c*rc!lo de Ocliente insatisfec#o so'recostos %ara contentar al clienteP /!e no es sano %ara el am'iente %ro%io de la em%resa. 6!ando est2 en esta eta%a, tenga %resente la sig!iente frase de mercadeo$

;Rec$erde %$e el $s$ario sa*e de $sted, lo mismo %$e $sted de 9lD EN383:>.
1s im%ortante aclarar /!e el conce%to de calidad es 'astante am%lio y no todos s!s as%ectos "an a ser tratados ac-. J!iero enfocarme %rinci%almente en la necesidad de !n sistema de calidad acom%aado de %rocesos 6DDi en !na casa desarrolladora. Pensar en esto #ace /!e se nos "enga !na cosa a la ca'e.a$ LD-s doc!mentosM LD-s cosas %or llenarM y si... contra la doc!mentaci7n e4#a!sti"a de lo /!e codificamos no %odemos #acer nada, %ero si le damos "erdadero sentido entenderemos el %or /!2 es im%ortante. 1n lo %rimero /!e se de'e %ensar es en las reglas del +!ego$ la "est$0n de la con1$"*rac$0n. 67mo se "an a esta'lecer las l*neas 'ase, de /!2 manera se "a a #acer seg!imiento y control de los cam'ios re/!eridos y c7mo "oy a aseg!rar la integridad de lo /!e se est- desarrollando. Im%lantar las '!enas %r-cticas de nom'rado, codificaci7n, comentarios y dem-s %ermitir-n /!e tanto la constr!cci7n como el so%orte del %rod!cto sea m!c#o m-s sencilla y agrada'le %ara el e/!i%o de tra'a+o. =na regla de oro en la %rogramaci7n es$ O6odifica %ensando en /!e "as a ser t /!ien "a a #acerle mantenimiento a la a%licaci7n, as* /!e escri'e el c7digo como te g!star*a encontrarloP. S2 /!e es s!ena a cartel de 'ao %ero es la realidad. Si todos codificamos con esta regla en mente, nos facilitaremos y le facilitaremos el tra'a+o a los /!e "ienen detr-s. No #ay %eor infierno /!e tener /!e modificar el c7digo a+eno, y m-s si este no est- lo s!ficientemente claro y no tiene doc!mentos de a%oyo %ara s! entendimiento. =na '!ena %r-ctica es desarrollar %ensando$ RG si maana no estoyN Si todo estde'idamente doc!mentado y escrito de forma /!e c!al/!iera lo %!eda entender, el mantenimiento y so%orte al %rograma no ser- com%licado. Sino, %iense$ RJ!2 ser*a del catolicismo sin la Ii'liaN$ c!al/!ier %ersona /!e /!iera conocer acerca de ellos, de s!s reglas y rit!ales, o sim%lemente s! #istoria, de'e referirse a esta sin falta. Ig!almente de'e ser %ara el %royecto el sistema de gesti7n de la config!raci7n$ !n so%orte al c!-l
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

GG

ac!dir en caso de d!das, o %ara sim%le conocimiento del mismo. 3o seg!ndo a considerar es la "est$0n de los re)*er$m$entos. 1l %or /!2 #ay /!e doc!mentarlos es claro$ el cliente cam'ia de %arecer constantemente, y si no desarrollamos so're !na l*nea 'ase clara y definida, n!estro %royecto ser- eterno y com%le+o, %!es ellos siem%re /!err-n agregar o cam'iar f!ncionalidades al mismo costo (&RJ!2 tanto es %oner !n 'ot7n adicional /!e llene !n cam%itoN&). Adicionalmente si no est- escrito, es m!y %ro'a'le /!e "ayamos ol"idando ciertas cosas /!e se #a'laron en s! momento %ara el f!ncionamiento del soft are. 1n todo %roceso de toma de re/!isitos es im%ortante /!e el cliente a%r!e'e y "alide todos y cada !no de ellos, ya /!e eso e"ita conf!siones so're lo /!e #ay /!2 #acer y c7mo de'e de f!ncionar al final. 1n las eta%as de an-lisis y diseo es cr!cial identificar c!-les artefactos de la ingenier*a de soft are son los /!e se "an a !sar %ara cada re/!isito$ no todos son indis%ensa'les %ara todosK todo de%ende de la com%le+idad del mismo. 1l %rototi%o, los diagramas de sec!encia, los diagramas de clase, los casos de !so, y todo c!anto se nos oc!rra /!e #ayamos "isto en la !ni"ersidad son los /!e a nosotros, como desarrolladores, nos dar-n idea de lo /!e tendremos /!e codificar (lo /!e el cliente /!iere). 1s n!estra ma/!eta, n!estro %lano, n!estro es/!ema. No imagino a !n ingeniero ci"il comen.ar a constr!ir sin tener %lanos del l!gar, o a !n cir!+ano cortar sin #a'er tra.ado el ma%a de cortes. 1s tra'a+o de los gerentes de soft are, los ar/!itectos y los analistas de re/!isitos #acerle entender al cliente la im%ortancia de estos doc!mentos, y /!e no es sim%lemente &tiem%o& /!e mal !sado en l!gar de comen.ar a tra'a+ar. Ga con estas 'ases claras, es m!c#o m-s sencillo y agrada'le #acer la %lanificaci7n, estimaciones y esta'lecer los com%romisos %ara /!e sea !n %royecto e4itoso. A %artir de este %!nto, la din-mica /!e se genere entre el gerente y el e/!i%o de desarrollo #ar/!e la Om-/!inaP de desarrollo ande %erfectamente engranada, y /!e el O%roceso de %rod!cci7nP f!ncione como de'e de ser. A%arte de la gesti7n de desarrollo como tal, es im%ortante /!e el gerente defina %ara cada %royecto la forma en /!e se "a a #acer seg!imiento y control y esta'lecer las acciones correcti"as en caso de ser necesario. Adicionalmente, este de'e esta'lecer m2tricas claras. 1stos dos temas, al ser m-s de gerencia /!e de desarrollo, ser-n tratados en !n art*c!lo %osterior. Di in"itaci7n es #oy a dignificar n!estro tra'a+o de desarrollo y darle s! "erdadero "alor. 1l %roceso de desarrollo sin la ingenier*a de soft are es ca7tico, desordenado e im%redeci'leK y es n!estro de'er a%render a integrarla c!ando codificamos y #acerla %arte de n!estro diario e+ercicio. 3a calidad no es !n conce%to n!e"o, o !na moda, y entre m-s la tengamos %resente, me+or ser- n!estro tra'a+o y mayor n!estra %rod!cti"idad. 1n %ala'ras de mi %a%-$

FNo est mal ser &egador de ladrillos, lo %$e est mal es no ser <) ?<GHR 1o al menos intentarlo2F.

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

GI

La Be Sem:nt$ca 9 s*s Ontolo"3as

La Be Sem:nt$ca es *na e;tens$0n de la Be convenc$onal )*e perm$t$r: encontrar8 compart$r 9 com $nar la $n1ormac$0n m:s 1:c$lmente.

Escrito por: &ecel9 D3a# (D.I.A. & Eesarrolladora Ue')


Gecely es !aestra en ?ntel$"enc$a Art$1$c$al y Desarrolladora Be . Aficionada de la )ecnolog*a, Sideo+!egos y la Ue'. Ansiosa de a%render, contri'!ir y %rogramar todas s!s ideas. Ama lo /!e #ace y el c7digo es s! "ida.
Be sC Ilog$ #tt%$((sil"ercor%. ord%ress.com Redes soc$alesC ) itter$ Ds$lvercorp

a Ue' sem-ntica es !n -rea nacida de la !ni7n de la Inteligencia Artificial y las )ecnolog*as Ue', la c!al %ro%one n!e"as t2cnicas y %aradigmas %ara la re%resentaci7n de la informaci7n /!e facilite la com%artici7n e integraci7n de rec!rsos a tra"2s de la Ue'. S!s %rinci%ios '-sicos son la descentrali.aci7n, com%artici7n, com%ati'ilidad y la a%ert!ra al crecimientoK y se a%oya de !n con+!nto de definiciones de conce%tos llamadas >ntolog*as. Si 'ien 5)D3 #a tenido !na e"ol!ci7n a lo largo de los aos como es el caso del act!al 5)D3A an no se %osee la cantidad de metadatos /!e %ermita a los '!scadores res%onder %reg!ntas directas como Olocali.a todos los arc#i"os relacionados con la in"estigaci7n del Genoma 5!manoP, donde la Ue' Sem-ntica tendr- el %a%el de modificar la manera en /!e se '!sca y %resenta la informaci7n en Internet.

-b$eti"o
S! %rinci%al o'+eti"o es lograr !na estandari.aci7n de todos s!s datos (a!dio, ser"icios, im-genes, etc), %resent-ndose en !n mismo formato el c!al %!eda ser le*do %or Agentes Inteligentes /!e clasificar*an los datos de !na manera eficiente, de"ol"iendo res!ltados m-s %recisos ante las %eticiones de los !s!arios.
EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0. .#dmaga.ine.org

I&?*LI2*&CI% %,?I+ICI%L

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

GK

1ste enfo/!e %ro%one /!e la Ue' sea enri/!ecida de tal forma /!e los datos sean reestr!ct!rados y se adicionen com%onentes sem-nticos /!e sean %rocesados de manera a!tom-tica, %ara ello ser- necesario el !so de las >ntolog*as /!e %osi'ilitan /!e los datos %!edan ser !tili.ados %or los Agentes Inteligentes de manera /!e #agan inferencias a!tom-ticamente locali.ando otros enlaces relacionados con s!s metadatos, de tal forma /!e la res%!esta /!e reci'e el !s!ario sea m-s com%leta.

,esource !escri#tion +ramework


:E; (:eso!rce Eescri%tion ;rame or,) es !no de los leng!a+es %ro%!estos %ara ser !tili.ados en la Ue' Sem-ntica, y %ermite aadir significado a los Sitios Ue' y as* tener mayor cantidad de datos en cada enlace. Por e+em%lo, si "isit-ramos la %-gina oficial de 5ac,ers and Ee"elo%ers n!estro diagrama estr!ct!ral con :E; ser*a el sig!iente$

Eiagrama 1str!ct!ral con :E;

1n 2l se indica /!e la direcci7n #tt%$(( .#dmaga.ine.org es !na re"ista electr7nica con fec#a de %!'licaci7n del A de No"iem're de 00H0, donde s!s t7%icos son 5ac,ing, Programaci7n, etc y s! c!enta de ) itter es 5ac,Ee"Daga.ine. 6omo %!eden notar "a m-s all- de indicar en los metatags %ala'ras cla"e y de esa manera encontrar m-s enlaces relacionados con esos metadados indicados. 3o mostrado en la gr-fica es e4%resado en el leng!a+e :E; con !na estr!ct!ra similar a 9D3, se %resenta a contin!aci7n$

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

Hackers & Developers !a"a#$ne Ao 0, Nmero 0

GM

+r'fH.7N> +r'fH7escription r'fHabout=[(ttpH//222%('ma&aBine%or&[> +(HJe'io>.e1ista 5lectr*nica+/(HJe'io> +(HE2itter>IacK7e1Ja&aBine+/(HE2itter> +(HEopicos>IacKin&, /ro&ramaci*n+/(HEopicos> +(H@anBamiento>,/Do1/S0 S+/(H@anBamiento> +/r'fH7escription> +/r'fH.7N>

As* los Agentes %odr-n anali.ar el c7digo anterior y com%arar con otros enlaces si %!ede encontrar relaci7n entre los elementos y res%onder con enlaces m-s com%letos y se relacionen con 5ac,Ee"Daga.ine.

/uscadores
Act!almente e4isten '!scadores /!e est-n em%e.ando a integrar la Ue' Sem-ntica, y a!n/!e Google se acerca a !no de ellos an no #ace el salto %or com%leto, sin em'argo, los '!scadores /!e te recomiendo "isitar son$ ? UolframAl%#a. #tt%$(( . olframal%#a.com(

? J!int!ra. #tt%$((/!int!ra.com( ? 6l!!.. #tt%$((cl!!..com( ? S oogle. #tt%$((s oogle.!m'c.ed!(

1n es%ecial UolframAl%#a y J!int!ra tienen !na forma m!y %artic!lar de %resentar s!s res!ltados, %or e+em%lo, agr!%arlos en categor*as o %resentar !na n!'e de %ala'ras cla"e en caso de /!e an no se%as /!e deseas '!scar. Se %retende /!e la Ue' Sem-ntica %ro%orcione !n a"ance c!alitati"o so're el %otencial de la Ue' act!al, y como o'+eti"o %oder !nificar los datos e4istentesK es %or eso /!e se '!sca !na estr!ct!ra con la s!ficiente ca%acidad e4%resi"a y de re%resentaci7n como es el caso de :E;. )odo es c!esti7n de tiem%o y est-ndares, y as* como se #i.o la e"ol!ci7n de !na Ue' H.0 a 0.0, lo mismo s!ceder- con la integraci7n de la Ue' Sem-ntica a los '!scadores +!nto con la Inteligencia Artificial, A%rendi.a+e A!tom-tico, entre otros, logrando as* el inicio de !na n!e"a era llamada Ue' 8.0.

)a 6e* Semntica se $tili=a a +eces como sin-nimo de ;6e* I. > "#im Jerners")ee

EF0=F Hackers & Developers !a"a#$ne 6reati"e 6ommons Atri'!ci7n No6omercial 6om%artirIg!al 8.0.

.#dmaga.ine.org

ASCII ART
Butterfly
*or chris.com
_______ LLLLLLLLLLL __LLLLLLLLLLLLLL LLLLLLLLLLLLLLLLL _LLLLLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLL _LLLLLLLLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLLLL L _LLLLLLLLLLLLLLLLLLLLLLL LL LLLLLL~~~LLLLLLLLLLLLLL _L _LLLLL LLLLLLLLLLLLL L~ LLL~ LLLLLLLLLLLLL LL _LLL _LL LLLLLLLL LL LL~ ~~ ~LLLLLL L _LLL_LLLL___ _LLLLLL LL LLLLLLLLLLLLLL LLLLLLLL L LLLLLLLLLLLLLLL LLLLLL LL LLLLLLLLLLLLLLLL LLLLL~ LLLLLLLL_______ L _LLLLLLLLLLLLLLLL LLLLLLLL ~~~~~~~LLLLLLLLLLLLLLLLLLLLLLLLL~ LLLLLL ______________LLL LLLLLLLLLLLLLL ______LLLLLLLLL_ LLLLLLLLLLLLLLLLLLLL LLLLLLLL~~LLLLLLL~~~~~~ ~LLLLLL ___LLLLLLLLLL __LLLLLLLLLLLLL LLLLLLLLLLLLL____ _LLLLLL_ LLLLLLLLLLL~~ LLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLL ~~~LLLLL __LLLLLLLLLLL _LLLLLLLLLLLLLLLLL_ LLLLLLLLLLLLLLLLLL_ LLLLL LLLLLLLLLLL~ LLLLLLLLLLLLLLLLLLL ~L ~~LLLLLLLLLLLLL LLLLLL _LLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLLL_ LL LLLLLLLLL LLLLLLLLL LLLLLLLLLLLLL LLLLLLLLLLLLL~LLLLLL~L LL ~~~~~ ~LLLLLL LLLLLLLLLLLLLLL__L LLLLLLLLLLLL_LLLLLLL LL_ LL_ _ LLLLLL LLLLLLLLLLLLLLLLL~ ~LLLLLLLL~~LLLLLLLL ~L ~LLLL ~L LLLLLL~ LLLLLLLLLLLLLLLL _LLLLLLLLLL LL LLLLLLL___ LLLLLLLLLL LLLLLLLLLLLLLLLL LL~LLLLLLLL~ LL LLLLLLLLLLLL LLLLLLL~ LLLLLLLLLLLLLLLL_ __L _L LLLLLLLL LLL_ LLLLLLLLLLLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLL L~ LLLLLLLL LLLLLLL~LLLLLLLLLLLLLLLL~ LLLLLLLLLLLLLLLLLLLL___L_ LL LLLLLLL LLLL LLLLLLLLLLLLLL ~~LLLLLLLLLLLLLLLLLLLLLLLL LLLLL~ LLLLL ~~~~~~~~~ LLLLLLLLLLLLLLLLLL_ _ LLL _LLLLL ~~~~~~LLLLLLLLLL~ LLLLLL LLLLL _LLLLLL LLLLL L L LLLLLLL LLLLL__LL _L__LLLLLLLL LLLLLLLLLL LLLLLLLLLLLL LLLLLLLLLLLLLLLLLLLLLL ~LLLLLLLLLLLLLLLLL~~ LLLLLLLLLLLLL ~~~~~~~~~

?D N-&% *QCLDSIR%

TX

D. (onomatopeya del trmino ingls you) es la zona eAclusi"a #ara lectores de Hackers !e"elo#ers Magazine( Si 1uieres a#arecer en esta seccin, en"3anos un correo electrnico a lectoresL0dmagazine(org o un ?weet con el 0as0tag oficial 5H!Magazine e incluiremos tu carta o comentario en el D. del #rAimo nMmero(

*n el #rAimo nMmero de H! Magazine, me gustar3a(((


O(d) /!e se #a'lara so're etica 5ac,er o algo %or el estilo, so're to% distros GN=? 3in!4, y algo so're N>SJ3 en la act!alidadP %or Dav$d O*errero !orales "*a GoogleT

%#%g %!es siem%re me %asa /!e c!ando !so !no , me termina com%licando y enredando rec!rriendo a las antig!as t2cnicas de malas %r-cticas de P5P& %or L*$s A"*$lera Clarke "*a GoogleT

*m#leo ofrecidoF
Si tienes !na em%resa, est!dio y(o cons!ltora de em%leo y '!scas %ersonal I) en el -rea de desarrollo, administraci7n de sistemas o lidera.go de %royectos, en"*anos t! oferta de em%leo a contactoD'dma"a#$ne.or".

O(d) leer so're medidas de seg!ridad en c!anto a la %rotecci7n de Eatos Personales %ara e"itar el ro'o de identidad en la redP %or @en$to Ro)*e "*a GoogleT

O(d) /!e se #a'lase de an-lisis de logs en ser"idores e'K !n tema m!y am%lio, %ero tam'i2n m!y interesanteP %or Dav$d O*t$erre# "*a GoogleT

P* l$cac$0n de o1ertas de empleo "rat*$ta8 s*7eta a d$spon$ $l$dad.

O(d) "er el tema de las sesiones "s coo,ies, en c!anto a la seg!ridad y eficiencia /!e nos %!ede %ro%orcionar cada !na de ellas& %or Sandra @a*t$sta Ort$# "*a GoogleT

&(...) ser*a genial !n artic!lo fNo recaer en las malas %r-cticas al !sar frame or,s

!I+D&!*&

You might also like