Posts de la categoría 'Desarrollo'

Leyendo QR-codes desde la Blackberry

qrcodeUn código QR (Quick Response) es sistema de código de barras bidimensional, que permite leer contenido a alta velocidad desde cualquier dispositivo dotado de una cámara.

Uno de los lugares donde más se está popularizando el uso de estos códigos es Japón. Este mecanismo simplifica enormemente la manera de introducir URLs en un dispositivo móvil, así que no es de extrañar que comencemos a verlo por todas partes: referencias en libros, en tarjetas de visita, en restaurantes, hoteles, etc.

El QR-code que se ve es la dirección de este blog.

Para poder leer este tipo de códigos desde la Blackberry (y otros dispositivos móviles) podéis usar BeeTagg, aplicación que podéis descargar desde la Blackberry usando la siguiente URL:

http://get.beetagg.com

Tags: none

Truco para contar palabras en MySQL

MySQL no tienen ninguna función para contar las palabras de una columna. Con este sencillo truco lo podemos resolver:

SELECT SUM( LENGTH(columna) - LENGTH(REPLACE(columna, ' ', ''))+1)
FROM tabla



Básicamente se trata de contar el número de espacios.

Tags: none

Conexión a SSH sin escribir el password

Esto es útil cuando queremos automatizar una tarea que implica una conexión via SSH con otra máquina, por ejemplo en una tarea periódica.

Para estos casos podemos usar una autenticación basada en clave pública y clave privada en vez de la validación mediante password.

Los pasos para configurar OpenSSH (que viene con cualquier distribución Linux) son los siguientes:

  1. Debemos configurar el SERVIDOR SSH para aceptar logins mediante clave privada. Comprueba que en ‘/etc/ssh/sshd_config’ aparece una linea que contiene ‘PubkeyAuthentication yes’ (y que no está comentada, es decir no va precedida de un #). Si modificas este fichero deberás reiniciar el servicio ’sshd’: ‘/etc/init.d/sshd restart’.
  2. En la máquina CLIENTE (ojo, no en el SERVIDOR) debemos crear un par de claves mediante el comando: ’sshkeygen -t rsa’, acepta la ubicación que propone y no especifiques un password.
  3. Abre el fichero ‘id_rsa.pub’ que acabas de crear, contiene una larga linea de texto, y copia el contenido al final del archivo ‘$HOME/.ssh/authorized_keys’ en el SERVIDOR. Si no existe créalo.

Ahora deberías poder acceder via SSH con el usuario que has usado en la máquina cliente sin necesidad de teclear tu password. Esto puede provocar un agujero de seguridad para la máquina SERVIDOR si alguien consigue acceder a la cuenta de usuario de la máquina CLIENTE, ya que no necesitará ningún password para poder acceder a ella.

Si en algún momento sospechas que alguien tiene una copia de tu fichero ‘id_rsa’, puedes borrar la linea que añadiste al fichero ‘authorized_keys’ en el SERVIDOR para desactivar la clave.

Tags: , , , , ,

Trucos CSS para IE6, IE7, Firefox, Safari y Google Chrome

Está claro que nunca jamás se debe optar por usar trucos para dar un tratamiento diferente a los CSSs para igualar la apariencia del site en diferentes navegadores.

Bueno, vale, pero cuado no queda más remedio… cuando llevas dos horas colocando un margen de una foto que no ves la manera de que sea cross-browser… cuando ya no puedes perder más tiempo con eso… pues al final hay que usar estos hacks que te permiten aplicar reglas diferentes según el navegador del que se trate (lo dejas bien comentado y adios remordimientos) .

Para Internet Explorer en general nos pueden valer las condicionales comentadas:

<!--[if IE]>
Esto se mostrará si el navegador es Internet Explorer
<![endif]-->
<!--[if IE 5.5]>
Esto se mostrará si el navegador es Internet Explorer versión 5.5
<![endif]-->
<!--[if IE 6]>
Esto se mostrará si el navegador es Internet Explorer versión 6
<![endif]-->



Para IE 6 exclusivamente:

* html .miclasecss{
/* esto sólo funcionará en Internet Explorer 6	*/
}



y tambien:

p{
margin:10px;
_margin-left:20px; /* Sólo Internet Explorer */
}



Para Firefox:

p.myStyle{
color:red;
}

p > .myStyle{
color:blue; /* Sólo para Firefox */
}



Para IE7 y no IE6:

html[xmlns] .myStyle{
/* Firefox e IE7 lo procesan pero le doc debe ser XHTML para que funcione */
}



Para Safari, Opera y Google Chrome:

@media screen and (-webkit-min-device-pixel-ratio:0){
#div {margin-left: 10px;}
}
Tags: , , , , , , ,

Varias versiones de Internet Explorer a la vez

Acabo de encontrar esta útil herramienta para poder mantener varias instalaciones de Internet Explorer standalone corriendo en la misma máquina, algo muy útil cuando queremos estar seguros de la compatibilidad de nuestros sites con antiguos browsers.

http://tredosoft.com/Multiple_IE

Tags:

El juego más pequeño

ProhibitionHace tiempo me animé al desarrollo de juegos para móviles, en parte animado por David (con quien monté eXternalTest). El mejor de ellos fue una réplica del Prohibition (Infogrames) llamado The Dry Law.

Todo empieza como un juego, se vislumbra un posible negocio y se acaba quedando en unas lecciones magistrales sobre ahorro de recursos ya que hace 7 años la memoria total disponible estaba limitada a 64Kb.

Hoy he descubierto el juego con la interfaz gráfica más pequeña… ¡¡funciona en un favicon!! Se trata del mítico juego Defender, y podéis probarlo en:Defende the favicon

http://urlmin.com/defender

Tags: , , , , ,

Clon de Firebug para explorer

Internet Explorer Developer Toolbar es lo más parecido a un Firebug para explorer, salvando las distancias…

Esta semana se ha liberado la versión 1.0 después de 3 betas.

IE Dev toolbar

Podéis descargarlo en: http://urlmin.com/iedevtoolbar

Tags: , ,

Enlaces sobre optimización de consultas en MySQL

Algunos enlaces interesantes que tratan el tema de optimización de MySQL:

Visto en phpimpact

Tags: , , ,

Google anuncia un API para librerías AJAX

Google ha anunciado una idea que me parece absolutamente genial: la creación de un API común para la carga centralizada de las librerías AJAX y javascript más usadas (jQuery, dojo, MooTools, prototype, etc).

La verdad es que si nos paramos a pensar la cantidad de veces que cargamos los ficheros JS relacionados con estas librerías y presentes en cada vez más sites nos daremos cuenta del despilfarro de tiempo de carga que estamos sufriendo y provocando a nuestros usuarios, a parte de la cantidad de ficheros repetidos en la caché del navegador.

Google se ha reunido con los responsables de las principales librerías y han conseguido un repositorio común servido directamente por Google, de tal manera que podemos contar con esos recursos centralizados, actualizados, optimizados, en alta disponibilidad, y con tiempos de carga inmejorables.

Estos recursos podrán usarse de dos maneras, bien con uso clásico del fichero CSS a través del tag <script>:

<script src=”http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.2/prototype.js”></script>

o bien haciendo uso de su API AJAX:

// Load jQuery
google.load(”jquery”, “1″);

// on page load complete, fire off a jQuery json-p query
// against Google web search
google.setOnLoadCallback(function() {
$.getJSON(”http://ajax.googleapis.com/ajax/services/search/web?q=google&;v=1.0&;callback=?”,

// on search completion, process the results
function (data) {
if (data.responseDate.results &&
data.responseDate.results.length>0) {
renderResults(data.responseDate.results);
}
});
});

Podéis ver más información en el site oficial de Google

Tags: , , , , , ,

Google Maps a lo SimCity

Actualmente hay zonas del planeta que podemos visualizar a una resolución espectacular usando Google Maps en modo Satélite. No obstante dichas fotos no resultan del todo nítidas, lógico si pensamos en cómo están tomadas: cenitalmente y a larga distancia, con lo que no queda clara la perspectiva de cara a visualizar edificios, etc.

La empresa china Hangzhou Aladdin Infotech se ha dedicado a dibujar estos mismos mapas al más puro estilo SimCity dando un aspecto 3D (con la perspectiva isométrica usada en los juegos de los 80) dotando a la imágen de mayor información práctica.

Por ahora sólo está disponible para algunas ciudades chinas, podéis consultarlo en su buscador Edushi.

Para muestra la visualización de la Harbourfront Landmark Tower (rascacielos de 70 pisos y más de 230 metros de altura) en Hong Kong:

Hong Kong dibujado

En Google Maps:

Hong Kong en Google Maps

Y para terminar una captura del mítico juego:

SimCity

Tags: , , , , ,

« AnteriorSiguiente »