Jair Gaxiola

Recent tracks

Top tracks

Posts

¿Robar lo que fue robado, se considera robar?

Unos días después de instalar el “plugin” de moviezet durante el día me di cuenta que el navegador hacia una petición a www.moviezet.com cuando tenia muchas tabs abiertas pero ninguna con moviezet, no puse atención estaba ocupado.

Hoy un compañero al que llamaremos “Adrian” por no llamarlo “N” me comento que había código de moviezet que el no había puesto en una pagina propia en la que estaba trabajando, eso me recordo la petición que vi cuando no tenia abierta moviezet y se me hizo muy raro, puesto que el día viernes/sabado al entrar a moviezet y tener instalado también el “plugin” de cuevana me redirecciono a su sitio desde moviezet. 

Un día después moviezet indignado y triste escribio un post al respecto. Entonces, me puso a revisar lo que estaba pasando, el código js que agrega el “plugin” de moviezet lo que hace es agregar un archivo llamado hosts.js cuya función es revisar si la pagina donde estas cuenta con publicidad y en caso de tenerla, la cambia por la publicidad de moviezet.

Veamos un ejemplo sobre http://www.todoanimes.com/ es solo un sitio que sale listados en hosts.js.

En la imagen de la pagina sin tener instalado el “plugin” el contenido original de todoanimes en el iframe de la publicidad tiene src=”http://www.todoanimes.com/ads/matomy.html.

Ahora con el plugin instalado el iframe de la publicidad tiene src=”http://ads.networksserve.com/index.html?width=300&height=250:

Regresando a la pagina de todoanimes sin el plugin instalado de moviezet tenemos el head de la siguiente manera y no tiene src=”http://www.moviezet.com/host/hosts.js:

Ahora la misma pagina pero con el plugin instalado y se puede observar que tiene src=”http://www.moviezet.com/host/hosts.js”:

El punto de todo esto, no es que cause algun daño a los usuarios, pero como es posible que los de moviezet se indignen con cuevana si estan haciendo lo mismo, ahora los 2 sitios estan colocando contenido que no les pertenece (si aunque sea el link) y muchos de nosotros lo vemos y algunos otros hacen partido a favor de cuevana o moviezet sin informarse. Como recomendación para entrar a estos sitios lo mejor es usar un navegador solo para ver películas y el que se usa a diario para uso personal y laboral desinstalar los plugins. Quién este libre de no ver contenido en linea que tire el primer “bit malicioso” y para terminar:

Ladrón que roba a ladrón tiene 100 años de perdón 

MNPP version 0.1.8 ¡RELEASED! (Lion friendly)
The new Version of MNPP is HERE…and forget about all Lion PROBLEMS this version is totally lion compatible.
so you wanna know WHAT´S NEW on this version…check it out:
  • percona update for ver 5.1.59
  • php update for ver 5.3.8
  • nginx ver 1.0.9
  • One of the most wanted features of this update…MNPP for Lion,
  • There is a change on the UI, this time the window is gone and the dock icon of this version it’s just a menu in the tool bar.
  • I managed to get rid of the bug with libiconv.2.dylib ver https://github.com/jyr/9

I’m sure that you will LOVE this update (specially if you are on Lion)

It took longer than i tought cause of some other projects i’ve been working on…but it’s finally available, ¡ENJOY! and leave you comments.

You can get MNPP 0.1.8 and report any bug.

MNPP 0.1.0 released

The past 2 weeks I was working full-time as Core developer, after deciding to no longer be Jedi knight in Astrata Sotware. Fixed a bug in the preferences of versions of php and among the new features MNPP supports python 2.6.7.


That’s right, MNPP to manage uwsgi from the preferences or console, giving way to use web applications using WSGI. For now MNPP has support for django 1.3 and web2py natively. MNPP has a menu in the status bar to give more comfort and simplicity in the administration of services.

You can get MNPP 0.1.0 and report any bug.

Probando MNPP

Clonar el proyecto en /Applications

git clone https://github.com/jyr/MNPP.git

Es importante que MNPP se encuentre en /Applications

Cambiar a la rama develop

$cd /Applications/MNPP

$git checkout develop

Desde consola


Iniciar

$ sudo /Applications/MNPP/init/start 53

o

$ sudo /Applications/MNPP/init/start 52

Parar

 

$ sudo /Applications/MNPP/init/stop 53

o

$ sudo /Applications/MNPP/init/stop 52

Desde UI

En las preferencias de MPP una vez que se ejecuto, se puede seleccionar entre php53 o php52.

Se puede comprobar que version de php se esta usando viendo la salida que genera el phpinfo, para registrar los bugs se debe ir a github.

Ventana de preferencias con pyobjc

MNPP 0.0.8 edicion especial y el SHDH

Una vez mas estuve presente en un shdh en la ciudad de México, esta vez fue muy diferente al primero que asisti. Hubo gente que en realidad le interesa escribir codigo y no hubo musica a todo lo volumen, lo que permitio interactuar con otros sin estar gritando. 

Ayude a resolver un problema de los paths de python sobre windows, conoci más sobre sass y yaml dos grandes razones para retomar ruby. Estuve trabajando sobre MNPP, actualice la version de nginx a la 1.0.0 que llevaba unos dias de su liberacion, compile y active el soporte para mongo en php, ahora los hosts base mnpp.astrata.local y phpmyadmin.local se crean automaticamente al iniciar por primera vez MNPP y cambie algunos labels del UI que tenian aun MEPP. Lo que dio como resultado MNPP 0.0.8 edicion SHDH.

Instalar MEPP

Unable to display content. Adobe Flash is required.

Más screencast sobre MEPP

MEMP (beta), entorno local de desarrollo web.

Después de 27 días he conseguido escribir MEMP beta, se puede leer en otros posts más detalles sobre como probarlo desde la consola y de los servidores, librerias que contiene.

Pero esta ocasión, es para lanzar el beta de MEMP. Cabe mencionar que MEMP esta escrito en 64 bits por el momento.

Las funcionalidades de MEMP son:

  • Iniciar/detener servicios globalmente.
  • Iniciar/detener servicios individualmente
  • Apertura de la pagina default de MEMP
  • Ventana de preferencias, en la que se puede elegir entre iniciar/detener servicios gobalmente al ejecutar/cerrar MEMP 
  • Trabajar desde la consola, ejecutando los binarios que se encuentran en init para iniciar/detener MEMP global o individualmente.

Es momento de probar y sacar todos los bugs, asi que si eres programador web, tienes  una mac o una hackintosh puedes ayudar bastante.

¿Cómo probar MEMP desde la consola?

Como toda aplicación en mac, MEMP se debe colocar dentro de /Applications y realizar los siguientes pasos para tener un entorno de desarrollo alternativo a MAMP.

Es posible que tenga conflictos si existen alguna instalación de mysql dentro de /usr/local/mysql ya que MEMP usa los binarios de mysql 5.5.8 y por default usa el path que mencione antes.

Para evitar que choque con los mismos servicios corriendo en los mismos puertos, se puede editar init/mysql.sh para cambiar el puerto, para nginx y php-fpm los archivos de configuración se encuentran en conf.

NOTA: No creo que sea necesario, pero en caso de hacer cambios importantes a los bash scripts compilar nuevamente start.c (gcc start.c -o start) y stop.c (gcc stop.c -o stop)

MEMP, el producto mínimo viable.

MEMP es un stack de Mac Enginx MySQL y PHP desarrollado con pyobjc, permite tener un entorno de desarrollo para web.  Su función principal es iniciar y parar servicios (web, base de datos y php-fpm) desde un GUI.

Versiones:

  • mysql 5.5.8
  • nginx 0.7.68
  • php 5.2.16

Extensiones compiladas:

  • freetype 2.4.4
  • gettext 0.18.1.1
  • jpegsrc.v8b
  • libpng 1.4.5
  • mcrypt 2.6.8
  • gd 2.0.35
  • curl 7.2.13
  • gd 2.0.35
  • libmcrypt 2.5.8
  • libpng 1.4.5
  • libmxml2 2.7.8
  • libxslt 1.1.26
  • mcrypt 2.6.8
  • pcre 8.11

MEMP como PMV ( Producto Mínimo Viable) esta listo para ser probado, la aplicación se encuentra en github.

Las pruebas iniciales a realizar son revisar que el stack funciona sin necesidad de instalar más librerias, para eso, se deben ejecutar los servicios con /Applications/MEMP/init/start.sh y /Applications/MEMP/init/stop.sh donde MEMP debe ser copiado/clonado dentro de /Applications.

Desde el GUI se puede hacer pero, hay un detalle para solicitar el password de root de manera grafica, se esta trabajando en eso. Lo importante es verificar que el stack funciona correctamente.

UPDATE

Hice un cambio en start.sh la primera vez que se ejecuta se debe teclear la clave de root, por ahora debe ejecutarse de esa manera.

Piolín, cliente para twitter

Inspirado por un post en ideamonk donde “explican” como crear un cliente twitter en 5 minutos, realice piolín generando un fork de la idea del post. Es un cliente muy austero y no se puede esperar más del listado de los updates de twitter, el código en github y el dmg en filesocial.

JAPOS (Just Another Point Of Sale)

Es un fork de otro POS y esta inspirado por el fantastico Checkout para Mac. JAPOS esta escrito, por supuesto con python.

Caracteristicas de JAPOS

  • Admin web nativo de django
  • Admin web personalizado

Caracteristicas de JAPOS-Client

  • Apertura de turno
  • Busqueda de productos
  • Información a detalle del producto
  • Creación de la venta

Del lado del usuario final, existe japos-client una app de escritorio que permite interactuar con JAPOS.

JAPOS esta en desarrollo cualquier sugerencia o problema encontrado son recibidos en :

dpress y django-cms sobre wsgi

Durante varios meses pythoncocoa estuvo sin servicio por el cambio que se hizo en el servidor de mod_python a wsgi, pero sobre todo por la falta de tiempo para configurarlos sobre wsgi. El .htaccess cambio bastante y se agrego un nuevo archivo al que llame django.wsgi y se encuentra dentro de cada unos de los directorios de los proyectos dpress y pythoncocoa en el servidor.

De paso, se le agradece a quijost por el servicio y soporte brindado hasta el momento soportando el proyecto de pythoncocoa.

django.wsgi para dpress


django.wsgi para pythoncocoa


htaccess para ambos proyectos

Durante los cambios django-cms tambien cambio, lo que genero el error ‘PageAdmin.exclude’ refers to field ‘created_by’ el cual se resuelve aplicando los cambios del commit.

La escuela no lo es todo.

Encontre una oferta de trabajo en github sobre aprendiz de programador, lo que en México seria un becario pero mucho mejor. La manera en como lo redactan me hizo pensar que eso deberia ser más común por aqui y no esperar a que el estudiante se encuentre en periodo de practicas profesionales para que las empresas los acepten.

Tu educación universitaria es importante, pero no te prepara para una carrera de por vida en el software. Nosotros al desarrollo de software lo vemos como un oficio, el que tiene hasta 10.000 horas de práctica para dominar.

Creo que deberian de existir lo que llaman en el futbol las canteras, pero de programadores. Si hay gente con talento y se les guia hacia el “lado de la fuerza” a temprana edad, se tendria un mayor desarrollo en México.


Instalar Django & wxpython en windows

Instalar alguna aplicación en un sistema del cual no es nativa implica muchas cosas, en el caso de windows se requiere paciencia y tiempo. Encontre un sitio que muestran a detalle como hacerlo, solo hay un punto que falta por cubrir.

Windows requiere de algunas dlls para que python u otras aplicaciones como el conector de mysql con python o wxpython funcionen, se necesita msvcr71.dll y vcredist_x86. El segundo se puede descarga para x86 o x64.

Ahora mismo tengo mi entorno de desarrollo preparado para JAPOS, con los siguientes requerimientos.

  • Tinyxp
  • Git-1.7.0.2-preview20100309.exe
  • python-2.6.5.msi
  • mysql-5.1.49-win32.msi
  • MySQL-python-1.2.2.win32-py2.6.exe
  • wxPython2.8-win32-unicode-2.8.11.0-py26.exe
  • Django-1.2.1.tar.gz
  • msvcr71.dll.zip
  • vcredist_x86.exe
pythoncocoa.com

Un sitio para encontrar recursos como documentación, ejemplos y código fuente alojado en github para desarrollar bonitas aplicaciones para  Mac OS X.  La finalidad del sitio es reunir programadores con el deseo de aprender y enseñar lo aprendido, para tener un repositorio de aplicaciones propias.

Pythoncocoa tambien pretende atraer a todas aquellas personas que tengan una idea para ser desarrollada en una app y que sirva de motivación para el programador.

Se usará Cocoa Frameworks para desarrollar las elegantes GUIs nativas, sustituyendo a Objective-C con python. Teniendo como intermediario a pyobjc, con python se obtendrá una gran cantidad de módulos listos para ser reusados y sobre todo simplicidad.

dprees en quijost.com

Continuando con la serie de post sobre hosting y proyectos django, ahora toca dpress. El proceso de instalacion es muy similar al del anterior post sobre django-cms. Existen bastantes apps de blog en django, dpress se me hizo el más facil de instalar y más completo cuenta con tagging, comentarios, paginacion, resumen del post y vista completa.

Lo mejor de dpress es que cuenta con un demo para el frontend y para el admin ( username:vicalloy password:vicalloy ), si no gusta no se pierde tiempo instalando.

Entonces el .htaccess cambiaria un poco con respecto al .htaccess de django-cms, practicamente se le agregan los paths de más modulos al pythonpath.

En el directorio modules se deben colocar las apps que usa dpress para poder trabajar que son tynimce, tagging, filebrowser esos vienen con dpress solo faltaria markdown.

El .htaccess debe ir dentro de la carpeta del proyecto para que no efacte a otros y se puedan tener muchos proyectos en el mismo hosting.

Una año de opentumblr

Hace un año hice el primer commit en github y un año despues tenemos opentumblr version 0.1.0 que es diferente de opentumblr-qt el cual lleva mas de 1000 descargas. Se hizo un fork de la api desarrollada por ryan.a.cox, misma api que usamos para varios proyectos como opentumblr-ce. Me siento bien de poder aportar mi trabajo y sobre todo saber que se esta utilizando.

Larga vida Opentumblr!

Hospedaje gratuito y django-cms

Cada vez es más común desarrollar web con python, lo que conlleva habilitar mod_python en los servicios gratuitos y de paga de hosting. En djangohosting se encuentra una lista de diferentes servicios de hosting compartido, vps y servidores dedicados. Puede suceder en ocasiones al contratar un servicio, es imposible habilitar django o es muy tedioso.

Quijost ofrece diferentes paquetes uno de ellos es efree con 1 año gratis de servicio, invirtiendo un par de horas en la configuración de django-cms y preparación de django fácilmente se puede tener un sitio desarrollado con django en quijost.

Lo primero que se tiene que hacer es registrarse en quijost para obtener una cuenta del plan efree. Ahora en public_html se debe crear un directorio llamado modules, contendrá a django y todos los módulos externos que se necesiten. También en public_html se coloca el directorio del proyecto/aplicación desarrollada en django.

Lo interesante o truco se coloca en el htaccess, específicamente en las lineas 3 y 4. La linea 3 corresponde al pythonpath en la cual se agrega el directorio modules para habilitar tanto django como django-cms, pero a la vez se agrega el path de django-cms para que no genere error de que no puede importar cms.

La linea 4 se usa para poder ejecutar el egg de django-cms en otra ruta, en este caso en /tmp. En modules se debe tener algo parecido a lo de la imagen.

Por ultimo, solo se tiene que generar la base de datos con python manager.py syncdb de manera local e importarla desde el phpmyadmin que ofrece quijost desde cpanel.

NOTA: La configuración de django-cms no es parte de este post, tampoco lo es la creación de app o proyectos con django. Para conocer más sobre el tema visitar la pagina de los proyectos django-cms y djangoproject. El post se baso en django hosting en venezuela.

Audio

Writer of software

abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz