Es hora de que Google se apure
Según se anuncia, Windows Live Mail(ex hotmail, para los amigos) ha extendido su capacidad de almacenamiento a 5GB(mi cuenta sigue en 2GB). Es un buen numero, considerando que en mi cuenta de Gmail tengo ocupado un 78% de la cuenta y borro mails a diestra y siniestra para que no pase el 80%(de los 2.8 gigas que tengo disponibles). Ahora, como servicio de mail, el de Microsoft no me deja conforme ni un poco, es pesado, lento, se filtran correos que no deberían filtrarse y los que deberían quedar en la carpeta de spam, pasan. En definitiva, me parece un servicio de muy mala calidad, pero el espacio es algo más que importante, y, si Microsoft pudo, ¿a que está esperando Google para seguir subiendo el espacio de almacenamiento de sus casillas de correo?
De todas maneras, lo mire por donde lo mire, sigue siendo el mismo hotmail de siempre, con tres gigas más de almacenamiento, una cagada.
It Means Nothing - Stereophonics
Kelly Jones, Richard Jones y Javier Weyler conforman este trío galés(bueno, Javier es Argentino, pero los otros dos son de allá :P) llamado Stereophonics, y vuelven a desgarrarnos el alma anunciando su nuevo disco Pull the Pin con el simple It Means Nothing.
Siempre es bueno escuchar nuevas cosas de estos muchachos(aunque el disco solista de Kelly Jones me pareció demasiado pobre).
Les dejo la letra para que canten con Kelly (???):
Did we lose ourselves again?
Do we take in what’s been said?
Do we take the time to be
All the things we said we’d be
Bury heads in sand
But my future’s in my hands (it means nothing)You can find yourself a God
Believe in which one you want
‘Cos they love you all the same
They just go by different names
When we fly our flag today
Are you proud or just ashamed? (it means nothing, if I haven’t got you)And the sun sets in the sky
You’re the apple of my eye
If the bomb goes off again
In my brain or on the train
I hope that I’m with you
‘Cos I wouldn’t know what to do (it means nothing, if I haven’t got you)
Die Hard 4.0, mucha, mucha acción

Definitivamente es una película que tienen que ir a ver al cine, acción de principio a fin, solo como un duro como Bruce Willis sabe propinar.
Tiros, bombas, quilombo por todos lados, el caos total, el pelado en el medio y un muy buen chiste para todos los geeks, porque el .0 de 4.0 tiene bastante significado en la película , no voy a contar nada sobre la historia(que es bastante buena, aunque con algunos bugs, más allá del que encontró Fabio en la escena donde se quedan parados en el medio de la calle y del coche en donde venían McClane y Farrell sale un tipo de la nada, o sino las pcs hollywoodenses, en donde las interfaces son realmente fantasiosas, pero, vamos, es Hollywood), es duro de matar, y quienes vieron las otras tres ya saben más o menos como viene la mano, a Bruno es imposible matarlo y llena de sarcasmo y balas la pantalla grande.
La velada pudimos pasarla con Fabio y Hernan gracias a la gente de Bloggers Cut, y hubo momentos en donde, por lo menos yo, me descostillé de la risa y varias veces solté un “que hijo de puta, boludo!“, y más de una vez me encontré totalmente tenso en mi butaca, por la cantidad de impresionantes efectos y destrozos que hay.
La cereza de la torta, Kevin Smith(Warlock) haciendo de Hacker totalmente freak.
Realmente una excelente manera de empezar este viernes por la noche.
imdb | Live Free or Die Hard
Pan y Circo
Voy a seguir un poco con el post del otro día(al final sí daba para explayarse), no seguí mirando la nueva edición de gran hermano 5(la nueva generación de boludos!!) desde aquella vez por temor a causarme un daño cerebral y que en la causa de mi muerte aparezca la palabra suicidio, sino que hice una rápida recopilación de todos los programas que habré visto(ya sea enteros o pedacitos) en los últimos tres años, y he llegado a la conclusión(tampoco era tan difícil, che) de que vivimos dentro de una gran conspiración y un plan maestro para desbaratar a las mentes argentinas.
No solo es la televisión basura, sino que son todos los medios los que están complotados para tal fin, televisión, radio, diarios, revistas, propagandas, etcétera, pero ahora se está dando una movida que viene hace unos meses, los weblogs. Si bien ya no es ninguna novedad que internet se ha vuelto en los últimos años un medio de comunicación masivo y que los blogs están revolucionando todo, hay que tener cuidado, porque lo que sí es novedad, es que a algunos vivos que ya manejan gran parte de la basura mediática que anda dando vueltas, se están infiltrando en este mundo para tratar de seguir captando mentes débiles, continuar con su labor de estupidización y, así, seguir controlando masas. Uno de estos vivos, es el que le armaba las agendas a mendez, Hadad, que Fabio señaló en el post que hizo que este sitio suba unas ciento cincuenta visitas al día extra(como si fuera mucho, pero para este humilde programador porteño, es muchísimo).
Pero lo que me da miedo no es el contenido de estos weblogs(también está el de Majul, otro vivito pero con más cara de nabo), sino la gente que se suma a ellos, en su primer post, este flaco que ahora le hace la competencia a TN(dicho sea de paso, medio del flamante grupo Clarín, uno de los más grandes de la desinformación argentina), ha juntado unos cien comentarios que lo apoyan y avalan en su nuevo emprendimiento, si bien deben haber unos tres millones de comentarios filtrados en donde lo putean de arriba a abajo, cien personas avalando su proyecto, no está bueno, sin contar con todas aquellas que no comentaron porque les da paja o porque simplemente no saben que existe un área para comentar, aquellas que no saben que existe internet(o el weblog de este chabon) o no pueden tener acceso y aquellas a las que no les interesa. Es mucha gente, y todas avalando a la desinformación y la destrucción de la poca cultura que le queda a este país.
Tomo como ejemplo el weblog de Hadad porque se que prontamente se vendrán muchos más(de su mano o para hacerle la competencia), y es el que más está dando que hablar en estos días, una invitación a que más vivos se sigan sumando a la movida, pero el caso de este señor, es macabro, por un lado controla un puñado de medios televisivos, radiales y de la prensa en general, por el otro, se infiltra en el mundo de internet para dejar en claro que mucha gente lo sigue y que tiene, no solo el dinero, sino el poder de diagramar la estrategia que más se le antoje para inculturizar a la población, y burlarse casi sutilmente de los que nos damos cuenta de esta situación(”yo puedo, no me para nadie“).
Sí, tengo mucho miedo por como va a terminar todo esto, porque cada vez son más los que caen en la trampa de la ignorancia y cada vez hay menos lugar para la gente que realmente busca y lucha por un lugar en este mundo. Y sí, hay muchísimas cosas más que me gustaría seguir escribiendo, pero ya no tengo ganas ni tiempo.
¿Solución? no dejarse engañar, por nada ni por nadie.
cualquier similitud con la realidad es pura casualidad.
Consumiendo servicios web Axis2 desde PHP con NuSOAP
Aunque el titulo sea largo, la practica es mucho más corta y fácil.
NuSOAP es una librería escrita en PHP para poder crear y consumir servicios web por medio de SOAP(de ahí el nombre de la librería :P), al principio me dio un poco de miedo el hecho de que hace más de un año que no se actualiza, pero después de usarla un rato, me dí cuenta de que no era necesario, por ahora la única falla que le encontré es la que explicaré más abajo.
Axis2 es una implementación de Apache para poder hacer lo mismo que NuSOAP, con la diferencia de que los servicios se crean y se consumen en Java.
La idea es la siguiente: en la empresa en donde trabajo existe un servidor(en realidad varios, dispersados por todo el país) que autentica vía LDAP a los usuarios de una red extremadamente gigante, este servicio web creado para Axis2 se encargará de recibir peticiones y responder si la autenticación del usuario en un sistema(los sistemas que creamos son aplicaciones web que una vez que autentican contra ldap, guardan los datos en una base local y el usuario queda automáticamente registrado, si no fue registrado por el administrador de ese sistema antes) fue valida o no.
Como esta empresa tiene infinidad de sistemas y una variedad bastante amplia de arquitecturas y lenguajes, debemos hacer algo que sea lo más genérico posible, para esto se tomó en cuenta "cuantos sistemas en que lenguaje" y la mayoría son sistemas escritos en PHP, Java y .NET, por lo tanto, debemos hacer tres clientes para cada lenguaje(en realidad el de Java fue escrito al mismo tiempo que se escribió el servicio, así que uno de los tres ya está cubierto), el de PHP me tocó a mi, y fue mucho más simple de lo que esperaba.
Entrando un poco más en detalle, mi idea es hacer un objeto que simplemente le devuelva al sistema los datos del usuario, en el caso de que sus credenciales sean correctas, pero la base de esto(el objeto puede ser descomunal<<cosa que no es>>, pero si esta base no funciona, de nada sirve) es la comunicación entre mi objeto cliente y el servicio web que me espera del otro lado.
Basta de introducciones, quien haya entrado vía google o por donde fuere buscando esto, busca código, acá está:
-
<?
-
include_once("lib/nusoap.php"); //Incluimos la librería
-
// El servicio lo consumo usando su wsdl, de otra manera, por alguna razón, no funciona y axis2 devuelve un error 500
-
$wsdl = "http://url_del_servicio/axis2/services/wsValidarLdap?wsdl";
-
$clsNusoap = new soapclient($wsdl, true); // instanciamos el objeto y le avisamos en el segundo parametro que utilizaremos la descripcion wsdl
-
$clsNusoap->setDebugLevel(9); //quiero el máximo nivel de debug
-
// Los parámetros que necesito enviar se arman en un array
-
-
// Finalmente hago el llamado al servicio, no hace falta pasarle más parámetros a este método ya que
-
// la misma clase se encarga de armarlos al recibir el wsdl como descripción
-
-
// Si bien acá solo imprimo, la idea es tomar $clsNusoap->response y parsear el XML que me devuelve
-
// el servicio a mi gusto
-
echo "<h2>Return</h2>";
-
-
// El resto son mensajes de debug
-
echo '<h2>Request</h2><pre>' . htmlspecialchars($clsNusoap->request, ENT_QUOTES) . '</pre>';
-
echo '<h2>Response</h2><pre>' . htmlspecialchars($clsNusoap->response, ENT_QUOTES) . '</pre>';
-
echo '<h2>Debug</h2><pre>' . htmlspecialchars($clsNusoap->debug_str, ENT_QUOTES) . '</pre>';
y la respuesta es algo parecido a esto
-
<?xml version='1.0' encoding='ISO-8859-1'?>
-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
-
<soapenv:Body>
-
<ns:ValidarResponse xmlns:ns="http://ws.apache.org/axis2/xsd">
-
<ns:return>
-
<data>
-
<validar>
-
true
-
</validar>
-
<nombre>
-
Pablo
-
</nombre>
-
<apellido>
-
Fabregat
-
</apellido>
-
<mail>
-
mail
-
</mail>
-
<ug></ug>
-
<server>xxx</server>
-
<status>0</status>
-
<msg>
-
Connected to: xxx. trustStorePath: . searchBase: dc=xxx. searchFilter: sn=Pablo. Find userDN: cn=Pablo,ou=Person,cn=admin,dc=xxx. </msg>
-
</data>
-
</ns:return>
-
</ns:ValidarResponse>
-
</soapenv:Body>
-
</soapenv:Envelope>
Y eso es todo, perdón por los tags mal interpretados, es algo que voy a arreglar en estos días, pero para ver el código correctamente, hagan click en plain text.
Codificación en Oracle usando AdoDB
El otro día me topé con un pequeño detalle entre PHP y Oracle, resulta ser que cuando guardaba un dato(ya sea un insert o un update), cualquier carácter que tuviera acento, era automáticamente convertido a un "?", claro está, es la codificación, y en algún lado no se ponen de acuerdo.
Para la mayoría de nuestros proyectos en la empresa, usamos procedimientos y AdoDB como capa de abstracción de datos, bastante prolijo, y aunque no estoy del todo convencido con el método, anda bastante bien.
Una vez explicado esto, el detalle:
Normalmente, las instalaciones de Oracle bien hechas, tiene como por defecto la codificación WE8MSWIN1252(algo así como Latin American), para saber esto, desde SQLPlus ejecuté: SELECT USERENV ('language') FROM DUAL;
Ahora, el problema estaba en que AdoDB reconocía otra codificación(la que está por defecto en PHP, ISO-8859-1, tal vez), y el mayor detalle era que no me daba bola al asignarle a mano la codificación de esta manera: $adoDB->charSet = "WE8MSWIN1252";pero en algún punto esta propiedad se perdía, y como no tenía tiempo ni ganas de buscar la razón(tal vez al bindear los parámetros del procedimiento, perdía la codificación), la chanchada quedó así:
Cambié las lineas a partir de la numero 211 del archivo adodb- oci8.php
-
if ($mode==1) {
-
$this->_connectionID = ($this->charSet) ?
-
OCIPLogon($argUsername,$argPassword, $argDatabasename)
-
:
-
OCIPLogon($argUsername,$argPassword, $argDatabasename, $this->charSet)
-
;
-
if ($this->_connectionID && $this->autoRollback) OCIrollback($this->_connectionID);
-
} else if ($mode==2) {
-
$this->_connectionID = ($this->charSet) ?
-
OCINLogon($argUsername,$argPassword, $argDatabasename)
-
:
-
OCINLogon($argUsername,$argPassword, $argDatabasename, $this->charSet);
-
-
} else {
-
$this->_connectionID = ($this->charSet) ?
-
OCILogon($argUsername,$argPassword, $argDatabasename)
-
:
-
OCILogon($argUsername,$argPassword, $argDatabasename,$this->charSet);
-
}
por estas otras(como para obligarlo a que tome la codificación correcta):
-
$this->charSet = "WE8MSWIN1252";
-
echo $this->charSet;
-
if ($mode==1) {
-
$this->_connectionID =
-
OCIPLogon($argUsername,$argPassword, $argDatabasename, $this->charSet)
-
;
-
if ($this->_connectionID && $this->autoRollback) OCIrollback($this->_connectionID);
-
} else if ($mode==2) {
-
$this->_connectionID =
-
OCINLogon($argUsername,$argPassword, $argDatabasename, $this->charSet);
-
-
} else {
-
$this->_connectionID =
-
OCILogon($argUsername,$argPassword, $argDatabasename,$this->charSet);
-
}
-
if (!$this->_connectionID) return false;
-
if ($this->_initdate) {
-
$this->Execute("ALTER SESSION SET NLS_DATE_FORMAT='".$this->NLS_DATE_FORMAT."'");
-
}
Es una negrada, lo sé, pero ahora las codificaciones se llevan bien.
El contenido y algunas imagenes de documentandolavida.com.ar estan bajo la licencia Reconocimiento-NoComercial-SinObraDerivada 2.0 | 2008 Documentando la Vida.
GimpStyle2, basado en el estilo original de Horacio Bella, relleno con caprichos por Pablo Fabregat.
Entradas y Comentarios feeds.
XHTML y CSS válidos.