g3rv4

A blog sporadically written by a very lucky passionate nerd

I love Jekyll. It’s not only straightforward to use for web developers and it’s extremely extensible. But, once you have a bunch of posts, it can get slow.This site was taking 16s to build on my local environment, so I wrote a plugin to only generate the posts I’m working on, and now the whole thing takes less than 2s.

So far, I’ve enabled htmlwidgets on 3 Jekyll based blogs, authored with RStudio. It’s been harder than I anticipated, and I learned a couple things that I think could be useful for other people.

If you have a shiny app, you don’t pay for the pro version, and you want to detect mobile browsers (to tweak your logic) then this post is for you.

Did you ever want git to do things a bit different? In my case, on one repo, I want git push to push to 2 remotes when not in master. Here’s how I did it.

I’m going to be writing about different things on my blog, here’s why :)

For some reason, I enjoy seeing, clicking and typing nice URLs (being able to say that my blog is at gmc.uy/blog, my twitter is gmc.uy/twitter and my Stack Overflow account is gmc.uy/so makes me happy)… so I’ve always had a way to maintain it, but it was pretty… involved. I wrote a 67 LOC script that lets me define the URLs on github and supports multiple domains.

Have you ever had your local IIS run a site local.something.com and eventually needed to test it on your phone (to optimize it beyond the emulator) or to share it with a coworker? you may end up doing lots of releases to your development environment just to see minor layout changes.If you have, and you’d like to expose your environment either on your network, then this article is for you. Otherwise, just go on with your life ;)

My experience interviewing for a job at Stack Overflow (and actually getting it!). The most interesting thing is probably the quality of the blog posts I link to. On the long weeks that the whole interviewing process took place, I scraped the internet looking for other people’s experiences… so here I try to “pay it forward” to my future Stackers!

I’ve been elgerva, Gervasio, gmc-dev, gmc_dev… and now, I’m g3rv4. A playful nickname that I feel it identifies me better than all the other nicknames (and that was availabe everywhere!). Also, this blog is built with Jekyll, its code is available on github and it’s deployed automatically on my server with a simple bash script. I had a blast setting it up, I even wrote my first Ruby lines while doing so!

A quick tail of how I started running and built a Chrome Extension that modifies the XHR requests/responses to trick the Garmin Connect web application to show me what I want to see… extensions have so much power over what we see.

I started playing with Docker and I dockerized all the apps that are running on my server. It was all super straightforward except for… Asterisk! here I talk about how I made it happen (it amazes me how you set up Asterisk boxes and just forget about them… they just work)

TL;DR: As part of a system to report the time I’ve worked on an issue from TimeDoctor to JIRA, I’m doing the OAuth2 dance using selenium and PhantomJS (effectively doing what OAuth2 without a password grant tries to avoid… having the application know the user password).

Doing authentication and authorization of an AngularJS application with a C# backend, using signed tokens… I thought a lot about security, is it enough? I’m not sure, but I surely like this article :)

When I wrote this I was super excited to be attending Twilio’s conference, and I planned to build a system to show my skills in there. I didn’t finish it in time, and I honestly didn’t have an awesome time at that conference either :P but it felt wrong to just delete this… if nothing else, you can see some of my positive thinking.

I’m pretty proud of this little project… It’s just a small python app that polls via telnet to a Portech MV-372 and checks if any new text messages arrived. If they did, it posts them to a RESTful API. It also exposes a RESTful API for other applications to send messages. The beauty? it works! despite the awful AT Commands.

I installed Asterisk 12 on a Raspberry… but I didn’t document all my steps because I followed another blog’s instructions. Guess what? that blog is now offline :P

I “discovered” (in the same sense that Columbus discovered America) Flowroute as a VoIP trunk provider. This post isn’t particularly insightful… but when I wrote it (in 2013) I was really excited about these things just existing.

This is how I used to update my Route 53 DNSs record. Right now I’m using a python script, but as soon as I’m bored enough to update it, I want to switch to DigitalOcean’s DNS… they’re free included and update super fast.

I was working with twilio, I started playing with Asterisk and obviously wanted them to interact. I was so proud of what I did that I wanted to share it, so this is why I started this blog… This is the first post of 4 about it. There’re way better ways of doing it today, but these posts were an extremely important part in how my professional life changed for the better. So I love them unapologetically.