Here are all of my previous posts

And over here is the list with previews

Deploying Yesod applications with Keter May 4, 2017

Keter is the Yesod’s deployment system, fully featured and a joy to use, but the are a couple trapdoors that the documentation doesn’t cover, and that the user has to find out for her self; So I’ll try to give them away here together with a walk-through tutorial.

Although Keter is flexible and general enough to be used with various kind of applications and web frameworks, here I’m going to assume you’re using it to deploy Yesod applications. Moreover, I’ll assume you’re using Yesod’s scaffolding, as it is the preferred way to write production ready applications.

What's wrong with Java? April 14, 2017

I’ve spitted out quite a bit of rant about Java before in this post, in which I basically list the annoyances that the ecosystem around Java imposes and how those problems are pretty much a big intersection with the problems of IDEs.

Here I’d like to talk about the problems of Java as a language. Although there are a few problems with Java, I can live with them if I have no other option but to write Java code; My hate to Java doesn’t really arise from Java being a bad language but rather from its surroundings.

Using Cassius (Shakespearean template) with Hakyll April 11, 2017

As a user of the Yesod framework, I’ve came to know and love the Cassius CSS templating language, although its reliance on Template Haskell is meant to fit better with the Yesod’s needs and makes it a bit cumbersome to use everywhere else, I still like the templating language itself and its features a lot.

That’s why I used it for the styles generation for Silly Bytes together with Hakyll. In this post I will describe the process.

From Blogger to Hakyll April 10, 2017

Hakyll is an amazing static site generator written in Haskell, it allows for blog posts to be written in markdown, that are then compiled with pandoc, and is very well suited to be used with GitHub pages; It’s everything I wanted and more.

Silly Bytes went through its first 5 years of existence hosted on Google’s Blogger service, and it did well. Although Blogger offers a fair amount of flexibility, you can’t have total control over it, and having to write posts with the built in WYSIWYG interface or pasting the HTML output is one of the bigger pain points of it. I solved most of that by writing a CLI tool that allows me to write my posts offline in markdown, compile them, and deploy them from my terminal leveraging the Blogger’s convenient API, but I still have the feeling that it isn’t good enough.

In this post I will describe the process of porting an existing Blogger blog to Hakyll and GitHub pages using Silly Bytes itself as the study case.

How do I blog? - Blogger posts from markdown and CLI September 23, 2016

There are plans to migrate Silly Bytes to Hakyll and GitHub pages, but till then I’m still using Blogger and I wanted to make the posting process as painless and automatic as possible.

Every post I write is currently a separate git repo hosted on the Silly Bytes GitHub organization. The post is written and maintained in Markdown using Pandoc and a convenient Makefile generated by the made script.

Writing posts in Markdown is nice but is not very useful if you still have to mess around with Blogger’s web interface, so here is the plan:

  • Write post in Markdown
  • Use made to generate a Makefile
  • Generate HTML with the Makefile $ make
  • Push the HTML post to Blogger using Google APIs

Gentle introduction to STM32 ARM Cortex microcontrollers and boards programming September 11, 2016

So you have been using AVR, PIC or some other microcontroller for a while and discover that ST Microelectronics offers some pretty cheap 32 bit ARM and feature rich microcontrollers: STM32, and want to start playing with them but don’t know how or where to start; I’m here to help.

ARM is taking over the embedding wold, they’re ubiquitous in smart phones, tablets, laptops, other computers, cars, refrigerators, microwave ovens, monitors, printers, you name it!

Note: Be aware that ARM is an architecture that manufacturers can implement. Is a common mistake to think ARM is a microcontroller on itself, it is not.

TDD (Test-Driven Development) Physical Traffic Light August 28, 2016

Robert C. Martin (Uncle Bob) said in a talk:

Imagine you have a button that you can push, it will test your code and if everything is working a green light will come up, but if something is break, a red light will come up […]

He was of course talking about TDD, but I was bored and get inspired to build this little toy.

Hardware schematics, firmware and host software is available in this Github repo. Along with information on how to compile and use.

This is a physical toy traffic light to be used with software development TDD (and testing in general) tools. It will not boost your productivity nor make you a better programmer or TDD practitioner, but it looks cool :)

Lets explain how it works, it’s very simple:

Vim + Haskell August 11, 2016

So you’re writing in the right language using the right tool already, but lets put some extra magic under our sleeves.


  • Omnicompletion
  • Compilation and testing
    • Building
    • Testing
  • GHCI integration
  • Hoogle integration
  • Convenient mappings
    • Argument text object
    • Jump to importations
    • Jump between functions
  • Ghc-mod integration
    • Type inserting
    • Case splitting
    • Type asserting
  • Hlint integration
    • Linting
    • Managing the locationlist
  • Code formatting
    • Hindent integration
    • Trailing white space
    • Trailing blank lines
    • Spaces over tabs
  • Easy arrows generation
  • Types abbreviations
  • Yesod Haskell web framework

PIC16F876A conversión analógica digital + UART (Ensamblador) July 14, 2016

NOTE: This post is available in Spanish only. Please use a software translator.

He dejado de usar microcontroladores PIC por los motivos explicados en este post; Pero voy a dedicar este post para tratar y explicar un programa sencillo escrito en ensamblador para el PIC16F876A.

El objetivo es el siguiente:

Se desea usar el microcontrolador para llevar a cabo la conversión analógica-digital de una tensión variable (un LDR o un potenciómetro por ejemplo) y transmitir el resultado usando la UART. Además debe ser posible recibir por la UART un byte que debe alterar la configuración del Conversor Análogo Digital (DAC) interno del microcontrolador para, por ejemplo, cambiar el canal de entrada de la señal analógica o modificar la velocidad del reloj de conversión.

Ratpoison, Fuzzy window selection July 13, 2016

A nice feature to have is the ability to jump to an arbitrary window by performing a quick fuzzy search with just a few characters. We can achieve this by using Ratpoison’s flexibility and the fantastic FZF tool.

The script will do the trick using FZF

Aprende Haskell rápido y difícil June 29, 2016

Esta es la traducción al español del artículo Haskell the hard way por Yann Esposito.

TL;DR*: Un corto y denso tutorial para aprender Haskell.

Asómbrate con Haskell

De verdad pienso que todos los desarrolladores deberían aprender Haskell. No creo que todos necesitan convertirse en ninjas de Haskell, pero deberían al menos descubrir que es lo que Haskell tiene para ofrecer. Aprender Haskell abre tu mente.

Seamlessly Vim-Tmux-WindowManager-Monitor navigator June 24, 2016

This Thoughtbot post describes how to make Vim and Tmux work together in Harmony based on this crhistoomey plugin, allowing you to traverse both your Vim and Tmux windows and panes respectively.

How to write C in 2016 June 19, 2016

Matt wrote a very interesting and totally recommended post about how to C (as of 2016). Keith Thompson wrote later a very detailed and rather useful critique with some extra notes about Matt’s post.

Go a head and read both articles right now!

Here I would like to point out some things about tooling.

From PIC to AVR June 17, 2016

This is my humble contribution to the PIC vs AVR holy war.

TL;DR: I was a PIC user but decided I hate it, switched to AVR and love it!

PIC from Microchip and AVR from Atmel are both wonderful microcontrollers for hobbyist and professional as well (I am a hobbyist only if you’re wondering).

I used to love PIC microcontrollers and originally choose them because they are the most widely available in my location. But there are just so many annoyances that AVR solves so wonderfully!

Firefox control on steroids [Firefox + Ratpoison + Mozrepl] May 27, 2016

I’m not going to lie to you, what you’re about to read is really cool.

Controlling all sort of stuff with Ratpoison, as you can see in my previous posts, is pretty neat and you can extend it to control your browser as well.

These are the current capabilities:

Every command start with the Ratpoison prefix + ‘f’ like in C-t f:

A better and prettier mysql/mariadb CLI client May 22, 2016

The default, unconfigured CLI client you use with MySQl or MariaDB is kind of awful, no colors, pretty bad query editing capabilities, and the output is not paginated. Let’s improve the experience.


Start by creating a configuration file ~/.my.cnf with the following content:

Automatically prompt a password for your user, avoid giving --user option each time

Vim Kōans [Español] May 4, 2016

Esta es la traducción al español de los vim kōans por Tom Ryder.

¿Qué es un Kōan?

El maestro Wq y el desarrollador de Windows

El maestro Wq se encontraba ayudado a algunos novatos de Vim. Luego de sus enseñanzas sobre las virtudes de Vim, pregunto si habían preguntas. Un hombre joven levantó la mano.

The Python Paradox is backwards April 20, 2016

Paul Graham wrote a great short article back in 2004 called The Python Paradox where he states that if you look for python programmers you will end up with the best ones. The logic behind this is as follows:

Python is an esoteric language that universities and schools don’t teach, so people that knows python are self thought, they know that their python skills wouldn’t get them a better job so they do it for fun only; Considering that learning a new programming language isn’t a trivial task, and that python knowledge wouldn’t rank you higher for hiring, we can infer that it takes a really passionate person, a hacker, to learn and use python.

Why I hate Java March 28, 2016

Everything is an object…

… No, it’s not!

Not everything is a object. Have you ever carefully read Java code? It’s full of actions disguised like objects: Mutator, Traverser, Factory, Maker, Creator, Generator, Mediator. So you don’t mutate, traverse, make, create or generate anything, instead you force an object that can do that.

Ok some of that stuff can be useful for well used design patterns and a good design, but most of the time is not!

Why I hate IDEs March 16, 2016

Lets start by taking off of the discussion some important things:

  • Using an IDE and taking advantage of what it has to offer doesn’t mean you’re a bad programmer, and using a good text editor doesn’t mean you’re a good one.

  • Using an IDE has the potential to turn you into a bad programmer.

  • Relaying on an IDE can make you a bad programmer.

  • Depending on an IDE means your a bad programmer.

I think a lot of people will agree with this, so lets move on.

I’ll keep updating this list in the future, if you have something you’d like to be added please let me know.

Beautify your code with Astyle and Vim February 26, 2016

Programmers love good code: good expressivity, good organization, ease of extensibility, maintainability, and so on. But we also like the code to be pretty, it makes the work more pleasant and enjoyable, but all this is probably not just for visually appealing reasons.

Is always nice to work with a style consistent code, it even makes it easier to navigate and read, our brains can dissect it more easily and our eyes can quickly jump to the right place. A pretty code transmits the idea that the people who wrote it do actually care about the program.

But there are some mundane reasons too… For lots of us an annoying voice in our heads is constantly telling us “you’re wasting storage space, you’re and idiot!” because some trailing white space or unnecessary blank lines are laying around in the code. Sure, those few extra bytes won’t hurt your 1+TB hard drive!, but for some of us it just feels wrong.

Como escribir un emulador de computadora February 15, 2016

Traducción al español de “Como escribir un emulador de computadora” por Marat Fayzullin

Escribí este documento luego de recibir varios correos electrónicos de personas a las que les gustaría escribir un emulador de una u otra computadora, pero que no saben por donde empezar. Las opiniones y consejos contenidos en este articulo son únicamente mios y no deberían ser tomados como verdad absoluta. El documento trata principalmente sobre los llamados emuladores “interpretes”, contrario a los “compiladores”, pues no tengo mucha experiencia con técnicas de recompilación. Se proporcionan un par de enlences donde se puede encontrar información sobre estas técnicas.

Si considera que hace falta algo en este documento, o desea hacer una corrección, siéntase libre de enviarme un email con sus comentarios. NO respondo sin embargo a idioteces o solicitudes de imágenes ROM. Si conoce enlaces que pudiesen ser útiles aquí avíseme, lo mismo aplica para preguntas frecuentes que no se encuentran en el documento.

Migrating GNU/Linux installation to a SSD December 17, 2015

I recently bought a 120GB SSD (yes, a small one) to replace the 500GB HDD in my laptop so I can benefit from the extra speed and just keep my bulk data in the old HDD.

Once your new SSD arrives you are probably very exited, you want that boost up for your system. BUT! You don’t want to reinstall your whole system on it, you want to preserve it right?. Ok let’s do so.

Fight Flash Fraud (F3), Auto reset hardware November 11, 2015

F3 is an amazing alternative to h2testw, that allows you to test a USB flash drive to find out if it has less capacity than it claims.

There is a LOT of fake USB flash drives on Ebay and other stores; When you use them, they appear to be storing all your data, but when you try to retrieve it, much of it is just lost.

f3probe is part of F3, it will test the USB flash drive for you and tell you if it is a fake and how much real memory does it have, but there is a catch: it requires you to physically disconnect and reconnect the drive manually, which slows down the whole process and becomes tedious if you need to probe more than one drive. Here is the solution: a piece of hardware that f3probe will use to automatically connect and reconnect you USB drive without your intervention.

Ratpoison, Miscellaneous November 7, 2015

This is the fifth post about the Ratpoison window manager.

These are a few extra things I use in Ratpoison to make my life more comfortable that can fit in a single post, so here you go.

Ratpoison, Task Warrior Control November 6, 2015

This is the fourth post about the Ratpoison window manager.

When managing tasks there is no better interface than task warrior CLI, that’s for sure, but sometimes having a few-strokes-interface for listing the current tasks or adding a new simple one comes in handy.

Lets use Ratpoison goodies for this.

Ratpoison, E.T. Phone home November 4, 2015

This is the third post about the Ratpoison window manager.

This one is not a productivity improvement, nor a do-more-with-less feature, but a playful way to achieve a pretty common task: SSH to my home lab.

Remember that scene in E.T. In which he says: “ET phone home” and points with his finger to the sky? Well…

When I hit C-t E this pops up in my screen:

Ratpoison, Clipboard Stack November 2, 2015

This is the second post about the Ratpoison window manager.

How many times did you found your self keeping snippets of text in a text editor just so you can use them later because your clipboard will be overwritten with the new selection?

Here is a very neat solution using Ratpoison: a clipboard stack.

Using xclip, a simple shell script and the appropriate Ratpoison key bindings we could accomplish the following:

Ratpoison, Music Control October 23, 2015

This is the first of a series of posts about the Ratpoison window manager.

Ratpoison brings great flexibility and allows us to do pretty amazing things binding custom keys and running external programs and scripts; I’m going to talk about some of the ones i use in the next posts. For the first one, lets talk about music.

Some people use a graphical music player like Amarok or just play some Youtube videos, others prefer text players like MOC or CMUS, but we can reach the top of flexibility using a music daemon like MPD and use our preferred client (MPC, Ncmpcpp, Vimpc). All this options have something in common: you usually interact with an interface you have to switch to, interrupting your work flow in order to control your music, but we can do better.

Vim vs AWK March 6, 2015

What!? Vim is a text editor and Awk a text processing scripting language, how do you even compare them!? Yes, I’m aware of it, but trust me, I have something to compare here, so take a breath and continue reading…

What I’m actually trying to compare here is vim scripting vs awk, still don’t make sense? Well lets take a look of this.

Study case: Vinfo

Vinfo is a Vim plugin that allows you to read Info documentation files right in a vim session by converting the Info plain text files into Vim help-files so you get a nice syntax highlighting and very convenient tags for jumping between the file contents. Lets examine how it does its job.

Vinfo, alternative to GNU Info documentation reader March 2, 2015

The traditional GNU Info program has a ‘vi mode’, but let’s face it, it is just not good enough; It’s very limited and ugly.

There are good alternatives though, as Pinfo but is still not comfortable enough and lacking most of the Vim power.

There is where Vinfo comes in to allow reading Info documentation in Vim so we have all the power we need to read and explore in such a comfortable way and with the beauty and power off Vim help-files.

VIM Jump to next/previous help file tags fast February 20, 2015

Every Vimmer, advanced or nodb, cannot live without Vim help mechanism and help-files, we all know that. But there is a useful functionality that vim does not offer to us while reading its documentation: Jump between tags!

Vim files are full of Tags that act as hyperlinks between different parts in one or multiple help-files, but moving trough tags/links should be faster and here is how:

When the cursor is on a tag one can follow it with ctrl-] but we need the cursor there in the first place. So lets use ]g and [g for jumping to next and previous tag respectively adding this to your vimrc:

Caps Lock la tecla más inútil, útil al fin! December 21, 2014

La tecla más inútil de nuestro teclado es irónicamente una de las teclas de más fácil acceso, ¿no es eso algo ridículo?

No solamente está su gran inutilidad, sino además puede llegar a ser molesta de forma pro-activa cuando la tocamos sin querer y nuestro texto termina siendo un GRITO MUY IRRITANTE.

Pero no podemos sentarnos y conformarnos, o mucho peor! Sentarnos y sufrir en silencio, algo habrá que hacer al respecto. Así que pasemos a convertir la tecla más inútil en una tecla realmente útil y aprovechemos su conveniente posición en el teclado a nuestro favor!

El teclado es tu amigo December 4, 2014

Cualquier persona que se dedique a actividades relacionadas con la informática (y hoy en día prácticamente cualquier persona independientemente de sus actividades) está plenamente consciente que su principal interfaz con una computadora es su teclado, y dada la cantidad de tiempo que lo usamos, más nos vale estas completamente cómodos con él.

Hay varias cosas que influyen en como lo usemos, y dependiendo de sus características podremos disfrutar más o menos al usarlo, veamos algunas cosas:

Juego en C y ncurses + robot físico July 10, 2014

Este es un ejemplo bastante completo de una interfaz basada en Ncurses que implementa un juego escrito en C.

El juego consiste en desplazar un robot a través de una cuadricula evadiendo los obstáculos para llegar a una salida y lograr hacerlo antes de que el robot se quede sin energía.

A esto, si se le puede llamar un juego, es bastante malo como tal, no es nada divertido ni disfrutarle, no será una aventura mágica ni te tendrá horas jugándolo, incluso sus reglas elementales hacen de él una actividad que no representa ningún reto ni entretenimiento, pero! Es un muy buen ejemplo del uso de la librería Ncurses con el lenguaje C y un no tan bueno, pero simple ejemplo del control de hardware.

Veámoslo en acción:

USB a Serial (UART), FT232 convertido de SSOP a DIP May 24, 2014

Ahora mismo estoy trabajando en un proyecto en el que necesito comunicación con el PC, la primera opción sería usar el puerto paralelo de mi vieja y querida Pentium IV, pero aquello de llevar conmigo esa maquina en su grande y pesado case… Es algo que ciertamente me desmotiva.

La alternativa sería usar una laptop y comunicar por USB, pero mientras no termine de implementar el estándar USB (en progreso, espero publicarlo pronto aquí) no sería posible.

La siguiente solución que se me ocurrió fue usar un FT232, un bonito chip que implementa un Comunication Device Class (CDC) de USB y nos entrega un serial UART a TTL, es ideal y fabuloso, pero por desgracia viene únicamente en una presentación poco cómoda SSOP de 28 pines.

Esto fue lo que hice para poder usar este genial chip en una protoboard:

Solve soldering iron black tip April 27, 2014

As an electronics hobbyist is very often necessary to make project permanent in a nice PCB.

Sometimes is necessary to replace or modify some components in a existent PCB or just recover components from an old one, for every case, what we need?

Yes! A solder iron!, useful tool for playing with electronics right?

If we’re talking of a hobby probably we’re using a cheap soldering iron (or a not so expensive one). So probably we don’t get any temperature trimming, stand by mode or rocket materials for the tip, so after an hour (or even just a few minutes) the tip of our soldering iron has become black and carbonized so it doesn’t melt solder any more, we need to turn it off and leave it to dissipate heat in order to use it again. Very annoying!

Convertir un libro PDF en formato de libro de mano (handbook) y ahorrar papel November 9, 2013

Por lo general solemos tener mucho más que varios libros en formato PDF, pero no hay nada mejor que leer sobre papel, además de que poder leer un libro impreso mientras vas en el transporte publico, mientras esperas que empiece la siguiente clase, o simplemente tenerlo a la mano siempre para leer en cada oportunidad es algo invaluable.

Pero usualmente hay más de un problema con esto:

El papel por ejemplo tiene su costo y si vamos a imprimir 20 libros de entre 500 y 2000+ páginas cada uno, tendremos que pagar una cantidad considerable (tanto si lo imprimimos en casa como si lo llevamos a un centro de impresión), esto además de que siempre es bueno usar la menor cantidad de recursos posibles, tanto por eficiencia, reducción de costos y por conciencia ecológica.

LiFi, la tecnología que NO reemplazará al WiFi October 21, 2013

Se ha estado escuchando mucho últimamente sobre la nueva y revolucionara tecnología LiFi, que sin duda aplastará y reemplazará a la “obsoleta” tecnología WiFi… O no lo hará?

Pero que es el LiFi, como funciona y por qué puede ser considerado un reemplazo al Wifi? (o no tanto?)

Me limitaré a hablar de los detalles oportunos para la explicación, pues esto del LiFi se ha extendido rápidamente y existe información por doquier.

Programando PIC's en GNU/Linux (hardware y software) August 10, 2013

Mi fuerte es la informática más no la electrónica, pero como se habrá podido apreciar en muchos de mis posts el objetivo de incursionar en un campo aún algo oscuro para mi es el de lograr conectar las capacidades de la informática para reflejar con ello algo en el mundo físico.

Así pues mientras nos metemos de cabeza en la ciencia de la electrónica tarde o temprano usaremos un micro controlador, el cual ya es un eslabón muy intermedio entre estas dos ciencias tan intimas.

La razón es que un micro controlador (uC) es un dispositivo que implementa electrónicamente una maquina de Turing completa, y nos permitirá con sus prestaciones interactuar con circuitos electrónicos mediante algoritmos y programas de software, y es justamente aquí donde viene el problema…

Ha Caído Lavabit, necesitamos alternativas August 8, 2013

Con la caída de Lavabit a manos de la intolerancia de los organismos gubernamentales hacia la privacidad se vuelve necesario encontrar alternativas mientras el servicio de Lavabit siga cerrado y con la esperanza de que pueda ser recuperado.

Así que aquí algunas alternativas:

Reparando y limpiando tablas GPT corruptas (Guardando MBR) [WARNING GPT (GUID Partition Table) detected on] April 29, 2013

Hace un par de semanas adquirí un nuevo equipo portátil en el cual he instalado GNU/Linux (Arch) como SO de cabecera, sin embargo mientras lo hacia he dejado un par de particiones lógicas no muy grandes destinadas a instalar algo como FreeBSD, OpenBSD, entre otros.

Pues bien, hoy mientras tenia algo de tiempo y luego de la larga espera para descargar el DVD de FreeBSD me he dispuesto a instalarlo sobre una de mis particiones, pero comenzado el trabajo unos cuantos golpes de la tecla Enter de sobra durante el gestor de particionado del instalador me han dado como resultado la creación de una tabla GPT indeseada y para colmo mal formada, y por supuesto con esto no podía leer mis particiones de la tabla MBR para instalar FreeBSD donde quería hacerlo.

Arranqué mi Arch nuevamente para examinar el problema:

Empecé por revisar como estaba el MBR de mi HDD y fdisk se quejaba de la presencia de una tabla GPT que no podía entender (fdisk no sabe leer GPT).

Cube Craft de Richard Stallman 2.0 March 8, 2013

Hoy he decidido tomarme un momento de ocio haciendo una segunda y mejorada versión del Cube craft de Richard Stallman.

Versión 1.0:

Esta vez luce más cómico y su aspecto en general esta bastante mejorado con respecto al anterior.

Sin más que decir dejo por aquí el Cube Craft:

Código Fuente vs Código Objeto, Una falsa dicotomía January 14, 2013

Esta es mi traducción de una versión borrador del articulo “Source vs Object code: a false dichotomy”


David S. Touretzky Computer Science Departament Carnegie Mellon University


La noción de código fuente y código objeto como clases opuestas de código de computador es una falsa dicotomía común entre no-programadores. El entendimiento publico general es que un programa de computadora es escrito como “Código Fuente” el cual es legible por humanos y no inmediatamente ejecutable por la maquina. El código fuente está supuesto a contener nombres de variables con significados claros y útiles comentarios únicamente para ser leídos por los humanos. Una pieza de software llamada “compilador” debe convertir el código fuente en código objeto para que el programa pueda ser ejecutado. El código objeto no puede ser leído por los humanos; es una secuencia de bytes que codifican una seria de instrucciones de maquina que serán ejecutadas por l microprocesador cuando este corre (ejecuta) el programa.

Haciendo pentesting con un... ¿Zapato? (un hack de zapatos) December 16, 2012

Hoy producto de el aburrimiento (entiéndase por aburrimiento al hecho de tener mucha tarea por hacer y muy pocas ganas de hacerla) y mientras observaba con detenimiento el cuerpo descubierto de una memoria USB (pendrive) cuyo recubrimiento plástico había sido profanado en un calamitoso accidente que involucra un camión, he tenido una idea.

Pensé que si encontrase la forma de llevar la memoria USB de forma tal que simplemente no pudiese olvidarla me ahorraría varios inconvenientes y además tendría siempre conmigo una liveusb con algo como backtrack por ejemplo, así que mientras sorteaba posibilidades y tras descartar un par de ideas bastante descabelladas (las cuales aún estoy reconsiderando pero que dejaremos para otro post) supuse que la mejor y más sencilla forma de hacerlo seria fusionando mi zapato con dicha memoria USB, para lo cual los pondremos juntos en un tazón y le echaremos radiación por supuesto, vamos a ello:

La mente humana, ¿Software difícil de crear? (IA) October 21, 2012

Hoy me gustaría escribir algo acerca de este apasionante tema multidisciplinario que involucra por supuesto a nuestra amada ciencia informática, haré un intento por plasmar una síntesis escueta y libre de aspectos técnicos. Procuraré contar de que va esto como una idea general.

Estuve un tiempo reflexionando acerca de por donde empezar y en factor de lo que me gustaría abordar, he decidido comenzar hablando acerca del Test de Turing ¿Qué es? ¿Quién lo creó? ¿Para qué sirve? ¿Con qué se come? Ahora mismo lo explico.

Controlando un auto Radio Control con la PC October 14, 2012

Como todo buen geek, de pequeño me fascinaban los autos RC (radio control), no tanto por el entretenimiento que supone jugar con ellos si no por la fascinación de averiguar su funcionamiento y todo lo que se puede hacer desarmando uno para convertir su mecanismo en algo completamente distinto.

Así pues hoy he visto en mi repisa el ultimo que me quedaba sin desarmar y pensé que ya era hora de decidir cual sería su destino, lo que hice fue adaptarlo para poder controlarlo desde la PC usando las teclas de dirección del teclado (como si de un juego se tratase), nuevamente, con miras ha hacer con ello algo un poco más interesante.

Para empezar cabe aclarar que dentro de la gran variedad de diseños, formas y sabores de los autos RC yo he hecho esto adaptado al mio, pero resulta trivial hacerlo para el auto que tengas a la mano.

Moviendo un motor paso a paso con el puerto paralelo sin integrados (Jugando con hardware) September 30, 2012

Esta vez vamos a jugar un poco con hardware, específicamente lo que haremos será mover un motor PAP (paso a paso) a través de la PC haciendo uso únicamente de transistores y sin usar ningún circuito integrado.

Para empezar es conveniente documentarse un poco del funcionamiento de este tipo de motores:

Sabemos que para hacer girar un motor PAP Bipolar tenemos que dar pulsos secuenciales en sus 4 cables (Que llamaremos A, B, C y D), pero alternando la polaridad, por lo que la circuito necesario se complica un poco, mientras que para los Unipolares este problema desaparece, así que empezaremos por jugar con los motores PAP Unipolares.

Sapo Music, script web (Red Social Musical) September 8, 2012

Hace mucho tiempo escribí un ridículo script web. La idea es un portal orientado a formar una comunidad social para compartir música, y ser reconocido por tus aportes dentro de la comunidad.

Keyboard pedal for Vim August 20, 2012

I’ve seen a VIM USB pedal tutorial before that triggers the i key, so we’re able to enter in Insertion mode with our foot.

I want to build something similar, but want to put effort in practical utility and simplicity. So i thought that trigger the Esc key would be more convenient due to the small, although cumbersome arm movement that requires to reach it. And you know, the i key is just under your finger so there’s no much of a time saving using a pedal.

Vim Cheat Ball, referencia de los comandos de vim August 8, 2012

Es bien sabido por todos los “Unixeros” en general que desde hace varios años ha tenido lugar la “guerra santa” de Unix*.

Por un lado están los adeptos al VIM y por otro los fieles a EMACS, sin embargo no quiero echar más leña al fuego comentando las bondades y desventajas de cada uno, así que vamos a suponer que el usuario ha elegido VIM por la razón que sea.

Librerías compartidas (shared libraries), qué son y para qué sirven? July 17, 2012

Una librería es un fichero que contiene código compilado generalmente de varios ficheros objeto, y que contiene un grupo de funciones para ser usadas en un programa.

Una librería puede ser de dos tipos:

  • Shared Lib (Librería compartida o dinámica)
  • Static Lib (Librería estática)

Pero esta vez hablaremos específicamente de las librerías compartidas.

Prueba el kernel original de GNU':' HURD July 17, 2012

Esta ocasión me gustaría extender una invitación a probar (sin cambiar nada en su sistema actual)…

Mi SO favorito: GNU

ELF':' el formato de ficheros ejecutables de Linux July 17, 2012

ELF es el estándar de Linux para ficheros de código objeto ejecutables, el equivalente de un EXE en Windows.

ELF soporta:

  • Diferentes Procesadores
  • Diferentes tipos de codificación de datos
  • Diferentes máquinas (sobre las que se ejecuta)

Un archivo que contiene código compilado se conoce como fichero objeto. Hasta aquí todos lo sabemos, pero quizás no todos saben o están plenamente consientes de que un fichero objeto puede ser de varios tipos:

Verifica la vida que le queda a tu disco duro July 16, 2012

Hoy me gustaría mostrar algo importante a hacer regularmente con los HDD’s: pedirles que me digan si están viejos y muriendo, o si aún están en la plenitud su mocedad.

Cómo? Pues para ello existe S.M.A.R.T., es el acrónimo de Self Monitoring Analysis and Reporting Technology (Tecnología de Análisis y Reporte Auto Monitorizado).

Esta tecnología la implementan los discos duros actuales (aunque no es una tecnología tan vieja tampoco).

Con este sistema es posible evitar desastres de perdidas de datos por fallos del disco duro pues nos proporciona mucha información valiosa de diagnostico, además de que nos dirá si el mismo se considera en peligro de muerte.

Internet en 3D, Microsoft intenta arruinarlo July 16, 2012

WebGL es una implementación web de OpenGL (librería de gráficos 3D) el cual compite con DirectX de Microsoft.

Resulta que WebGL nos permite visualizar contenido 3D directamente en nuestros navegadores e incluso haciendo uso de aceleración por hardware, como juegos, animaciones, etc. Por ejemplo, Google lanzó una versión de Google Maps en 3D y Google Body para estudiar anatomía en 3D.

HURD, el kernel original de GNU July 16, 2012

Estuve pensando en escribir una entrada sobre como probar GNU/Hurd, pero voy a empezar por hacer una introducción a lo que es el HURD.

Así que… Qué es HURD?

HURD es el Kernel original del sistema operativo GNU, del proyecto del mismo nombre fundado por Richard Stallman.

El desarrollo de HURD comenzó en 1990, pero nunca se liberó su versión final, esperada para el 2002. Por eso, su lugar en el sistema operativo GNU lo ocupó el Kernel Linux.

Cube Craft de Richard Stallman July 16, 2012

El otro día estaba viendo unas plantillas de cube craft bastante cómicas y mi intrínseca naturaleza geek me llevo a una idea: un cubre craft de Richard Stallman!.

Empecé a buscar una plantilla de cube craft de Richard Stallman sin resultado alguno, aunque en realidad suponía de antemano que sería una búsqueda infructuosa. Entonces lo que hice fue tomar una plantilla para hacer con ella una de nuestro ídolo.

Reparando Arch tras actualización (error while loading shared libraries':'':' Cannot open shared object file) May 2, 2012

Hoy, igual que todos los días luego de arrancar mi sistema, lo primero que hice fue pacman -Syu como cualquier Archer haría, y mientras se actualizaba el sistema me ocupaba de mis asuntos, luego de unos minutos regrese a la terminal y me percaté de que la actualización había fallado, así que repetí pacman -Syu pero pacman no iniciaba y daba un mensaje de error:

pacman: error while loading shared libraries: cannot open shared object file: No such file or directory

Modding, PC sumergida (PCera) parte 2 April 15, 2012

Hoy traigo la continuación de mi proyecto pecera con un par de cosas:

Primeramente, he llegado a la conclusión de que este MOD es más estético que funcional, puesto que la refrigeración propiamente dicha no resulta más eficiente que la tradicional, aún con el movimiento de el aceite producido por los ventiladores.

Sin embargo, si encuentro la manera de a su vez refrigerar el aceite, SI que seria mucho más eficiente que el flujo de aire tradicional, pero mientras busco la manera presento lo que tengo hasta ahora:

Red Libre':' Cuenca Wireless April 14, 2012

Esta vez me gustaría comentar algo que ha estado rebotando en mi mente: la creación de una “Red Libre”

Y eso qué es?

Pues bueno, una red libre es mas bien un grupo de personas con el animo de hacer algo que sea útil no solo para ellos mismos, sino también para su comunidad local. Se basa principalmente en la formación de una red local basada en tecnología wireless. Así pues se lograría crear una red de la comunidad y para la comunidad que podría contar con muchos servicios libres, por supuesto entre ellos salida a Internet.

Modding, PC sumergida (PCera) parte 1 April 13, 2012

Has visto alguna vez un PC MOD?

Seguro que si, pero yo no me había enterado de su existencia sino hace unos 5 meses atrás. Por si alguien no sabe a que me refiero pueden ver un ejemplo aquí:

Decidí hacer mi propio MOD, bastante rudimentario y casero pero creo que no completamente despreciable:

Navegando en 3D en nuestros directorios (película "hackers") April 7, 2012

Recuerdas la película “Hackers”? Cuando los sistemas de archivos son grandes torres y los personajes vuelan por ellos?

Pues muchas veces la realidad tiene la capacidad de superar a la ficción y es por esto que hoy les presento un proyecto de software libre que nos permite navegar por nuestro sistema de archivos en 3D mientras volamos sobre él!

Capturando imágenes en Python con OpenCV en Arch Linux April 7, 2012

Recientemente me interese por la capacidad de tomar frames con una webcam desde Python y en busca de como lograr tomar imágenes encontré OpenCV, una librería de visión artificial para C/C++ que tiene bindings para Python, así pues es perfecta para jugar con Python y una webcam.

El único problema es la poca documentación existente de esta librería en cuanto a su uso con Python, pero con un poco de búsqueda he encontrado pequeños programas de muchas personas que me podrían ayudar a entender su funcionamiento.

Screenshots en Arch Linux April 6, 2012

Ayer, mientras preparaba un screenshot para la siguiente entrada, me topé con un obvio problema: en Fedora tomaba screenshots con la tecla “Impr Pant Petsis” (según lo esperado, claro.) Pero cuando lo intente en mi Arch nada sucedió, así que empecé a buscar el software de captura que fuera de mi agrado y encontré scrot, expongo el proceso para poder tomar screenshots en nuestra instalación de Arch:

Recuperar Arch luego de reinstalar Windows (recuperando grub) March 27, 2012

Muchas personas tienen en su computadora un “dual boot” con su amada distribución de GNU/Linux (cual fuese) y una instalación de Windows por necesidad y fuerza mayor.

Es bien sabido que una instalación de Windows parece tener la tendencia natural a podrirse por si solo y sin intervención externa. Tras una instalación fresca, Windows será lo único que arranque pues la MBR queda sobre escrita.

No me alarmaba la situación, pues cuando usaba Fedora reinstalaba fácilmente grub ejecutando grub-install desde anaconda (Fedoreanos ;) ), pero cuando recordé que ya no tenia esta facilidad (Arch), puse un grito de angustia en el cielo. Sin embargo luego de una tarde de intento-error, mucha investigación y sobre todo mucho aprendizaje logré restaurar grub y tener un final feliz. Expongo lo que hice en caso de que le sirva a algún otro Archer en apuros.

De "Fedoreano" a muerte, a "Archer" de corazón March 17, 2012

He decidido iniciar este blog con un relato de mis experiencias con GNU/Linux puesto que en la gran mayoría de publicaciones haré uso de este sistema.

Por allá hace como un año y medio era yo un sufrido usuario de Windows, con conocimientos aceptables sobre su funcionamiento y con varios virus de juguete escritos por diversión (si, escribir un virus es una excelente forma de conocer profundamente el funcionamiento de un sistema). Toqué los limites del sistema con frecuencia y me sentí limitado por estos varias veces.

Read Older Posts