How to move Javascript functions out of its closure to save memory

December 6, 2020

Long time ago I talked about a pattern I use (a lot!) abusing the functional methods of Javascript to earn some memory and CPU usage. I promised to create a blog post, and almost 4 months after (too much energy draining work...), here is it.

[^1]: I would need to check if this is still true with modern Javascript engines [^2]: In fact, this is the root cause of the infamous

Read More

How to paint over a video with HTML

November 1, 2020

I recently got to work on a project where I need to capture a camera, sendback some drawed feedback, exchange commands and chat messages (and voice comments), and record everything. I've always been interested on using non-mainstream features of the Web Platform, and after taking a look of the current state of the art, I've found a way to implement this particular use case using ONLY open and readily available web standards.

Read More

How to simulate Chrome is running in a TTY

April 25, 2020

I've always loved terminals and retro-computing. I find they were a technology that didn't got fully their full potential due to graphical interfaces (it's strange I say this since my first computer was a Macintosh LC II at a time where everybody else had at most a PC with Windows 3.11...). That's the main reason I added support for Unicode BPM plain in Linux kernel for NodeOS, specially to have available the Braille patters used by blessed-contrib to draw graphical diagrams in the terminal. That's the reason why when I discovered BOOTSTRA.386 project, a Bootstrap theme that mimics a text-mode interface in a website similar to old BBSs (fathers of web forums, and grandfathers of current online walls), I got enthusiastic about the idea of making it compatible with real terminal web browsers like Links, w3m or Lynx.

Read More

What's `re-start`?

April 15, 2020

React Native is a framework derived from React that allow to program mobile native apps using Javascript. It's only focused on Android and iOS, but its popularity has lead to other implementations of its API for other platforms like Windows, macOS or also web. Thing is, although they share the same APIs and source code is (almost) compatible between them, they are not integrated so it would surface difficulties to add a new platform to an existing code, or forcing to have several different projects that could lead to duplicated efforts or diverge the features of them.

Read More

Freelancer calculator

March 30, 2020

At the same time I work as employee, sometimes I get offers for freelance projects. It's difficult to find a balanced rate between both schemes, so using Google Spreadsheet I've done a calculator to adjust them. The calculator is focused for Spain taxes (one of the reasons texts are in spanish), but should be easy to addapt to other normatives.

Read More

OS lifecycle

March 19, 2020

projectlint is a projects-wide linter and style checker I've been working on during the last weeks. As part of its set of rules, one of them ensures that the current version of the operating system where the code is running is maintained and updated. But, is there a npm package with info about the operating systems lifecycles? Nope... enter OS lifecycle.

Read More

Confirm deletion in RESTful APIs

March 1, 2020

When designing web services, it's normal to include an option to delete an user's account. Since this is an important action (the user and its data will dissapear from the platform), usually this is done by asking him to confirm the operation, with several endpoints one for each operation step. Navigating between different pages is so 2010-style, and there's no direct mapping at this point between REST APIs and CRUD operations, that I've been thinking in a REST compatible alternative: use a token.

Read More

How to have a blog on Github

February 5, 2020

Since I was a child I never liked to write. I was more a thinker, a tinker and a doer, and found really tedious to start writing ideas that I could already do, explain or show. In fact, I hated the idea of receiving a diary as a present for making my first Communion (somewhat typical here at Spain, and luckily didn't happen to me) because I found boring to write about things that already have happened while I would be creating new ones. The same reason why I'm not too much into blogs (both writing and reading) because I pay too much attention to what I say and how I do it, and get to be really slow to get fully polished my final text (I mostly did my bachelor thesis code in 6 months... and later spended other 14 months more just for writting the project memory. It's ironic that the times I got to write something, people got surprised that I have a somewhat good style... and more ironic that having written so much (open) source code, probably in lines number I could be able to make both Dan Brown and J.K. Rowling to fall on their knees :-P Unluckily, they have got more revenues for their jobs than me, good for them :-)

Read More