jueves, 20 de diciembre de 2012

Jailbreak en dispositivos Apple con iOS (iPad, iPhone,iPod)

¿Qué es Jailbreak?


Si tienes un dispositivo móvil de Apple (iPod, iPhone o iPad) y has estado en una isla desierta estos últimos años no habrás oído hablar del Jailbreak. Apple tiene un conjunto de restricciones de licencia de software muy restrictivas para desarrollar para su sistema operativo. Podríamos calificar las condiciones de "draconianas" en muchos aspectos, ya que no se aceptan licencias de software libre y gratuito. Eso provoca que no podamos utilizar programas como el reproductor de vídeo VLC que no exige pago por licencia (y fue retirado de la tienda de Apple en su momento).

Otro problema es el de los desarrolladores de software para iOS. Si quieres desarrollar aplicaciones y publicarlas en el Apple Store debes registrarte en el "Programa de desarrollo del iPhone" y pagar una cantidad a Apple. No es posible probar tus propias aplicaciones de forma gratuita (vaya tela).

Hacer un Jailbreak a un iOS significa modificar el sistema operativo para eliminar esas restricciones sobre la instalación de software, saliendo del ámbito de sobrecontrol de Apple y permitiendo instalar aplicaciones software libre.

No nos referimos a software "pirata" o "crackeado" (que también es posible instalar) sino a utilizar legítimamente software libre en nuestro dispositivo o nuestro propio software.


¿Interesa hacer Jailbreak a mi dispositivo?


Eso dependerá del software que necesites. Si lo tienes disponible en el Apple Store y es gratuito la respuesta es sencilla: no. Si por el contrario no lo tienes disponible (caso de VLC antes mencionado) puede resultar interesante valorarlo. También es interesante para que los desarrolladores de software para iOS puedan ejecutar sus propias aplicaciones sin pasar por caja.


¿Qué supone el Jailbreak?

Jailbreak sustituye tu sistema operativo por otro sin las restricciones de uso e instalación de software de Apple. La cantidad de software disponible para instalar se incrementará de forma espectacular. También podrás instalar tus propias aplicaciones si eres desarrollador.

Uno de los mayores problemas es que no puedes actualizar alegremente la versión de iOS como harías sin Jailbreak, ya que descargarás la actualización del sistema con todas las restricciones y volverás al estado inicial: sólo podrás acceder a las aplicaciones que instalaste desde Apple Store (las que hayas instalado por otras vías aprovechando el Jailbreak desaparecerán). Esto se soluciona con un poco de paciencia, esperando a que aparezca el Jailbreak de la nueva versión de iOS antes de actualizar.


Tethered, Untethered... ¿Qué signigica esto?


Si has leído algo acerca de Jailbreak habrás observado que hay versiónes atadas (tethered) y desatadas (untethered). Esto se refiere a que el dispositivo necesita estar conectado por USB al equipo desde el que hiciste el Jailbreak (PC, MAC, etc...) cada vez que reinicie (tethered) o es capaz de reiniciar por sí solo (untethered).

Por lo tanto te recomendamos que esperes a la versión de Jailbreak Untethered del iOS que necesites.


¿Pierdo la garantía de Apple al cambiar el sistema operativo?

Legalmente no (ya que no afecta al hardware) pero de facto sí (argumentarán que es un "mal uso" del aparato). Te costará mucho que Apple te admita un dispositivo con un sistema con jailbreak. Si el aparato no enciende no tienes que preocuparte. Si puedes acceder la solución es sencilla: antes de llevarlo al servicio técnico instala un sistema oficial de Apple y resetea el aparato.


¿Me recomendáis que haga el Jailbreak?


Esto es muy subjetivo, dependerá principalmente de tus necesidades. Ya comentamos anteriormente que para el caso de desarrolladores de software es casi imprescindible o si deseas utilizar software libre. En cualquier caso no lo hagas para instalar software "pirata", los desarrolladores tienen que comer ;-)

miércoles, 19 de diciembre de 2012

Atajos de teclado en Twitter

ATAJOS DEL TECLADO EN TWITTER

Favorito                                                       F
Responder                                                   R
Retwittear                                                    T
Mensaje Directo                                          M
Nuevo Tweet                                               N
Cambiar el Panel de detalles                         Enter
Muestra las combinaciones de teclas            ?
Siguiente Tweet                                           J
Anterior Tweet                                            K
Mostrar mas                                               Espacio
Buscar                                                        /
Refrescar tus Tweets                                  -
Pagina de Inicio                                         GH
Respuestas/Menciones                              GR
Perfil                                                         GP
Favoritos                                                  GF
Mensajes                                                 GM
Ir a Usuario                                              GU

Eliminar un blog de blogger (post autorreferente)

Bromas aparte, en alguna ocasión hemos tenido un blog obsoleto que hemos decidido eliminar. Normalmente lo dejas estar (por eso de que el saber no ocupa lugar), pero puede darse el caso que prefieras eliminarlo. 

Blogger permite hacerlo en unos cuantos pasos (que no están tan accesibles como se pueda pensar, tal vez para eliminar la tentación de eliminar un blog o para evitar que se haga accidentalmente).

Si tu blog no ha recibido el indulto y va a ser eliminado, puedes hacerlo siguiendo estos pasos:

Desde la ventana de entrada a blogger sitúate en la lista de blogs y pulsa sobre el icono con forma de flecha que señala hacia abajo junto al listado de entradas, selecciona la opción "Configuración":


Luego elige el submenú Otros y pulsa sobre la opción "Suprimir blog"


 Aparece un mensaje avisando de lo que vas a hacer. Blogger mantiene los datos del blog durante 90 días por si te arrepientes (puedes recuperar los datos de tu blog en ese período). También puedes exportar tu blog para conservar una copia. En nuestro caso hemos decidido eliminarlo completamente, pulsamos "Suprimir este blog"


 Y alea jacta est, el blog ha quedado eliminado.

jDownloads: área de descarga gratuita para Joomla

Vamos a presentar un componente de Joomla para crear un área de descargas: jDownloads. Es un componente gratuito con una funcionalidad bastante completa.

Descargamos el componente de la página del desarrollador para nuestra versión de Joomla

http://www.jdownloads.com/index.php?option=com_jdownloads&Itemid=133&view=summary&cid=320&catid=33

Una vez descargado lo instalaremos desde el gestor de extensiones de Joomla:


 Pulsamos sobre "Start jDownloads" para acceder al panel de control (o vamos a Componentes > jDownloads):



CREAR UN APARTADO DE DESCARGAS

El primer paso será crear una categoría (que posteriormente enlazaremos con un elemento de menú). Pulsamos el icono Categories y pulsamos en "Nueva". Rellenamos los datos de la categoría. Nosotros hemos elegido el nombre "Publico" para hacer un apartado de descargas para el público general.


Ahora vamos a crear una descarga. Pulsamos en la pestaña "Downloads" y el botón "Nuevo":


Aparece un formulario con un botón para elegir los ficheros que queremos subir a nuestro servidor. Para que la descarga quede enlazada iremos a la pestaña "Manage files" y elegimos nuestro archivo subido:


Pulsamos sobre "Create Download" y rellenamos el formulario que aparece con la categoría de la descarga (nuestra categoría "Publico", el tipo de archivo, descripción, etc...)


Pulsamos "Guardar" y tendremos la descarga creada y accesible desde el listado:


Ahora tenemos que crear el elemento de menú enlazado con la categoría. Nos vamos al menú concreto donde queramos que aparezca, pulsamos "Nuevo" y seleccionamos el tipo de elemento de menú jdownloads > Category Layout



 Fijamos la categoría "Publico" creada, "descargas" como nombre del elemento de menú y guardamos. En nuestro front-end tendremos disponible el nuevo elemento de menú:



Y al pulsarlo aparecerán las descargas en la categoría "Publico" (de momento sólo la única que hemos creado, pero seguro que pronto añadimos más):



phpMyAdmin: activar el diseñador

Ya comentamos en el post sobre instalación de phpMyAdmin que incorporaba una función para diseñar bases de datos y visualizar el modelo entidad relación. Esta opción no se activa por defecto, debemos hacerlo manualmente. Para ello iremos al archivo de configuración config.inc.php y añadimos las siguientes líneas (no olvidéis hacer una copia del archivo antes de editarlo para poder restaurarlo en caso de que aparezcan errores en el proceso ;-):

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';

 
 
Ahora crearemos una base de datos llamada phpmyadmin



Una vez creada debemos ejecutar el siguiente script (podéis copiarlo en un archivo de texto con extensión .sql e importarlo desde phpMyAdmin o copiarlo directamente en la consulta SQL). Si lo preferís podéis descargarlo desde este enlace: http://www.alcasoft.es/index.php/descargas/summary/3-publico/2-script-para-activr-el-disenador-de-phpmyadmin




DROP DATABASE IF EXISTS `phpmyadmin`;
CREATE DATABASE `phpmyadmin`;
USE phpmyadmin;


GRANT SELECT, INSERT, DELETE, UPDATE ON `phpmyadmin`.* TO
    'pma'@localhost;



CREATE TABLE `pma_bookmark` (
  `id` int(11) NOT NULL auto_increment,
  `dbase` varchar(255) NOT NULL default '',
  `user` varchar(255) NOT NULL default '',
  `label` varchar(255) NOT NULL default '',
  `query` text NOT NULL,
  PRIMARY KEY  (`id`)
);


CREATE TABLE `pma_column_info` (
  `id` int(5) unsigned NOT NULL auto_increment,
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `column_name` varchar(64) NOT NULL default '',
  `comment` varchar(255) NOT NULL default '',
  `mimetype` varchar(255) NOT NULL default '',
  `transformation` varchar(255) NOT NULL default '',
  `transformation_options` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `db_name` (`db_name`,`table_name`,`column_name`)
);

CREATE TABLE `pma_history` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `username` varchar(64) NOT NULL default '',
  `db` varchar(64) NOT NULL default '',
  `table` varchar(64) NOT NULL default '',
  `timevalue` time NOT NULL,
  `sqlquery` text NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `username` (`username`,`db`,`table`,`timevalue`)
);

CREATE TABLE `pma_pdf_pages` (
  `db_name` varchar(64) NOT NULL default '',
  `page_nr` int(10) unsigned NOT NULL auto_increment,
  `page_descr` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`page_nr`),
  KEY `db_name` (`db_name`)
);

CREATE TABLE `pma_relation` (
  `master_db` varchar(64) NOT NULL default '',
  `master_table` varchar(64) NOT NULL default '',
  `master_field` varchar(64) NOT NULL default '',
  `foreign_db` varchar(64) NOT NULL default '',
  `foreign_table` varchar(64) NOT NULL default '',
  `foreign_field` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`master_db`,`master_table`,`master_field`),
  KEY `foreign_field` (`foreign_db`,`foreign_table`)
);

CREATE TABLE `pma_table_coords` (
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `pdf_page_number` int(11) NOT NULL default '0',
  `x` float unsigned NOT NULL default '0',
  `y` float unsigned NOT NULL default '0',
  PRIMARY KEY  (`db_name`,`table_name`,`pdf_page_number`)
);

CREATE TABLE `pma_table_info` (
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `display_field` varchar(64) NOT NULL default '',
  PRIMARY KEY  (`db_name`,`table_name`)
);

CREATE TABLE `pma_designer_coords` (
  `db_name` varchar(64) NOT NULL default '',
  `table_name` varchar(64) NOT NULL default '',
  `x` INT(11) default NULL,
  `y` INT(11) default NULL,
  `v` TINYINT(4) default NULL,
  `h` TINYINT(4) default NULL,
  PRIMARY KEY (`db_name`,`table_name`)
                                                   );
Ahora cerramos sesión en phpMyAdmin, volvermos a entrar y al seleccionar una base de datos tendremos una nueva pestaña con el menú del diseñador:
 
 Es un diseñador muy sencillito pero útil (cuando trabajéis con aplicaciones basadas en bases de datos complejas agradeceréis tener el mapa de la base de datos al lado para diseñar las consultas).


Recomendaciones de Alcasoft