DesarrollandoNunca me ha gustado AJAX y los frameworks de AJAX, me parece complicado muy sucio, difícil de mantener y en ocasiones hay que hacer código diferente para cada navegador. Luego para que todo se vea bonito hay que usar hojas estilos (CSS), y de nuevo hay que hacer cosas diferentes para que se vea bien en cada navegador, especialmente cuando se usan layers. Una opción interesante es usar Flex. Flex hace uso de una maquina virtual que la gran mayoría de personas tenemos instaladas en nuestros navegadores, cualquiera que sean, esta maquina virtual es el plugin de Flash, asi que Macromedia tubo la genial idea de darle un uso, mas allá de lo estético. Flex 3 Linux Con flex pudes hacer aplicaciones mucho mas limpias, ordenadas y fáciles de mantener, sin tener que escribir código diferente para cada navegador. Además hace uso de ActionScrip que poco a poco es una lenguaje cada vez mas completo. Y por si fuera poco Macromedia saca su editor no solo para Windows sino también para Linux aunque no completo, le hace falta el entorno visual, que no se extraña para nada si ya haz estado en contacto con entornos en donde termina siendo mas cómodo editar los botones, cajas de texto, comboxes, etc a mano. Por ejemplo con ASP.Net, donde el entorno visual a veces se pone lento y terminas modificando los controles directamente en el código. Ya hace mucho que habia leido sobre Flex, y escuchado los comentarios de Jack al respecto. Pero hasta hoy hice mis primeros pininos en Linux, y parece muy prometedor. Sun Microsistems esta tratando de responder con JavaFX, aprobechando la maquina virtual de java y todo el monton de cosas que ya existen de java, al igual que Microsoft con SilverLigth que (no corre en linux), la competencia es buena, ya veremos en que acaba todo esto. Hace falta mucho que decir en cuanto a Flex, hay que darle un vistaso a AIR de Macromedia. Que permite llevarlas aplicaciones de flex al escritorio.
zerugiran | Desarrollando | 27 Julio, 8:17pm
| Comentar acerca de esto
Advertencia: Este post es demaciado friki alejese.
Sigo probando distribuciones, particularmente las que tienen a KDE como escritorio principal. Esta vez probé la Alpha 3 de Kubuntu Hardy, por alguna razón, funcionaba bien unos cuantos minutos y luego mi linux se congelaba. Exactamente lo mismo pasaba con OpenSuse 10 Beta. Leyendo encontré que le pasa algo similar a mucha gente y tiene que ver con que las nuevas versiones del kernel de linux tienen un problema cuando pones la versión de 32 bits en una laptop con AMD 64 (Sempron). Lo que recomiendan es instalarte un kernel de 64 bits o bien, tocar el archivo del menu de grub, para desactivar el ahorro de energía del micro, cosa no muy recomendable, porque se calienta mucho la lap y se acaba la batería muy rápido. Probé KDE 4, que por cierto esta genial, ya es definitivo que me pasare a KDE en cuanto salga la version estable de ya sea de Kubuntu o de OpenSuse, aun no decido. Mientras tanto he vuelto a poner Ubuntu64-Gnome a la lap y ya no probare mas distros. Esperare a que salga aluna version estable, con KDE 4. Luego de instalar Ubuntu 64-Gnome he desintalado Firefox 2.x para poner la version 3 Beta 3, pero no funcionaba, me daba este error. ./run-mozilla.sh: 442: ./firefox-bin: not found o ./run-mozilla.sh: 424: ./firefox-bin: not found Después de buscar un rato y no encontrar nada, me di cuenta de que el error es que, estaba intentando correr Firefox3b3 compilado para 32-bits en mi Linux 64-bits. Así pues esto se corrige instalando unas librerías que te permiten correr ejecutables de 32-bits en un linux 64, asi: sudo apt-get install ia32-libs Espero le sea útil a alguie. Firefox 3 trae algunas cosas bastante buenas, empezando por que ahora consume menos recursos y se traba menos, hay quien en sus blogs recomienta intalarlo ya, aun cuando no ha sido lberada la version estable.
Advertencia: Este post es demaciado friki alejese.
zerugiran | Desarrollando | 29 Enero, 7:33pm
| 2 comentarios
He estado probando varias distribuiciones de linux, soy usuario de ubuntu antes lo era de fedora, y extraño a KDE, pero kubuntu es a mi parecer el hermanito feo de ubuntu y esta muy descuidado no se le ha dedicado el mismo tiempo que a su hermano mayor, por lo que le hacen falta herrarramientas de aouto configuracion, por ejemplo Ubuntu detecta e instala los drives del hardware que tengas, aun cuando este es propietario, por ejemplo tarjetas Nvidia y WIfi de Broadcom. Asi pues hay que hacerlo a mano. El problema es que buscando el la red solo encuentras las instrucciones, muy precisas y bien explicadas de como instalar bcm43xx, lo cual era correcto hasta hace unos meses, pero ahora ya no funciona :(. Despues de mucho buscar me encontre con que bcm43xx esta obsoleto y ahora hay que hacer: sudo apt-get install b43-fwcutter En lugar de: sudo apt-get install bcm43xx-fwcutter Luego de eso todo funciona como debiera :) Espero que a alguien le sea util esta informacion. Soy usuario de GNU-Linux, particularmente de Ubuntu, muchas veces hago cambios en mis maquinas con linux, busco en google como hacerlo lo hago y me olvido, días después debo hacer lo mismo en otra maquina y tengo que volver a buscar, ya un poco cansado de esto, me he decidido por anotar aquí los pasos que sigo, así no tendré que buscar una y otra vez las mismas cosas. Y de paso tal vez le ayude a alguien. Ayer intente cambiar el nombre de mi maquina, leí que se podia hacer editando el archvio /etc/hostname/ y efectivamente después de tocar el archivo, escribir el nuevo nombre y reiniciar, el nombre de la maquina cambio, pero el comando sudo dejo de funcionar. Arrojando este error:
Error unable to lookup via gethostbyname()
Para corregir esto es necesario editar también el archivo /etc/hosts el problema es que se necesitan privilegios de root para hacerlo, pero para poder tener privilegios necesito de sudo. ¿quien fue primero el huevo o la gallina? Para resolver esto basta con entrar a Ubunto en modo prueba de fallos, que es una de las opciones que da grub al arrancar la PC. En este modo entras por default como root, así que puedes tocar sin problemas el archivo /etc/hosts y reiniciar.
zerugiran | Desarrollando | 17 Noviembre, 4:22pm
| Comentar acerca de esto
¿Que probabilidad hay de que, en un NetKey, como el de la foto, los 4 numero, sean idénticos a los 4 ultimos, y ademas este numero coincida con tu NIP del cajero? 2427 Es casi imposible. La probabilidad de que los primero 4 números coincidan con los últimos 4 son de 1 entre 10,000, y que de que el numero coidida con tu NIP es de 1 entre 10,000. Y de que ambas cosas ocurran a la vez es de 1 entre 10,000*10,000 es decir 1 entre 100,000,000. Unos entre cien millones. La probabilidad es muy baja, tanto que me hace dudar del método en que son generados los números. (Por cierto ya cambie mi NIP).
![]() La foto es es de un NetKey del banco Banamex, que desde hace unos pocos meses, es necesario para accesar a la banca electrónica.
El cliente. Para supuestamente mayor seguridad, los bancos ahora proporcionan este tipo de dispositivos. La verdad es que no se como funcionan, pero puedo imaginarlo. Supongo que generan un numero pseudo aleatorio basado en dos cosas. 1.- En primer lugar un numero único para cada cliente, este numero queda almacenado en el el NetKey y lo diferencia de otros, haciendo que cada dispositivo tenga un numero diferente, supongo que es imposible que aparir de este numero pueda ser identificado el numero de cuenta, lo mejor seria haberlo generado al azar y asociarlo en la base de datos del banco a nuestra cuenta. 2.- Y segundo, un numero generado con un contador, el cual se incrementa cada vez que usamos el dispositivo. Con base en estos dos numero se genera un nuevo numero de 8 cifras, como se muestra en la foto. Este nuevo numero tendría que ser generado con ayuda de un algoritmo que no tenga retorno, es decir que no permita obtener los dos numero originales a partir del numero recién generado. Lo cual es bien fácil de hacer. Luego, en el portal bancario, hay que teclear el numero de cuenta, un password escogido por el usuario y este numero generado por NetKey.
En el banco. Este numero de 8 cifras puede ser generado en el banco sin ningún problema, dado que se cuanta con todos los datos necesarios para generarlo. 1.- En primer lugar el numero asociado al cliente, dado que sabemos quien es el cliente, por el numero de cuenta tecleado. 2.- El contador. 3.- Y el algoritmo para combinar ambos números. Finalmente el numero generado en el banco se compara con el numero que el cliente copio del NeyKey. Ademas de comparar los passwords, o mas bien el hash del password. Puede ser que en realidad en el banco no se tenga el dato del contador, pero si inicializamos el contador a partir de la ultima vez que se logueo el usuario (esto hace que el numero solo pueda usarse una vez, porque en la siguiente ocasión ya no sera valido) y vamos incrementado el contador y generando números con él, bastarían solo unos cuantos intentos para encontrar el contador del NetKey del usuario. Pero no demasiado intentos, porque si hiciéramos 99,999,999 intentos uno de ellos al final coincidiría por azar. Este post ya se esta alargando mucho. La combinacion de estos tres datos hace necesario que quien teclea, no solo deba saber el numero de cuenta, el cual es publico y fácil de averiguar. sino que también debe conocer un password, el cual también es relativamente facil de averiguar, si por ejemplo se instala un KeyLoguer que capture los teclazos, o simplemente mirando sobre el hombro de quien teclea. Y finalmente debe conocer un numero valido generado por el KeyNet. Que puede conocerse si el NetKey es robado fisicamente al dueño de la cuenta o bien contar con un NetKey clonado.
La cosa es que... aquí bien lo interesante.... ¿Cual es la probabilidad de que el KeyNet arroje un numero de 8 cifras, donde las primeras cuatro son idénticas a las siguientes cuatro y ademas ese numero de 4 cifras coincida con tu numero de NIP?, el cual por cierto (lo repito) ya cambie. No se si fue buena o mala suerte, debí jugar lotería ese día, aunque según he leído, las posibilidades son aun mas bajas :)
zerugiran | Desarrollando | 31 Marzo, 8:33pm
| 1 comentarios
No suelo escribir sobre programación porque es aburrido(No para mi, sino para otras personas). Pero.. pues igual ya era aburrido este blog, así que no puede empeorar :P El tema es que estamos haciendo un proyecto, para el cual hace falta hacer un Web Service escrito en C#, esta web service va a estar en un servido publico, para que pueda ser consumido desde internet. Entonces hemos estado haciendo algunos clientes en varios lenguajes, no hubo problemas con el cliente escrito en C#, este pudo consumir el web service sin problemas, pero no asi el cliente hecho con Delphi 2006. Es decir, al intentar hacer que Delphi consumiera un WebService hecho con Web Developer 2005, usando C#, Delphi daba el siguiente error. System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.NullReferenceException: Object reference not set to an instance of an object. Después de buscar en montones de pagina, porque al parecer a pocas personal les interesa algo así, encontré lo siguiente, resulta que hay que poner esto en la seccion register del codigo: InvRegistry.RegisterInvokeOptions(TypeInfo(ServiceSoap),ioDocument); Lo cual le indica al WebService que lo que se le envía es un documento. No me gusta Delphi, una de las muchas razones es, la dificultad para encontrar a otros usuarios de Delphi que tengan problemas similares. Cada día hay menos usuarios de Delphi. En cambio C++Builder que también es de Borlad me gusta mas, aunque también se sufre con la misma falta de usuarios. Por cierto el proyecto en el que estamos trabajando, pronto se podrá ver en www.dcod.com.mx
zerugiran | Desarrollando | 16 Febrero, 7:25pm
| 1 comentarios
|
INICIOBúsquedaPosts Recientes
ZeruGiran
Nombre: Zeru
Comentarios Recientes
|