miércoles, 28 de enero de 2015

web2py mostrar un preview de una imagen antes de subirla

Ultimamente he estado desarrollando en web2py y me he encontrado con ciertos roble que ire posteando en futuras publicaciones y también mostrare de como las he resuelto, bueno el primero que encontré fue que usando SQLFORM los campos de tipo upload no muestran un preview de la imagen antes de subirlo, bueno eso se puede resolver con puro javascript pero si son muchos campos hacer eso es muy tardado, por eso programe un widget basado en el original pero que permita hacer un preview antes de subir la imagen.

El plugin se puede bajar de aquí:


La utilización es muy sencilla solo se tiene que importar el modulo en donde se encuentre la definición de nuestra tabla (por ejemplo en db.py) y lo siguiente es pasarle en widget en al field de tipo upload

#db.py
from plugin_widget_upload import CustomUploadWidget
db.define_table('table_test', Field('imge', 'upload',widget=CustomUploadWidget.widget))

Lo siguiente es crear el form de la manera de siempre.


form = SQLFORM(
                db.table_test
                )


Bueno eso es todo por hoy, a también estoy creando un fork de web2py con algunos cambios cuando tenga un avance lo mostrare aunque de todas formas ire compartiendo los cambios en forma de plugins.

martes, 27 de enero de 2015

De regreso

Años sin publicar nada en este humilde blog, pero he empezado a sentir un poco de nostalgia, creo que he perdido un poco de lo que tenia cuando iba a la escuela y quiero volver a ser el idealista que algún día fui, pero de ahora en adelante empezare a escribir sobre algunas cosas en las que he estado trabajando, cosas de desarrollo mobil, desarrollo web con web2py, unity 3d y demás.


martes, 11 de enero de 2011

FreeSecurity Conferencia de Seguridad Informática en Mexico

FreeSecurity es un congreso de seguridad en Cómputo e Informática y es organizado por algunos miembros del grupo de usuarios de software libre del tecnológico de tuxtepec y algunos profesores del mismo.

Tiene como principio acercar a destacadas personalidades del software libre expertos en seguridad y a la comunidad formada en su gran parte por estudiantes de nivel superior y licenciatura, así como profesionistas y cualquier interesado y simpatizante de la seguridad informatica.

Tiene como objetivo principal aprender unos de otros y de convivir, fortaleciendo a los conocimientos de todos los asistentes.


Este magno evento contara con la participacion de grandes expertos como Gunnar wolf, Sandino Araico Sánchez, Rolando Cedillo, entre otros... :D

para mas información visita la pagina del evento

sábado, 31 de julio de 2010

linux en Toshiba A505-S6005

Bueno amigos les comento que recientemente he adquirido una Toshiba A505-S6005 es una excelente Maquina con un buen procesador un i3 con 2 núcleos reales y cada núcleo con 2 virtuales, bueno como todo buen linuxero apenas la compre y me dispuce a instalar mi queridísimo Slackware (decidí instalar la versión 13.1 de 64 bits), estaba emocionado por ver que tal jalaba mi nuevo equipo con slackware empecé la instalación y todo bien termino de instalarse, reinicie, pero barbara fue mi sorpresa que no arranco solo apareció lilo y después al tratar arrancar slackware nada mas no quiso apareció una pantalla negra y hay quedo. bueno me puse a buscar por la red un poco y encontré que actualizando el bios podría funcionar así que me dije por que no lo intento pero solo conseguí que fuera peor por que trate de volver a instalar slackware pero ahora si ni el instalador pudo arrancar.

Bueno todo eso me llevo a seguir buscando la manera de de que funcionara andar (no puedo soportar mucho tiempo usando windows), y por hay me encontre que podria ser problema de ACPI implentado en esta maquina asi que tenia que desactivarlo, bueno en mi caso no lo desactive por completo ya que al hacerlo por completo el sistema va muy lento, así que lo que hice fuen solo desactivar una parte bueno ahora pongo como hacerlo.

cuando estemos frente a lilo seleccionar la instalcion que tengamos y pulsamos el tabulador luego a lo que nos aparesca en el promt le agregamos "acpi=ht" quedando algo mas o menso asi
boot: Linux "acpi=ht"

nota: si lo anterior no funciona probar con "acpi=off"

sale ahora si arranco el sistema pero mi sorpresa fue que al loguear mi user y dar startx no arranco el problema fue haber desactivado parte del acpi y por lo tanto el modulo i915 de la trajeta de video no cargaba.

bueno hasta aqui ya tenemos el sistema arrancado solo que no tenemos entorno grafico conexion inalambrica, asi que para para que tengamos entorno grafico tenemos que compilar el kernel pero no el 2.6.34 si no el 2.6.35 con su respectivo parche (yo aplique el next-20100730) pero ustedes pueden aplicar el mas actual, para que funcionen los graficos hay que activar la opción Cpuidle Driver for Intel Processors de la sección Power management and ACPI options, sale ya con esto tendremos entorno grafico.


ahora va la tarjeta inalambrica, bajamos el controlador de aqui lo descomprimimos y como root hacemos

#make;make install

reiniciamos y listo :D
aqui les dejo un pantallazo de mi sistema funcionando


martes, 11 de mayo de 2010

Por que prefiero Slackware


Vagando por la red me encontre con este documento escrito por Marco
Antonio Islas Cruz que a mi parecer esta muy interesante, espero y que
ustedes amantes de slackware les guste igual que ami.

Este documento pretende dar mi punto de vista sobre el por ke creo que
el equipo de desarrollo de Slackware esta haciendo bien su trabajo. Y no es
por hacer menos cualquier otra distribucion, pero si creo que Slackware es
la mejor.

Filosofia.
==========

La filosofia de Slackware es la mas sencilla de entender entre las tantas
distribuciones que lo tienen, esta filosofia es: "el principio KISS" o bien
"Keep It Simple and Short" aunque algunos lo interpretan como "Keep It Simple,
Stupid". Este principio, aplicado a slackware es notorio en su estructura, no
tanto en su uso. Es decir, Slackware es sencillo de entender desde adentro,
la forma en la que se opera puede ser tan sencilla o tan dificil como el
usuario lo entienda.

Parte de esta filosofia se ve reflejada en que Slackware no tiene tantos
"Wizards" o asistentes que te guien para configurar algo. Es visible desde
el instalador vaya, con ncurses. La configuracion, pues si el paquete tiene
un wizard, ya chingaste, si no, pues a mano. Pero eso es algo bonito, ese
sabor mas puro a UNIX... a ke usas un sistema de Hombres, no de "Asistontos".

Otras filosofias como la de Debian, de "Todo debe ser Software libre" y "Una
distribucion creada por usuarios para usuarios" es muy buena, de hecho, debian
es una de mis distribuciones favoritas precisamente por esto. Pero hay otras
en las que si existe filosofia, pues es algo compleja, como Mandrake: "Hazle
la vida facil al usuario", creando una distribucion algo compleja internamente
o como SuSE "Linux es libre, pero la distribucion NO" (Al menos hace un
tiempo asi era, no se como este ahora); y de Red Hat, bueno, de Red Hat....

"The Fat Free Distribution" (La distribucion libre de gorduras)
===============================================================

Otra gran ventaja que tiene slackware es que ofrece en solo 2 CDs todo lo
necesario para un escritorio/Servidor, lo necesario, nada mas nada menos. En
cambio con distros como RedHat, ke son 5 diskos, SuSE, con sus 7 diskos, Debian
(Me duele aceptarlo, pero si, debian esta incluido) con sus 8 diskos en total
para Woody. Cierto, cierto que en estas distros solo es de "Inserta el disko
e instala el pakete", ese no es problema, en slackware solo es de "Descarga
el pakete e instalalo" o mejor aun "Descarga la fuente y compila!!!".

La desventaja principal de tener 7,8,9 discos es que al momento de Instalar
el sistema, terminas instalando cosas que NUNCA vas a llegar a utilizar,
No es raro que RedHat te pida 5 Gb en su instalacion "tipica", pues muchos
de los programas ni los llegas a utilizar, lo mismo con Debian; y si, tambien
es cierto ke para eso puedes seleccionar que paquetes quieres y cuales no,
el problema es que en un sistema con tantos paquetes, es tedioso, con mandrake
me he paso un rato en la instalacion solo chekando los paquetes que se han de
instalar (Modo "experto"), y de debian.. puf.. te puedes ir a dselect, pero es
un dolor de cabeza entre los 10,000 paketes ke tiene.

Existe una distribucion que es casi asi "a la medida", esa es Gentoo, el
problema con Gentoo, es ke es para quellos a los que les sobra tiempo, pero
que les sobra, el tener que descargarse todas las fuentes y luego compilarlas
una a una es un relajo, y una gran perdida de tiempo. Compila solo lo que
necesites compilar.

En cambio, en Slackware, dos diskos, asi nomas le pongo ke no kiero KDE (No me
gusta KDE) ni nada ke tenga ke ver con el, y ke me instale lo demas, asi tendre
todo lo ke necesito. Tal vez me haga falta algun programita, porke Volkerding
tal vez no usa Bluefish, o Anjuta, o tal vez se le fue y no metio algun otro
paquete que yo acostumbro que que no es "indispensable". De esto puedo decir
que en la instalacion yo solo estoy como 10 minuto maximo frente al ordenador
la instalacion no me pide mas.

Sencillo hasta para instalar paquetes
=====================================

Siguiendo con el principio KISS, Slackware tiene un sistema de instalacion de
paquetes muy sencillo (recuerda, sencillo no se refiere a facilidad de uso).
Es sencillo instalar y desinstalar paquetes, No se cuenta con manejador de
paquetes al estilo de las demas distribuciones, pero, vaya, tienes lo necesario
cosa de instalar uno o dos paquetes mas que facil te los descargas de
http://www.linuxpackages.net y te los instalas con installpkg, o mejor aun
descargate las fuentes y compilas, asi haces un programa "a la medida" de tu
sistema.

Multiples Kernels
=================

Algo que me gusta bastante de Slackware es que te da la opcion de escojer entre
algunas variantes del kernel, precompilados con caracteristicas diferentes,
para que utilices la variante del kernel que mas se ajusta a tus necesidades:
El estandar, el ACPI (pa las laptops), para SCSI, entre otros mas...

La unica distribucion que he visto que ofrece una variedad de kernels parecida
es Debian, que ofrece kernels precompilados hasta para diferentes procesadores
(496,586,686,Multiprocesadores, etc...). Mandrake ofrece un kernel precompilado
extra, pero es para servidores, asi ke no te beneficias mucho en el escritorio.

Verdadero Sabor a UNIX
======================

Que bonito es cuando algo no funciona y lo logras arreglar. Digamos, te acabas
de instalar slackware, no tienes configurado ni sonido ni video, sonido lo
arreglas con alsaconf, y si por Y o por Z no funciona, pues a mano, te las
arreglas (como ha sido mi caso), el video, pues te echas un xf86config si usas
slackware <=9.1 y un xorgconfig si usas slackware 10, si no funciona, pues a editar el XF86Config o el xorg.conf. Quieres configurar alguna otra cosa mas?? Apache, PHP, hotplug, fstab, lilo etc. etc. etc. ahi estan los archivos de configuracion al mas puro estilo UNIX. Asi aprendes!!! Otra gran ventaja de no usar Asistentes en la configuracion, es que tu sistema conserva ese "Standard" que lo hace tan bonito, Mandrake hace sus configuraciones, pero no siempre es en los lugares en los que deberia, y pues, cuando quieres hacerlo a mano resulta algo molesto estar buscando donde guardo la la configuracion el "Asistonto". Una razon mas: "Para que algo quede como tu quieres, tienes que hacerlo tu" Otra grandisima razon: YA ESTAS LO SUFICIENTEMENTE GRANDECITO COMO PARA ANDAR DE CHILLON DETRAS DE UN ASISTENTE!!! Es Software Libre ================= Esta es la mas importante de las razones, Slackware Linux es una distribucion GNU/Linux completamente libre. Esto es realmente importante dentro de la distribucion. Existen varias distribuciones GNU/Linux que no son libres, tal es el caso de SuSE (no se enteramente su situacion), a lo mismo que Xandros OS, Estas distribuciones argumentan tener "Valuable Software" o software de valor que no es mas que software propietario incluido dentro de la distribucion como (WordPerfect, StarOffice, Juegos, controladores extra, o los mismos asistentes de dicha distribucion), Bien, ellos llaman Software de valor a estos elementos, para mi, software de valor es el mismo software libre, este es el mas preciado valor en nuestro software. Ademas de tener software "de valor", impiden su distribucion completa, es decir puedes distribuir los paquetes (nomas eso faltaba, ke no se pudieran distribuir los paquetes) a exepcion de los paquetes propios de la empresa, pero no puedes hacer una copia del disco y regalarsela a tu amigo. Entonces hemos perdido la libertad de compartir. Esto afortunadamente no sucede en slackware, dado que su distribucion puede ser individual (por paquetes) o por los ISOS, descargartelo de internet, comprarlo, o pedirselo regalado a alguien ke te lo quiera regalar :-). Terminando ========== Ok, pues este es mi punto de vista sobre el "Por que me gusta Slackware" obviamente hay personas que prefieren RedHat, Fedora, Debian, Gentoo, SuSE, otros prefieren algunas derivadas como Mandrake, Knoppix, Ubuntu, etc... Esta bien, bien por ellos, lo bueno del software libre es que tenemos precisamente esa libertad de elegir. Y porque hice esto?, bien, porque hay personas que no saben a cual distro tirarle, a ver si leyendo esto se avientan a slackware o terminan corriendo a los asistentes de Mandrake :P. En palabras de visor (http://visor.linuxreal.org/jaws/index.php): Slackware es como un mono de peluche, feo hasta la madre, pero le vas agarrando cariño Como ya lo he dicho antes, el Fanatismo por un sistema operativo, o en este caso una distribucion no es bueno, en ninguna manera, Todas las distribuciones son buenas y depende en gran medida para que la quieres. referencia: http://www.islascruz.org/html/data/files/textos/slackware

Configuración de bcm4312 en Debian Lenny


En esta ocasión les mostrare como configurar la inalambrica Broadcom bcm4312, bueno se supone que la serie bcm43xx ya esta soportada directamente por el kernel pero en las laptops que me he topado configurar con esta tarjeta pues nadamas no funciona, esto en las distros de debian y ubuntu, en ubuntu la configuración es muy facil todo se hace con el apt, pero en debian hay que seguir una serie de pasos que los mostrare a continuación.


Primero que nada necesitaras conectarte a internet mediante ethernet o con alguna tarjeta inalambrica usb(como es mi caso).

abrimos el sources.list como root

#nano /etc/apt/sources.list

ahora agregamos a source.list los siguientes repositorios:



deb-src http://security.debian.org/ lenny/updates main
deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
deb http://ftp.de.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.de.debian.org/debian/ lenny main contrib non-free

actualizamos la lista de repositorios

#apt-get update

actualizamos el sistema

#apt-get upgrade


una vez actualizado nuestro sistema tenemos que instalar los paquetes make, build-essential y los headers de nuestro kernel:

#apt-get install make build-essential linux-headers-`(uname -r)`

ahora descargamos el source del modulo para co compilarlo desde la pagina http://www.broadcom.com/support/802.11/linux_sta.php


creamos una carpeta que contendra los archivos que descomprimiremos

#mkdir bcm4312

movemos el archivo que bajamos a bcm4312

#mv hybrid-portsrc-x86_32-v5.60.48.36.tar.gz bcm4312/

ahora lo descomprimimos
#cd bcm4312
# tar xfv hybrid-portsrc-x86_32-v5.60.48.36.tar.gz

ahora lo compilamos:

#make -C /lib/modules/`(uname -r)`/build M=`pwd` clean
#make -C /lib/modules/`(uname -r)`/build M=`pwd`

ahora desmontamos todos los modulos que son para que disque funcione la tarjeta pero no han funcionado

#rmmod bcm43xx
#rmmod b43
#rmmod b43legacy
#rmmod ndiswrapper

si algún comando da error es por que no teniamos el modulo y por lo tanto no es necesario desmontarlo

ahora montamos el modulo ieee80211_crypt_tkip

#modprobe ieee80211_crypt_tkip

y montamos el modulo que acabamos de compilar

#insmod wl.ko


pero esto es solo temporal ya que si lo dejamos tal y como esta ahora, cuando reiniciemos no se cargara otra vez el modulo, asi que lo que tenemos que hacer primero es evitar que los modulos que teniamos (si es que ya habias instalado otros modulos que no te funcionaron) para que disque funcionara la tarjeta, es to lo hacemos editanto el blacklist

#nano /etc/modprobe.d/blacklist



y le agregamos los modulos que no queremos que se inicien


blacklist b43
blacklist b43legacy
blacklist bcm43xx
blacklist ndiswrapper

aqui solo hay que agregar los modulos que tengamos, como en mi caso no tenia ningún modulo des estos instalado no fue necesario editar el blacklist.

Ahora copiamos el modulo que compilamos a donde estan los demas modulos del kernel

#mkdir /lib/modules/`(uname -r)`/wlan
#mv wl.ko /lib/modules/`(uname -r)`/wlan

y editamos el archivo module:

#nano /etc/modules

Y agregamos al final esto:

ieee80211_crypt_tkip

ahora editamos el archivo rc.local

#nano /etc/rc.local

y agregamos antes del exit 0 esto

insmod /lib/modules/`(uname -r)`/wlan/wl.ko

guardamos todo y listo ahora cuando reiniciemos tendremos la inalambrica funcionando :D

PD: me imagino que en Slackware se debe de seguir un procedimiento similar, por desgracia en las laptop's que he configurado no han querido que instale al buen Slackware. :D

lunes, 3 de mayo de 2010

Dev-C++


En el posts anterior les colgue el libro de BruceEckel Pensando en C++, bueno pues para aquellos que usamos linux simplemente instalamos el build-essential y ya tenemos el mejor compilador de C/C++ (gcc) con ese podremos correr todos los ejemplos descritos en el libro, pero para los que aun están atados a sistemas propietarios(windows) les recomiento usar Dev-C++.

Dev-C++ es un compilador y entorno de desarrollo para C/C++. Consiste en un editor de múltiples ventanas integrado con un compilador que nos permitirá una compilación, un enlace y una ejecución de aplicaciones rápida y de fácil uso.

Dev-C++ nos ofrece la opción de realzamiento de sintaxis. Incluye también un debugger y un creador de instaladores, además de 150 ficheros y 100 librerías.

Algunas de las posibilidades que Dev-C++nos ofrece son: recopiladores de la ayuda GCC-based, corrección de errores integrado (Usa GDB), ayuda para los idiomas múltiples (localización), explorador de clases, depurador de código, poder eliminar errores en el explorador de variables, asistente de Proyecto, editor más óptimo

Dev-C++ también cuenta con bibliotecas estáticas y DLL, ayuda de plantillas para crear sus propios tipos del proyecto, creación del makefile, corrija y compile los archivos del recurso, mejora en la ayuda de la impresión, mejoras en las instalaciones, instalación fácil de bibliotecas adicionales, ayuda de CVS, etc.


descargar

Pensar en C++


Estas interesado en aprender un lenguaje de programacion? … pero no sabes cual es bueno yo te recomadaria C++ que es un lenguaje de alto nivel ya que es uno de los lenguajes mas potentes que se han diseñado, esta orientado a objetos y esta basado en el lenguaje C en el cual estan programados la meyoria de los programas mas populares bueno pues si te interesa te dejo este libro de BruceEckel.

Descargar

Search this blog