Siempre me ha dado la sensación de que cuando preguntamos algo en el campo técnico, muchas veces es dificil centrar bien la pregutna que se quiere hacer, a veces se da demasiada información y otras veces la ifnromación es demasiado amplia para entenderse de un tirón y responder a lo que se está preguntando.
Para ello, un grupo de personas (de habal inglesa) se han juntado para hacer esta página que se llama SSCE (Short, Self Contained, Correct Example - Corto, AutoExplicativo y Ejemplo Correcto [Compilable]) donde explica como afrontar una pregunta técnica (especilamente de informática y desarrollo en concreto claramente dirigida a págnas como stackOverflow)
Os dejo el enlace a las dos páginas en el propio texto, porque me parecen las dos muy buenas y para tenerlas en cuenta (sobre todo para consultas técnicas StackOverflow).
Mostrando entradas con la etiqueta Informatica. Mostrar todas las entradas
Mostrando entradas con la etiqueta Informatica. Mostrar todas las entradas
jueves, 2 de mayo de 2013
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
Disfrutadla:
http://www.ted.com/talks/misha_glenny_hire_the_hackers.html
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.
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.
Etiquetas:
Actualidad,
Android,
Apple,
AppStore,
General,
google,
Google Maps,
Informatica,
ios,
iPad,
Iphone,
mapas,
Maps app,
Movilidad,
paso a paso,
Software,
Tablet,
Tecnologia,
Turn-by-turn navigation
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.
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.
miércoles, 17 de octubre de 2012
viernes, 12 de octubre de 2012
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.
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.
Etiquetas:
desarrolo de software,
Eclipse,
Informatica,
Programación,
Software,
Software development,
Tecnologia,
Test-driven development,
Unit testing
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
Lo he leido en: the next web
Etiquetas:
Actualidad,
aplicacines facebook,
aplicaciones falsas,
Apps,
Ataques,
Facebook,
General,
Informatica,
Seguridad,
Servicios en internet,
Tecnologia,
WhatsApp
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.
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.
| IE | 36,79 |
| Chrome | 27,01 |
| Firefox | 21,16 |
| Safari | 6,2 |
| Opera | 1,51 |
| Resto | 7,33 |
Etiquetas:
Actualidad,
chrome,
firefox,
General,
google,
IE,
Informatica,
Internet,
Internet Explorer,
Mozilla,
Mozilla Firefox,
navegadores,
Opera,
Safari,
Software,
Software Libre,
Tecnologia,
Web
lunes, 6 de agosto de 2012
12 de septiembre ¿Fecha de lanzamiento de iPhone 5?
[caption id="" align="aligncenter" width="206"]
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.
:)
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.
:)
miércoles, 1 de agosto de 2012
Nuevo articulo en el blog de HP
Aunque a mis queridos lectores (los dos) de este blog no os olvido, mi último post, está disponible aqui
Etiquetas:
Actualidad,
amenazas,
amenazas en la red,
Ataques,
fraude bancario,
General,
hp,
Informatica,
input output,
Internet,
navegación segura,
navegar,
Seguridad,
seguridad en la red,
Tecnologia
miércoles, 18 de julio de 2012
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[/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[/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[/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.
[caption id="attachment_893" align="aligncenter" width="300"]
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"]
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"]
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.
Etiquetas:
Document,
imprimir,
Informatica,
juntar documentos,
PDF,
PDFCreator,
Portable Document Format,
Productividad,
Software Libre,
Tecnologia
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[/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[/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.
[caption id="attachment_878" align="aligncenter" width="300"]
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"]
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.
Etiquetas:
Actualidad,
cloud,
documentos online,
doocuments,
General,
gestion documental,
Google Docs,
Informatica,
Proton,
Seguridad,
Seguridad informática,
Tecnologia
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.

Otras entras de este blog relacionadas:
Herramientas de software libre
Más herramientas open source
Sofware libre para recuperar datos perdidos
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.

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

- 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.
Etiquetas:
Actualidad,
Android,
Apple,
ASUS,
General,
Informatica,
ios,
iPad,
Iphone,
IPhone 4,
Movilidad,
Tablet,
Tablets,
Tecnologia,
Transformer,
USB
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.
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.
Etiquetas:
Ataques,
Criptografía,
Databases,
General,
Informatica,
Java,
Languages,
Programación,
Programming,
Seguridad,
SQL,
SQL Injection,
Tecnologia,
User (computing)
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
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
Suscribirse a:
Entradas (Atom)