miércoles, 8 de enero de 2014

Como crear un punto de acceso desde tu portatil

Encontré esta forma de compartir una red cableada en una wifi para poder navegar desde tu celular.

http://tumutanzi.com/archives/8195

En caso de que no este en linea aquí esta en pdf

domingo, 17 de noviembre de 2013

Symfony doble lista no guarda

Al crear una lista doble en symfony para romper una relación muchos a muchos, estas listas se crean y funciona correctamente el parecer, pero al tratar de guardar, no sale ningún error pero los datos no son almacenados.

Lo primero que hay que tener en cuenta es que ningún dato adicional a las llaves foráneas se guardan por la lista doble. Al parecer no se ejecuta el método save en el archivo tablarelacion.class.php del model.

De todas maneras mi problema era otro, al usar bootstrap se agrega a todos los campos la clase form-control. al revisar el script de la lista doble en la linea 43 se consulta si el nombre de la clase del elemento termina en -selected, al aplicar bootstrap la clase del elemento queda 'miclase-selected form-control' por lo tanto esta condición nunca se cumple y los datos seleccionados no son enviados con el formulario al realizar el submit.

#.../plugins/sfFormExtraPlugin/web/js/double_list.js
.
.
  submit: function(form, className)
  {
    var element;
    for (var i = 0; i < form.elements.length; i++)
    {
      element = form.elements[i];
      if (element.type == 'select-multiple')
      {
        if (element.className == className + '-selected')
        {
          for (var j = 0; j < element.options.length; j++)
          {
            element.options[j].selected = true;
          }
        }
      }
    }
  },
.
.

La solución (temporal) es no agregar una nueva clase al control en el widget así:

        $this->widgetSchema['campo_list']->setOption('renderer_class', 'sfWidgetFormSelectDoubleList');
        $this->widgetSchema['ccampo_list']->setOption('renderer_options', array('label_unassociated' => 'No asignadas:',
            'label_associated' => 'Asignadas:',
            'associated_first' => false,
            'class_select' => 'miclase')); 

En cambio solo se coloca el form-control de bootstrap, obviamente esto solo funciona si en el formulario solo ahí un campo de doble lista, si hay 2 deben tener nombres de clase diferentes.

La segunda opcion es modificar el double_list.js asi:

if (element.className == className + '-selected form-control')

Esto es muy poco flexible, cuando tenga la solución definitiva actualizare esta entrada.

jueves, 14 de noviembre de 2013

Symfony 1.4 Misterioso error Parse error: syntax error, unexpected ''id'' (T_CONSTANT_ENCAPSED_STRING), expecting ')' in ...

Luego de una sincronización un proyecto en symfony 1.4 basado en el admin generator empezó a escribir un caracter extraño en algunos archivos base Base...GeneratorConfiguration.class para mi caso una "y".

Nunca encontré el caracter en ninguna parte del código, ni borrar cache, ni cambiar permisos ayudó. La única solución fue comentar en el archivo Base...calss.php correspondiente el metodo setUp(), ejecutar el módulo y descomentarlo nuevamente, esto repara el archivo de la cache que presenta el error.

Actualización:
Finalmente esta fué una solucion temporal, revisando el proyecto, tenia ese caracter extraño en una de las clases del modelo, no tengo idea de como se propagaba a los otros modulos y no afectaba a ese donde estaba la letra "y".

...class.php
y<?php

lunes, 16 de septiembre de 2013

Renombrando cualquier archivo con su información de modificación

Ya hemos visto el programa pyRenamer que nos ayuda a renombrar archivos, sobre todo imagenes, lamentablemente no nos permite agregar la hora de creación a otro tipo de archivos que no sean imágenes.

Para resolverlo tendremos que usar algo de programación batch y usar este pequeño script:


Leer artículo completo!

lunes, 12 de agosto de 2013

Migrar permisos de mysql

Encontré este script que nos facilita la vida al momento de migrar los permisos de usuarios de mysql de una maquina a otra.

Solo tenemos que crear una pagina php con este código y nos entregara la lista de permisos en sql para ejecutarlos en el servidor destino.

<?php
//connect
mysql_select_db("mysql", mysql_connect("localhost","root",""));

//create grants select statements
$rs = mysql_query("SELECT DISTINCT CONCAT('SHOW GRANTS FOR ''', user, '''@''', host, ''';') AS query FROM user");

//iterate through grants
while ($row=mysql_fetch_array($rs)) {
    //run grant query
    $rs2 = mysql_query($row['query']);
    //iterate through results
    while($row2 = mysql_fetch_array($rs2)){
        //print results
        echo $row2[0] . ";<br>";
    }
}

?>

viernes, 12 de julio de 2013

Rotar imagenes segun infromacion exif

Aunque las nuevas cámaras guardan la informacion de rotación de las fotos, algunos visores o en algunos televisores las imágenes se verán mal rotadas, es aquí donde exiftran nos permite rotar las imágenes correctamente con esta informacion, así aseguraremos que las fotos se verán en la dirección correcta en cualquier dispositivo.

Una vez en el folder donde estan las imagenes que queremos rotar solo es necesario ejecutar el comando:

exiftran * -a -i -p

-a rota automáticamente dependiendo de la informacion exif
-i reemplaza las imágenes por las nuevas
-p mantiene la informacion de fecha del archivo