Últimas Actualizaciones del Evento

Una solución al 502 Bad-Gateway en nginx

Posted on Actualizado enn

Hace poco tuvimos un problema de respuesta 502 Bad-Gateway en un servidor nginx-php-mysql. Puedo asegurar que no te va a hacer el día revisar tus conexiones caídas a primera hora del día, y menos si son problemas persistentes, así que comparto una solución:

Para empezar, el servidor estaba preparado para recibir una gran cantidad de peticiones, tenía configurada la opción de worker_connections para ello, entre otras cosas:

events {

worker_connections 4096;

}

Aún así ,un buen día nos atormentó la recurrencia de los mensajes 502, se revisó la carga del cpu, log de errores, estado de la conexión, se actualizó nginx, php y no resolvió el problema… Hasta dar con éste lindo detalle:

19:22:09 [error] 19512#0: *107690 connect() to unix:/tmp/php5-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 172.56.38.231, server: ***, request: “GET /***.ico HTTP/1.1”, upstream: “fastcgi://unix:/tmp/php5-fpm.sock:”, host: “…”, referrer: “…”

Todo esto se traduce a algo como “error: el recurso php5-fpm no está disponible”, pero… ¿Por qué no está disponible?

Pueden ser una gran cantidad de factores, resumidos en que el server está ocupado en ‘algo’

http://www.nginxtips.com/502-bad-gateway-using-nginx/

Ése ‘algo’ en nuestro caso fue la conexión mysql que teníamos a un segundo servidor. Muchas veces éste problema se deriva de otros tantos (léase ‘flush hosts’, ‘grant all privileges’, ‘flush privileges’).

En este caso fue algo anormal que detectamos al mostrar los procesos del servidor mysql con el comando ‘show processlist’ y he ahí el problema, teníamos colgado el servidor debido a un problema de múltiples procesos con la leyenda ‘unauthenticated-user‘.

http://exodica.gentisoft.com.ar/posts/238-mysql-colgado-con-conexiones-unauthenticated-user.html

En resumen, al haber conexiones remotas, mysql -por defecto- intenta resolver un dominio junto con el usuario que intenta acceder. Una forma de solucionarlo es aplicar un glorioso ‘skip-name-resolv’ al reiniciar mysql, como se explica en el anterior enlace… Aunque igual optamos por modificar añadir el host del servidor solicitante en el archivo /etc/hosts del servidor mysql:

127.0.0.1 localhost

127.0.1.1 ubuntu 

# The following lines are desirable for IPv6 capable hosts

::1 ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

xxx.xxx.xxxx.xxxx http://www.midominio.com

Y listo, todo al 100 🙂

Con esto, el dominio del usuario mysql creado en el server mysql para el servidor web, será auténtico y permitirá realizar consultas instantáneas, y no enormes tiempos de espera que cuelguen el servicio de consulta que maten el servidor.

Anuncios

Hello Android!

Posted on

Comenzamos con nuestro Hola Mundo en Android.
Se debe suponer que ya instalaste el entorno de desarrollo para android, explicado en el post anterior.

OK, una vez instalados los no pocos archivos bajados con anterioridad, entramos a Eclipse y creamos un nuevo proyecto File>New>Project A continuación seleccionamos Android>Android Project y Next.

En Project Name ponemos ‘HolaMundo’, luego Next y seleccionamos la plataforma en la que queremos trabajar. Enseguida damos los parámetros que se muestran en la imagen y damos clic en Finish.

Ahora tenemos que crear los siguientes directorios:

/libs (dentro del directorio raíz ‘HolaMundo’)

/assets/www

Buscamos la carpeta de phonegap (la cual descargamos anteriormente [http://phonegap.com/download] y descomprimimos), nos vamos a lib>android.

Copiamos el archivo phonegap.js en /assets/www

Copiamos el archivo phonegap.jar en /libs

Copiamos la carpeta xml en /res

A continuación damos clic derecho sobre la carpeta libs>Build path>Configure Build Path, luego en la pestaña Libraries damos clic en el botón Add JARs… y seleccionamos phonegap-1.x.x.jar ubicado en la carpeta /libs.

Ahora abrimos el archivo App.java (HolaMundo>src>com.phonegap.HolaMundo>App.Java) y modificamos el código para que quede de la siguiente manera:

  • Agregamos import com.phonegap.*;
  • Cambiamos la clase Activity por DroidGap
  • Reemplazamos la línea setContentView() con super.loadUrl(“file:///android_asset/www/index.html”);

Luego, damos clic derecho sobre el archivo AndoridManifest.xml (que se encuentra en el árbol de la izquierda) y seleccionamos Open With>Text Editor, borramos el código XML  y pegamos el siguiente código:

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android&#8221;
package=”com.phonegap.HolaMundo”
android:versionCode=”1″
android:versionName=”1.0″ >

<supports-screens
android:largeScreens=”true”
android:normalScreens=”true”
android:smallScreens=”true”
android:resizeable=”true”
android:anyDensity=”true”
/>
<uses-permission android:name=”android.permission.CAMERA” />
<uses-permission android:name=”android.permission.VIBRATE” />
<uses-permission android:name=”android.permission.ACCESS_COARSE_LOCATION” />
<uses-permission android:name=”android.permission.ACCESS_FINE_LOCATION” />
<uses-permission android:name=”android.permission.ACCESS_LOCATION_EXTRA_COMMANDS” />
<uses-permission android:name=”android.permission.READ_PHONE_STATE” />
<uses-permission android:name=”android.permission.INTERNET” />
<uses-permission android:name=”android.permission.RECEIVE_SMS” />
<uses-permission android:name=”android.permission.RECORD_AUDIO” />
<uses-permission android:name=”android.permission.MODIFY_AUDIO_SETTINGS” />
<uses-permission android:name=”android.permission.READ_CONTACTS” />
<uses-permission android:name=”android.permission.WRITE_CONTACTS” />
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
<uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” /> <uses-permission android:name=”android.permission.GET_ACCOUNTS” />
<uses-permission android:name=”android.permission.BROADCAST_STICKY” />

<uses-sdk android:minSdkVersion=”8″ />

<application
android:icon=”@drawable/ic_launcher”
android:label=”@string/app_name” >
<activity
android:name=”.App”
android:label=”@string/app_name” >
<intent-filter>
<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
<activity
android:name=”com.phonegap.DroidGap”
android:label=”@string/app_name”
android:configChanges=”orientation|keyboardHidden”>
<intent-filter>
</intent-filter>
</activity>
</application>

</manifest>

 

 

Básicamente estamos añadiendo parámetros de configuración de la aplicación, como el uso de cámara, localización, internet, etc.


Para finalizar, creamos un archivo llamado index.html y lo guardamos en la carpeta /assets/www con el siguiente código:

NOTA IMPORTANTE! es necesario cambiar src=”phonegap.js” por src=”phonegap.1.x.x.js”. Donde ‘1.x.x.’ es la versión que hayan bajado de phonegap. Otra opción es renombrar el archivo a ‘phonegap.js’ y listo, quedaría como en el ejemplo de arriba.

 

<!DOCTYPE HTML>
<html>
<head>
<title>PhoneGap</title>
<script type=”text/javascript” charset=”utf-8″ src=”phonegap.js“></script>
</head>
<body>
<h1>Hello Android</h1>
</body>
</html>


Para configurar la máquina virtual vamos a Window>AVD Manager>New. En Name: podemos poner lo que queramos (como ‘máquina virtual’), Target: La plataforma que deseamos, Size: Memoria RAM que le asignaremos a la máquina y en Built-in: la resolución.

Ahora sí, damos clic derecho sobre la carpeta raíz HolaMundo>Run As>Android Application y ¡Voilá! tenemos nuestro HolaMundo en Android.

Espero les haya servido el presente tutorial. Cualquier duda o aclaración puede verse dentro de los mismos comentarios.

Adicional !
Puedes jugar con el contenido de index.html para irte familiarizando con las etiquetas HTML  y estilos css:
por ejemplo:

<!DOCTYPE HTML>
<html>
<head>
<title>PhoneGap</title>
<script type=”text/javascript” charset=”utf-8” src=”phonegap-1.4.1.js”></script>
</head>
<body style=”background:#111″>
<h1 style=”font-family:arial; color:#EEE; font-size:20px; font-weight:normal”>Probando css inline</h1>
<p style=”font-family:arial; color:#CCC; font-size:12px; font-weight:normal”>Hello Android!</p>
<p style=”font-family:arial; color:#AAA; font-size:11px; font-weight:bold”>Tutorial completo :)</p>
<p style=”font-family:arial; color:#999; font-size:9px; font-weight:bold”><i>Ziscko Design</i></p>
</body>
</html>

Ejecutando ese código, tendrás como resultado algo como esto:

Instalación de Eclipse para desarrollo de aplicaciones Android

Posted on Actualizado enn

Hola que tal! Hoy inicio con el tutorial de instalación del entorno de desarrollo de aplicaciones para Android.

Básicamente es una recopilación explicada en castellano del proceso de instalación de paquetes y actualizaciones para Eclipse, a cortesía de @rockrdz.

Nota IMPORTANTE!: Es posible que Eclipse no corra si no tienen la versión adecuada de JDK, la cual pueden descargar de aquí.

-Pues después de varias horas de trabajo y algunos tutoriales que el buen @ToRo me facilitó, logré instalar Eclipse para Android en Windows 7 y XP haciendo correr el tan famoso ‘Hola Mundo’. Supongo que debe ser lo mismo para las demás plataformas dado que es mera configuración. A continuación se explica el método para lograrlo:

Primero que todo, tenemos que bajar y descomprimir eclipse buscando la versión correspondiente a nuestro SO (32/64 bits).

Enseguida, se baja e instala Android SDK de aquí.

Al terminar de instalar se tendrán que descargar las plataformas que deseamos manipular, es decir, sobre las cuales correrán nuestras aplicaciones. En mi caso, bajé la 3.2 (por contar con la galaxy tab ) y la 2.2 (para hacer pruebas con el IDEOS).

Después abriremos nuevamente Eclipse para introducir la siguiente configuración:

Dentro del menú Help>Install New Software daremos clic en el botón Add para después poner los siguiente parámetros Name= ADT Plugin y enLocation= https://dl-ssl.google.com/android/eclipse/

Lo demás es mera configuración. Igualmente descargará más ficheros (solo queda esperar).

Para finalizar con la descarga y configuraciones, solo tendremos que descargar finalmente phonegap de aquí.

Y listo!
Esperen los próximos tutoriales de desarrollo.

Minería de datos – Diapositivas Flash

Posted on

En la siguiente presentación flash se muestra la definición, aplicación, herramientas y tecnicas más utilizadas dentro del mundo de la minería de datos.

Enlace a la presentación flash

Enlace al archivo ejecutable (si no tienes flash instalado)

Ziscko Team Solutions – Tu mejor opción

Posted on

Ya está montado el sitio dedicado a la empresa “Ziscko Team Solutions”, una empresa encargada de desarrollar software a medida creada en html, con la ayuda de scripts en php, javascript y xml para la validación de usuarios.


El sitio se encuentra en el siguiente enlace:

http://ziscko.hostzi.com

Ejemplo de estructura XML

Posted on

Supongamos que tenemos una empresa con 10 usuarios registrados en un archivo xml.Primeramente definimos la versión del documento, después añadimos grupos de etiquetas, como si se trataran de “<div>” en html, definiendo los grupos de variables donde se desee que se encuentren.

Su estructura sería la siguiente:

<?xml version=”1.0″?>
<usuarios>
<cuentas>
<username>admin</username>
<password>pass0</password>
</cuentas>
<cuentas>
<username>usuario1</username>
<password>pass1</password>
</cuentas>
<cuentas>
<username>usuario2</username>
<password>pass2</password>
</cuentas>
<cuentas>
<username>usuario3</username>
<password>pass3</password>
</cuentas>
<cuentas>
<username>usuario4</username>
<password>pass4</password>
</cuentas>
<cuentas>
<username>usuario5</username>
<password>pass5</password>
</cuentas>
<cuentas>
<username>usuario6</username>
<password>pass6</password>
</cuentas>
<cuentas>
<username>usuario7</username>
<password>pass7</password>
</cuentas>
<cuentas>
<username>usuario8</username>
<password>pass8</password>
</cuentas>
<cuentas>
<username>usuario9</username>
<password>pass9</password>
</cuentas>
</usuarios>

Software libre para XML

Posted on

En la siguiente presentación se muestran 5 entornos opensource sobre plataforma Windows para el manejo y administración de código XML:

Liga de la presentación: https://ziscko.files.wordpress.com/2011/03/5_ejemplos_xml.pptx