P2017-2: Empezar a aprender a programar

En esta serie de P2017 (Propósitos para 2017) vamos a tratar otro de los propósitos que mas os van a facilitar la vida en el futuro si os lo montáis bien: PROGRAMAR.

A menudo tienes el gusanillo por ahí pero como no sabes como empezar te echas atrás. Incluso crees que para saber programar debes demostrarlo haciendo tu solo un Photoshop o un Microsoft Office, pero nada más lejos de la realidad, programas como esos requieren cientos de programadores y muchos meses de desarrollo.

Yo te animo a que aprendas un lenguaje sencillo que te ayude a resolverte cosas del día a día, porque te preguntarás ¿Para qué me puede servir saber de programación si no voy a ser programador? ¡Ja! ¡Eso es lo bueno! ¡Para mucho! Y la respuesta es: para no hacer tareas repetitivas una y otra vez.

Piensa en aquellas cosas que haces con tu ordenador y siempre es igual: vaciar la papelera de reciclaje todos los dias, hacer una copia de seguridad de una carpeta importante en Dropbox para no perderla nunca, mandar todos los archivos de la carpeta de descargas del ordenador a la papelera cada cierto tiempo para que no se convierta en un basurero digital,…

Estas son cosas que se me ocurren así rápidamente para engancharos pero yo tengo muchas más, como: al escanear una factura detecta dentro del texto la fecha de la factura y la mueve a la carpeta de facturas pagadas del trimestre y año correspondiente para la declaración de IVA que hacemos los autónomos. Pensaréis que esto es nivel pro pero nada más lejos de la realidad, es super sencillo cuando tienes una pequeña base.

Yo os recomiendo que aprendáis tres lenguajes:

  • Shell scripting: Que es el lenguaje que usan las terminales de Linux y Mac y ahora también de windows 10, así podréis programar tareas sencillas en vuestros ordenadores. Si solo tienes tiempo de aprender un lenguaje, aprende este.
  • Python: porque es un lenguaje diseñado para aprender, sencillo y potente. Te sorprendería saber cuantas aplicaciones están hechas con Python, también te permitirá automatizar tareas de tu ordenador sin importar el sistema operativo que uses. Y si, el nombre viene de los Monty Python.
  • Html: porque te verás a ti mismo haciendo webs sencillas y vistosas muy rápido y eso siempre gusta. Por aquí hemos empezado la mayoría a matar el gusanillo.

Pero, ¿Como empiezo? pues hay muchas maneras, pero de mi experiencia os voy a recomendar unas cuantas que a mi me han servido.

  1. Inglés: Vamos a suponer que sabes inglés, porque es más fácil encontrar recursos para aprender, si no, pasa al punto 2.
    • Gratis
    • Codecademy: la mayoría de los cursos son en inglés pero hay en español. Merece mucho la pena. Se aprende mediante una interfaz web guiada que facilita no perderse nada. Este es el mejor para aprender Python de forma guiada.
    • Learn Swift
    • Learn Shell
    • Learn Python
    • Learn Html
    • De pago:
    • La app Mimo: Desargar en iTunes Es una aplicación genial que no solo te enseñará a programar, si no que te introducirá en los conceptos de temas tan interesantes como la propia programación, el mundo de la cyberseguridad, y lenguajes tan útiles como Swift, Python, html, css, javascript. Es de las más sencillas de seguir y al ser mediante una app en el móvil te permite ponerte en cualquier rato muerto.
  2. Español:
    • Gratis:
    • Codecademy: la mayoría de los cursos son en inglés pero hay en español. Merece mucho la pena. Se aprende mediante una interfaz web guiada que facilita no perderse nada. Este es el mejor para aprender Python de forma guiada.
    • CODE Es una web donde podréis encontrar muchos cursos sencillos para aprender a programar.
    • El blog AprendeSwift es otro buen recurso, pero al no ser una app guiada requerirá mas esfuerzo por vuestra parte.
    • WikiBooks

En fin, espero haberos dado una introducción y haber hecho que os pique el gusanillo. Yo os recomiendo codecademy porque tiene cursos en inglés y español y Mimo app porque al ser de pago se le ha dedicado más tiempo a preparar los cursos para que sean fáciles de seguir y tienen cursos de los lenguajes que os recomiendo y más que pueden ser de vuestro interés.

Si tenéis alguna duda o pregunta, en los comentarios podréis hacerla y os ayudaré si puedo 😀

Felices propósitos de año nuevo.

P2017-1: Un segundo al día

Fíjate que cosas, 1 segundo al día, la mecánica es sencilla. Tu grabas un segundo de video cada día del año, en mi caso, El segundo que creo que es más representativo. El que marque la diferencia. Y el resto de días uso el segundo que cuenta como es mi día a día.

Al final del año tienes un resumen de 365 segundos, o lo que es lo mismo, algo más de 6 minutos en el que le das un repaso a todo el año. ¿Y cual es la magia? recuerdas cosas pequeñas que habías olvidado. Momentos importantes que se borraron de tu mente. Segundos sin importancia que pasados un año de pronto si la tienen.

Pasados unos años tienes un documento que te recuerda como era tu vida. Porque la vida va cambiando tan lentamente como nos hacemos viejos y nos salen arrugas, y por eso no notamos los cambios, pero al volver a ver tus años pasados tienes la oportunidad de recuperar hábitos que perdiste o recordar personas o momentos que se fueron de tu cabeza.

¿Y te estarás preguntando que cómo hago todo esto? Pues con una app muy sencilla de la que os dejo el enlace. Es verdad que grabar un segundo cada día requiere constancia, pero yo llevo dos años haciéndolo y merece la pena, os lo aseguro.


Disponible en Google Play

Instalar windows en un disco externo para usarlo en un Mac con UEFI

Os dejo tres buenas ofertas de discos USB externos para instalar windows, dos SSD que es la mejor opción si tenéis USB 3 o superior y uno con disco normal para los que queráis ahorrar o no tengáis USB 3.

Ayer se me presentó la necesidad de instalar Windows en un disco externo SSD para usarlo con Bootcamp y así no perder ni un mega de los preciados 512 que tiene el nuevo MacBook Pro 2016.

Probé muchas soluciones que hay por ahí, pero ninguna llegó a solucionarme el problema por si solo. Tras 4 horas de intentos la suma de pasos de varios sitios me solucionó el problema y por eso os los pongo aquí, para que os solucione el problema y para que no se me olvide a mi mismo.

En mi caso parto con un macbook que tiene vmware instalado con Windows 10 virtualizado para hacer la parte de windows. Necesitaras un ratón y teclado externo porque el trackpad y el teclado del nuevo MacBook Pro 2016 no funcionan hasta que no se instalan los drivers.

  • En el Mac
    1- Formatea el disco donde vas a instalar windows como Fat32 con la tabla de particiones GUID.
    2- Abre Boot Camp y en el menu superior, en acciones descarga los archivos de drivers para windows, los necesitarás una vez se haya instalado windows para que todo funcione correctamente.

  • En windows:
    1- Instalar en windows el paquete de instalación automático de windows 7 (no pasa nada que vayas a instalar un windows posterior) que puedes descargar desde aquí: https://www.microsoft.com/en-us/download/details.aspx?id=5753
    2- Abre la consola de windows pulsando el botón de inicio y escribiendo CMD, pero en lugar de hacerle clic con el botón izquierdo, hazlo con el derecho para poder seleccionar ejecutar como administrador.
    3- ejecuta ‘diskpart’ para entrar en este programa tipo MS-DOS y preparar el disco. Luego escribe ‘list disk’ para ver todos los discos que hay conectados. Verás que aparece uno o ninguno.
    4- Ahora es el momento de conectar el disco donde vamos a instalar windows a la máquina virtual. Una vez hecho esto vuelve a ejecutar ‘list disk’ y verás que aparece uno nuevo. En mi caso era ‘disco 1’
    5- Escribe ‘select disk 1’ (si tu disco es el disco 1),luego escribe ‘clean’ para limpiar el disco y dejarlo listo.
    6- Con la orden ‘convert gpt’ haremos que el disco tenga la tabla de particiones adecuada.
    7- Creamos la partición de arranque con ‘create partition EFI size=100’ (tendrá 100mb) y la formaremos en fat32 con ‘format quick fs=fat32 label=EFI’ y una vez haya terminado le asignamos la letra S con el comando ‘assign letter=S’
    8- Escribe ‘create partition primary’ para crear la partición de windows y la formatearemos en ntfs ‘format fs=ntfs quick label=W2G’ escribiendo ‘assign letter=E’
    9- Una vez hayamos terminado escribiremos ‘exit’ y ya tendremos el disco y sus particiones preparadas.

  • Preparamos los archivos de la instalación
    1- Ve a la carpeta ‘C:\program files\Windows AIK\Tools\Amd64\’ con el explorador de windows y copia el archivo imagex.exe a ‘C:’
    2- Carga la imagen de disco de windows 10 en la máquina virtual desde el menú Maquina Virtual – CD/DVD
    3- En la ventana de comandos escribe: ‘C:\IMAGEX.EXE /APPLY D:\sources\install.wim 1 E:\’ Este proceso tardó en mi caso 20 minutos. Lo que hace es copiar los archivos de la instalación al disco que hemos creado. Cuando acabe vamos al paso 4.
    4- Ejecuta ‘E:\Windows\System32\bcdboot E:\Windows /s S: /f UEFI’ con esto copiaras los archivos necesarios para que el disco sea capaz de arrancar.
    5- Ahora cerramos todo, reinciamos el Mac con la tecla OPCIÓN (Alt) pulsada y si todo ha ido bien podrás seleccionar el disco amarillo titulado EFI para que acabe la instalación de windows.

Espero que te haya servido. Cualquier cosa, a los comentarios y si puedo contestarla lo haré.

Testimonio de anulación

Hoy he asistido a un testimonio no buscado de muchas mujeres, en tantos pueblos perdidos. A través de sus palabras exentas de rencor o de odio describía su día a día con su marido. Ella lo contaba con la naturalidad de una vida marcada por muchos surcos que ahora forman pliegues en su cara.

Cosas que ocurren de puertas adentro, donde no hay nadie más que ella, su marido y la sombra de una dignidad que se esconde cuando aparece él. Falsa hombría desgraciada que lo arruina a él y a ella, quienes un día se dieron un sí con la ilusión de una juventud ingenua.

¿Dónde ha quedado aquella ilusión? Se ha transformado en entrega de vida abnegada que por fuerza del espíritu no pierde la alegría ni la ilusión por un nuevo día.

Duchas con ropa para no gastar en lavadora. Ropa vieja para ahorrar. Cabezonería inútil de hombre sin hombría. Reproches de “no tienes nada si no es lo mío” que no hacen más que poner de manifiesto la pobreza de espíritu de ese ser que, a base de sus carencias, ha forjado una mujer de hierro. Buscando sólo el bien de su marido lo engaña en cosas pequeñas para que vaya bien vestido y aseado, para que lleve una digna y apropiada que ella no se merece. Que guarda en sus ojos cansados la mugre de su casa para que nadie pueda decir jamás, “mira, ese hombre, un bandido”.

Lección de vida que marca la mía, y que sin conocerla, solo por sus palabras, que contaban con cariño escenas de sufrimiento, despiertan en mi nada más que admiración e incluso amor.

Empezar con la Domótica II

Definición

La primera pregunta que debemos respondernos es ¿Qué es la Domótica?

Segun la escueta definición de la RAE:

Conjunto de sistemas que automatizan las diferentes instalaciones de una vivienda.

A esta definición que es correcta en parte le falta una puntualización muy importante: la información y la monitorización, por lo que yo la definiría así:

Conjunto de sistemas que informan, monitorizan y automatizan las diferentes instalaciones de una vivienda.

Desgranando la definición

Informan

Diferentes tipos de sensores se encargan de recoger toda la información que nos es de interés sobre nuestra vivienda para almacenarla para su posterior uso.

Los sensores más habituales son: luminosidad, presencia, inundación, temperatura, gas, humo,…

Al al mismo tiempo, la información instantánea de estos sensores pueden lanzar determinadas acciones sobre la instalación. Por ejemplo: si el detector de humo alcanza un valor determinado de presencia de humo en una instancia puede iniciar el sonido de una alarma y el envío de un mensaje al cliente.

Monitorizan

La información procedente de estos sensores que es almacenada constantemente puede analizarse de manera que nos ayude a entender cómo funciona nuestra vivienda y como un cambio en un sistema provoca una reacción en otra.

Por ejemplo, abrir una ventana porque es necesario ventilar según nuestro sensor de contaminación provoca un cambio de temperatura que activará ciertos sistemas de climatización que tienen una repercusión directa en el consumo de electricidad.

Esta es una de las partes de la Domótica menos explotada y que sin embargo es la más importante porque si se presentan los datos de la forma adecuada los usuarios podemos entender mejor cómo funcionan nuestras casas y actuar de manera más eficiente dejando de lado falsas creencias.

Automatizan

Es la parte más evidente, la Domótica nos permite automatizar cosas, pero esto no tiene nada que ver con encender luces con el móvil. Tiene que ver con que se enciendan ellas solas cuando tú las encenderías para que no tengas que hacerlo, suena a ciencia ficción, lo sé. Pero si no conseguimos esto no estamos haciendo nada.

Repercusiones

Al invertir en una instalación Domótica ya sea completa o parcial se inicia un proceso que acabara provocando varias cosas: conocerás mejor el funcionamiento de tu casa, mejoraras la seguridad de la misma, optimizaras el uso de la energía y ahorrarás esfuerzo dejando que determinadas cosas ocurran por sí solas.

¿Qué es HomeKit?

Desde hace un par de años varias marcas estaban preparando sus propios sistemas domóticos, cada uno de ellos con su propio protocolo y su propia App. Si tenias dos enchufes de distintas marcas tenias que manejarlos con apps distintas.

Ante este panorama Apple desarrollo HomeKit, un sistema de unificación que permite que todos los dispositivos sean usados con cualquier App que use HomeKit independientemente del fabricante y además que Siri pueda interactuar con todos los dispositivos.

Dispositivos que son compatibles y que pueden adquirirse en España a día de hoy: Philips Hue, Elgato Eve, Netatmo,…

Alternativas

Hay otras iniciativas para conseguir esta integración: Samsung Smarthing y Amazon Echo son los más importantes. Aunque poco os puedo contar de estos porque uso iPhone y mi plataforma es HomeKit.

Ademas, Amazon es muy dura cuando apuesta por algo y lo mantiene mucho tiempo, pero Samsung es muy dada a no poner toda la carne en el asador y dejar tirado al personal si no es rentable para ellos. Así que, si no cambia nada, HomeKit tiene muchas papeletas para ser apuesta ganadora.

Por otro gro lado los dispositivos compatibles con HomeKit suelen ser compatibles con otros sistemas android así que no hay mucho problema si cambiáis de plataforma en el futuro.

Empezar con la Domótica

¿Quién no ha oído hablar de Domótica a día de hoy? Lo normal es pensar que es algo que tiene buena pinta porque puedes automatizar luces, enchufes, … Pero que es algo de casas nuevas o de gente con mucho dinero.

Os voy a ir contando como lo he ido haciendo yo para ir introduciéndome en el mundo de la Domótica a bajo costo pero con un funcionamiento impecable.

Para seguir mi guía necesitarás lo siguiente:
– Un iPhone, porque todo está basado en la plataforma HomeKit de Apple.
– (opcional) Un AppleTV, que hará de enlace entre la casa e Internet. Es necesario si queremos poder controlar el sistema desde el exterior: comprobar si nos hemos dejado algo encendido, encender algo antes de llegar o apagar todo si nos vamos de casa. Por supuesto el nuevo Apple TV es genial para muchas cosas más: ver pelis, series, vídeo consola…
– Nuestro primer accesorio domótico: un enchufe que podemos programar, encender/apagar a distancia y que además nos permite conocer el consumo instantáneo e histórico de lo que haya enchufado, muy útil para estufas y otros aparatos que pueden hacer que se nos vaya de las manos la factura de la luz.

Yo lo tengo desde octubre de 2015 y no tengo ninguna queja. Podéis comprarlo haciendo clic en el siguiente enlace:

http://www.amazon.es/dp/B016IOFQPA/?tag=rafarq-21

En el próximo artículo os explico cómo configurar la casa, así os doy tiempo para ir comprando el enchufe como mínimo.

Mis mejores compras

De vez en cuando os pondré unos cuantos enlaces con lo que considero que son mis mejores compras, como no, de tecnología.

Hoy os traigo tres productos:

Una bateria externa para el iPhone que se carga con el cable lightning del iPhone, por lo que no tienes que llevar mas cables encima. Además tiene para casi cuatro cargas enteras:

Y mi querido NAS. Este es el mejor regalo que me han hecho. El verano pasado me lo compró mi mujer por mi cumpleaños. Es el NAS mas barato que hay pero en funcionalidad esta a la altura de los mas caros.

Le tengo puesto un disco duro de 3TB y el se encarga de hacer descargas de torrents, además de que tiene una app tipo dropbox con la que tener tu nube gratis sin limite de almacenamiento ni cuotas mensuales.

Este enlace es para un disco de 3TB especial para NAS, por poco mas de 200€ podéis tener un NAS y un disco de 3TB para crearos fácilmente vuestra propia nube. Además no hay que saber nada de informática, os va guiando en la configuración.

Espero que os haya gustado la selección.

[GC] Seleccionar todos los elementos que dependen de un nodo

Esta semana me he encontrado con un problema común que voy a simplificar para explicarlo aquí de manera más sencilla. Suponemos que tenemos una línea sobre la que queremos poner puntos, esos puntos serán el centro de una serie de círculos. Algo así:

circ1

Este es el código correspondiente para generar el círculo:

node User.Objects.circle01 Bentley.GC.Features.Circle
{
    Technique                 = 'ByCenterRadius';
    CenterPoint               = {point02, point03, point04, point05};
    Radius                    = 3;
    Support                   = baseCS.XYPlane;
    GraphLocation             = <auto> {1080.0, 40.0};
}

El problema es que si los puntos los dibujamos manualmente luego debemos seleccionarlos uno a uno para hacer los círculos de manera replicable. Esto esta bien cuando hay pocos puntos, o cuando se saben cuantos se van a hacer desde el principio.

Si quiero añadir más puntos ahora debería añadirlos manualmente, y luego editar la lista anterior para que el nodo círculo lo tenga en cuenta. De nuevo, esto está bien si tengo que agregar pocos puntos.

Hay otra manera más “inteligente” y rápida de hacerlo: Seleccionar los puntos cuya dependencia cuelga de la línea o lo que es lo mismo seleccionar los sucesores de la recta.

Seleccionar los sucesores de una recta

Esto se hace accediendo a la propiedad ‘GetSuccessors’ que tienen todos los nodos de la siguiente manera:

line01.GetSuccessors(false)

El resultado será este:

{circle01, point05, point04, point03, point02}

El problema es que el círculo que estamos creando es también un sucesor de nuestra línea, por lo que debemos deshacernos de el y sacarlo de la lista para que el nodo círculo pueda funcionar, ya que busca puntos sobre los que hacer las circunferencias. La funcion ‘RemoveAt’ que es la que usaremos para borrar el elemento de la lista necesita saber el índice del elemento que queremos quitar, por tanto usaremos la funcion ‘IndexOf’.

Por pasos, con la funcion ‘indexOf’ obtenemos el índice del círculo en la lista:

IndexOf(lista, elemento)
IndexOf(line01.GetSuccessors(false),circle01)

En este caso el índice que arroja es ‘0’.

Ahora usamos la funcion ‘RemoveAt’ para eliminar el elemento de la lista, para que sea dinámico, en lugar de usar el 0, se usará la funcion ‘IndexOf’ completa:

RemoveAt(lista, índice)
RemoveAt(line01.GetSuccessors(false),IndexOf(line01.GetSuccessors(false),circle01))

El resultado es, por tanto:

{point05, point04, point03, point02}

El nodo quedará definido por:

node User.Objects.circle01 Bentley.GC.Features.Circle
{
    Technique                 = 'ByCenterRadius';
    CenterPoint               = RemoveAt(line01.GetSuccessors(false),IndexOf(line01.GetSuccessors(false),circle01));
    Radius                    = 3;
    Support                   = baseCS.XYPlane;
    GraphLocation             = <auto> {1080.0, 40.0};
}

Descargar el ejemplo en GCT