Welcome

septiembre 17, 2008 Comentarios desactivados en Welcome

Hola,

Bienvenid@ a este nuevo espacio en el que aún no sé muy bien que tipo de contenido voy a ir añadiendo. Seguramente el tiempo y las necesidades me den una orientación.

Por el momento he creado una página llamada Cajón Desastre en la que voy a ir poniendo diferentes TIPs técnicos, problemas puntuales que me encuentro y que en principio no me pareció trivial la solución. Si veo que va creciendo me plantearé estructurarlo de otra forma, aunque también es verdad que espero que las siguientes entradas tengan un sentido en sí mismas y no tengan por lo tanto cabida en este Cajón Desastre.

NOTAS

junio 21, 2016 § Deja un comentario

Helper Notes to assist the work day

##
# Cache control from Apache: Expires Header + Removal of Etag
#

<FilesMatch «\.(ico|png|gif|js|css|jpg|jpeg|swf|pdf|flv)»>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault «access plus 30 days»
</IfModule>

# ETag
<IfModule mod_headers.c>
FileETag MTime Size
Header unset Last-Modified
Header set Cache-Control: max-age=604800
</IfModule>
</FilesMatch>

##
# Cadena de ejemplo para arracar MySQL Proxy analizando las consultas de una aplicacion
#
«C:\Program Files\MySQL\MySQL Proxy 0.8.5\bin\mysql-proxy» –proxy-lua-script=»C:\Users\jvelasco\Documents\development\CODE\LUA-Scripts\tutorial-basic.lua» –proxy-backend-addresses=127.0.0.1:3306 –proxy-address=mytesting.localhost:4040

##
# Referencia para aceptar conexiones externas en un servidor MySQL
#
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

##
# Referencia para conectar a un Remote Desktop con las credenciales de la maquina local
#
http://superuser.com/questions/584876/how-do-i-use-my-current-credentials-with-remote-desktop

##
# Herramientas diagnostico para dominios
#
http://whatismyipaddress.com/

##
# Añadir binding de un puerto a un dominio existente
#
C:\Windows\System32\inetsrv\appcmd set site /site.name:»autologin-internal» /+bindings.[protocol=’https’,bindingInformation=’*:443:ntlmlogin-internal.obs.tv’]

##
# Deshabilitar Comprobacion de Foreign Keys MYSQL
#
SET foreign_key_checks = 0;
>> sentence we don’t want’t to check constraints
SET foreign_key_checks = 1;

##
# Examine error details related to Foreign Keys
#
SHOW ENGINE INNODB STATUS

##
# Procedure to remove all tables from a given DB
#
DROP PROCEDURE IF EXISTS drop_all_tables_from_specified_database;

DELIMITER $$
CREATE PROCEDURE drop_all_tables_from_specified_database(IN dbname CHAR(50))
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE tblname CHAR(50);
DECLARE cur1 CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = dbname COLLATE utf8_general_ci;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

SET foreign_key_checks = 0;

OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO tblname;
IF done THEN
LEAVE read_loop;
END IF;
SET @database_name = dbname;
SET @table_name = tblname;
SET @sql_text = CONCAT(‘DROP TABLE ‘, @database_name, ‘.’ , @table_name, ‘;’);
PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END LOOP;
CLOSE cur1;

SET foreign_key_checks = 1;

END$$
DELIMITER ;

CALL drop_all_tables_from_specified_database(‘tebascms’);

DROP PROCEDURE drop_all_tables_from_specified_database;

##
# Fix git fast-forward issues with git
#
git pull –rebase origin master
git push origin master

##
# Force Git to overwrite local files on pull
#
git fetch –all
git reset –hard origin/master

##
# To stop tracking a file you need to remove it from the index. This can be achieved with this command.
#
git rm –cached <file>
git reset –hard origin/master

##
# To rollback to a specific commit:
#
git reset –hard <commit_sha>

##
# Checkout a previus commit
#
git checkout [revision] .

##
# Useful options for manage git files
#
git add .                           => Add all (tracked and modified)/new files in the working tree.
git add -u                          => Add all modified/removed files which are tracked.
git add -A                          => Add all (tracked and modified)/(tracked and removed)/new files in the working tree.
git commit -a -m «commit message»   => Add and commit modified/removed files which are tracked.
git ls-files –deleted              => Show all files with the mark delelted

##
# Show results after executing an engine operation
#  – useful to debug FK problems
#
SHOW ENGINE INNODB STATUS

##
# Executes a PHP page asynchronously so the current page does not have to wait for it to finish running.
#
<?php
$params[‘my_param’] = $a_value;
post_async(‘http:://localhost/batch/myjob.php’, $params);
function post_async($url, array $params)
{
foreach ($params as $key => &$val) {
if (is_array($val)) $val = implode(‘,’, $val);
$post_params[] = $key.’=’.urlencode($val);
}
$post_string = implode(‘&’, $post_params);

$parts=parse_url($url);

$fp = fsockopen($parts[‘host’],
isset($parts[‘port’])?$parts[‘port’]:80,
$errno, $errstr, 30);

$out = «POST «.$parts[‘path’].» HTTP/1.1\r\n»;
$out.= «Host: «.$parts[‘host’].»\r\n»;
$out.= «Content-Type: application/x-www-form-urlencoded\r\n»;
$out.= «Content-Length: «.strlen($post_string).»\r\n»;
$out.= «Connection: Close\r\n\r\n»;
if (isset($post_string)) $out.= $post_string;

fwrite($fp, $out);
fclose($fp);
}

##
# Sublime Shortcuts to symbol inspection
#
Jump to definition = Alt+Click
Jump to definition = Control+Windows+Alt+Up
Go back = Control+Windows+Alt+Left
Manual Code Intelligence = Control+Shift+space

##
# Get the hostname from an IP inside a network
#
NBTSTAT -A 10.10.10.10

##
# Increase limits to FIX MySQL Server has gone away (my.ini)
#
wait_timeout        large enough.
max_allowed_packet  set max_allowed_packet = 128M.

How do I browse an old revision of a subversion repository through the web view?

abril 7, 2014 § Deja un comentario

 

From: http://stackoverflow.com/questions/651305/how-do-i-browse-an-old-revision-of-a-subversion-repository-through-the-web-view

Append something like this to your repository URL:

!svn/bc/<revision_number>/

E.g.

http://www.example.com/svnrepository/!svn/bc/3/

Note:

If your repository is hosted using Subversion 1.6.0 or lateryou can use example.com/svnrepository/?p=3 for the same result… This method /is/ documented. (?r= revision of the file, ?p= operational revision of the url). See the subversion 1.6 release notes

 

 

MySQL: Permitir conexiones externas y averiguar qué archivos de configuracion se están usando

enero 22, 2014 § Deja un comentario

Si necesita acceder desde cualquier parte de Internet a un servidor MySQL, es necesario que primero le digamos a al servidor que escuche todas las solicitudes que provengan de Internet. Entramos en el fichero de configuración /etc/mysql/my.ini

sudo nano /etc/mysql/my.cnf

Modificamos la linea…

bind-address          = 127.0.0.1

Por…

bind-address          = 0.0.0.0

Reiniciamos el servidor

sudo /etc/init.d/mysql restart

Ahora nuestro servidor estará a la escucha de cualquier solicitud de conexión, pero calma, si intentamos conectarnos obtendremos un error parecido a este…

ERROR 1130: Host ‘X.X.X.X’ is not allowed to connect to this MySQL
server

Esto ocurre por que aún falta decirle a MySQL que permita la conexión de nuestro usuario desde la IP X.X.X.X , para ello entramos en nuestro servidor (desde la consola) como root:

mysql -u root -p

Introducimos nuestra contraseña y ejecutamos la siguiente instrucción SQL

grant all on *.* to USUARIO@'IP' identified by 'CONTRASEÑA';

Si desea que su usuario acceda desde cualquier sitio de internet, esto es, desde cualquier IP, necesita cambiar en la anterior consulta SQL la IP por el caracter %

Fuente: Trey

Si fuera necesario, en el enlace siguiente se puede ver una explicación detallada de como encontrar los ficheros de configuración que está usando la instancia actual de mysql:

http://www.dbasquare.com/2012/04/01/how-to-find-mysql-configuration-file/

El sustituto del ‘iframe’ en HTML5

noviembre 6, 2013 § Deja un comentario

Uno de los principales problemas es que los marcos o iframes no podían visualizarse correctamente en los sistemas de visualización de páginas de los buscadores, tales como Google, Yahoo… Parece ser que con la utilización de la etiqueta < object type=«text/html»> < /object> de la especificación HTML5, esto va a pasar a la historia.

– HTML4:

< iframe width=»400″ height=»400″ scrolling=»no» frameborder=»0″ src=»http://www.lapaginaweb.loquesea» target=»_top»> < /iframe>

– HTML5:

< object type=»text/html» data=»http://www.lapaginaweb.loquesea» width=»400″ height=»400″> < /object>

Fuente: Gepetto @ Globedia

Responsive Design o Diseño Responsivo – Qué y Porqué?

agosto 22, 2013 § Deja un comentario

http://www.psdahtmlpasoapaso.com/blog/responsive-design-o-diseno-responsivo-que-y-porque#!

Referencia MySQL

agosto 22, 2013 § Deja un comentario

Este curso será la base para otros que nos permitirán usar bases de datos desde aplicaciones C/C++, PHP, etc.

Todo lo relacionado con MySQL está en mysql.conclase.net, incluidos los enlaces a otras secciones de «Con Clase» relacionadas con MySQL.

Para aprender más sobre MySQL, entra en el curso, encontrarás un manual que avanza progresivamente y una referencia completa de sentencias y funciones de MySQL.

http://mysql.conclase.net/curso/?sqlsen=lista#inicio

Recursos para aprender ZF2

junio 27, 2013 § Deja un comentario

Video Totoriales para aprender los conocimientos básicos sobre el desarrollo con Zend Framework2. No se aconseja a los impacientes, siendo ideal para quien les gusta ir viendo las cosas poco a poco y en detalle.

http://www.cesarcancino.com/?cat=58

Tutorial Online: Debo suponer que se trata de un resumen de la documentación oficial.

http://alemohamad.com/tutorial-zend-framework-2-beta/

Si tienes la suerte de saber francés o te atreves a tratar de descifrarlo, es curiosa esta adaptación del tutorial de Synfony jobeet:

http://php-underground.blogspot.com/2012/10/tutoriel-jobeet-pour-zend-framework-2.html

que a nivel de funcionalidades es más completo que el ejemplo de Album en el sitio oficial de Zend Framework 2.

Referencia Oficial: http://framework.zend.com/manual/2.2/en/index.html

Libreria para autenticación y roles en CodeIgniter

marzo 4, 2013 § Deja un comentario

What is flexi auth?

flexi auth is a free open source user authentication/login library for use with the CodeIgniter 2.0+ framework.

http://haseydesign.com/flexi-auth/

Configuración Dual de Monitor en XFCE4+Debian Squeeze

abril 22, 2012 § Deja un comentario

Abre la consola

Ejecuta

xrandr

para ver las resoluciones que aceptan tus monitores, así como confirmar que ambos son detectados por el sistema.

man xrandr

te permitirá examinar todas las diferente opciones y posibilidades de este comando. Por ejemplo, el siguiente comando sitúa un monitor debajo del otro y fija las resoluciones que se indican para cada identificador de la pantalla (en mayúsculas).

xrandr --output LVDS1 --mode 1280x800 --output VGA1 --mode 1680x1050 --above LVDS1

Fuente: linuxquestions.org

Internacionalización con PHP/Smarty

septiembre 17, 2008 § Deja un comentario

Visión General

Este documento describe una solución para permitir desarrollar aplicaciones multilenguaje con soporte para Smarty.

Dicha solución se basa en la clase IntSmarty, que se trata de una extensión del motor de plantillas Smarty. Toda la información que aquí se comenta ha sido extraída del artículo Internalize your website with IntSmarty and Smarty.

Se supone conocimientos previos de Smarty, HTML y PHP, así como que se dispone de una configuración de Smarty que funciona correctamente de modo que la clase IntSmarty pueda incluirse sin problemas en la aplicación.

Paquete con el ejemplo en funcionamiento:

Funcionamiento

Preparación de los archivos de traducción

La idea es identificar en la plantilla entre las marcas {l} {/l} las cadenas que se desean traducir. Ayudándonos del script grep_lang.php,

<?php
/* grep_lang.php
Generate localization for IntSmarty
*/
$file = 'templates/' . $_GET['file']; // Modificar la ruta donde se encuentra la plantilla si es necesario
$fp = fopen($file, 'r');
$content = fread($fp, filesize($file));
$regex = '!{l}(.*?){/l}!s';
preg_match_all($regex, $content, $matches);
foreach($matches[1] as $m) {
echo '$__LANG[\'' . md5($m) . '\'] = \'' . $m . '\';<br>';
}
?>

se parsea este documento cuyo resultado servirá de base para la creación de los respectivos archivos de idioma. La plantilla se debe pasar al script grep_lang.php con el parametro file=. Como resultado se muestra en pantalla lista de todas las cadenas de la plantilla entre las marcas {l} y {/l} en el idioma que esté la plantilla, pudiendose editar posteriormente para crear el fichero de traducción correspondiente.

Un ejemplo de un archivo de idioma generado mediante la ayuda de este script podría ser el siguiente, que debe ser guardado en el PATH correspondiente al directorio donde se almacenaran los diferentes archivos de traducciones. Este PATH puede ser definido por el usuario, como veremos a continuación.

Uso de IntSmarty

El archivo base PHP deberá incluir la clase IntSmarty y especificar el PATH donde se guardaran los archivos de traducción.

Para especificar el PATH donde se guardaran los archivos de idioma, extendemos la clase IntSmarty donde se indicará el PATH de los archivos de idiomas así como la estructura de archivos necesaria para el sistema de plantillas Smarty.


Class Translate extends IntSmarty {
var $lang_path = 'lang/'; //include trailing slash
function Translate($lang = null) {
$this->Smarty();
$this->template_dir = 'templates/';
$this->compile_dir = 'templates_c/';
$this->config_dir = 'configs/';
$this->cache_dir = 'cache/';
parent::IntSmarty($lang);
}
}

Una vez hecho ésto sólo hay que instanciar la clase Translate, que como puede verse en el código no es más que una extensión de su clase base IntSmarty, pasando como argumento el idioma en el que se desea mostrar la página y llamar a la función display de Smarty con su correspondiente plantilla como argumento.

$IntSmarty = new Translate($lang);
$IntSmarty->display(‘int_smarty.html’);

Hay que considerar que los ficheros PHP de idioma deberán llamarse {$lang}.php. Así, por ejemplo si para identificar el idioma Catalán utilizamos el valor ‘cat’, el fichero de idioma correspondiente deberá llamarse cat.php y encontrarse en el PATH de idiomas que se definido.

int_smarty.html es el nombre de la plantilla que se encuentra bajo el directorio templates/ y que contiene las marcas de traducción {l} {/l} que se ha comentado al principio del documento.

Internationalization Smarty

{l}Choose your language{/l}: ES ||EN || CAT


{l}Hello{/l} {$name}

{l}Welcome to my tutorial{/l}

{l}Tutorial for Internationalization your PHP with IntSmarty{/l}

Por hacer (TO-DO)

Para montar un sistema multilenguaje fácil de mantener, sería conveniente desarrollar una pequeña aplicación que con la ayuda del script grep_lang.php muestre todas las frases a traducir y permita especificar el idioma que se desea crear y lo guarde con el nombre correspondiente en el directorio de idiomas especificado.