14 septiembre 2015

Fundamentos de Backbone.js







Para aquellos que empiezan a adentrarse con Backbone.js recomiendo el libro de O'reilly de Addy Osmani que se encuentra en versión free open-source reading http://addyosmani.github.io/backbone-fundamentals/

11 abril 2015

Notas Git

Hace unos años, en uno de mis primeros post hablé sobre Git, sobre su emergencia por aquel entonces (2009 - 2010).



Hoy en día Git es una realidad más que comprobada, es suficiente ver la cantidad de proyectos alojados en GitHub.

Recientemente code.google.com ha comunicado que dejará de prestar el servicio de host de proyectos por lo cual he de migrar mis proyectos a GitHub y empaparme un poco del trabajo con Git.

A continuación algunos enlaces útiles para hacer las primeras aproximaciones a Git:



Ciclo de trabajo habitual con un proyecto en GIT: (en construcción)




07 diciembre 2014

Notas ORACLE


Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production.


Tips

  • Recuperar la contraseña del usurario administrador o system:

    "Log into the database server as a user belonging to ‘dba’ [unix ] or ‘ora_dba’ [windows ] group , typically ‘oracle’, or an administrator on your windos machine. You are able to log into Oracle as SYS user, and change the SYSTEM password by doing the following:
    $ sqlplus "/ as sysdba"
    SQL*Plus: Release 9.2.0.1.0 - Production on Mon Apr 5 15:32:09 2004
    
    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
    
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - Production
    
    SQL> show user
    
    USER is "SYS"
    
    SQL> passw system
    Changing password for system
    New password:
    Retype new password:
    Password changed 
    SQL> quit"

    Esta información ha sido extraída de: Rolfe



16 agosto 2014

Notas Maven





"Apache Maven es una herramienta de gestión de proyectos de software. Basado en el concepto de un modelo de objetos de proyecto (POM), Maven puede gestionar la construcción de un proyecto, elaboración de informes y la documentación".


En la página principal de Maven, se puede encontrar toda la información relacionada con dicha herramienta, incluidos los artículos de aprendizaje, documentación y referencia tan preciados por los desarrolladores.
Personalmente, en el momento en que he tenido que averiguar o buscar información para manejar proyectos con Maven me han sido más útiles los siguientes tutoriales de Sonatype:


Ejemplo de creación de proyecto Java con Maven:

$ mvn archetype:generate -DgroupId=com.alejandropadron -DartifactId=JavaExample 
  -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false


Algunos comandos 

$ mvn dependency:tree
$ mvn clean install

18 abril 2014

Notas JAVA

Documentación

  • Oficiales de ORACLE
    • Java Tutorials Para principiantes y los que buscan información sobre ciertas partes de la API como colecciones, reflexion, seguridad, etc.
    • Java EE, Contiene un overview, un tutorial y acceso al API.
    • Java Specs . De los creadores
  • J2EE  

Herramientas



Considero que no existe mejor herramienta libre a la hora de trabajar y ser productivo con java que el IDE Eclipse.




Apuntes codificación

Reflection

Supongamos que queremos acceder al método 'getContenido' de una subclase de 'documento':

Method getContenido = documento.getClass().getMethod("getContenido", null);
(DataHandler) getContenido.invoke(documento, null);




27 enero 2013

Sobre el .htaccess y .htpasswd en Apache2

¿Qué es un fichero .htaccess?

Un fichero .htaccess es un simple fichero de texto. Permite modificar el comportamiento del servidor de web creando configuraciones específicas para su dominio. Algunos de los usos más frecuentes son la protección de directorios, páginas personalizadas de error, etc.

¿Dónde debo guardar el fichero .htaccess?

Puede guardarse en el directorio principal de su sitio web o en subdirectorios. Si coloca un .htaccess en el directorio principal este afectará a toda la estructura de subdirectorios de su web.

¿Cómo puedo crear un fichero .htaccess?

Para crear un fichero .htaccess no necesitas nada especial, únicamente un editor de textos, cómo por ejemplo el Notepad de Windows o Vi en Linux.

Ahora que ya sabemos como crear el fichero, observarás que este fichero no dispone de un nombre convencional. Si tienes algún problema relacionado con el nombre, puedes guardarlo como "htaccess.txt" o simplemente “htaccess”. Una vez guardado, sube el fichero al servidor, y renombra el fichero utilizando el cliente FTP. Recuerda que el nombre que debe tener este fichero en el servidor es, “ .htaccess “ para que cumpla su función.

¿.htaccess requiere algún permiso especial?

No necesariamente, pero 644 ó (RW- R-- R--) no estría mal.

Podemos redireccionar a nuestros visitantes a diferentes páginas si se produce un error.

La sintaxis que debe utilizar es la siguiente: ErrorDocument código_error /nombre_fichero.html

Los código de error más usados son:

  • 400 Bad Request Petición errónea
  • 401 Authorization Required Autorización requerida. Se muestra cuando un usuario intenta acceder a una zona protegida sin autorización.
  • 403 Forbidden Acceso denegado. Se muestra cuando un usuario intenta acceder a una zona a la que no tiene permisos.
  • 404 Not Found Uno de los errores más comunes. Se muestra cuando una página no existe en el servidor. Resulta muy útil para mostrar información al usuario de lo que ocurre exactamente.
  • 500 Internal Server Error Se muestra cuando se ha producido un error interno en el servidor. Normalmente por un error en la ejecución de scripts CGI.

La protección de directorios es una de las funciones más usadas de .htaccess.

Primer Paso

Lo primero que debemos hacer es crear un fichero llamado .htpasswd. Este fichero contendrá los nombres de usuario y contraseñas del área restringida que deseamos crear. La información debe ser creada de la siguiente manera. Un usuario y contraseña por línea ...

usuario1:password1
usuario2:password2
usuario3:password3

El nombre de usuario debe estar separado de la clave por dos puntos (:). También debemos tener cuidado de no dejar espacios en blanco, ya que esto provocaría un error en la autenticación.

Importante: Los passwords obligatoriamente deben estar encriptados. Para realizar esto existen muchos métodos y herramientas que no voy a describir ahora.

Segundo Paso

Una vez creado el fichero con los usuarios y contraseñas, debemos crear el .htaccess

AuthUserFile /home/pathto/.htpasswd AuthType Basic AuthName "Restringido" require valid-user

AuthUserFile /home/ruta_usuario/htdocs/.htpasswd - Esta línea indica la ruta hacia el fichero .htpasswd. La ruta debe ser correcta para que la autenticación pueda llevarse a cabo. Una vez creado el fichero, lo enviamos al directorio que queremos proteger.

A través de .htaccess puedes denegar el acceso a determinadas direcciones IP.

La sintaxis que debes utilizar es ...

order allow,deny deny from dirección_ip allow from all

También es posible denegar el acceso utilizando nombres de dominio en lugar de IP's.

order allow,deny deny from .dominio.com allow from all

Para cambiar la página de inicio de nuestro dominio

DirectoryIndex inicio.html

También podemos especificar varias

DirectoryIndex inicio.html index.html index.htm index.php default.html

Redireccionar el tráfico hacia una nueva localización.

Redirect /viejo_directorio/fichero_antiguo.html http://www.dominio.com/nuevo_directorio/index.html

Listar el contenido de un directorio (no prefijar página de inicio)

Options +Indexes

Para desactivar los listados, es decir, o muestras página de inicio o nada

IndexIgnore *

Para mostrar los listados en el servidor, pero evitando mostrar por ejemplo imágenes

IndexIgnore *.gif *.jpg

Debemos tener en cuenta que listar los archivos de un directorio podría considerarse como un problema de seguridad.

Para añadir un especificación de archivo concreta (MIME) al servidor

AddType mime-type extension
Ejemplo:
AddType application/x-shockwave-flash swf

Otras cuestiones

Aunque ya la mayoría de los proveedores de Hosting permiten mediante una configuración en el panel de control hacer lo que viene a continuación no está mal tenerlo en cuenta por si algún día hay que hacerlo a mano

Ejemplo para denegar la carga externa de imágenes (HotLink)

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?midominio.com/.*$ [NC] RewriteRule \.(gif|jpg)$ - [F]

Otra opción que podemos utilizar es denegar la carga externa, pero mostrando una imagen por defecto

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?midominio.com/.*$ [NC] RewriteRule \.(gif|jpg)$http://www.midominio.com/imagen.gif [R,L]

24 enero 2013

Solución: PHPMyAdmin No se pudo cargar la extensión mcrypt, <br/> ...

Problema: al ejecutar PHPMyAdmin aparece un error y/o aviso, No se pudo cargar la extensión mcrypt,<br/> ; por favor revise su configuración de PHP. En mi caso particular fue en un Linux Ubuntu, y la solución la describiré para tal sistema.

Solución: Abrir una consola y ejecutar:
alejandro@ubuntu:~$ sudo updatedb
Esto suele tardar varios segundos, luego ejecutamos
alejandro@ubuntu:~$ locate libmcrypt
/usr/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4.4.8 /usr/share/doc/libmcrypt4 /usr/share/doc/libmcrypt4/changelog.Debian.gz /usr/share/doc/libmcrypt4/changelog.gz /usr/share/doc/libmcrypt4/copyright /var/cache/apt/archives/libmcrypt4_2.5.8-3.1_amd64.deb /var/lib/dpkg/info/libmcrypt4.list /var/lib/dpkg/info/libmcrypt4.md5sums /var/lib/dpkg/info/libmcrypt4.postinst /var/lib/dpkg/info/libmcrypt4.postrm /var/lib/dpkg/info/libmcrypt4.shlibs

Las librerías que buscamos están en las dos primeras líneas en la ubicación "/usr/lib" Entonces ahora hay que buscar y modificar los php.ini para indicarles esta ruta Búsqueda: alejandro@ubuntu:~$ locate php.ini /etc/php5/apache2/php.ini /etc/php5/cli/php.ini /usr/share/doc/php5-common/examples/php.ini-development /usr/share/php5/php.ini-production /usr/share/php5/php.ini-production-dist /usr/share/php5/php.ini-production.cli

Modificación: Abrimos los archivos como superusuario (root) :
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
Nos vamos a la sección del archivo donde está [mcrypt]
; For more information about mcrypt settings see http://php.net/mcrypt-module-open ; Directory where to load mcrypt algorithms ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) ;mcrypt.algorithms_dir= ; Directory where to load mcrypt modes ; Default: Compiled in into libmcrypt (usually /usr/local/lib/libmcrypt) ; mcrypt.modes_dir=

Cambiamos las líneas 1841 y 1844 así;
mcrypt.algorithms_dir="/usr/lib"
mcrypt.modes_dir= "/usr/lib"

NOTA: quitar el punto y coma del principio de estas dos líneas

Reiniciamos apache alejandro@ubuntu:~$ sudo /etc/init.d/apache2 restart
Y comprobamos el resultado ejecutando phpMyAdmin, esto es todo.

RedHat lanza la plataforma cloud OpenShift para código abierto

Aprovechando la experiencia de RedHat en las soluciones Jboss y en el mercado de código abierto, OpenShift está diseñada para evitar el bloqueo del modelo cloud PaaS en soluciones propietarias, permitiendo a los usuarios elegir el proveedor de cloud sobre el que ejecutar sus aplicaciones. OpenShift estará disponible como un servicio online.

Red Hat OpenShift proporciona, según la compañía, mayor flexibilidad que cualquier otra PaaS al ofrecer más marcos de desarrollo para Java, Python, PHP y Ruby, entre los que se incluyen Spring, Seam, Weld, CDI, Rails, Rack, Symfony, Zend Framework, Twisted, Django y Java EE. Incluye almacenamiento de datos tanto SQL como No SQL y un sistema de archivos distribuido. Al apoyarse sobre el estándar interoperable cloud de Deltacloud, OpenShift está diseñado para permitir a los desarrolladores en código abierto ejecutar sus aplicaciones en cualquier proveedor de cloud pública certificado de Red Hat, eliminando el bloqueo asociado con la primera generación de proveedores PaaS.

OpenShift dispone de soporte para MongoDB y otros servicios certificados de Red Hat Enterprise Linux. Con la amplia oferta de frameworks y lenguajes, Red Hat OpenShift ofrece una excelente selección de funcionalidades para desarrolladores en el cloud.

A mí en particular me llamo la atención porque se abre una nueva posibilidad para los desarrolladores de poder experimentar con Rails, Djnago y similares en la nube.

Web de OpenShift Extraido de www.networkworld.es

Resolver problemas matemáticos Online ( Resolvedor, Solver, Resolutor..)

Wolframalpha.com les llevara a un sitio capaz de resolver casi cualquier tipo de problema matemático con el que nos podemos encontrar.

Prueben con este ejemplo:
-1≤((|(x^3)-1|)/(x-1))<2 cópienlo y peguenlo en Resolver

Sorprendido con el resultado, copia y pega esto x^2 ahora. ¿Viste la gráfica? genial ¿no?

Wolframalpha.com es una herramienta excelente y una clara carterista positiva de la red, nuestra red, Internet.

23 enero 2013

Instalar un servidor LAMP sobre Ubuntu 10 en cinco minutos (Apache2 PHP5 MySql-Server)

Vamos a proceder a instalar un servidor web Apache2 con PHP5 y un servidor de bases de datos MySQL. La instalación será mediante consola.
  • Instalar Apache2

    sudo apt-get install apache2 Para comprobar que está instalado abrimos un navegador y ponemos la dirección http://localhost Debe aparecer algo como

    It works!

    y un par de lineas más.

  • Instalar PHP5

    sudo apt-get install php5 Para comprobar que el PHP5 esta instalado, creamos un archivo llamado prueba.php y escribimos en el esta linea: < ?php echo 'hola' ?> Luego copiamos este archivo en el directorio /var/www y abrimos un navegador y escribimos la dirección: http://localhost. Pues si en el navegador debería decir la palabra hola.

  • Instalar MySQL Server

    sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql Con estas linea de comando instalamos en servidor mySql y las librerías para incorporarlo con el Apache2. Para comprobar que esta instalado desde la línea de comando tecleamos mysql -u root -p Luego para salir ponemos q. Para gestionar de forma mas cómoda la base de datos podemos instalar el phpmyadmin sudo apt-get install phpmyadmin y también ejecutamos: sudo ln -s /usr/share/phpmyadmin /var/www/ para poder acceder mediante web que es como se utiliza. http://localhost/phpmyadmin.

Pues con estos sencillos comandos tenemos instalado un servidor web que soporta php5 y mySQL. Para gestionar los servidores y muchas cosas mas de Ubuntu echenle un viztaso a la aplicación Webmin.