Sal Aguilar's Bilingual Adventures in IT

computers are easier to deal with than people

Tigo vs Claro en Nicaragua – mi experiencia — February 20, 2019

Tigo vs Claro en Nicaragua – mi experiencia

Esta semana decidí hacer un corto video explicando mi experiencia al pasarme de Claro Nicaragua a los nuevos servicios residenciales de Tigo

Les comparto el video:


Cualquier pregunta o comentario, lo pueden hacer en YouTube, en ésta misma página o públicamente en Twitter @riper81


miniDLNA issues on MacOS Mojave (part 1) — November 13, 2018

miniDLNA issues on MacOS Mojave (part 1)

Last week I finally had some courage to update my Macbook to Mojave. The latest version of the MacOS family. The only thing I was really looking forward was the security updates and Dark Mode. Aside from that, it was unappealing to me.

Today, I downloaded some videos and wanted to fire up my minidlna local install only to find out that service was not working. None of my devices was able to see the DLNA service so I couldn’t stream to any TV.

I started investigating.  I did the basics, tried to restart, and services were launching fine.

➜ ~ brew services restart minidlna
Stopping `minidlna`... (might take a while)
==> Successfully stopped `minidlna` (label: homebrew.mxcl.minidlna)
==> Successfully started `minidlna` (label: homebrew.mxcl.minidlna)

Since everything seem fine, and still I couldn’t see the DLNA media. I went to the logs.

➜ ~ tail -100 /usr/local/var/log/minidlnad.log

I saw some errors which caught my attention. So I decided to remove it completely.

➜ ~ brew remove minidlna
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Uninstalling /usr/local/Cellar/minidlna/1.2.1_1... (11 files, 307.6KB)

And I saw the xcrun error, invalid active developer path? After quickly reviewing in Google this was due to the X Code Command Line tools that needed to be installed. It seems when Mojave was installed, the old X Code Command line tools were removed. Ok now we are getting somewhere. Now I would install that package. Again I went to my terminal and:

➜ ~ xcode-select --install

The package started downloading. It was about 130MB. Once it was installed I went and installed minidlna again.

➜ ~ brew install minidlna
==> Installing dependencies for minidlna: ffmpeg
==> Installing minidlna dependency: ffmpeg
==> Downloading
######################################################################## 100.0%
==> Pouring ffmpeg-4.1.mojave.bottle.tar.gz
🍺 /usr/local/Cellar/ffmpeg/4.1: 282 files, 55.4MB
==> Installing minidlna
==> Downloading
######################################################################## 100.0%
==> Pouring minidlna-1.2.1_1.mojave.bottle.tar.gz
==> Caveats
Simple single-user configuration:

mkdir -p ~/.config/minidlna
cp /usr/local/opt/minidlna/share/minidlna/minidlna.conf ~/.config/minidlna/minidlna.conf
ln -s YOUR_MEDIA_DIR ~/.config/minidlna/media
minidlnad -f ~/.config/minidlna/minidlna.conf -P ~/.config/minidlna/

To have launchd start minidlna now and restart at login:
brew services start minidlna
Or, if you don't want/need a background service you can just run:
==> Summary
🍺 /usr/local/Cellar/minidlna/1.2.1_1: 11 files, 307.9KB
==> Caveats
==> minidlna
Simple single-user configuration:

mkdir -p ~/.config/minidlna
cp /usr/local/opt/minidlna/share/minidlna/minidlna.conf ~/.config/minidlna/minidlna.conf
ln -s YOUR_MEDIA_DIR ~/.config/minidlna/media
minidlnad -f ~/.config/minidlna/minidlna.conf -P ~/.config/minidlna/

To have launchd start minidlna now and restart at login:
brew services start minidlna
Or, if you don't want/need a background service you can just run:

Once it was re-installed. I tried to launch it once more.

➜ minidlna brew services start minidlna
==> Successfully started `minidlna` (label: homebrew.mxcl.minidlna)

It launched, again, with no error but still it wouldn’t work. Sighs. We have to keep digging. So I went to the logs again, on a bug hunting mission and found this:

[2018/11/13 20:04:46] minidlna.c:1048: warn: Starting MiniDLNA version 1.2.1.
[2018/11/13 20:04:46] minissdp.c:131: error: bind(udp): Address already in use
[2018/11/13 20:04:46] minidlna.c:1080: info: Failed to open socket for receiving SSDP. Trying to use MiniSSDPd
[2018/11/13 20:04:46] minissdp.c:84: error: setsockopt(udp, IP_ADD_MEMBERSHIP): Bad file descriptor
[2018/11/13 20:04:46] minissdp.c:189: warn: Failed to add multicast membership for address
[2018/11/13 20:04:46] getifaddr.c:338: info: Enabling interface
[2018/11/13 20:04:46] minissdp.c:830: error: connect("/var/run/minissdpd.sock"): No such file or directory[2018/11/13 20:04:46] minidlna.c:1083: fatal: Failed to connect to MiniSSDPd. EXITING%

Reviewing online on the minidlna site, they do suggest to try to install such software.

Funny enough I found a link to my article on that link.

Right now I will keep reviewing and will come back later with an answer.

WordPress 5.0 ya tiene fecha — November 9, 2018

WordPress 5.0 ya tiene fecha

Acaban de publicar en el blog de Make WordPress la fecha de lanzamiento oficial…

Noviembre 27 2018

Lo que es bueno para todos, ya que podremos respirar para Black Friday & Ciber Monday que son dos de los días de más ventas en los sitios web.

Lean más aqui:

WordPress 5 Beta 1 is released TODAY — October 24, 2018

WordPress 5 Beta 1 is released TODAY

Today it was announced that we are going to have WordPress 5 Beta 1. Go to the link below for more information!

WordPress Administrado vs Alojamiento Compartido #WCSJO2018 — July 23, 2018

WordPress Administrado vs Alojamiento Compartido #WCSJO2018

El día de ayer, Domingo 22 de Julio del 2018, me uní a más de 700 personas para ser parte del tercer WordCamp de Costa Rica.  El evento estuvo super concurrido y con asistentes de Argentina, España, Estados Unidos, Guatemala, El Salvador y siempre miembros de la Comunidad WordPress de Nicaragua.

En esta última edición me tocó hablar sobre las diferencias entre el WordPress Administrado y el Alojamiento Compartido, abajo les dejo mi presentación

Working from #CostaRica — June 13, 2018

Working from #CostaRica

Today, we moved into our new apartment in Costa Rica, our new home away from our home, #Nicaragua.

We’ve been talking a lot in the past about trying to live on a different country than our own. But due to family, work and finances we never made the decision to do it.

Last week after more than 50 Days of Protests, Riots and Government sponsored attacks against our people, we decided to live for a few months apart from our madness. I was with high blood pressure all the time due to the attacks and uncertainty and lack of safety for my family. I was constantly taking anxiety pills to control my humor and blood pressure. My wife was stressed, crying and worried for our new born and her wellbeing.

We decided for Costa Rica with our broken hearts for leaving our country, but thinking only on our kids well being, we got our bags together and left our life, our house, our comfort, our cars, our sisters and brothers behind.

We purchased the tickets in COPA and decided to stay in Costa Rica for 3 months, with hopes that we can return to Nicaragua in less than that. We got ourselves an apartment with the help of our good friend Alejandro from a talented photographer, video editor and web developer.  He picked us up from the airport and hosted us on his house along with his lovely family for a couple of days. We feel blessed to have you guys as our friends. Much love and blessings to you all.

Our kids are missing home, we can tell. We too are missing Nicaragua. But now they are safe. I still wait for my eldest son, who stayed behind with his mom and stepdad. I think of him every day, several times a day. I miss him.

I’m still working, I’m honestly grateful for working for, which allow me to work from anywhere in the world and have made changes to allow me some time to take care of my family and get settled and keep them safe. Thanks Jon and the entire #Kinsta Team. We are forever grateful for your help!

I am now again working, helping people with web problems and I have part of my family safe. I am sure Nicaragua will get thru this, we are a courageous country. We got this.

If you want to know more about what is going on in Nicaragua follow this hashtags on Twitter:




this is a test from #WCMIA — March 18, 2018
Introduction to WordPress Security by Sucuri — February 14, 2018

Introduction to WordPress Security by Sucuri

Security on websites and mostly on WordPress which is on more than 29% of the entire internet, its crucial, preventive security is 10 times cheaper than proactive security.

Below is an amazing and easy to follow infographic about WordPress Security by my favorite Website Security provider: Sucuri

See the full infographic here:


Understanding HTTP Headers — January 29, 2018

Understanding HTTP Headers

If you do not know what HTTP Headers are, let me run a quick introduction, and if you do, then it would be just a refreshment.

What is HTTP anyways?

HTTP stands for Hyper Text Transfer Protocol, which is the protocol that we use on our browsers and to visit web pages and similar services. Since HTTP is part of the TCP, stack than it means that the flow works just like PING PONG. Below a simple graphic to explain it:
More about HTTP

HTTP is a protocol and it has several methods. The most used methods are:


The HTTP GET method is used to request a specific URL or file, some examples below:




This is basically what happens when you put a domain on the browser bar and click enter, or when you click on a link within a website. Your browser then generates an HTTP GET request to the server asking for that URL.

Its basically a request from the visitor to a server asking the server to send information.


The HTTP POST method is used on the opposite way. The POST is used when the visitor sends information to the server to process. Some examples can be:

  • Filling out a contact form and clicking SEND. The POST method that the visitor sends, it will contain all the information of the contact form, and the server will receive the info and process it accordingly.
  • Filling out any form.
  • Adding products to shopping cart.
  • Doing a checkout process on any e-commerce website.

We do not usually see the POST contents on the browsers unless you use your browser’s Developer Tools to check on what is happening on the background.

Now that we’ve covered the basics, let’s talk about HTTP HEADERS!

What are the HTTP HEADERS?

HTTP Headers is all the extra values that are added to the HTTP GET & POST requests. Below a quick example:

First we do the request


Then the server answered this:

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Sat, 27 Jan 2018 01:08:18 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive

What does that mean?

Let’s break it down shall we?

HTTP/1.1 301 Moved Permanently

The HTTP 301, is a what is called a permanent redirect. This will tell your browser to load a different page, it will get the value from the LOCATION header.

Server: nginx

The SERVER header, it will tell you what software is the web server using to serve websites. On this case the web server used is NGINX. Other values could be Apache, LiteSpeed, ISS, etc.

Date: Sat, 27 Jan 2018 01:08:18 GMT

The DATE header provides a timestamp of the time the request was served.

Content-Type: text/html

The CONTENT header will tell you what type of media file is, if its a text, media file or binary file. It will depend on the MIME TYPES setup on the server.

Content-Length: 178

This one, the CONTENT-LENGTH header will simply tell you the size of the file requested.


As discussed on the HTTP 301 header, the Location will tell the server what URL it should load instead of the that was requested initially.

Ok so that’s simple right? Let’s move on. Let’s now try to load the to see what happens. Let’s go!


And now the server answer was this:

HTTP/2 200
server: nginx
date: Sat, 27 Jan 2018 00:18:39 GMT
content-type: text/html; charset=UTF-8
strict-transport-security: max-age=86400
vary: Accept-Encoding
vary: Cookie
link: <>; rel=shortlink

Let’s break the answer now, since there are new values and new headers there. We are just getting started.

content-type: text/html; charset=UTF-8

As you can see the CONTENT-TYPE header now included a charset setting besides the MIME TYPE.

strict-transport-security: max-age=86400

The STRICT-TRANSPORT-SECURITY header is related to HSTS and the policy that tells your browser how long to cache the request.

vary: Accept-Encoding
vary: Cookie

The VARY header tells the other proxies if they should cache a similar request or if they should request a new one..

link: <>; rel=shortlink

The LINK header provides a relationship of the present request to the link provided on this header and the relationship. On this case it tells you that is a SHORTLINK to 

How do you use HTTP HEADERS to troubleshoot issues?

Checking the HTTP Headers of your website it can help you solve all of the following issues:

  • Too Many Redirects.
  • Failure in forms. The POST event might have gotten a HTTP 404, 403 or 500 error.
  • SEO issues with 302 or 301 redirects.
  • Caching issues (if an URL is cached, missed or expired).
  • Media expiration status.
  • CDN cluster from which the asset is served.

Soon I will be writing about HTTP HEADERS for Sucuri, CloudFlare and Kinsta.

Stay tuned!

FREE Apps that I NEED on my MacOS computers — January 26, 2018

FREE Apps that I NEED on my MacOS computers


Google ChromeIt’s my go-to browser. I can publicly confirm that I don’t have love for Safari (#DieSafariDie) or Opera (#OperaWho?). I use Google’s Chrome as my personal browser and I use Firefox for work. Yes I keep my personal and work life separate and you should too. However Chrome is far from perfect, so I always add the following extensions:

  • UBlock Origin – To get rid of all the ads on all pages including ads on YouTube.
  • Ghostery – disable trackers, analytics, chats and other stuff and be ghost online.




As an IT Professional & SysAdmin, I do have to login to several services, servers, and its not SECURE to use the same password for EVERYTHING, nor to write them down on notepads or post-its.

I use KeePass as my centralized password manager, it allows you to create groups with icons, and it can help you generate secure passwords and even copy them securely and remove it from the clipboard as soon as you used them. And yes its FREE!



Working on support you are in constant need of sharing screenshots or capture part of your screen to point out specific parts either by highlighting. It also includes a useful feature to record a video of the your screen or partial regions of it.

It also comes with keys shortcuts for easier use and it comes with a free service that uploads them to a website and creates a short URL that you can share via email or social media.



One of the things I was missing from Windows & Gnome when I migrated to MacOS a few years back, was the ability to resize the windows of the apps and move them either to the sides or the top or even doing a maximize screen which MacOS was lacking. I found Spectacle and it solved my problem right away.

Managing the windows becomes as easy as if you were using Windows or Gnome. Try it out TODAY!



Keeping my documents and important information backed up and available on any computer makes me able to work from any computer or any place in the world. That is what I love about Dropbox.



The built-in terminal app that comes with MacOS is not bad, however iTerm2 brings many features that will make it way better, you will love the split panes, the search, paste history and much more.

Try it out  and you will never go back to the default terminal app.



Its a vital part if you work on the web, a FTP/sFTP client. The most used client in the world and that is FREE.

Saving different sites, credentials and different authentication methods. It’s a no brainer!




Resultado de imagen para vlcThe multimedia swiss knife app that you need to have to be able to see almost any video format and other types of media. It can even allow you to change media formats.

VLC is the the only video player and media player that you will ever need.



The last text editor you’ll ever need. It just… works. It has support for several programming languages and has tons of plugins that can enhances the functions of the site, such as git and other features.

It’s FREE so give it a try right away!



If you want to prevent your computer from going into screensaver mode or prevent the monitor from shutting down when you are away from it, then Caffeine is your solution.

It runs on the top bar of your MacOS and is ready to help you when you need!



In support jobs that I’ve held in KOM-1,, & you need to share the same instructions to customers or same greetings. This is where Typinator comes into play. 

It’s a text expander that optimizes the time you spend repeating similar replies to customers. You set short codes for sentences or paragraphs and avoid typing and Typinator replaces them with the entire values that you previously setup.



Resultado de imagen para slackThe modern communication tool to get rid of 200 emails a day. Slack is a super powered IRC platform, with tons of integration into the most popular platform like DropBox, Google Drive, New Relic, GitHub, BitBucket, etc.

It has clients that can run on web, Windows, Mac, Linux, iOS & Android. They do have a FREE TIER and other PAID plans that offer extra options.


What about you guys? What app am I missing from this list?

%d bloggers like this: