¿Comprar una MacBook en América del Sur? Ya no, gracias.

Si estás a punto de comprar una MacBook/iMac nueva y vives en América del Sur, leé este artículo primero. Si estás feliz con tu MacBook/iMac igual te puede parecer interesante mi opinión. Si tienes una MacBook del 2014 o antes, y estás feliz… te felicito y te admiro, porque son realmente geniales. 😄 Si no tienes una MacBook ni te interesa… vive la vida. 😆

Soy un aficionado de Apple ya desde hace varios años, y me encanta la MacBook. Es un producto bien diseñado y perfectamente simple. Lo uso por mi trabajo como programador, y sin ello no pudiera haber hecho mi trabajo con el mismo gusto y pasión que con otra, pero algo cambió en los últimos años.

¡Pero qué preciosa! ♥

Todo empezó cuando la batería de mi Macbook, la que tiene ese Touch Bar fancy, empezó a hincharse. Primero lo tomé con calma, averigué mis opciones… aún estaba bajo garantía, y lo compré de un vendedor autorizado del país que también provee soporte técnico. Los llamé, y me dijeron que repararlo iba a costar US$500 y que iba a tener que dejar mi herramienta de trabajo por mínimo 2 semanas con ellos. Me quedé loco. No era una opción válida eso para mí.

Dos semanas sin productividad en pleno Enero – imposible. Podía usar la MacBook de mi esposa, pero ya era muy lenta… no iba a poder realizar bien mi trabajo. ¿Comprarme una nueva Mac? Era una opción, pero no tenía sentido comprarme un modelo viejo y por eso consideraba una iMac Pro que empieza a los $5000. ¿Tomo un vuelo a Miami? 900$ mínimo, y de igual forma no iba a saber cuánto tiempo iba a estar allá.

Mis opciones eran pésimas considerando que compré un producto que vale varios salarios buenos en mi país, siendo cliente fiel y aún estando bajo garantía y con tiempo de utilidad de menos de 12 meses. (!!!!!)

Mientras consideraba mis opciones el estado de mi MacBook empeoraba a diario. Ya tenía que usarlo con tapa inferior abierta para dejar que expande la batería. Es ahí cuando pedí un kit de reemplazo de batería por Amazon (me animé a hacer esos arreglos yo mismo después de ver unos videos por YouTube), de todos modos eso iba a tardar 3 semanas en llegar y en cualquier momento iba a poder perder la vida mi MacBook, entonces encontré esta opción:

Armar una Hackintosh

¿Qué es una Hackintosh? Es una PC con componentes normales que se puede conseguir en tiendas informáticas corrientes, pero que corre el sistema operativo de Apple, MacOS. MIEDO.

PC Specialist Invictus with keyboard, mouse and monitor

Soy programador, y entiendo alguito de arreglar y deshacer cosas electrónicas, pero mi primer instinto frente a esto fue un terror enorme.

No sabía qué implicaba hacer una Hackintosh, y al pensarlo me imaginaba a geeks que no vieron luz solar por años los que hacían esto, pero después dejé ese miedo de lado y empecé a investigar…

Investigué en foros, y encontré varios tutoriales… uno de los sitios más valiosos fue y es hasta ahora: https://www.tonymacx86.com/

Es ahí donde descubrí que no es comunidad pequeña y oscura, sino una comunidad en crecimiento frente a problemas similares que yo también estoy enfrentando…

“No estoy sólo!!” pensé, y despues de 48 horas investigando y motivación de un amigo sabía que esto era el camino a elegir.

via GIPHY

Aprendí que es importante elegir componentes que sean lo más similar posible a componentes de otras Macs… necesitaba un procesador de Intel, no uno de AMD, y una placa madre testeado por otros. También una tarjeta gráfica AMD, porque las de Nvidia no se llevan muy bien con Mojave.

En fin tenía una lista de componentes y un presupuesto que costaba mucho menos que una nueva iMac, y lo iba a tener un mucho menos tiempo, y lo más increíble… a nivel de performance que Macs que costaban US$5k para arriba, por dos quintos del precio!

También a diferencia de las otras Macs todos los componentes de mi computadora se van a poder actualizar con el tiempo!!! Esto es super importante ya que las exigencias cada año cambian en este ámbito.

Tomé mi lista y fui a una tienda local, lo pedí y apenas unas 12 horas despues ya lo tenía todo. Y esto es el resultado final:

Sorprendentemente lo más fácil fue armar la PC en sí, pero lo más lento fue instalar MacOS… me tomó casi un día completo para tenerlo corriendo, pero finalmente lo logré también.

Salvé realmente la situación con esto, y además hacía el mismo trabajo computacional 4-5 veces más rápido que mi MacBook del año 2017! Eso fue increíble…

También no estoy sacrificando nada de funcionalidad… literalmente todo funciona como lo espero. La única, pero única limitación que hasta ahora encontré es que no puedo desbloquear mi Mac con mi Apple Watch… que problemón! 😆(hay una solución para eso también, pero implica comprar una tarjeta por US$25 y no tengo necesidad de hacerlo).

En fin mi configuración celestial es esto:

  • Procesador Intel i7 8700k (overclocked a 5 GHz)
  • Memoría DDR4 64 GB (me ahorré una fortuna en esto, porque comprando 64 GB de memoría en el Apple Store… prepárale a tu bolsillo a ser violado)
  • Placa madre Asus Z370 Gaming 3
  • Adaptador PCI Wifi Rosewill
  • Memoria SSD NVME de 1 TB Samsung (increiblemente rápido!!!!)
  • Tarjeta gráfica AMD Vega 64 LC – lo conseguí a increiblemente buen precio de un amigo.

Volvería a comprar una Mac cuando hayan mejorado el soporte técnico para Apple en Paraguay… pero no lo veo muy posible ya que el mejor soporte es el soporte oficial de Apple, no de terceros autorizados. Con la Hackintosh solo tengo soporte comunitario, pero si se rompe un componente de mi Hackintosh no dependo más de Apple y puedo conseguir todo a nivel local.

Cuidado, no es todo color de rosas

Lo resumí bastante rápido, pero una Hackintosh no es una opción para todos. Aquí una lista de requísitos:

  • Tiempo para aprender sobre como instalar una Hackintosh… calcule una inversión mínima de 10 horas para elegir las partes de tu Hackintosh, 10 horas para conseguirlo y otros 10 para instalarlo correctamente.
  • Elegir los componentes correctamente… no todos funcionan, es primordial hacer una lista de componentes posibles para tu Hackintosh… Tonymacx86 es una fuente esencial para eso
  • Te tiene que gustar la idea de tener el control sobre tu sistema.
  • Cuando quieras convertir una laptop en Hackintosh aún más inversión en research es necesario.
  • Tienes que ser un poco loco/loca, pero te aseguro que vale la pena.
  • Yo sé que existen técnicos que se dedican a armar Hackintoshes en el Paraguay. Es cuestión de hacer unas búsquedas en Google.

Sigo usando mi MacBook, pero ya más para tareas livianas… en movilidad le gana 100x a mi Hackintosh.

Espero que te haya gustado. Mucha suerte, y cualquier consulta podes comentar abajo o tirarme un tweet.

Bye Evernote, Hello Apple Notes

A few months ago I made the switch from Evernote to Apple Notes… and I haven’t looked back since.

Copyright: “The Mac Observer”

The main reason being that Notes has OCR (Optical Character Recognition) out of the box, and it works great.

Finding documents by typing in some text? Blazing fast, and accurate enough.

Other reasons are:

  • Ability to unlock private notes with Touch ID
  • It’s ‘free’
  • It’s convenient
  • There’s really nothing I miss from Evernote.

I also read that Evernote had to size down lately, and to me it made sense seeing the direction they took… they are overpriced, and do not cater users like myself… their focus are businesses… and they’ve lost a paying customer.

I have mixed feelings about leaving Evernote, partly because I’d like to support a company that needs my money more than Apple, but Apple just built a product that’s simple and works. Like they do most of the time.

What do you use for note-taking? Let me know in the comments below.

First WordPress plugin: Add Basic Authentication support to Contact Form 7 API calls

So, I got into WordPress development. Truth is I’ve been working with WordPress for a long time already. What fascinates me about WordPress is leverage. You can quickly turn around new ideas in hours – not days or weeks.

My first WordPress plugin: Add Basic Auth to Contact Form 7 API calls

I hear people having had bad experiences with WordPress when they tried it like years ago… if you’re reading this: give it another shot. It has come a long way.

I’ve picked a client project which if I had needed to do it with Rails it would have taken me at least a week to get it to a stable state. With WordPress I delivered that same day.

PHP really seems very inefficient for building anything a little of larger scope, but people are getting things done.

First steps towards Blockchain development

I’m probably late already to the game, but nonetheless I do want to understand the technology behind Blockchain better, and so I picked Ethereum for my studies as it provides you with tools to build programs that run on top of the blockchain.

My goal is to be able to apply the acquired knowledge to future projects.

I’m taking this awesome course on Udemy called “Ethereum Blockchain Developer: Build Projects Using Solidity”.

What I’ve learned so far:

  • How to create your own local Ethereum network.
  • How I mined my first Ethers. (Kind of feeling rich, except I’m not haha as they’re worth nothing)
  • How to write, test, deploy smart contracts and how to interact with them.
  • How to interact with the Blockchain in the console
  • How to use TestRPC to write smart contracts.
  • Understanding how Ethereum and Blockchain works underneath.

What I still need to learn:

All-in-all a very practical course – I already recommended it to my buddy Cesar Rodas, who also seems to have liked it.

November 27

Today I started taking a course about ReactJS on Udemy. I am serious
about it, because ReactJS presents a new way to write better and faster web
applications.

I also purchased a course about React Native, which is also very
intrigueing because it promises unified and native app development for
Android and iOS with JavaScript only.

I can’t wait to report on both of them.

Oculus Rift app ideas for 2020 or earlier

  1. Bycle riding gamification

    Riding a bicycle is boring. Riding down pretty much the same old ways to work every day?
    What about chasing objectives while you’re riding with your Oculus Rift turning
    routine into a new adventure every day?

    Combine this together with a fitness tracker to automatically adjust distance
    to work depending on your current fitness level.

    A mashup of Google light radar system + Oculus Rift. Pure awesomeness.

  2. Running on steroids

    The Oculus Rift could also make running essentially so much more interesting, as bicycle riding.

    Are you tried of those same walks in the park every day, and need a little extra motivation? No problem!
    Imagine escaping a fire behind you, and the only way to escape it before it burns you to death is, you guessed it, to run…

    Again, this would imply using an additional device for mapping your surroundings, which bring me back to Google’s light radar.

  3. Deep-ocean diving in your backyard

    Do you own a swimming pool? Congratulations, you are now allowed to join our experimental, naval elite team for deep-diving missions.

    Don’t forget to charge your oxygen bottles though…

If you could build anything want to make life more interesting with technology, what would it be?

Debugging delayed_job jobs from within the console

Did you ever want to step in with the Ruby debugger to fix or inspect
a background job? Here’s how:

DISCLAIMER: Tested with delayed_job 2.14. Should work with recent
versions, too.

Open a rails console within your project

$ rails c
Loading development environment (Rails 3.2.13)

Initialise a delayed_job worker, and make it output to console by
passing {quiet: false} to its initialiser.

1.9.2p325 :001 > worker = Delayed::Worker.new({quiet: false})
 => #

Start the worker

1.9.2p325 :002 > worker.start

Now you can put a debugger statement into your jobs and debug nicely
without using loggers.

Where am I now?

It has been two year since my Google Code-In participation in 2010, and today the 2012 grand-prize winners were announced.

That event help me as a milestone my life. I look back to it, to remember what I achieved when I hardly had any programming skills.

What happened in 2 years professionally?

  • I am proficient now in Ruby and JavaScript, and learned a dozen different programming languages.
  • I worked with start-ups, companies and awesome clients, gathering the important social skills I hadn’t had before, and getting to know the frustrations working with bad clients, freaky time-schedules and bad pay, so-called “experience”.
  • Launched various projects.
  • Continuous contributions to Open-Source.
  • I write better code, but it still sucks, just less than before.

Still I feel mediocre. I feel like I could have contributed more, learned more languages, met more cultures, played less games, studied more for college, done more ambitious projects.

Though, I firmly believe, fighting mediocrity has been the most important challenge I have picked up ever since I know that I am just as any other guy, and that I am fully motivated to kick ass.

Byte for Byte.

Show latest commit ID in Rails

I find it useful to display the current git commit ID of my application:

In your application’s Gemfile add the grit gem, which is a Ruby wrapper for git, and run Bundler.

If you deploy your web application via Capistrano and git, then you can put the following in your app/helpers/application_helper.rb:

[gist id=3679774]

Make sure the repo you are deploying to is non-bare. If you are not sure about that, in the project’s directory run:

[gist id=”3679892”]

If you see a SHA-1 Hash, life is good.

Now in your template you can add the helper anywhere you like – most people prefer to put that info in the footer:

[gist id=”3679825”]

How easy was that!

Sencha Touch 2 JSONP response with Ruby on Rails

I had a hard time how to make JSONP response data render in a Sencha Touch 2 list view, but I made it. WOOT.

Maybe, truth to be spoken, I had a harder time figuring out how JSONP actually worked. I had to understand that I had to wrap the JSON object into a JavaScript callback function and change the content type of the response to “text/javascript”. ( I still don’t get it. ;) )

So, here’s the code:

The last line of the the index method will be clear when you understand read the query string parameters which Sencha sends to the server:

and, ultimately the Sencha Store object:

I wonder if you can write a more elegant method?