Category: Aplicaciones

Hidden Console Start (HCS) – Esconde la consola y lanza procesos/aplicaciones en segundo plano

Dicen que no te das cuenta de algo hasta que lo pierdes… Esto es lo que me ha pasado cuando recientemente mi orientación profesional ha cambiado y he tenido  que trabajar con sistemas Windows en vez de GNU-Linux.

Acostumbrado a tener corriendo servicios en distintas máquinas con GNU-Linux acabas echando de menos su shell y la bestialidad de herramientas que hay. Vale sí lo reconozco, al final trabajaba en una máquina Windows, pero porque sigo pensando que las herramientas de desarrollo siguen siendo mejor que las que hay disponibles en GNU-Linux. Hay que reconocer que un Windows lo uso sólo para desarrollar (eso sí multiplataforma) y para jugar, para lo demás GNU-Linux sin duda!!!

Una de las cosas que he echado en falta recientemente es la posibilidad de usar el operador & de background tan potente en GNU-Linux. Este operador permite lanzar un proceso que se sigue ejecutando sin bloquear la shell y si la cerramos, éste sigue en segundo plano. Pues esto tan chulo, no puedes hacerlo en un Windows, porque su comando start no lo permite y la opción /B del comando no impide que al cerrarse la consola de comandos el proceso que has lanzado muera. A no ser que el proceso que has lazando cree su propio hilo no dependiente del proceso de la consola. Y tampoco es posible lanzar un proceso de consola de comandos sin consola, a no ser que esté programado explícitamente que la consola se oculte o no aparezca. Windows en este aspecto se cubre mucho, porque la única forma de crear procesos en background es construyendo servicios de Windows que tienen sus propias reglas a cumplir y por consiguiente hace falta desarrollo específico para que algo corra en segundo plano.

Visto el panorama y teniendo cierto conocimiento e idea, me decidí a generar una herramienta similar que funcionase en Windows como el operador &, o por lo menos a intentarlo. Para ello lo primero pensé en que quizás lo más adecuado fuese hacerlo en multiplataforma y generar una solución que funcionase tanto en Windows como en GNU-Linux. Atendiendo a este requisito, enseguida a mi mente llegó Python, porque además su instalación de paquetes es sencilla y potente a partes iguales, por no decir que es posible generar binarios (por ejemplo un .exe en Windows) si hiciera falta gracias a herramientas como py2exe y PyInstaller.

Con el punto de partida claro y unas horas de desarrollo, consigo lo que bautizo como Hidden Console Start o HCS. El proyecto puedes encontrarlo en Github:

Y su instalación es sencilla si tienes ya Python en tu equipo. En caso de no tener Python, pásate por la web de Python y descárgate la última versión disponible. Una vez instalado Python, solo tienes que ejecutar el siguiente comando en el CMD o PowerShell para instalar HCS:

pip install hcs --upgrade

Una vez instalado puedes ejecutar el proceso o aplicación que se quiera ejecutando HCS de la siguiente forma:

hcs -e "P1" "P2" ... "Pn-1" "Pn"

Pongamos un ejemplo:

hcs -e "ping 127.0.0.1 > log1.txt" "ping 192.168.1.17 > log2.txt"

En el ejemplo se lanzan dos comandos ping a distintas direcciones que son guardados en log1.txt y log2.txt respectivamente. Como se puede ver la consola de comandos no queda bloqueada y la información de los comandos ejecutados se va guardando el los ficheros.

Si por alguna razón tus procesos o aplicaciones no mueren o acaban, puedes finalizarlos en el caso de Windows abriendo el administrador de tareas:

Y en el caso de GNU-Linux con htop:

De esta forma podemos lanzar procesos y aplicaciones en segundo plano en sistemas Windows de una forma más o menos equivalente a como lo haríamos en GNU-Linux. Y obviamente podríamos usar HCS en GNU-Linux porque también funciona, pudiendo usarlo de la misma manera que en Windows.

Diaspora* – Una Red Social de Todos y para Todos

Está claro que actualmente la información es poder y dinero, pero mientras el poder está limitado por leyes que marcan las reglas de nuestra sociedad, el dinero y la capacidad de enriquecerse en los modelos económicos capitalistas no está tan limitada, ni legislada.

Modelo actual de las Redes Sociales

Actualmente el modelo de explotación más rentable para el modelo hegemónico basado en la información, es la red social. Existen infinidad de ellas, mayoritariamente de carácter gratuito para la totalidad de su uso, como pueden ser Facebook, Twitter, Google+… Y son precisamente gratuitas, por la contraprestación que reciben ellos por el uso de esas redes sociales, son nuestra información, datos de actividad dentro de la red, preferencias… En este tipo de modelos que aparentemente son gratuitos, debéis recordar que no hay nada gratuito y que si lo es, el producto sois vosotros. En cualquier caso debéis ser consciente de lo qué dais a cambio del uso de este tipo de servicios.

Jail-facebook-twitter

Debéis recordar también que la protección de datos y la transferencia de datos e información en servicios web, como son las redes sociales, varía de acuerda a la legislación a la que se acoja la empresa desde donde opera. Por ejemplo Facebook se atiene a esta máxima y durante la apertura de una cuenta en su acuerdo de confiencialidad aclara que “el contenido que subas y compartas  son de Facebook”. Obviamente puedes pedir la retirada de fotos o darte de baja de la red, pero Facebook sólo se limita a dejar de hacer público el contenido, guardánsose los datos, información y perfil obtenido durante el uso de la cuenta (que en muchos casos es suficiente para describir a una persona de manera unívoca).

Recientemente Facebook ejecutaba su giro maestro que le permitirá seguir creciendo, refinanciarse y por consiguiente tener más valor. Esto ha sido gracias a los nuevos términos de la política de privacidad de Whatsapp que permiten compartir tu número de teléfono y conexiones con Facebook. Está claro! Facebook no compró Whatsapp por ser la mejor aplicación que había, sino por sus usuarios, Ahora quiere engrosar sus filas en Facebook que es la empresa matriz que cotiza en bolsa.

Es evidente  que estos modelos de negocio convierten una necesidad de socializar de las personas, en una forma muy rentable de hacer dinero. Se basa en tenernos el mayor tiempo posible dentro de la red para generar más dinero, a costa de la información que desprendemos y así llenarnos de publicidad, colocarnos productos e invadir nuestra privacidad de manera no deseada, o por lo menos no explícitamente consentida. Pero, y si ¿habría otra forma?

social-media-rubik-cube

Diaspora* como Alternativa

Desde hace unos años se ha venido trabajando en lo que se denomina red social distribuida, un modelo que tiene bastante en común con las redes P2P que ofrecen una descentralización del servicio, otorgando poder al usuario y a la comunidad de desarrolladores. La red social más representativa de este paradigma es Diaspora*.

Los pilares de Diaspora* son seis:

  1. Descentralización: En lugar de tener la información de todo mundo contenida en enormes servidores centrales propiedad de un gran corporación, servidores locales(“pods“) pueden instalarse en cualquier parte del mundo. Tú eliges en qué “pod” registrarte – quizás en un pod local – y conectarte de manera fluida con la comunidad de Diaspora* alrededor del mundo.
  2. Libertad: Puedes ser quien tú quieras en Diaspora*. A diferencia de otras redes, no tienes que usar tu identidad real. Puedes interactuar con quien quieras de la manera que quieras. El único límite es tu imaginación. Diaspora* también es Software Libre, dándote la libertad de usarlo como desees.
  3. Privacidad: En Diaspora* tú eres dueño de tu información. No tienes que renunciar ningún derecho a una corporación o interesés que pudieran utilizarla. ¡Con diaspora*, tus amigos, tus hábitos y lo que compartes es tuyo… no nuestro! Además, tu eliges quién puede ver lo que compartes, por medio de Aspectos.
  4. Aspectos: Diaspora* es pionera en el concepto de aspectos, lo que quiere decir que puedes organizar tus contactos de acuerdo al papel que juegan en tu vida. Esto significa que tú eliges compartir algo sólo con familiares o colegas de trabajo, sabiendo que nadie que no quieras podrá ver lo que publicas.
  5. Características heredadas: Los Hashtags te dan la libertad de etiquetar y seguir tus intereses con facilidad. Puedes llamar la atención de la gente @mencionándola. Volver a compartir las publicaciones que te gustan para que otros puedan disfrutar y comentarlas también. Y mostrar tu aprecio por el trabajo de otras personas con un ♥.
  6. Colaborativo y Open Source: Diaspora* necesita personas que escriban y prueben el código, den la bienvenida y ayuden a los nuevos miembros, instalen y mantengan pods comunitarias, y corran la voz sobre los beneficios de Diaspora* a otros que quieran formar parte. ¿Te gustaría contribuir al proyecto?

Para más información accede a la Fundación de Diaspora*:

https://diasporafoundation.org/about

Adentrarse en Diaspora*

Sabiendo las características y si estás decidido a ser parte de Diaspora*, lo primero que tienes que hacer es elegir tu pod.  Para ello puedes hacerlo de la siguiente lista de pods federados en la red:

https://podupti.me

Como recomendación personal y si no tienes predilección sobre ninguno en especial, te recomiendo:

https://joindiaspora.com

Si quieres sopesar tu elección de acuerdo a datos sobre los distintos pods, puedes obtenerlos en:

https://the-federation.info

Si necesitas más información sobre la elección de tu pod puedes acceder a:

https://wiki.diasporafoundation.org/Choosing_a_pod

En cualquier caso el pod (vaina) donde abraramos nuestra cuenta (semilla), no impide que podamos acceder al contenido generado en otros pods, ni que en un futuro puedas migrar a otro pod si así lo deseas. Con esta metáfora de la diáspora (dispersión), la vaina (núcleos comunitarios) y la semilla (semillas), el proyecto de Diaspora* deja definido metafóricamente su ADN.

Impresiones

Tras unos días de uso de la red social lo primero que llama la atención es que Diaspora* aglutina lo mejor de Facebook y Twitter, pero con el gran detalle de que NO hay publicidad de ningún tipo, ni explícita ni escondida en contenido seleccionado mostrado para tu perfil.

Diaspora_latest

Claramente se apuesta por un empoderamiento de los usuarios y desarrolladores.  Por un lado, en el caso de los usuarios porque pueden elegir cómo y de qué manera quieren mostrar su información , evitando a su vez que la información del perfil del usuario sea substraido por terceras empresas que hagan explotación de los mismos. Por otro lado, los desarrolladores pueden elegir el camino junto a los usuario de manera colaborativa usando plataformas como Loomio, y a su vez cualquier desarrollador puede acceder al código para ejercer todas las libertades del software libre en Github.

Cabe destacar la capacidad de adaptación de la interfaz de Diaspora* a los distintos dispositivos. Particularmente en el caso de la versión móvil,  no hay necesidad de la instalación de una aplicación nativa, aunque también existen aplicaciones nativas para el móvil para quienes lo deseen. En cualquier caso, es la primera red social en la que veo totalmente innecesario el uso de la aplicación nativa. ¡Buen trabajo!

Por último destacar la sección principal de la red social, cuyo contenido va guiado por las etiquetas de nuestro interés que hayamos incluido. Mención especial de la etiqueta #NSFW (Not Safe For Work), que oculta el contenido publicado, hasta que el usuario decida mostrarlo. Una forma de respetar sensibilidades de los potenciales lectores del contenido.

Integram – Integra Telegram en tu flujo de trabajo

En mi día a día tengo que ocuparme de la gestión de varios proyectos software. Para ello me apoyo en las sinergias producidas por el uso de herramientas como Git junto con gestores Web de repositorios Git como GitLab, GitHub o BitBucket. Son herramientas básicas para la gestión de un proyecto software, y más aún si es uno de envergadura con unos cuantos desarrolladores trabajando en él.

El problema de las plataformas como GitLab, GitHub o Bitbucket, es que son herramientas excelentes si estás en frente de un equipo de sobremesa o portátil. Cuando ya entras en flujos de trabajo que puedan conllevar itineraria o simplemente si quieres tener un seguimiento relajado de la evolución del proyecto, hay que acudir a sistema móviles basados en notificaciones.

Alguno ya estará diciendo: para eso ya existe el email. ¡Y le doy toda la razón! Pero quiero ir un paso más allá y manejarme en un sistema más instantáneo como puede ser la mensajería instantánea, como es el caso de Telegram. Esta plataforma ofrece comunicación escrita instantánea y favorece canales de comunicación entre dos o más personas. A esto hay que sumar que actualmente Telegram dispone de versiones que pueden ser consumidas desde un equipo de sobremesa o portátil, y no sólo desde el móvil.

Una de las muchas bondades que tiene  Telegram (te recomiendo que te des una vuelta por https://telegram.org), es que es Open Source y posee una API que permite interactuar con Telegram mediante un sistema de Bots.

La entrada de hoy viene a presentar Integram, un bot que posibilita la interlocución de las plataformas Trello, BitBucket, GitHub, GitLab con Telegram. Si deseas alguna otra integración de otra plataforma, puedes votar para que lo añadan al proyecto, o añadirlo tú mismo contribuyendo al proyecto.

Todos los bots en general funcionan de manera similar:

  • Entras en Telegram y añades Integram como nuevo miembro de un grupo.
  • Una vez añadido el bot, te mostrará las plataformas que pueden ser integradas con un  mensaje de bienvenida.

Integram_info_message

  • Seleccionas la plataforma que quieras integrar dando en el enlace y te pedirá que le indiques un grupo. Selecciona el grupo al que añadiste Integram.
  • El nuevo bot de la plataforma que hayas seleccionado, te mostrará un mensaje de bienvenida con unas instrucciones de configuración. En mi caso he integrado GitLab.

Integram_Gitlab_URL

  • La dirección URL que os muestra, es lo que debéis añadir a vuestro proyecto en la sección de “Web Hooks”. Tanto en GitLab como en GitHub se encuentra en “Project Settings” –> “Web Hooks“.

integram-screencast3

 

Dependiendo cómo configuremos el Web Hook en la plataforma, nos permitirá lanzar un mensaje al grupo cada vez que haya un “push” al repositorio, se abra un “issue“, cuando se añada un nuevo desarrollador… Puede ser tan flexible como uno quiera. ¡Una gozada la verdad!

La integración de este tipo flujos de trabajo, nos permitirá estar al tanto de los cambios del repositorio de nuestro proyecto y comentar, si se desea, con el resto de desarrolladores del proyecto, cualquier cambio del mismo.  Además en mi caso particular, uso Telegram como sustituto natural de Whatsapp, lo que hace que cualquier integración con la plataforma, haga que consuma de manera más fácil y natural dicho contenido.

¿Dónde están mis Gigas? – WinDirState te lo dice

De vez en cuando me echo las manos a la cabeza cuando en mi equipo me pongo a revisar el espacio que me queda y me doy cuenta del poco espacio disponible que hay. Es algo que seguramente nos pasa a todos y da igual lo grande que compremos nuestros dispositivos de almacenamiento que siempre los acabamos llenando. Pero la pregunta es: ¿dónde están las carpetas y archivos que más ocupan? ¿qué tipo de archivos son los que más ocupan?… En definitiva ¿qué he de borrar si quiero conseguir espacio rápidamente?

Una herramienta que nos va a permitir resolver esas preguntas es WinDirState:

https://windirstat.info

Se trata de una aplicación que analiza nuestras unidades de almacenamiento o directorios concretos que queramos, para mostrarnos de manera gráfica su estado de ocupación.

WinDirStat

A modo de ejemplo práctico analizaré la unidad de almacenamiento de mi equipo. Tras analizarla, en la parte superior izquierda se muestran las particiones de la unidad que se han analizado, acompañadas de información relevante, pudiéndose desglosar la información por subdirectorios. Observemos que cada directorio tiene una barra que indica el espacio ocupado dentro del total ocupado del nivel inmediatamente superior.

Pasando a la parte superior derecha, se muestra información de los tipos de archivos que ocupan la unidad, así como el número de archivos que hay de ese tipo y el espacio que ocupan. Los tipos de archivos aparecen ordenados por la cantidad de espacio que ocupan.

En la zona inferior se muestra de manera más gráfica la información presentada en la parte superior con las dos vistas ya presentadas anteriormente. La vista representa mediante rectángulos de distintos tamaños, los distintos directorios, subdirectorios y archivos.

Si estas tres vistas te han liado un poco, no te preocupes, porque las tres vistas están conectadas. Seleccionando desde cualquiera de las tres vistas cualquier elemento, éste se refleja en las otras. De esta forma toda la información que se muestra queda conectada.

WinDirState es una herramienta excelente si quieres saber como está ocupado tu espacio de almacenamiento o si quieres hacer una limpieza de archivos rápida y efectiva.