Páginas

jueves, 15 de mayo de 2014

jquery Countdown - fix ie8

Hola!

Para los que estén utilizando este plugin para espectaculares countdowns

http://keith-wood.name/countdown.html

El código que se bajan contiene una versión diferente a la que usan en el sitio. La versión que se bajan produce un error en Internet Explorer 8 (ie8).

http://keith-wood.name/js/jquery.plugin.js

El cambio es en la linea 38 particularmente:
return base[name].apply(this, args);

Cambiar por
return base[name].apply(this, args || []);

o

return base[name].apply(this, [args]);

domingo, 23 de junio de 2013

Utilizando as3HTTPClient para comunicar flash con un Web Service RESTFul

En este post volcaré la experiencia de utilizar as3HTTPClient en un juego creado con AS3 (FlashDevelop) para comunicar el juego con un Web Service RESTFul creado con Slim.

Básicamente el servicio web utiliza los métodos GET, POST y PUT, y voy a tener que utilizar SSL puesto que estará en Facebook además de autenticación... vamos por la api key...

El primer problema
Al insertar el primer código para utilizar el GET necesitaremos esta librería que nos resolverá  los algorítmos criptográficos https://code.google.com/p/as3crypto/ (al momento de escribir esto)
  • Protocols: TLS 1.0 support (partial)
  • Certificates: X.509 Certificate parsing and validation, built-in Root CAs.
  • Public Key Encryption: RSA (encrypt/decrypt, sign/verify)
  • Secret Key Encryption: AES, DES, 3DES, BlowFish, XTEA, RC4
  • Confidentiality Modes: ECB, CBC, CFB, CFB8, OFB, CTR
  • Hashing Algorithms: MD2, MD5, SHA-1, SHA-224, SHA-256
  • Paddings available: PKCS#5, PKCS#1 type 1 and 2
  • Other Useful Stuff: HMAC, Random, TLS-PRF, some ASN-1/DER parsing


Continúo...

Entonces, necesitamos comunicar AS3 con PHP, por lo cual lo métodos de encriptación y desencriptación de los datos deberían funcionar en los 2 lugares. Vamos a utilizar algo simple.

Encontramos esto: http://cambiatablog.wordpress.com/2010/08/24/simple-encryptdecrypt-in-as3-and-php-base64-blues/

y esto: http://flashcodetips.blogspot.com.ar/2011/07/low-level-string-encryption-using-php.html

Pero al utilizar una llave en los AS3 tenemos que también pensar... ¿Qué pasa si decompilan nuestro SWF?
Hay varias herramientas, de encriptación y de ofuscación para los SWF http://bruce-lab.blogspot.com.ar/2012/04/free-swf-encryptor-obfuscator-and.html.

Vamos por ésta que funciona muy bien y es gratuita: http://wonderfl.net/c/6WDD/
La explicación acá: http://makc3d.wordpress.com/2013/01/27/free-swf-obfuscator-update/

(Continuará...)
                   



martes, 11 de diciembre de 2012

Actualizar Esquemas de PostgreSQL

Te puede pasar de muchas formas, puntualmente me ocurrió luego de subir un backup solamente de las tablas. En el sitio empezaron a aparecer errores del tipo:


duplicate key violates unique constraint


Buscando y buscando hay varios scripts dando vueltas. Utilizo PSQL 8.4.
El que me funcionó fue el siguiente:

Para ver las secuencias desactualizadas guardá este código en un archivo:

SELECT
  'SELECT ' ||quote_literal(S.relname)|| ' as seq_name' ||
  ', (select last_value from ' ||S.relname|| ') as seq_val' ||
  ', (select MAX('||quote_ident(C.attname)|| ') FROM ' ||T.relname|| ') as max_id;'

FROM
  pg_class AS S
  ,pg_depend AS D
  ,pg_class AS T
  ,pg_attribute AS C
WHERE
  S.relkind = 'S'
  AND S.oid = D.objid
  AND D.refobjid = T.oid
  AND D.refobjid = C.attrelid
  AND D.refobjsubid = C.attnum
ORDER BY S.relname;

Y ejecutá:

psql -Atq -f mostrar_secuencias.sql -o tmp.sql && psql -Atq -f tmp.sql

teniendo en cuenta de ejecutarlo con el usuario dueño de la base de datos que querés modificar con -U y si ese usuario es dueño de varias bases -d

Te va a aparecer una lista como por ejemplo:
users_user_id_seq|3|5

Para corregir todas las secuencias guardá el siguiente código en algún archivo:

SELECT
  'SELECT SETVAL(' ||quote_literal(S.relname)||
  ', MAX(' ||quote_ident(C.attname)||
  ') ) FROM ' ||quote_ident(T.relname)|| ';'
FROM
  pg_class AS S
  ,pg_depend AS D
  ,pg_class AS T
  ,pg_attribute AS C
WHERE
  S.relkind = 'S'
  AND S.oid = D.objid
  AND D.refobjid = T.oid
  AND D.refobjid = C.attrelid
  AND D.refobjsubid = C.attnum
ORDER BY S.relname;

y ejecutá:

psql -Atq -f arreglar_secuencias.sql -o tmp.sql && psql -Atq -f tmp.sql
Muchas gracias a: http://asynk.ch/blog/

jueves, 18 de octubre de 2012

Empezando con Sass - Responsive Design

Luego de leer varias comparaciones entre distintos pre procesadores de CSS, frameworks, pros, contras y muchos comentarios me decido por Sass para encarar el Responsive Design de un sitio que luego conocerán (bah algunos se lo deben imaginar jaja).

Para instalar Sass en Windows primero nos tenemos que descargar Ruby.
Durante la instalación nos conviene seleccionar la opción de agregar al PATH de Windows el directorio de ejecutables del Ruby.

Abris "Start Command Prompt With Ruby" y escribís:

gem install compass


Nada más!! no lo puedo creer, así de fácil arrancamos con Sass.


viernes, 18 de febrero de 2011

Drupal y la memoria del hosting

  • En caso de que tengan problemas con la memoria en su instalación de Drupal, en la página de Drupal escriben 4 consideraciones a tener en cuenta para agrandar la memoria del PHP (siempre y cuando te dejen).


  1. memory_limit = 128M
  2.  en tu php.ini (recomendado si tenés acceso)
    With root access, you can use the sed util in Linux/Unix based systems, in order to increase the memory for 64M. Don't forget to properly locate your php.ini file!
    sed -i 's/memory_limit = .*/memory_limit = 64M/' /etc/php5/apache2/php.ini
  3. ini_set('memory_limit', '128M'); en tu archivo sites/default/settings.php.
  4. php_value memory_limit 16M en tu archivo .htaccess en la carpeta raiz del drupal, dentro de los condicionales dependiendo del módulo disponible.
  5. O instalar: http://drupal.org/project/drupal_tweaks e incrementar la memoria PHP. Este módulo al momento de escribir esto estaba como no recomendado.


  • En caso de que el limite esté impuesto en el Apache, por más memoria que pongan utilizado los anteriores métodos les va a seguir saliendo el error. En drupal.org también se puede encontrar de una manera un poquito más dificil...

Agregar al principio del .htaccess:
RLimitMem 128000000


MemTest.php
ini_set('display_errors', 'On');$new_mem_limit = '128M';$old_mem_limit = ini_set('memory_limit', $new_mem_limit);
print
'Memory limit changed from '. $old_mem_limit .' to '. $new_mem_limit .'
'
;
$step = 1;
while(
TRUE) {
 
$chunk = str_repeat('0123456789', 1024*1024*$step++);
  print
'Memory usage: '. round(memory_get_usage()/(1024*1024)) . 'M
'
;
  unset(
$chunk);
}

sábado, 8 de noviembre de 2008

Earthworm Jim fue lo primero que se me vino a la mente cuando Diego me pone esta URL en mi msn esta tarde: http://www.bio-bak.nl/

Realmente impresionante lo que este flaco logró con su sitio, una de las cosas que más me llamaron la atención fue la forma de cargar la página a medida que "navegas" por el extraño mapa que se muestra en el sitio, donde aparecen cuadrados como de baja resolución, y luego se carga la verdadera imagen.


jueves, 6 de noviembre de 2008

El domingo paseando por la feria de artesanías de Plaza Italia le decía a mi hermano: "Che Achi, debería alguna forma mas facil de saber que es lo que venden acá", bueno, alguien ya me ganó de mano con la idea jeje

Paseo de Artesanos es el sitio que un amigo lleva adelante publicando albumes de fotos por cada puesto que encuentra interesante, y eso es realmente lo que logró con el sitio, ser interesante, especialmente para la gente que gusta de las artesanías y para los mismos artesanos.

Entrando al sitio podemos ver un carusel de imagenes hecho con flash, que carga de un XML una lista de fotos. Dentro de los paseos, un carusel con JavaScript, que para mi gusto es mucho mas lindo :D especialmente porque las imagenes se ven grandes y nítidas.

http://www.paseodeartesanos.com.ar/