configure: error: APR could not be located. Please use the –with-apr option.

configure: error: APR could not be located. Please use the –with-apr option.

En este caso sólo hay que indicar la ruta donde tenemos instalado apr, si no lo tenemos instalado, primero deberemos instalarlo para poder indicar la ruta donde lo debe encontrar, como por ejemplo, en mi caso sería de la siguiente manera:

javoaxian@debian8:~# ./configure --prefix=/home/javoaxian/Developer/Applications/apr-util --with-apr=/home/javoaxian/Developer/Applications/apr

 

bash: make: no se encontró la orden

Cuando queremos instalar un paquete desde sus fuentes, muchas veces nos encontramos con algunos errores al tratar de compilarlo debido a que no contamos con todos los paquetes y bibliotecas necesarias para que se instale el software que deseamos.

bash: make: no se encontró la orden

En el caso de este error, para corregirlo podemos instalar el siguiente paquete como usuario root o usando el comando sudo:

root@debian8:~# apt-get install make

Se presiona Enter para instalar el paquete y con esto podemos proseguir con la instalación del software que arrojó este error.

configure: error: no acceptable C compiler found in $PATH

Cuando queremos instalar un paquete desde sus fuentes, muchas veces nos encontramos con algunos errores al tratar de compilarlo debido a que no contamos con todos los paquetes y bibliotecas necesarias para que se instale el software que deseamos.

configure: error: no acceptable C compiler found in $PATH

En el caso de este error, para corregirlo podemos instalar el siguiente paquete como usuario root o usando el comando sudo:

root@debian8:~# apt-get install gcc

En mi caso me indicará que se necesitan instalar los siguientes paquetes extra y recomendaciones:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
binutils gcc-4.9 libasan1 libatomic1 libc-dev-bin libc6-dev libcilkrts5
libgcc-4.9-dev libitm1 liblsan0 libtsan0 libubsan0 linux-libc-dev
manpages-dev
Paquetes sugeridos:
binutils-doc gcc-multilib make autoconf automake libtool flex bison gdb
gcc-doc gcc-4.9-multilib gcc-4.9-doc gcc-4.9-locales libgcc1-dbg
libgomp1-dbg libitm1-dbg libatomic1-dbg libasan1-dbg liblsan0-dbg
libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libquadmath0-dbg glibc-doc
Se instalarán los siguientes paquetes NUEVOS:
binutils gcc gcc-4.9 libasan1 libatomic1 libc-dev-bin libc6-dev libcilkrts5
libgcc-4.9-dev libitm1 liblsan0 libtsan0 libubsan0 linux-libc-dev
manpages-dev
0 actualizados, 15 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 16.7 MB de archivos.
Se utilizarán 69.6 MB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n]

Se presiona Enter para instalar el paquete y con esto podemos proseguir con la instalación del software que arrojó este error.

SQLite Manger: Herramienta gráfica para administrar bases de datos SQLite

SQLite Manager es un Addon de Firefox que permite administrar gráficamente bases de datos SQLite.

Con esta herramienta, podemos crear bases de datos, crear tablas, insertar, actualizar y eliminar datos, importar información de archivos, entre otras muchas cosas más.

La verdad es que ya llevo tiempo usando esta herramienta y me ha sido muy práctica para las bases de datos que he usado en el desarrollo algunas apps.

Para instalarlo, deberemos ingresar con Firefox en la siguiente dirección:

https://addons.mozilla.org/es/firefox/addon/sqlite-manager/

Presionar sobre el botón Add to Firefox o Descargar ahora, dependiendo el idioma con que tengan configurado el idioma de su equipo.

 

jx_post_668_01

 

Se deberá seguir los pasos que se van indicando y una vez que quede instalado podrán acceder a este complemento de Firefox, abriendo el propio Firefox e ir a las opciones de su menú:

Herramientas -> SQLite Manager

o

Tools -> SQLite Manager

 

jx_post_668_02

 

Aquí dejo unas capturas de pantalla de la propia página del complemento SQLite Manager.

 

 

 

 

 

Cambiar el tipo de letra por defecto de FreeMind en Mac OS X

Para cambiar la tipografía con que cuenta por defecto FreeMind, lo que podemos realizar es lo siguiente en Mac OS X:

Ir a:

FreeMind -> Preferences…

 

jx_post_658_01

 

Una vez dentro de la opción, iremos a:

Defaults -> Default Fonts -> Default Font

Ahí cambiaremos el nombre por defecto, el cual es:

SansSerif

por el nombre de la tipografía que deseamos usar y que tenemos instalada en nuestro equipo.

 

jx_post_658_02

 

Y presionamos sobre Save para guardar los cambios, se nos notificará que se posiblemente debemos reiniciar FreeMind para que surtan efecto los cambios.

 

jx_post_658_03

 

jx_post_658_04

 

 

Declaración de variables en Swift

Así como mostré la forma de declarar una constante en Swift, ahora le toca a las variables, para ello es muy similar a como se hizo en las constante, la única diferencia es que en lugar de poner la palabra:

let

Se deberá usar la palabra reservada:

var

Se indica la palabra reservada var, posteriormente se especifica el nombre de la variable y se asigna el valor que se le quiere poner, como a continuación se presenta:
var miVariable = "Esta es una variable"
De esta forma queda declarada una constante en Swift.

Declaración de constantes en Swift

Para declarar constantes en Swift se realizan de la siguiente manera.

Se indica la palabra reservada:

let

Posteriormente se especifica el nombre de la constante y se asigna el valor que se le quiere poner, como a continuación se presenta:
let miConstante = "Esta es una constante"
De esta forma queda declarada una constante en Swift.

Mostrar la carpeta Librería (Library) en el Finder de Mac OS X

Aunque suelo trabajar en consola y puedo acceder a la carpeta ~/Library de mi Home, quise explorar la opción de poder ver su contenido de dicha carpeta pero desde el Finder ya que por defecto no puede verse su contenido.

La forma para resolver esto es muy sencilla.

Nos vamos a la siguiente opción del Finder:

Finder -> Ir

Se mostrará una pantalla similar a la siguiente:

jx_post_597_01

Ahora bastará con presionar la tecla:

Alt

y se mostrará la carpeta Libraría (Library).

jx_post_597_02

Presionamos sobre la opción:

Librería

y se mostrará el contenido de ésta:

jx_post_597_03

 

Cómo obtener el ancho y alto (width y height) de una pantalla en iOS con Objective-C

Para obtener el ancho y el alto de una pantalla en iOS con Objective-C es muy sencillo, bastará con ejecutar las siguientes línea según sea el caso:

Ancho (width):

[[UIScreen mainScreen] bounds].size.width;

Alto (height):

[[UIScreen mainScreen] bounds].size.height;

 

Desinstalar Java 8 JDK en Mac OS X

Ya que he estado utilizando algunos programas que requieren versiones anteriores de Java, me vi a la tarea de investigar cómo desinstalarlo en sus versiones 7 y 8, ya que son las que tenía instaladas en algunos equipos y debido a que Java no tiene un desinstalador para hacerlo automáticamente.

La solución fue la siguiente:

Se tendrá que abrir una terminal la cual la pueden encontrar en:

Applications -> Utilities -> Terminal

jx_post_586_01

 

 

 

jx_post_586_02

Abierta la terminal, ejecutamos los siguientes comandos:

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk.jdk
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
sudo rm -rf /Library/Internet Plug-Ins/JavaAppletPlugin.plugin

Recuerden cambiar:

jdk<version>.jdk

por su correspondiente, como por ejemplo en el caso de la versión 8 en su revisión 45:

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk

Y con eso se removerá el JDK de Java.

Cómo instalar addon 1Channel Primewire en Kodi (XBMC) desde SuperRepo

1Channel Primewire es un addon que he utilizado muchas veces el cual nos permite ver muchas de nuestras películas y series preferidas, la calidad del video es buena y para quienes gozamos de ver películas y series, es una muy buena opción para este fin.

Pre requisitos:

Los pasos para instalar este addon en nuestro Kodi ya instalado junto con SuperRepo son los siguientes:

Estando en la pantalla inicial de Kodi, vamos a ir a:

Videos -> Add-ons

jx_post_655_01

Presionamos en:

Get More…

jx_post_655_02

Presionamos sobre:

1Channel

jx_post_655_03

Se presentará la pantalla con la opción para instalar, por lo que presionamos sobre el botón:

Install

jx_post_655_04

Esto iniciará el proceso de instalación de 1Channel Primewire, así como se instalarán y habilitarán varios addons, como el de YouTube y otros más.

jx_post_655_05

jx_post_655_06

jx_post_655_07

jx_post_655_08

jx_post_655_09

Ahora podemos presionar el botón de Atrás o podemos ir al home de Kodi y dirigirnos a:

Video -> Add-ons -> 1Channel

jx_post_655_10

jx_post_655_01

Y presionamos sobre la opción:

1Channel

jx_post_655_13

Se mostrará la siguiente pantalla donde esperaremos los segundos que indican para que se cierre:

jx_post_655_11

y una vez cerrada la pantalla anterior, se presentará la siguiente, donde presionaremos sobre el tache para cerrar.

jx_post_655_12

Y listo, ya se podrán buscar películas y series de tv para poder verlas.

jx_post_655_14

 

 

 

 

Unir varias imágenes en un archivo PDF en Mac OS X

Para aquellos que como yo, les surge la necesidad de unir varios archivos con imágenes jpg, jpeg, png, etc., en un documento pdf en Mac OS X, aquí pongo una solución.

Lo primero es ir a la carpeta donde tenemos la imágenes en el finder.

 

jx_post_553_01

 

 

Seleccionamos todas las imágenes que vamos a agregar al PDF, esto puede ser seleccionar en el menú:

Edit -> Select All

o presionando la combinación de teclas:

Cmd + A

 

jx_post_553_02

 

Esto marcará todas las imágenes.

 

jx_post_553_03

 

 

Ahora con los archivo seleccionados, presionamos en el menú:

File -> Open With -> Preview (default)

 

jx_post_553_04

 

y nos abrirá la aplicación de Preview para visualizar imágenes o PDF’s.

jx_post_553_05

 

Ahora nos vamos al menú y presionamos en:

File -> Print…

 

jx_post_553_06

 

Se abrirá la pantalla para imprimir.

 

jx_post_553_07

 

 

 

Presionamos en la lista donde aparece PDF como opción seleccionada.

 

jx_post_553_08

 

Y se mostrará la siguiente lista en la cual seleccionaremos la opción Save as PDF…:

 

jx_post_553_09

 

Aparecerá otra pantalla para guardar el archivo PDF. En esta pantalla colocamos el nombre del archivo como deseamos que se llame, además de la ubicación del archivo donde lo queremos guardar y será creado el archivo con todas las imágenes agregadas.

 

jx_post_553_10

 

 

 

 

 

 

 

Tomar capturas de pantalla (screenshots) en iOS Simulator

Cuando queremos publicar una app para iOS, el iTunes Connect nos solicita una serie de screenshots para poder publicarla. Yo regularmente tomaba las capturas de pantalla desde los dispositivos, pero conforme fueron apareciendo más de éstos, me fue imposible contar con ellos, por lo que me vi con la necesidad de saber cómo tomar los screenshots de otra forma, a lo cual me llevo a tomarlos desde el iOS Simulator.

Tomar una captura de pantalla desde el simulador es muy sencilla, sólo bastará correr nuestra app en el iOS Simulator, y con éste corriendo bastará con presionar:

Cmd + S

o ir a:

File -> Save Screen Shot

jx_post_509_01

cualquiera de las 2 opciones creará una imagen en el Escritorio (Desktop).

Borrar los proyectos recientemente abiertos en Xcode

Realizando un post que próximamente publicaré, me ví con la necesidad de limpiar la lista de proyectos recientes en Xcode. Por tal motivo, para llevar esto a cabo, realizaremos lo siguiente:

Abriremos Xcode.

jx_post_426_01

Ahora iremos a:

File -> Open Recent -> Clear Menu

Cerramos Xcode y una vez que lo volvamos a abrir, veremos que se ha limpiado la lista de proyectos recientes.

jx_post_426_02

SuperRepo repositorio de addons y plugins para Kodi (XBMC)

SuperRepo es un repositorio, el cual cuenta con más de 2000 addons para poder instalar y configurar en Kodi.

 

Para instalar este repositorio, primero tendremos que agregar la fuente de dicho repositorio de la siguiente manera:

Dentro de Kodi nos vamos a:

System -> File Manager

 

jx_post_606_01

 

Ahora del lado izquierdo de la pantalla presionamos dos veces en la opción:

Add source

 

jx_post_606_02

 

En la siguiente pantalla:

 

jx_post_606_03

 

en la caja de texto donde dice:

Enter the paths or browse for the media locations

se deberá ingresar el siguiente URL y presionamos en Done:

http://srp.nu

 

jx_post_606_04

 

En la caja de texto donde dice:

Enter a name for this media Source

ingresaremos un nombre para el repositorio, en este caso yo le puse SuperRepo y presionamos en Done.

SuperRepo

 

jx_post_606_05

 

Hecho lo anterior, se verá la pantalla de la siguiente manera:

 

jx_post_606_06

 

Presionamos en Done y como podemos observar, del lado derecho se agregó la fuente para poder obtener el repositorio.

 

jx_post_606_07

 

Agregada la fuente del repositorio, vamos a instalar el repositorio, para esto, nos vamos a ir a:

Home -> System -> Add-ons -> Install from zip file

 

jx_post_606_08

 

jx_post_606_09

 

jx_post_606_10

 

Estando aquí, se dividirá la pantalla y del lado derecho nos aparecer la fuente del repositorio que agregamos, el cual se llama, SuperRepo.

 

jx_post_606_11

 

Dentro de esta fuente, encontraremos varias carpetas, en función a la versión de XBMC o Kodi que tengamos, en este caso yo tengo la versión de Helix, por tal motivo ingresaré a esa carpeta.

SuperRepo -> helix -> all

 

jx_post_606_12

 

jx_post_606_13

 

Dentro de este directorio, vamos a encontrar el archivo zip:

superrepo.kodi.helix.all-0.7.03.zip

 

jx_post_606_14

 

Presionamos sobre éste, y se instalará el repo.

 

jx_post_606_15

 

Ahora si nos vamos a:

Get-Add-ons

 

jx_post_606_16

 

Veremos el repositorio de SuperRepo habilitado:

 

jx_post_606_17

 

Si se entra al repositorio recientemente habilitado y no aparece nada, bastará con regresar y sobre el nombre de:

SuperRepo All [Helix]v7

presiona con botón derecho y elegir la opción:

Force refresh

 

jx_post_606_18

 

Con esto ya se cuenta con los addons de SuperRepo para poder ser instalados.

 

En post siguientes mostraré cómo instalar algunos addons como 1Channel, IceFilms y Películas a la Carta para ver series y películas.

 

Crear un UIScrollView con contenido en un UIView usando XIB y Objective-C en iOS

Existen muchas formas de crear un Scroll en iOS, esta es una forma sencilla de hacerlo, sobre todo cuando tenemos un contenido fijo y requerimos que se contenido tenga scroll.

Pre requisitos:

En este ejemplo la pantalla está configurada para un iPhone de 3.5 pulgadas.

jx_post_529_01

Lo que haremos será agregar un UIScrollView dentro del UIView que tenemos.

jx_post_529_02

jx_post_529_03

Ahora se creará un nuevo UIView el cual tendrá el contenido.

jx_post_529_04

Este UIView será de Size Freedom:

jx_post_529_05

y tendrá las medidas de 320 de width y 568 de height.

jx_post_529_06

En el UIView que acabamos de crear, agregaremos algún elemento visual en él en la parte de abajo, en este caso será un UILabel.


jx_post_529_07

jx_post_529_08

Ahora se deberá crear un property del UIScrollView como del UIView y conectarlos para incrustar el UIView dentro del UIScrollView.

Para hacer la conexión puede ser como se mencionó en cualquiera de estos dos post:

Aquí use el del segundo post.

jx_post_529_09

jx_post_529_10

En este ejemplo el UIScrollView se llama scrollViewContenido y el UIView se llama viewContenido.

Abriremos el archivo ViewController.h y en su método:

– (void)viewDidLoad

vamos a agregar el siguiente código para asignar el contenido del UIView dentro del UIScrollView.

[self.scrollViewContenido setContentSize:CGSizeMake(self.viewContenido.frame.size.width, self.viewContenido.frame.size.height)];

[self.scrollViewContenido addSubview:self.viewContenido];

El método quedará de la siguiente manera:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    
    [self.scrollViewContenido setContentSize:CGSizeMake(self.viewContenido.frame.size.width, self.viewContenido.frame.size.height)];
    [self.scrollViewContenido addSubview:self.viewContenido];
}

Si ejecutamos el ejemplo, podemos mover el scroll hacía abajo y veremos el UILabel que habíamos agregado.

jx_post_529_11

Cómo conectar automáticamente una property IBOutlet de un ViewController a un XIB o Storyboard en Objective-C

Un IBOutlet sirve para conectar un elemento visual a un elemento del controlador, en este caso, conectar un elemento de nuestro XIB o Storyboard a nuestro ViewController.

En esta ocasión, se describirá como hacerlo de forma más sencilla y casi automática, en: Cómo conectar manualmente una property IBOutlet de un ViewController a un XIB o Storyboard en Objective-C se indica cómo hacerlo de forma manual.

Pre requisitos:

  • Tener creado un proyecto.
  • Contar con un Storyboard o un archivo XIB con su respectivo ViewController.

Este ejemplo cuenta con un archivo Storyboard llamado Main.storyboard y un controlador llamado ViewController.

Lo primero que haremos es abrir el archivo de la interfaz gráfica Main.storyboard y crear un UILabel.

jx_post_516_01

jx_post_516_02

Lo siguiente será crear una conexión entre el UILabel que creamos y asignarlo a un property dentro del controlador, para esto, separaremos nuestra pantalla en dos. Aseguremonos que el archivo Main.storyboard esté seleccionado.
jx_post_516_03
y ahora selecionaremos la opción:
Show the Assistant editor
jx_post_516_04
la cuál son 2 círculos enlazados de Xcode para separar en dos la pantalla y así nos mostrará de un lado la interfaz gráfica y del otro el código fuente del controller asociado.
jx_post_516_05
Hay que asegurarse que esté seleccionado nuestro archivo .h para generar la conexión, en este caso el archivo es ViewController.h.
jx_post_516_10
Ahora crearemos la conexión y la property en el ViewController asociado, para ello, presionamos sobre el UILabel que creamos junto con la tecla Ctrl, lo cual hará que se muestre una línea azul y la dirigiremos hacia la sección con el código.
jx_post_516_06
soltaremos y nos mostrará una pantalla similar a esta:
jx_post_516_07
Ahora lo que haremos será introducir el nombre de nuestra property en en campo Name y presionaremos en Connect. En este caso se llamará labelNombre.
jx_post_516_08
Se creará una property en el controller y se generará la conexión a este con el elemento de la interfaz gráfica.
jx_post_516_09