domingo, 30 de diciembre de 2012

Contraten a los hackers (por favor)

Imprescindible charla en el global TED 2011, merece los 18 minutos que dura, con alusión incluida a Annonymous.

Disfrutadla:

http://www.ted.com/talks/misha_glenny_hire_the_hackers.html

Los números de 2012

Los duendes de las estadísticas de WordPress.com prepararon un informe sobre el año 2012 de este blog.



Aquí hay un extracto:



4,329 films were submitted to the 2012 Cannes Film Festival. This blog had 43.000 views in 2012. If each view were a film, this blog would power 10 Film Festivals

Haz click para ver el reporte completo.



Gracias a todos y que tengais un gran 2013

viernes, 14 de diciembre de 2012

Google Maps vuelve a iOS

Como dice el título, el regreso de Google Maps a los dispositivos iOS de Apple es una realidad, ya está disponible para su descarga en la AppStore. Después del "fracaso" que supuso el cambio a la nueva plataforma de mapas en iOS 6, por parte de Apple.

La aplicación por ahora está optimizada para iPhone y se peude ver a pantalla completa en los iPhone 5. Parece que la versión optimizada para iPad tendrá que esperar un poco aún.

Parece que Google ha mejorado la versión para el iPhone incluyendo navegación paso a paso y algunas caracteristicas, que hasta ahora solo existían en la versión de Android.

viernes, 19 de octubre de 2012

Akademy 2013 se celebrará en Bilbao

Los grupos de software libre de Bilbao, itsas y e-ghost se han juntado para organizar la última cita de Akademy (KDE).

Podeis ver más información aqui asi, como conocer a su principal coordinador Dani Gutierrez.

Seguro que todo sale genial y es un existo rotund.

viernes, 28 de septiembre de 2012

iPhone 5 disponible en España

A partir de hoy, ya podremos ver por las calles las primeras terminales de Apple iPhone 5 vendidas en España, ya que hoy ha salido a la venta la última apuesta de Apple por los SmartPhones.

Su precio de salida libre en la Apple Store de de 669€
El que pueda que lo disfrute

miércoles, 22 de agosto de 2012

Test Driven Development (TDD)

Esta metodoogía de trabajo, llamada TDD, que está tan de moda, que es como la canción del verano, como minimo, hemos oido hablar de ello. Pero, ¿En que consiste TDD?

Desde donde yo lo veo, TDD, es una metodologia de trabajo, para el desarrollo de aplicaciones, en la que se pretende conseguir, que todo desarrollo que se haga este siempre, probado, es decir, que para cada paso que se da, en el avance de un desarrollo, ya se tengan las pruebas del mismo implementadas.

Por eso decimos que es un desarrollo orientado a pruebas, poruqe son estas las que marcan el camino a seguir del desarrollo, hago una función que tiene que sumar, y compruebo que suma, me da igual su integración, tengo qeu comprobar que suma, y que lo hace bien en todos los casos, cuando hay número negataivos, positivos y ceros, en ambos lados de la suma y si alguien intenta usar letras o simbolos?, pues también habrá que tenerlos en cuenta. A esto se llaman, pruebas unitarias, compruebo que la acción aislada se ejecuta correctamente.

Sobre todo se pretende con este sistema, que se cierren ciclos con funcionalidades completas, que el cliente de la aplicación pueda ver, de esta forma, se van enseñando las partes que se terminan, dando por buena, la frase: "el software que funciona es la principal medida de progreso"

TDD consiste en definir una "prueba" por cada requisito que debe cumplirse en un desarrollo, de tal forma que al cumplir cada uno de ellos, se vaya cumpliendo cada requisito

Pero TDD no es solo una metodología que nos indica que debemos probar, y como, sin oque además auna una serie de buenas practicas y consejos, que al aplicarlos, se hace el desarrollo más ágil. Estas técnicas pretenden ayudar a los desarrolladores aumentando su productividad y velocidad en el desarrollo, además de combatir el denominado "codigo sucio", que hace ininteligible el codigo fuente.

 

Algunas ideas para empezar a orientarse en esta forma de trabajo.

1. Nombres de las variables, no vale cualquiera, siempre es mejor que tenga sentido, no llames "cxdmbvar" a una variable.

2. Lo,mismo para los métodos.

3. Las pruebas dirigen, si no pasa la prueba. No esta desarrollado.

4. Se aconseja el uso de asserts para la comprobación es las pruebas, así lo puedes retirar cuando pase a producción.

5. Aunque parezca raro, la prueba es lo primero que se escribe, el codigo se va escribiendo según necesitamos para satisfacer la prueba.

6. TDD es muy costoso al principio, hace falta tiempo y dedicación para que se noten sus efectos.

martes, 21 de agosto de 2012

Cuidado, las aplicaciones WhatsApp para Facebook son todas falsas

El propio titulo explica por si solo, pero al parecer en los últimos tiempos han aparecido por facebook, muchisimas aplicaciones que dicen ser WhatsApp y nos informan de que todas ellas son falsas. Al menos hasta la fecha.

 

Lo he leido en: the next web

jueves, 16 de agosto de 2012

Adios a Adobe Flash en Android

Noticia sorprendente la que se conoció ayer (15/08/2012), Adobe abandonaba el soporte oficial de Flash en Android, lo que me supone una gran sorpresa, no espera que Adobe retirara el soporte a Android nunca (si, hace tiempo que se habia decidido, pero no lo creia...), y desconozco las razones por las que lo hacen, pero esto le da la razón a Apple, o al menos aparentemente, en que el sistema no es seguro. Al final tendremos que activar todos HTML5, para navegar tranquilos en la red.

miércoles, 15 de agosto de 2012

Nuevo competidor en la guerra de los moviles (Firefox OS)

Si ya había opciones a la hora de elegir un sistema operativo en un movil, las cosas se complican más aún, al principio, cada marca tenia su sistema operativo, pero la aparición de Apple, y su iOS, creó un nuevo concepto, que no existía hasta entonces y se creó una nueva guerra en la que Google y Apple, han llevado el mando con sus respectivos sistemas, iOS y Android han gobernado el mercado con mano de hierro, desbancando a Windows Mobile y los sistemas de las diferentes marcas como Nokia, que habia reinado en los moviles desde el inicio de los tiempos, aunque a nivel mundial, Sysmbian sigue siendo el SO operativo más usado en todos los moviles, ha perdido más de un 10% de cuota de mercado en los últimos dos años, como puede verse en la imagen de statcounter.



La evolución de estos sistemas, nos muestra como Sysmbian ha tenido una caida a lo largo del los últimos años, acompañado de un crecimiento espectacular por parte de Android, pasando de una cuota de casi nula hace 2 años, a acercarse hasta el 25-26% y ponerse al nivel de iOS que hace 2 años, tenia más de un tercio de las terminales.

La caida de Symbian se acentua mñas en algunas regiones como Europa, donde ha pasado en los últimos dos años, de cuotas que rondaban el 45% a ser el 8%

Veremos como reacciona el mercado a la inclusión de un (presumiblemente) duro competidor, con la imagen publica de Mozilla, y toda su comunidad de usuarios, si me lanzo a hacer conjeturas de lo que puede pasar, creo que Android, perderá una importante cuota de usuarios, por la entrada en escena de Firefox OS y que el resto de sistemas veran su pequeña perdida, por el reparto del pastel, pero creo que el perfil de usuario de android es similar al potencial usuario de Firefox OS.

Veremos como evoluciona este tema, espero que al final, sea para el bien del consumidor, y encontremos, mejores terminales, mejores sistemas y mejores servicios para todos.

lunes, 13 de agosto de 2012

Libre Office 3.6 ya está disponible

Ya tenemos disponible para su descarga la nueva versión de Libre Office, la 3.6, desde la pagina de la Document Foundation

Mega Box (La proxima herramienta de MegaUpload)

El ya archiconocido Kim DotCom, por sus peripecias con la justicia americana, parece que vuelve a la carga tiempo despues de los cierres del servicio de megaupload.

Según The Next Web, en esta noticia, parece que asegura que MegaBox, estará disponible antes de finales de este año 2012.

Veremos como acaba este asunto, y cuanta publicidad gratis ha recibdo este servicio, antes incluso de estar disponible, gracias a la repercusión de todas las acciones llevadas por el propio Kim y las diferentes autoridades de EEUU y Nueva Zelanda.

jueves, 9 de agosto de 2012

Uso de los navegadores en el mundo en 2012

No es facil encontrar datos fiables de los navegadores, pero creo que podría servir de orientación, me sorprenden mucho los resultados de Chrome, no sabia, o no tenia constancia de su gran aceptación y cuota, yo sigo siendo de Firefox, aunque he usado alguna vez Chrome y me parece bastante bueno.























 IE36,79
 Chrome27,01
 Firefox21,16
 Safari6,2
 Opera1,51








 Resto7,33

lunes, 6 de agosto de 2012

12 de septiembre ¿Fecha de lanzamiento de iPhone 5?

[caption id="" align="aligncenter" width="206"]Image representing Apple as depicted in CrunchBase Image via CrunchBase[/caption]

 

Los rumores se disparan, podría ser que el proximo 12 de Septiembre en la KeyNote que Apple prepara el Cupertino, se presente el esperado nuevo modelo del telefono de Apple, aunque también se habla de una nueva generación de iPods, o incluso de la presentación de un nuevo iPad, más pequeño que los anteriores modelos, 7 pulgadas, en vez de las hasta ahora tradicionales 9,7"

Veremos que nos trae la empresa de la manzana, solo nos queda esperar. Todo lo demás son rumores.

 

 

:)

 

 

lunes, 30 de julio de 2012

JODConverter sin mantenimiento

Aunque ya ha ocurrido hace bastante tiempo, el creador de la popular herramienta (API Java, Python) de automatización de conversiones de documentos en multiples formatos, basada en Open Office, "Mirkonasato", ha decidido dejar de mantener el proyecto, de tal manera que lo ha dejado "huerfano" en gitHub, en esta pagina

Para consultas sobre el proyecto, sigue manteniendo la pagina de google code.

Espero que el proyecto pueda ser continuado (algún tipo de fork) ya que es realmente interesante.

Y desde aqui mi mas sincera enhorabuena al creador.

[caption id="attachment_906" align="aligncenter" width="300"]JodConverter JodConverter[/caption]

lunes, 16 de julio de 2012

Como juntar documentos en un PDF con PDFCreator

Vamos a ver como de una forma muy sencilla y con un software libre y gratuito, podemos crear desde varias fuentes, un único documento PDF, si instalamos PDFCreator y le damos a imprimir a un documento, nos encontramos con la siguiente ventana:

[caption id="attachment_893" align="aligncenter" width="300"]PDF Creator PDF Creator[/caption]

Si en esa ventana pulsamos en el botón, poner en cola de impresión, nos encontraremos con la siguiente ventana:

[caption id="attachment_894" align="aligncenter" width="300"]PDF Creator encolar tareas PDF Creator encolar[/caption]

Donde podemos ir añadiendo documentos, realizando la misma tarea que anteriormente. Es decir, imprimir el documento y darle a “poner en cola de impresión”

Tantas veces como queramos:

[caption id="attachment_895" align="aligncenter" width="300"]PDF Creator combinar PDF Creator combinar[/caption]

En el ejemplo cuatro documentos, cuando tenemos los documentos que queremos en esta lista de documentos, en la lista hacemos botón derecho y combinar todo (Ctrl + A) y todos los documentos se contraerán en una única tarea y podemos darle a Imprimir (Ctrl + P) y ya solo nos falta darle al botón de guardar y ponerle un nombre al documento PDF creado.

viernes, 15 de junio de 2012

Gracias a todos

Post especial para celebrar que el blog ha superado las 50.000 visitas, que seguro que Google las tiene un segundo, pero a mi me hace ilusión ver que alguien se lee esto.

Gracias a todos los que leeis este blog.

viernes, 1 de junio de 2012

Herramientas para gestión de documentos de forma segura (made in Spain)

Aunque mi experiencia de ambos servicios se basa en sus versiones gratuitas, diré, que la primera sensación es buena para los dos proveedores que voy a analizar, que son: Doocuments y Prot-on

[caption id="attachment_878" align="aligncenter" width="300"]doocuments doocuments[/caption]

Lo primero que quiero comentar, es que ambos servicios, aunque con muchas similitudes, no son ni mucho menos lo mismo, ya que se trata de dos orientaciones diferentes, la de Doocuments, es un repositorio documental, para uso colaborativo y online, en el caso de Prot-on es una herramienta de seguridad, que funciona en paralelo a una solución tipo Doocuments o DropBox para asegurar la transferencia y uso de los documentos.

Antes de empezar a usar cualquiera de los servicios, lo que tenemos que hacer para usar alguno de los servicios, es darnos de alta, y qui se genera la primera diferencia, el alta en Prot-on es muchisimos más sencilla e intuitiva que en Doocuments.

En Prot-on el registro es como el de muchas otras Webs, solicitando en un formulario la información del alta, envian un correo eléctronico donde debes pinchar a un enlace para completar el alta, vamos, desde mi punto de vista un alta normal.

[caption id="attachment_879" align="aligncenter" width="300"]proton proton[/caption]

En Doocuments el alta consta en pinchar en el enlace de la página donde dice "Sign Up" (para usuarios gratuitos) y en esa ventana aparece un formulario, que no se explica de ninguna manera, con campos, aparentemente de un correo (asunto, de, hacia y adjuntar fichero) nose si yo en mi simpleza no he sido capaz de deducir que se trata de que envies un correo a alguien con un fichero que vas  asubir al servicio, para empezar a usarlo, quiza estaba un poco espeso cuando lo hice, pero me costó darme cuenta, que tenía que rellenar esos campos para que me enviaran el email de activación a mi cuenta de correo. (ingenuo de mi)

Una vez dado de alta, descubres que en Prot-on es muy facil mandar sugerencias y solicitar ayuda, ya que en todo momento tienes un banner lateral, que molesta, pero no mucho y por cierto la ayuda es muy efectiva, han tardado 22 minutos en contestarme a una consulta.

En doocuments la ayuda está un poco más escondida, aunque ahí está, tienen un apartado de Soporte, donde puedes encontrar un correo de contacto, y algunas páginas en construcción de soporte tipo HelpDesk, estarán disponibles en un futuro y para cuentas PREMIUM, no es mi caso.

Una gran ventaja de Doocuments, o que al menos a mi me lo ha parecido para el uso que le he dado, es que la interfaz de subida de documentos, es MUY intuitiva y sencilla, la simplicidad con la que funciona es impresionante, no así la de Prot-On, ya que no hay forma de subir un documento via web, puedes gestionar los documentos que tienes en otros sistema y decir como y con quien compartirlos, es decir, puede tener un documento en DropBox, SkyDrive, el ordenador, tu movil etc... y decidir de forma segura, con quien compartes esos ficheros y como.

Prot-on es una herramienta para proteger los documentos de forma segura, y compartirlos, no un Google Docs, su gran apuesta está en la seguridad de lo que compartes, en días en los que "la nube", está tan de moda, tener un sitio donde no solo puedes enviar los documentos, sino que tienes quien te asegura que no lo compartes con cualquiera sino solo su destinatario, es un lujo al alcance pocos.

Con estos puntos doy por terminada la primera entrada al respecto, intentaré seguir escrbiendo sobre estas dos herramientas que me han sorprendido.

Comentar que en estos últimos días Doocuments ha sacado una nueva versión de su plataforma Online y ahora soporta el uso de carpetas. Será interesante ver como funciona.

martes, 22 de mayo de 2012

Más Software libre, para el día a día

Una acción que llevamos a cabo muy a menudo al usar un ordenador es hacer un pantallazo, para eso, yo ya hace mucho tiempo que tengo instalada en mi ordenador una herramienta que se llama GreenShot y la puedes encontrar aqui

La sencillez de esta herramienta es su gran arma, ya que la instalas y se queda en segundo plano ejecutandose y cuando imprimes pantalla, te deja seleccionar que area de la pantalla quieres sacar como pantallazo, una vez realizado el pantallazo, te abre un pequeño editor de imagenes, con un botón para copiar la imagen y unas pocas herramientas de dibujo (no más complejo que el paint) para hacer cuadros y remarcar textos o imagenes que queiras. Los resultados son sencillos, pero muy eficientes y rápidos.

Vamos para mi un 10 de software para capturas de pantalla.

A continuación un pantallazo de la herramienta para sacar pantallazos...pura recursividad...Como veis se pueden hacer figuras sencillas, flechas, y cuadros para resaltar alguna zona, peuden cambiarse los colores y puede escribirse texto.

Greenshot

Otras entras de este blog relacionadas:

Herramientas de software libre

Más herramientas open source

Sofware libre para recuperar datos perdidos

viernes, 11 de mayo de 2012

TRANSFORMER 2 vs nuevo iPad

Transformer 2

  • Procesador de cuatro núcleos NVIDIA Kal-el 1 Ghz.

  • 1 Gb de memoria RAM.

  • Pantalla de 10 pulgadas de 1280 x 800 píxeles.

  • 32 Gb memoria interna.

  • Conectividad  MicroSD, USB Host y salida HDMI.

  • Sistema Operativo Android 4.0 Ice Cream Sandwich.


Como se puede ver tiene un hardware digno de ser comentado y destacado, y comparable con el del nuevo iPad

  • Procesador de doble núcleo A5X

  • Pantalla de 9.7 pulgadas y 2.048 x 1.536

  • WiFi y 4G

  • Entre 16 y 64 Gb de memoria interna.

  • Conectividad Apple


En una rápida interpretación del hardware se puede apreciar que la pantalla retina display de Apple, es un pantallón en toda regla, y que si lo que quieres es una pantalla de máxima calidad la elección está clara, por otro lado, el Transformer gana en conectividad y capacidad de procesamiento, con una potencia envidiable en lo que al procesador se refiere.

No entraré por enésima vez en la pelea de iOS vs Android, no es rentable seguir discutiendo eso.

 

lunes, 27 de febrero de 2012

Técnicas de ataque - SQL Injection (Inyección SQL)

Aunque se trata de un tema, bastante antiguo, y que no será facil de reproducir, aunque seguro que quedan sitios, que son vulnerables a este tipo de cosas. SQL Injection es una técnica de ataque a paginas, que intentan colar codigo SQL, dentro de codigo SQL de la aplcación destino, para romper o acceder a información. Con esto se quiere decir, que por ejemplo, si suponemos que una pagina web, tiene en su pagina de login, dos campos, usuario y contraseña, muy habitual, y para buscarlo hace lo siguiente:

SELECT * FROM Users WHERE Username='usuario' AND Password='contraseña'

Si hicieramos que tanto el usuario, como la contraseña valieran 1' OR '1'='1'

La sentencia quedaría de la siguiente manera:

SELECT * FROM Users WHERE Username='1' OR '1' = '1'  AND Password='1' OR '1' = '1'

Lo que técnicamente devolvería una lista con todos los usuarios, y podría en algunos casos, concedernos acceso a la página en cuestión. Curioso cuanto menos.

Si queremos ser un poco más destructivos, y conocemos el nombre de una tabla, o podemos intuir el nombre, se puede hacer algo como esto, a través de SQL Injection.

Si por ejemplo, se le da el valor al password de: x'; DROP TABLE users; -- y al usuario, por ejemplo 1 (este valor es indiferente para este caso)

el resutaldo sería, cogiendo la SQL arriba citada, el siguiente:

SELECT * FROM Users WHERE Username='1' OR '1' = '1' AND Password='x'; DROP TABLE users; --'

El -- final, es importante, porque se trata de dejar en comentario, el final de la SQL, paa que no falle, la comilla, que nos habran puesto, para parametrizar la String SQL de la contraseñá, en este caso el resultado, es que si la SQL se está ejecutando con permisos de borrado, y la tabla USERS existe, no exisitirá más.

Una vez explicado, como es SQL Injection, haciendo el mal, un par de ideas, para evitarlo, sin que sean muy complicadas de implementar.

Si por ejemplo, en vez de almancenar las contraseñas de los usuarios, lo que se almancena es un HASH de las contraseñas, como pueden ser SHA1 o MD5, entonces, al comparar las contraseñas, lo que se enviará a SQL para comprar no será el texto escrito por el usuario, sino el HASH que se genera, lo que en ningún caso será una SQL Injection.

Por otro lado, otra opción de baja tecnología, para solucionar este problema, quizá mucho menos fiable, pero si mucho más sencilla, es prohibir ciertos caracteres reservados de SQL en los textos, como pueden ser, las comillas simples, el OR, el AND, lo que viene a ser una lista negra de textos prohibidos, para que no ataquen al sistema.

Curiosidad final, si pusieramos este valor a la contraseña,

1; update users set password = 'password'; select *

Esto haría que las contraseñas de todos los usuarios, pasasen a valer "password" lo que tiene gracia, al menos si no le pasa a tu aplicación.

lunes, 20 de febrero de 2012

JSP Etiquetas logic:equal y logic:iterate Struts

Para esta entrada, vamos a hablar de la etiqueta de Struts, asociada a JSPs, para gestionar variables, que tengan un valor concreto, para ello, lo primero, la estructura de la misma.

Antes de empezar a utilizar etiquetas de struts, debemos incluir la referencia al tagLib en este caso en concreto, lo haremos de la siguiente manera:

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

Esto nos dará acceso a todos los tags de Struts, asociados a logic, a los que podremos acceder anteponiendo la palabra logic por delante del tag que queremos usar, para el caso de esta entrada, es equal y la podemos ver de la siguiente manera:

<logic:equal name="Formulario" property="VariableACompara" value="Valor a comparar">

...Codigo HTML en caso de que la condición sea cierta.

</logic:equal>

Pasando ahora a la etiqueta iterate, para recorrer una lista y ponerlo en una tabla, si tenemos un formulario en Java, que se llama Formulario, con una variable listaArecorrer (de tipo: ArrayList), declaramos una variable interna que podemos usar (nomVariableInterna: el tipo puede ser un objeto, y acceder a sus atributos: "PropiedadVariable") dentro del iterate, para acceder a sus valores o propiedades:

 

<table>

<th>titulo</th>

<logic:iterate name="Formulario" property="listaArecorrer" id="nomVariableInterna">
<tr>
<logic:equal name="nomVariableInterna"  property="PropiedadVariable" value="Valor">
<td  width="30">Opción</td>
</logic:equal>
<logic:equal name="nomVariableInterna"  property="PropiedadVariable" value="Valor">
<td  width="30">Otra Opción</td>
</logic:equal>

</tr>

</logic:iterate>

</table>

Esta entrada es una respuesta a, donde se preguntó por un ejemplo de recorrer una lista:

Etiqueta logic en Struts

jueves, 2 de febrero de 2012

UML Casos de Uso -- Escenarios

Después del éxito de esta entrada sobre UML, siguiendo con ese tema, tenemos otro tema de UML.

Un tema que a veces da para discutir en lo que a diseño UML se refiere, los escenarios.

¿Qué es un escenario en UML?

Un escenario en UML es una circustancia o situación, en la que se puede encontrar un sistema. Es decir, si cogemos un ejemplo de sistema, por ejemplo, este blog, una escenario podría ser, escribir esta entrada. Como puede entenderse de este concepto, un escenario es ampliio, y puede tener, diferentes formas de "ejecutarse" u ocurrir.

¿Para que sirven los escenarios?

Los escenarios, como hemos dicho, definen situaciones en las que se encuentra un sistema, esto quiere decir que, el conjunto de escenarios, definien el sistema, o al menos, lo que puede hacer el sistema. De lo que deducimos, que los escenarios nos sirven para definir, que hace y que no hace un sistema.

En un sistema de reservas on-line, podemos definir escenarios como pueden ser: Dar de alta un usuario, hacer una reserva on-line, dar de baja un usuario, modificar una reserva, pero podríoamos no tener un escenario de borrar una reserva, porque el sistema no la contemple.

¿Como se definen los escenario?

Hemos visto, que los escenarios definen al sistema, pero claro, al mismo tiempo, lo que puede hacer el sustema, define a los escenarios, esto lleva a una paradoja, que solo el "alcance" del sistema puede definir. El alcance es lo que define, que si y que no hace el sistema. (Si trabajas en un sector que funcione por proyectos, preguntate el alcance del tuyo ;) )

¿Partes del escenario?

un escenario, en si mismo puede dividirse, en acciones, estas acciones, defienn que caminos puede tomar un escenario. Como hemos visto, un escenario podría ser, dar de alta un usuario (todo un clásico), este escenario, dependiendo de lo que signifique dar de alta, hará una serie de acciones, que desencadenarán en posibles resultados diferentes.Al ver que los escenarios son condicionales, eso nos hace pensar, que pueden tener diferentes salidas o resultados, dar de alta un usario, puede acabar correctaement econ el usuario dado de alta, o incorrectamente, porque falten datos para el alta (por poner un ejemplo)

La ejecución "perfecta" de un escenario, se denomina Happy Path o Camino Feliz.

Entradas relacionadas en este blog:

UML diseño de agregación vs composición

Diseño UML Clase asociativa

Ingeniería inversa con eclipse Java2UML

lunes, 23 de enero de 2012

Google Analytics (error _gat undefined)

[caption id="" align="alignright" width="188" caption="Image via CrunchBase"]Image representing Google Analytics as depicte...[/caption]

Un error al parecer bastante habitual el empezar con Google Analytics, es el de encontrarnos con el siguiente error “_gat undefined“ parece que esto se debe a no alcanzar el código Javascript que Google tiene colgado al respecto, es imporante tener en cuenta que esta línea debe encontrarse dentro de la página donde se quiera hacer funcionar Google Analytics.
<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
</script>
Para evitar el error, cuando estamos hacienda pruebas en local, puede utilizarse el siguiente cambio al código Javascript, que como vemos, comprueba que se ha declarado la variable _gat para poder obtener el tracker de Analytics..
<script type="text/javascript">

function mygat(){
if (typeof(_gat) == 'undefined') {
window.setTimeout(mygat,1000);
}
else {
var pageTracker = _gat._getTracker("UA-xxxxxxx-x");
pageTracker._trackPageview();
}
}

function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else {
window.onload = function() {
if(oldonload){oldonload();}
func();
}
}
}

addLoadEvent(mygat);
</script>

miércoles, 18 de enero de 2012

WhatsApp vuelve a la AppStore de Apple

[caption id="" align="alignright" width="180" caption="Image via Wikipedia"]WhatsApp[/caption]

Segunda entrada al respecto, pero al parecer, una actualización de la popular aplicación ha hecho que la empresa de Cupertino de permiso a WhatsApp para volver a su tienda.

Desconocemos aún la razón de su retirada y vuelta a la store, pero esta claro, que parece interesante actualizar la versión de la aplicación, por si solventa algun agujero de seguridad crítico.

martes, 17 de enero de 2012

WhatsApp retirada de la App Store

Como suena, el titulo dice casi todo, WhatsApp ha sido retirado de la App Store de Apple, por motivos de seguridad.

Hay varios rumores de porque se ha retirado la aplicación, porque al parecer temas de seguridad varios, ha tenido esta aplicación a lo largo de su vida en la tienda de Apple. Aunque de lo más oido, es que podría tratarse de un intento por sacar adelante iMessage, aunque no parece uy logico teniendo en cuenta lo que gana Apple con cada WhatsApp.

Veremos como evoluciona este tema.

lunes, 2 de enero de 2012

Hilos en Java (Thread) I

La programación en hilos en Java, o mejor dicho la programación concurrente en más sencilla de implementar de lo que parece, aunque primero antes de entrar en detalles de cómo hacerlo, en este post, hablaremos de que son.

-          Que es un Thread

Un thread es un proceso ligero (en el caso que vamos a ver Java) que comparte memoria con otros iguales.

-          Qué ventajas tiene

La primera ventaja radica en que es más fácil para el planificador, intercambiar entre los procesos Thread, ya que son más ligeros, que entre otros procesos.

-          Paralelo vs Concurrente

Paralelos son dos procesos que se ejecutan al mismo tiempo, porque existen varios procesadores en los que ejecutarse, o uno con varios núcleos, que resuelven un único problema en menos tiempo.

Concurrente es un proceso paralelo que nada tienen que ver entre sí, comparten un espacio de memoria, pero no hacen una tarea común.

-          Problemas habituales

El primer problema habitual en el uso de Threads, está que al ser dos tareas concurrentes, podría darse una situación conocida como la exclusión mutua (que consiste en que dos o más procesos no se dejan terminar unos a otros, porque se bloquean entre ellos). Un ejemplo de exclusión mutua, es que por ejemplo un proceso A necesite los ficheros A y B para terminar y solo tenga A, y un proceso B, necesite también los ficheros A y B, y solo tenga B, de tal forma que ninguno de los dos puede acabar nunca, porque tienen el fichero que el otro necesita para terminar bloqueado.

Otro Problema habitual es el de la visibilidad de los cambios, suele ser habitual, que no sea fácil de gestionar, como se ven los cambios, en los procesos que son paralelos, ya que, si se realiza una actualización sobre algún dato, no siempre estará disponible al instante para otros procesos.

Como se implementa en Java, esto queda para la segunda entrega de este post, que enlazaré aquí cuando esté hecho, pero hablaremos de run() y synchronized()