sábado, 28 de mayo de 2011

Access: Error MaxLocksPerFile, se excedió el número de bloqueos de archivos compartidos

Si trabajamos en Microsoft Access copiando y pegando grandes cantidades de datos es probable que nos aparezca el  error: Se excedió el número de bloqueos de archivos compartidos. Aumente el valor de la entrada MaxLocksPerFile del Registro.


Se excedió el número de bloqueos de archivos compartidos. Aumente el valor de la entrada MaxLocksPerFile del Registro.

El valor predeterminado es 9.500, y se puede cambiar modificando el Registro con Regedit.exe o el método SetOption. Tal y como se explica en la  Knowledge Base de Microsoft y que podemos ven la siguiente página web:

Podemos ejecutar el editor del registro pulsando la tecla [Windows] + [R] y luego escribiendo regedit.exe 

Otros factores que pueden hacer que una aplicación alcance este umbral son los siguientes:

  • cantidad de memoria disponible 
  • tamaño de las filas en el conjunto de registros 
  • restricciones de red del sistema operativo 

Hay que tener en cuenta que las claves del registro que propone modificar Microsoft no son válidas para Access 2007 en Windows 7 64bits.

Al menos en mi caso estas son las claves que hay que modificar para solucionar el problema:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Jet 4.0\MaxLocksPerFile
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\ACE\MaxLocksPerFile

Pondremos en Decimal la cifra que consideremos adecuada 10000, 12000, o lo que sea pero teniendo en cuenta que valores demasiado altos puede hacer que la base de datos vaya demasiado lenta o producir errores. No olvidemos que tenemos que abrir Regedit con permisos de administración para poder editar los registros y que siempre que se manipula el registro es conveniente hacer una copia de seguridad del mismo.



viernes, 27 de mayo de 2011

7zip: Compresión en lotes o como comprimir en archivos separados

Alguna vez has tenido la necesidad de comprimir en lotes usando 7zip.  Esta tarea que se realiza de forma tan sencilla con Winrar, los creadores de 7zip no la han considerado suficientemente importante como para implementarla. Pero tenemos soluciones alternativas como las siguientes:


Esta linea comprime cada archivo que contiene una carpeta de forma independiente:

FOR %I IN (*) DO 7z64.exe a -tzip "%~nI" "%I"
Esta otra linea comprime el contenido de una carpeta por separado incluyendo cada archivo en una carpeta:

FOR %I IN (*) DO 7z64.exe a -tzip "%~nI\%~nI" "%I"

Estos comandos se deben usar en una ventana de dos cuando estemos en la ruta de la carpeta en la que vamos a trabajar. Y tenemos que tener el archivo 7z64.exe en el path o en la misma carpeta. (Este ejecutable es para las versiones de Windows de 64bits por lo que si tu sistema operativo es de 32 deberás usar el 7za.exe normal.)

En la misma ayuda de 7zip hay información sobre la "Command Line Version" en la que se explican los parámetros y forma de uso por si queremos cambiar el formato de salida, etc.

jueves, 26 de mayo de 2011

Optimizar MySQL para Magento en XAMPP

El archivo de configuración de MySQL en XAMPP for Windows lo podemos encontrar en la ruta "\xampp\mysql\bin\my.ini"

Basandonos en las recomendaciones que podemos encontrar en el blog oficial de Magento unos parámetros adecuados serían los siguientes:

key_buffer = 256M
max_allowed_packet = 32M
table_cache = 256
sort_buffer_size =2M
net_buffer_length = 64K
read_buffer_size = 2M
read_rnd_buffer_size = 1M
myisam_sort_buffer_size = 32M

Cambiar la forma en que Magento guarda la sesión

Para cambiar la forma en que magento guarda la sesión después de haberlo instalado tenemos que editar el archivo "magento\app\local.xml"

Para que se guarde en base de datos deberá tener lo siguiente:
<session_save><![CDATA[db]]></session_save>

Y para que se gurarde en ficheros:
<session_save><![CDATA[files]]></session_save>

Generalmente el mejor rendimiento lo obtendremos si se guarda la sesión en base de datos pero esto puede no ser válido para según que configuraciones de servidor. Lo recomendable es realizar pruebas de performance personalizadas. 

Blogger: Como mostrar fragmentos de código correctamente

El editor WYSYWG de Blogger está muy limitado y no tiene la posibilidad de incluir fragmentos de código de una forma cómoda y que luego estos se vean de forma correcta.

Para esto hay cientos de soluciones, pero las que más me han gustado han sido las siguientes:


  1. Usar una página web para generar el código que luego incluiremos en la edición HTML de nuestra entrada del blog.
    Un par de sitios interesantes para esto son:
    http://quickhighlighter.com/
    http://www.simplebits.com/cgi-bin/simplecode.pl

  2. Usar un script como SyntaxHighlighter

  3. O modificar la plantilla añadiendo un estilo para esto. Como por ejemplo el que se explica en este otro blog (chanflee.com) y que básicamente requiere modificar la plantilla que usamos añadiendo justo antes de:  ]]></b:skin> lo siguiente:
    .code {color: #006AB0; border : 1px solid #DADADA;padding : 5px 5px;font-family : Consolas, "Courier New", Courier, mono, serif;font-size : 12px;background-color : #fAfAfA; width : 90%;overflow : auto;margin : 10px 0 10px 10px; border-left : 20px solid #DADADA;max-height : 500px;min-height : 16px;line-height : 16px;}
    .code:hover {background-color : #f3f3f3;}
    y que luego podremos llamar cada vez que lo requiramos según lo siguiente:
    <div class="code"><br />TEXTO O CODIGO AQUI<br /></div>

miércoles, 25 de mayo de 2011

Magento - Optimizar Apache para aumentar la velocidad

En el archivo de configuración de apache "\apache\conf\httpd.conf" tenemos que asegurarnos de que se carga el módulo mod_expires.so y mod_deflate.so por lo que si lo siguiente aparece comentado lo tenemos que descomentar quitando las almoadillas.



  1. LoadModule expires_module modules/mod_expires.so
  2. LoadModule deflate_module modules/mod_deflate.so


Luego en el servidor virtual "\apache\conf\extra\httpd-vhosts.conf " deberemos aplicar esta configuración: 

  1. # Turn on Expires and set default to 0
  2.                 ExpiresActive On
  3.                 ExpiresDefault A0
  4.                 # Set up caching on media files for 1 year (forever?)
  5.                         ExpiresDefault A29030400
  6.                         Header append Cache-Control "public"
  7.                 # Set up caching on media files for 2 weeks
  8.                         ExpiresDefault A1209600
  9.                         Header append Cache-Control "public"
  10.                 # Set up 1 week caching on commonly updated files
  11.                         ExpiresDefault A604800
  12.                         Header append Cache-Control "proxy-revalidate"
  13.                 # Force no caching for dynamic files
  14.                         ExpiresActive Off
  15.                         Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
  16.                         Header set Pragma "no-cache"


En cuanto reiniciemos el servidor ya tendremos el módulo cargado y funcionando en nuestro servidor virtual de apache.

Luego también es recomendable activar KeepAlive lo cual podemos hacer incluyendo en la sección correspondiente del servidor virtual que encontraremos en el archivo "\apache\conf\extra\httpd-vhosts.conf " las siguientes lineas:

  1. KeepAlive On
  2. KeepAliveTimeout 2

Fuente: http://www.gxjansen.com/101-ways-to-speed-up-your-magento-e-commerce-website/

Magento - Optimizar .htaccess para aumentar la velocidad

La configuración aconsejada  en el archivo .htaccess para maximizar la velocidad de nuestra tienda online es la siguiente:


############################################

## enable resulting html compression


php_flag zlib.output_compression on





############################################

## enable apache served files compression

## http://developer.yahoo.com/performance/rules.html#gzip


# Insert filter on all content

SetOutputFilter DEFLATE

# Insert filter on selected content types only

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript


# Netscape 4.x has some problems...

BrowserMatch ^Mozilla/4 gzip-only-text/html


# Netscape 4.06-4.08 have some more problems

BrowserMatch ^Mozilla/4\.0[678] no-gzip


# MSIE masquerades as Netscape, but it is fine

BrowserMatch \bMSIE !no-gzip !gzip-only-text/html


# Don't compress images

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary


# Make sure proxies don't deliver the wrong content

Header append Vary User-Agent env=!dont-vary






############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

ExpiresActive On
ExpiresDefault "access plus 1 month"





Deberemos de asegurarnos que los parámetros de nuestro archivo .htaccess se corresponden con los anteriores. Estos parámetros son válidos al menos para la versión 1.5.0.1 de Magento

Adios Redcoon bienvenido Media Markt online

Bueno, los tiburones siguen devorándose entre sí. Y la muestra es que Media Markt ha comprado Redcoon


Porque resulta beneficioso que te compre tu negocio la competencia como ha hecho Media Markt con Redcoon. Sencillamente la empresa compradora pretende monopolizar también el mercado online y de esta forma aumentar sus beneficios. No es por la cartera de clientes ni por la infraestructura, eso se consigue con una "pequeña" inversión. Pero si quitan de enmedio a la competencia simplemente pueden hacer lo que les plazca.

Durante la lucha entre las grandes empresas todos nos beneficiamos ya que compiten dando todo lo que pueden y generalmente bajando los precios conseguir la mayor cuota de ventas y con ello que la competencia tenga que cerrar. Pero cuando la pelea se acaba, y podemos estar seguros de que acabará, ya pueden hacer lo que quieran. Los proveedores y los clientes se tienen que rendir a sus pies.

Esto se vió en su momento por ejemplo con Carrefour que compró Pryca, Alcampo, Continente y un largo etc. de empresas, Todas ellas rentables de por si, pero que ahora aún lo son más. Porque al final el que pagará el pato seremos todos.

Podemos ver más información sobre la noticia de la compra de Redcoon en: http://www.alimarket.es/noticia/59580/Media-Markt-Saturn-compra-finalmente-Redcoon


Adios PC-City bienvenido Media Markt online

Rey muerto rey puesto. PC City ya ha cerrado su tienda online. Y acto seguido Media Markt ya anuncia su "Compra Online y recoge en tu tienda favorita" en sus boletines.

Que se puede decir, si los tiburones multinacionales que aniquilaron empresas españolas de éxito como Jump, Ei Systems y otras de las que ya nadie se acuerda ahora se devoran entre ellos. El problema viene porque parece que cada día parecemos más borregos y acabamos todos como idiotas dandoles el control a unos pocos. Esto es pan para hoy y hambre y monopolio para mañana. Pero claro todos buscan su interés en el momento actual sin pensar en el futuro que les vamos a dar a nuestros hijos.

La diversidad es necesaria para que nadie pueda tomar el control. Planteemos una situación hipotetica en la que solo existiese una empresa distribuidora de electrodomesticos, aparatos electrónicos, etc. Llamemosla por ejemplo Monopoly-Markt, por ejemplo. ¿Que supone esto?

Pues para empezar supone que Monopoly-Markt decidirá, que se vende y que no se vende. A que precio, cuando y como. Casi nada, prefiero no pensar en ello.

Esto es lo que queremos para nuestro futuro. Pues ojo que ya está pasando.

Apache Friends olvidaron incluir eAccelerator en su última versión de XAMPP for Windows 1.7.4

Si hemos instalado la última versión de XAMPP para Windows y no conseguimos activar eAcelerator es por la sencilla razón de que por algún error de bulto se les olvidó incluir la dll en XAMPP 1.7.4.

Lo cierto es que todas las versiones de este conjunto de aplicaciones que vengo usando desde hace más de 5 años tienen siempre sus peros...

Podemos descargar el dll necesario pinchando aquí y luego para instalarlo solo lo tenemos que copiar en la carpeta xampp\php\ext\

Y para activar eAccelerator hay más información en otra entrada de este blog.

martes, 24 de mayo de 2011

XAMPP - Activar eaccelerator para mejorar el rendimiento

Un pequeño truco que hará aumentar el rendimiento de nuestro servidor XAMPP de forma importante es activar eaccelerator.



Para ello solo tenemos que quitar el punto y coma inicial (descomentar) del archivo "php.ini" la siguiente linea:

;zend_extension = "\xampp\php\ext\php_eaccelerator.dll"

Después de reiniciar el servidor ya tendremos activada esta cache para scripts PHP que puede mejorar el rendimiento de nuestro sitio web de forma notable.  Para comprobarlo solo tenemos que verificar en la información del servidor que aparece eAccelerator tal y como se muestra en esta captura.



Nota: Para la versión 1.7.4 de XAMMP para Windows tendremos que tener en cuenta que hay un problema ya que los chicos de Apache Friends "olvidaron" poner el archivo php.eacelerator.dll. Puedes encontrar más información en esta otra entrada de este mismo blog.

K-Meleon - Navega más rápido que con Crome, Internet Explorer, Firefox, Opera ...

Este navegador hay que probarlo. Es más rápido que cualquier otro que haya usado en entornos Windows, consume menos recursos que ningún otro, no requiere instalación, es totalmente configurable, compatible con la mayoría de sitios web y perfectamente estable, incluso en sistemas de 64bits.

Con un archivo de 5 megas te lo bajas, lo descomprimes en cualquier carpeta o llave USB y ya tienes un navegador que funciona. En el momento que tienes cualquier problema con el, lo borras, te descargas la siguiente versión y listo.
De esta forma mantienes el sistema limpio y navegas con algo para lo que no están optimizadas la mayoría de páginas maliciosas que tanto abundan hoy en día. Y que se coma otro el malware preparado para Intenernet Explorer y Firefox.

A mí personalmente K-Meleon me ha encantado, en especial por el hecho de que sea portable y por su agilidad para ejecutar las páginas pesadas que a otros se les atragantan. Entre ellos el nuevo Internet Explorer 9 o www.elnavegadorconpimpampum.com que con su nueva campaña de marketing presume de lo que siempre ha carecido... ¡VELOCIDAD! Mucho pimpampum y es más de lo mismo. Sobre todo la sensación de no tener control sobre lo que está pasando cuando se queda atragantado con cualquier cosa... Y es que parece que los chicos de Redmond no tienen ganas de hacer nada mínimamente usable. A ver muchachos, el feeling de una maquina es lo que hay que buscar ofrecer con el software. Si pulsas un botón tiene que hacer algo, aunque sea decirte que no va a hacer nada. Pero bueno... supongo que es lo que pasa cuando quieres que un navegador haga tantas cosas...

jueves, 19 de mayo de 2011

Batch: Cargar en una variable la ruta actual o la ruta de ejecución


Aquí tenenemos dos formas de localizar desde un archivo batch la ruta


%CD% 
Esta variable contiene la ruta actual.

%~dp0
Esta variable contiene la ruta del archivo batch.



Ejemplo 1
En este ejemplo se puede apreciar el funcionamiento de ambas formas de localizar la ruta. La diferencia es que %CD% es la ruta actual, por lo que si cambia dentro del batch esta cambia, mientras que %~dp0 es la ruta del batch y no cambia en ningún momento.


@echo off
echo %CD%
e:
echo %CD%
echo %~dp0
Pause




Ejemplo 2

Este batch de DOS, mediante la variable %CD% localiza la ruta actual y la carga en otra variable que podrá ser utilizada más adelante por el programa.

set MIRUTA=%CD%
echo %MIRUTA% 
pause

Este es un pequeño truco que permite al batch saber desde donde se está ejecutando en cualquier momento y es el primer paso para hacer batch que interactuen adecuadamente con otros archivos, independientemente de su ubicación.

De esta forma podemos, por ejemplo llamarlo simplemente con un doble clic desde cualquier ubicación y que funcione, sin tener que acceder a el mediante linea de comandos. O también nos permitirá cargar en una variable la ruta actual de trabajo del mismo.


Picasa con almacenamiento ilimitado (para imágenes y vídeos pequeños)

Ahora ya podemos subir todas las fotos y vídeos que queramos a nuestra cuenta de Picasa sin limite de cantidad.

Las fotos de tamaño menor a 800x800 píxeles y los vídeos de menos de 15 minutos no son contabilizados por Google como espacio utilizado. Por lo que el límite actual de 1 GB solo se considera para imágenes y vídeos de mayor duración y tamaño.

Más información en la página de ayuda de Picasa

Es una forma de mantener y habituar a los usuarios y hacer que sigan utilizando su plataforma cuando otras empresas como flickr ya les habían superado al ofrecer mejores condiciones en sus cuentas gratuitas.

Navegación por capas en Magento

Si queremos que los productos aparezcan agrupados por precios, fabricantes o cualquier otro atributo que definamos para ello deberemos tener en cuenta lo siguiente:


  1. La categoría en la que queremos que se agrupen los productos debe tener la cualidad: "Is Anchor" en Sí
  2. El atributo que queramos usar como filtro debe ser de tipo "Desplegable" o "Selección múltiple" y tener la propiedad para el frontend de "Filtrable con resultados"
Cumpliendo estos requisitos y si la plantilla que usamos lo permite ya tendremos los productos agrupados en el frontend de Magento.

Access: Cuadro de mensaje para saltarse acciones de una macro

Si tenemos necesidad de que durante la ejecución de una macro se pregunte al usuario si desea continuar o cancelar un grupo de acciones podemos usar esta condición:

CuadroMsj("¿Desea continuar?",1)=1

Si hacemos clic en Aceptar en el cuadro de diálogo la macro continuará. Si hacemos clic en Cancelar, Access omitirá las acciones que aparezcan a continuación y que tengan en la condición tres puntos "..."


En el sitio oficial de Microsoft podemos encontrar más información sobre: CuadroMsj (función) y Crear una macro

PS: Recuerda que si tienes como separador el ; deberás cambiar la coma por punto y coma para que Access no de error de sintaxis.

martes, 17 de mayo de 2011

Porqué las baterías de los móviles duran tan poco

Este domingo durante una tertulia friky con unos amigos estuvimos charlando sobre una teoría que tengo acerca de la poca duración de las baterías de los móviles de altas prestaciones.


Mi opinión es que:

  1. La duración de las baterías viene impuesta por el fabricante del teléfono desde el mismo momento del diseño. 
  2. Generalmente esta duración suele estar muy próxima a "lo mínimo aceptable por el usuario".
  3. En el futuro esto seguirá siendo así por mucho tiempo.


Y es que la duración mínima aceptable por cualquier usuario suele ser una jornada laboral (realizando un uso intensivo del aparato y de todas sus prestaciones). Pues imagínate la situación de que estés trabajando y tengas que parar para recargar el móvil... Este detalle, además del consumo del aparato y una férrea voluntad de maximizar beneficios son los 3 factores que van a definir, a la hora de diseñar el móvil, la capacidad de las baterías que utilizarán.

Generalmente y así a ojo, para un teléfono móvil la batería suele suponer entre un 25 y un 40% del peso y volumen total del aparato y no más del 5% del coste total de este. Teniendo en cuenta esto, hacer que a un dispositivo le dure el doble la batería supone ni más ni menos que esas mismas cantidades de peso y de coste. Por lo que generalmente, fabricar un móvil con el doble de batería no supone un gran sacrificio.
Pero claro, una batería del doble de capacidad no entra dentro de la dinámica capitalista de maximizar los beneficios empresariales ya que además de resultar más cara de fabricar, su vida útil también se alarga notablemente al sufrir menos ciclos de carga/descarga en el mismo periodo de tiempo.


Además también hay que tener en cuenta que actualmente la moda impuesta es aumentar las prestaciones de los móviles y esto tiene prioridad sobre el resto de factores. Al igual que los usuarios más "añosos" recordarán que en su momento la moda fue realizar móviles más y más pequeños hasta que descubrieron que ya no se podían hacer más pequeños porque no se podían apretar bien los botones (eso lo sabrán bien los hayan tenido un Nokia 8210 o un Ericsson T66) y empezaron a meterles cámaras, gps, Internet... Ambas modas han sido contrarias a una larga duración de las baterías. 



Resumiendo un poco este tema voy a exponer las principales ventajas e inconvenientes que se me ocurren para ambas partes.

Las ventajas para el usuario son:

  • Mayor comodidad al tener que recargar el móvil menos veces.
  • Mayor ahorro a largo plazo, al tener la batería una vida útil más prolongada.


Las desventajas para el usuario son:

  • Un aparato más grande
  • Un mayor coste


Las ventajas para el fabricante:

  • El argumento de venta del aparato de una mayor duración de la batería


Las desventajas para el fabricante:

  • Mayor precio de venta
  • Un menos atractivo al usuario ya que tiene un mayor peso y tamaño
  • Menor venta de baterías para repuestos
  • Menor venta de cargadores de coche y otros segundos cargadores.



Viendo la anterior comparación de las ventajas y desventajas resulta evidente el poco interés que tiene para los fabricantes alargar la duración de las baterías de sus móviles. Por lo que en base a esto podemos pensar que muy probablemente, en un futuro no vayan a aumentar las duraciones de las baterías de los móviles de altas prestaciones de forma considerable.



¿Estarías dispuesto a que a tu móvil te durase la batería el doble de tiempo?

PS: Sobre esto estoy hablando en términos generales puesto que siempre habrá fabricantes que quieran incentivar el argumento de venta de la duración de la batería para buscar un determinado nicho de mercado. Esto sucede especialmente en los móviles de gama media y baja. 

lunes, 16 de mayo de 2011

Fuente por defecto del Notepad (Bloc de notas de Windows)

Quien en alguna ocasión haya cambiado la fuente por defecto del bloc de notas de Windows y luego no la recuerda sabe de lo que estoy hablando. Y es que molesta bastante que los textos no aparezcan con la fuente a la que estamos acostumbrados.

Para solucionarlo solo tenemos que pinchar en Formato > Fuente y luego seleccionar Lucida Console a tamaño 10 y todo volverá a ser como antes.

miércoles, 11 de mayo de 2011

Toshiba Folio 100: Restaurar el firmware original

Si deseamos volver a tener el tablet Toshiba Folio 100 con el firmware original solo tendremos que seguir estos pasos.
  1. Descargamos la ROM original desde esta página: http://dext3r.komodin.org/folio100/Foliostock.zip 
  2. Descomprimimos el archivo y copiamos el update.zip al directorio raiz de una tarjeta SD o MMC
  3. Al arrancar el Folio 100 y antes de 3 segundos, Pulsar Power, y VOL+
  4. Luego pulsar VOL+ para entrar en factoryreset/firmware update
  5. A continuación pulsamos VOL- para entrar en firmware update
  6. Después pulsamos el botón VOL+ para confirmar
  7. Más tarde pulsamos el botón tactil HOME, cuando aparezca en pantalla la admiración "!"
  8. Selecciona Factory Reset, y seleciona YES para continuar. (se confirma con el botón power)
  9. Esperar a que finalice el proceso de limpieza.
  10. Insertamos la tarjeta SD o MMC en el tablet.
  11. Ahora seleccionaremos "install SDCARD:update.zip" y confirmaremos con el botón power.
  12. Por último seleccionaremos Factory Reset, y seleciona YES para continuar. tal y como hicimos anteriormente.

Con esto habremos restaurado el firmware original del aparato.


Algunas cosas a tener en cuenta
  • En ocasiones según que tipo de tarjeta de memoria pueden dar problemas, se recomienda que tenga formato FAT y de 1GB.
  • Al reiniciar el aparato después de la actualización tarda un poco más de lo normal.
  • No hay que olvidar que durante este proceso se perderán todos los datos guardados en la memoria del tablet.
  • Tras este proceso en el SAT de toshiba no notarán nada y puede usarse la garantía oficial.
  • Por último es importante tener en cuenta que estamos comprometiendo la seguridad al instalar un firmware de una fuente no oficial y que podría tener algún tipo de troyano, backdoor u otro software malicioso.
  • Más información sobre este asunto en: http://forum.xda-developers.com/showthread.php?t=846199

Toshiba Folio 100: Actualizar el firmware con FolioMod

Realizar la actualización de un tablet Toshiba Folio 100 con el firmware alternativo FolioMod es un proceso verdaderamente sencillo y que a continuación paso a resumir.
  1. Descargamos la última ROM desde la página oficial de creador
  2. Descomprimimos el archivo y copiamos el update.zip al directorio raiz de una tarjeta SD o MMC
  3. Al arrancar el Folio 100 y antes de 3 segundos, Pulsar Power, y VOL+
  4. Luego pulsar VOL+ para entrar en factoryreset/firmware update
  5. A continuación pulsamos VOL- para entrar en firmware update
  6. Después pulsamos el botón VOL+ para confirmar
  7. Más tarde pulsamos el botón tactil HOME, cuando aparezca en pantalla la admiración "!"
  8. Selecciona Factory Reset, y seleciona YES para continuar. (se confirma con el botón power)
  9. Esperar a que finalice el proceso de limpieza.
  10. Insertamos la tarjeta SD o MMC en el tablet.
  11. Ahora seleccionaremos "install SDCARD:update.zip" y confirmaremos con el botón power.
  12. Por último seleccionaremos Factory Reset, y seleciona YES para continuar. tal y como hicimos anteriormente.

Con esto habremos realizado una actualización del firmware del aparato.


Algunas cosas a tener en cuenta

  • En ocasiones según que tipo de tarjeta de memoria pueden dar problemas, se recomienda que tenga formato FAT y de 1GB.
  • Este procedimiento no funcionará si hemos actualizado anteriormente a la versión 2.2.5.0131 o posteriores.
  • Al reiniciar el aparato después de la actualización tarda un poco más de lo normal.
  • No hay que olvidar que durante este proceso se perderán todos los datos guardados en la memoria del tablet.
  • Este procedimiento invalida la garantía, aunque se puede revertir.
  • Por último es importante tener en cuenta que estamos comprometiendo la seguridad al instalar un firmware no oficial y que podría tener algún tipo de troyano, backdoor u otro software malicioso.
  • Más información sobre este asunto en: http://forum.xda-developers.com/showthread.php?t=846199


martes, 10 de mayo de 2011

phplist: Como procesar rebotes

En las siguientes líneas se explica como realizar un procesado de los emails rebotados en phplist

Descargar rebotes
Iremos a la sección "procesar rebotes" y esperaremos a que haya finalizado el proceso de descarga de los rebotes. Con esto tendremos en nuestro sistema todos los emails de los rebotes que se hayan podido producir durante anteriores mailings.

Gestionar rebotes
Iremos a la sección "ver rebotes"
Pincharemos en "mostrar" del primer correo rebotado que aparezca en la lista y a partir de ese momento ya podemos empezar a procesar los rebotes.

En el cuerpo del mensaje aparecerá el motivo del rebote. Generalmente tendremos errores de buzón inexistente, errores temporales y errores de dominio inexistente.

Normalmente en los errores de tipo buzón inexistente pondrá algo como lo siguiente:

  • mailbox unavailable
  • No Such User Here
  • No such user
  • The email account that you tried to reach does not exist
  • This user doesn't have account 
  • does not like recipient
  • invalid mailbox
  • user not found
  • Recipient address rejected
  • User unknown in virtual mailbox table
  • User unknown in virtual alias table
  • This account has been disabled or discontinued 

Para este tipo de error procederemos a eliminar al usuario de phplist y a dar de baja su cuenta de email de todas nuestras bases de datos.


En los errores temporales normalmente pondrá cosas como:

  • Temporary local problem
  • please try later
  • this message has been in the queue too long.
  • Mailbox disk quota exceeded

Estos errores no los tendremos en cuenta a menos que se repitan varias veces seguidas para un mismo usuario.


En los errores de dominio inexistente pondra cosas como:

  • Sorry, I couldn't find any host named 
  • Sorry, I wasn't able to establish an SMTP connection

Para este tipo de error procederemos a eliminar al usuario de phplist y a dar de baja su cuenta de email de nuestra base de datos.

Detalles a considerar
Por otra parte tenemos que tener en cuenta que muchas veces se cometen errores tipográficos al escribir la dirección de email y es frecuente encontrar emails de tipo hotamil.com,  gmial,com, yaho.com y cosas por el estilo y simplemente cambiando unas letras en el email se consigue restaurar la dirección de email. Por lo que es conveniente que prestar atención a este detalle antes de borrar un email por inválido.



Siguiendo estas directrices cualquier persona debería poder realizar un correcto filtrado de las direcciones que han producido los rebotes y de esta forma mantener en buen estado su base de datos de usuarios.

Rom Dump de un dispositivo Android o como hacer una copia de seguridad de la ROM de tu Android

En la siguiente página se explica como hacer una cópia de seguridad de la ROM de un dispositivo Android.

http://android.podtwo.com/romdump/

El método es muy sencillo y es algo recomendable cuando se adquiere un nuevo dispositivo con este sistema operativo de Google, sobre todo si tenemos en mente modificar la misma.

phplist: Añadir de forma manual usuarios a la lista negra o "blacklist"

La aplicación para la gestión de listas de correo phplist tiene en todas sus versiones una carencia importante que es la de poder incluir en su blacklist de forma manual direcciones de email.

Oficialmente eso se puede hacer desde el formulario de des-suscripción del usuario pero el sistema notifica al usuario la baja por email y esto puede no interesar al administrador de la lista para determinados usuarios de tipo competencia, etc.

También hay que tener en cuenta otra carencia importante que es el que no se puedan añadir direcciones en masa a la lista negra, ya que solo hay la posibilidad de hacerlo una a una.

Con esta pequeña modificación del archivo /admin/massunconfirm.php podemos hacer que desde el menú de gestión de usuarios manage users > mass uncorfirm users se pueda además de des-confirmar usuarios incluirlos en la lista negra.

Hay que tener en cuenta que según la configuración del sistema, pueden tardar un tiempo en aparecer en la blacklist los usuarios, por lo que la revisión la deberemos hacer pasados unos minutos.

Esto es lo que tendrá que contener el archivo /admin/massunconfirm.php

<?phprequire_once dirname(__FILE__).'/accesscheck.php';
//userlib for blacklist functioninclude_once dirname(__FILE__).'/commonlib/lib/userlib.php';$massblacklist = $_POST["massblacklist"];
if (!$_SESSION['logindetails']['superuser']) {  print $GLOBALS['I18N']->get('Sorry, this page can only be used by super admins');  return;}
if ($_POST['unsubscribe']) {  $emails = explode("\n",$_POST['unsubscribe']);  $count = 0;  $unsubbed = 0;  $blacklisted = 0;     foreach ($emails as $email) {    $email = trim($email);    $count++;
   if ($massblacklist == true) {       //added user to the blacklist if massblacklist checkbox is true;       addUserToBlackList($email, 'Admin Blacklisted');       $blacklisted++;         }      else {      Sql_Query(sprintf('update %s set confirmed = 0 where email =                  "%s"',$GLOBALS['tables']['user'],$email));    $unsubbed += Sql_Affected_Rows();   }
  }  printf($GLOBALS['I18N']->get('All done, %d emails processed, %d emails marked unconfirmed, %d emails blacklisted<br/>'),$count,$unsubbed,$blacklisted);  return;}?>
<form method=post action=""><h1><?php echo $GLOBALS['I18N']->get('Mass unconfirm email addresses')?></h1><p><?php echo $GLOBALS['I18N']->get('Paste the emails to mark unconfirmed in this box, and click continue')?></p><p><?php echo $GLOBALS['I18N']->get('MassBlacklist:')?><input type="checkbox" value="massblacklist" name="massblacklist[]"></p><input type=submit name="go" value="<?php echo $GLOBALS['I18N']->get('Continue')?>"><br/><textarea name="unsubscribe" rows=30 cols=40></textarea></form>


Esta modificación ha sido probada y funciona correctamente al menos en las siguientes versiones de esta aplicación:

  • phplist 2.10.9 
  • phplist 2.10.10
  • phplist 2.10.11
  • phplist 2.10.12
  • phplist 2.10.13


lunes, 9 de mayo de 2011

Estadísticas con Piwik en Magento Commerce

Desde su panel de control, Magento en todas sus versiones ya viene con la posibilidad de incluir un fragmento de código antes del cierre de la etiqueta </body>. Por lo que el código de Piwik lo incluiremos en este lugar y de esta forma ya quedaría implementado este sistema de estadísticas en nuestra tienda online.

Estadísticas con Piwik en un foro SMF


Para empezar a utilizar en un foro SMF las estadísticas con Piwik solo tendremos que hacer lo siguiente.

Crearemos un archivo en ”/Sources/piwik.html” con por ejemplo el nombre piwik.html.

En ese archivo incuiremos el script de Piwik para el seguimiento de este sitio web que obtendremos desde nuestro panel de control de Piwik.

Ahora en la carpeta de los temas que vayamos a usar abriremos el archivo index.template.php. ”/Themes/Su_tema/index.template.php”

Y justo antes de:

echo '
</body>
</html>';

Añadiremos estas 3 lineas que llamarán al archivo Piwik.html:

// Begin Require Piwik.html
require_once 'piwik.html';
// End Require Piwik.html

Y eso es todo.

Desde ese momento todas las páginas del foro que se muestren con los temas en los que hemos modificado el archivo “index.template.php” aparecerán en nuestras estadisticas de Piwik.

Nota: Esto se puede usar también para otros scripts que queramos incluir en el foro.

Estadísticas con Piwik en Drupal

Hay un módulo de Drupal para que Piwik sea soportado por este CMS.

Por supuesto el código de Piwik se puede incluir de forma manual. Pero existiendo este módulo siempre resultará más sencillo aprovecharlo para una mejor integración con Drupal.

El uso del módulo es tan sencillo que no requiere explicación.

Piwik: La alternativa GPL para Google Analytics

"Piwik es una herramienta de código abierto (licencia GPL)  para análisis web en tiempo real. Proporciona informes detallados sobre los visitantes de su sitio web: los motores de búsqueda y palabras clave que utiliza, la lengua que hablan, sus páginas populares ... y mucho más."

Esta es la introducción que podemos ver en el sitio oficial y poco más hay que decir para definir que es y para que sirve Piwik.

Esta herramienta la he probado durante bastante tiempo y tiene un desempeño correcto de sus funciones, actualizaciones frecuentes de problemas de seguridad y de funcionamiento, está en español, es sencillo de usar, instalar y configurar.

Para ver una demo del programa en la que podremos observar las funcionalidades en un sitio en pleno funcionamiento podemos visitar: http://piwik.org/demo/

Si estás buscando una alternativa gratuita a Google Analytics para gestionar sitios web seguramente esta es una de las mejores opciones.

viernes, 6 de mayo de 2011

Competencia de Dropbox: Fiabee, Wuala, SugarSync...

He preparado la lista de algunos de los servicios online similares a Dropbox que he ido valorando durante estos últimos años, espero que entre ellos encuentren el que les resulte de mayor utilidad.

Dropbox, sincronización de archivos en la nube

Que se puede decir a estas alturas de Dropbox que no se haya dicho ya. Y es que es una aplicación muy popular que posiblemente se haya convertido en la referencia para la sincronización de archivos online.

Es cómodo, multiplataforma, rápido, sencillo y sobre todo va bién. Y otro punto a su favor también es la seguridad, los archivos están cifrados en sus servidores mediante AES-256 y se transportan por internet con canales SSL encriptados, por lo que la información se transporta y almacena de forma muy segura. Si eres un paranoico de la seguridad como yo lo valorarás.

Considero que si estás entre uno de los siguientes grupos debes tener algún sistema de sincronización y Dropbox te interesará.

  • Si trabajas con varios ordenadores
  • Quieres consultar tus archivos a través de Internet desde el móvil
  • Si quieres mantener documentos sincronizados con otra persona
  • Si quieres publicar archivos online de forma rápida y cómoda para todo el mundo
  • Si quieres tener una copia de seguridad de tus archivos online
  • Si quieres tener archivos en la nube para poderlos descargar

Dispone de varios tipos de cuentas, la gratuita tiene 2GB (2,25GB si se va referenciado por otro usuario) y se puede ir aumentando mediante un programa de afiliados hasta 10GB al "presentarles" otros clientes (0,25GB por cada uno).

Por ejemplo esta es mi URL de afiliado con la que puedes solicitar el alta ;D
http://db.tt/TP0VzDi
Aunque son un poco pillos con esto ya que después del alta en la web, cuando instalas el software te invita a hacerte una cuenta nueva. Y si no pones que ya tienes una te dan de alta una nueva cuenta, por lo que algunos referenciados fallan.  

Para mí ya se ha convertido en indispensable. Y es que a pesar de que tiene bastante competencia, incluso GNU, el no tener que configurar nada ni tener que disponer de servidores permanentemente encendidos para cumplir este cometido y su correcto funcionamiento han hecho que lo haya adoptado de forma habitual.

Próximamente, si algún amigo me lo pide y dispongo de tiempo explicaré como hacerse un "Dropbox" casero sin límites, pero ya adelanto que es un poco engorroso.

jueves, 5 de mayo de 2011

¿Cómo hacer un mapa mental?

Lo primero es que veas un mapa mental como el de este ejemplo. Solo con eso cualquiera ya se puede hacer una idea de que es, como se hace y para que sirve.


De cualquier forma el proceso es muy sencillo: Se apunta en el centro de una hoja el concepto principal sobre el que queremos trabajar y luego alrrededor se anotan las palabras vinculadas. Las unimos con flechas según la relación y ¡tachan! ya hemos creado un bonito mapa mental.

Es una forma muy sencilla de aclararse las ideas y si lo realizamos bien tambien para presentar y explicar una idea a otros de forma clara. Aunque la utilidad y necesidad se la tiene que encontrar cada uno.

Personalmente pienso que para hacerlos como el papel y boli no hay nada, pero si el mapa se tiene que presentar ante otros se puede usar una forma más "profesional" con los cientos de herramientas que podemos encontrar online como Mind Meister o incluso Google Docs o Microsoft Word.

Recomiendo antes de empezar hechar un vistazo a algunos ejemplos de mapas mentales en Internet para ir captando mejor la idea.

Triple o cuádruple monitor en un portátil con Matrox Head2Go

Una cosa que debemos tener clara es que para aumentar la productividad no hay nada como un escritorio amplio que nos permita visualizar perfectamente los documentos con los que trabajamos.
A mayor resolución, mayor comodidad de trabajo. A mayor tamaño de pantalla mayor comodidad para la vista. Estas son las máximas que siempre tengo presentes a la hora de comprar un nuevo monitor. Buscar el equilibrio entre ambas ya es una cosa personal de cada uno y por ello se tienen que tener en cuenta muchos detalles como la distancia hasta el monitor, capacidad visual, etc. Más adelante profundizaremos sobre este tema.

Generalmente la mayoría de ordenadores portátiles disponen de un puerto VGA adicional y no permiten más que la conexión de un solo monitor extra. Recientemente también se suele incorporar una salida digital DVI o HDMI pero esta no se puede utilizar simultáneamente con la salida VGA y la pantalla del portátil por lo que seguimos limitados al uso de dos monitores.

Para solucionar esto Matrox tiene unos módulos gráficos de expansión que nos permiten, a partir de una salida de vídeo, conectar dos o tres monitores. Por lo que podemos tener gracias a esto hasta 4 monitores simultaneos en un ordenador portátil.


Matrox TripleHead2Go y Matrox Dual Head2Go son los aparatos en cuestión y como todos los productos de la firma, rebosan calidad. En su página web podemos ver los detalles técnicos como las resoluciones soportadas, etc.

miércoles, 4 de mayo de 2011

Copiar el contenido de una carpeta a otra con Robocopy

Robocopy es un comando para Windows que amplia las posibilidades de xcopy de forma notable y que aparece en todas las versiones de Windows a partir de XP

Si en su sistema operativo no está disponible se puede descargar desde la web de Microsoft con el Resource Kit Tools

Podemos usarlo en scripts .cmd o .bat para crear ejecutables que cumplan una función concreta. Y combinarlo con el programador de tareas de Windows para poder ejecutar las tareas en un momento dado.

Ejemplo de uso

@echo off
REM # Uso:: ROBOCOPY origen destino [archivo [archivo]...] [opciones]
REM #
REM # origen :: Directorio de origen  (unidad:\ruta o \\servidor\recurso_compartido\ruta).
REM # destino :: Directorio de destino (unidad:\ruta o \\servidor\recurso_compartido\ruta).
REM # archivo:: Archivos para copiar  (nombres/comodines: el valor predeterminado es "*.*").
echo on
robocopy "\\nas\" "C:\nas\" /E /R:5 /W:5

El ejemplo anterior copia todo lo que hay en la carpeta de red "\\nas" a la carpeta "C:/nas"


Copiando el anterior código en un bloc de notas y guardándolo con la extensión bat ya lo tendremos listo para su uso.




Desglosar el IVA de una cantidad con Excel y otras hojas de cálculo

A continuación podemos ver lo que deberemos poner en las celdas de una hoja de calculo para desglosar un porcentaje (En este ejemplo el IVA) de una cantidad.

A1 = Importe total con IVA
A2 = IVA en porcentaje (18% o 0,18)
B1 = A1/(1+A2)
Nota: Si en el porcentaje se prefiere poner 16 y no 16%, la fórmula de la celda B1 será esta otra =A1/(1+A2/100)

Esta formula al ser tan básica se puede usar con casi cualquier hoja de cálculo además de con Microsoft Excel, Calc de OpenOffice, Google Docs, etc.

Menús avanzado con el botón derecho del ratón para Windows 7

Si mantenemos pulsada la tecla Shift (mayúsculas) al hacer clic en el botón derecho del ratón se nos abrirá el menú habitual pero con algunas opciones más que nos pueden ser muy útiles.

Lo más interesante es que la opción "Enviar a" veremos que ahora aparecen algunas carpetas de usuario, como puedan ser, contactos, descargas, mi música, mis vídeos etc. Esto nos permitirá archivar de una forma muy eficiente y rápida cualquier documento.

Además según el tipo de archivo o carpeta también nos aparecerán opciones nuevas como "Abrir en un proceso independiente", "Ejecutar como otro usuario", etc.

Es recomendable tener en cuenta esta funcionalidad extendida del menú ya que puede aumentar nuestra productividad en este entorno de forma notable.