When I'm not spending time with Jessica and my kids ... I build web applications. Ruby on Rails developer, believer of Agile Development and Lean startups. NoSQL enthusiast.
One of most important thing about startups is that you can collect usage metrics in real time. However, being able to make decisions with this data is not easy. It’s important to understand how to collect and use these metrics, and develop a decision-making framework for startup development. The framework should be based on goals that are measured through discrete users or startup events that have either user or business value.
Dave McClure has been talking about startup metrics since 2009. The first time I saw his talk was during TechStars NYC class of summer 2011.
McClure define five main ways to bucket the events you’re measuring: Acquisition, Activation, Retention, Referral, Revenue (AARRR => the pirate reference)
In Scribd there is a good introduction about stock & options for tech entrepreneur or startup employee
(Also there is a kindle version available in amazon)
Thanks to the combination of smartphone proliferation, the app store distribution model, FB Open Graph integration and Twitter, we are seeing mobile apps reach incredible metrics very fast - particularly in daily installs and sign ups.
It’s has me thinking about a number of things:
FB Open…
If you’re like me, a fan of rebasing local work before publishing, maybe you receive this error:
"interactive rebase already started"
This happens when you abort in the middle of a rebase.
The way to fix it is using:
git rebase -i --abort
Introducción a NoSQL
Charla que dí en el @BogotaConf el 31 de Octubre de 2011.
I sync automatically my passwords between my macbook, ubuntu laptop and iPhone, using KeePass and Dropbox.
KeePass is a cross-platform (Windows, Linux, Mac) open-source password manager that enables you to safely lock away your passwords, PINs, credit cards in a local encrypted file.
The next syncs needs on the iPhone needs manual intervention:
More info in this post: Using MiniKeePass with Dropbox
Seriously, most of the problems that you’re solving are social, not technical. The web is decades old at this point, most people have considered these kinds of problems in the past. That doesn’t mean that they always have the right answer, but they usually do have an answer, and it’d behoove you to know what it is before you invent something on your own.
My conscience won’t let me call Ruby a computer language. That would imply that the language works primarily on the computer’s terms. That the language is designed to accomodate the computer, first and foremost. That therefore, we, the coders, are foreigners, seeking citizenship in the computer’s locale. It’s the computer’s language and we are translators for the world.
But what do you call the language when your brain begins to think in that language? When you start to use the language’s own words and colloquialisms to express yourself. How can it be the computer’s language? It is ours, we speak it natively!
We can no longer call it a computer language. It is the language of our thoughts.
Hace un par de semanas conversé con Anairene (@edelweiss) sobre Piictu en el programa de radio Makina con La Mega.
Para los que quieran oirla aquí les dejo el link al podcast del Programa No 208 - Piictu de Makina con La Mega.
Gracias una vez más a Nacarid y Anairene
If you’re debating a point for more than 30 min, shut up and vote. You’ll move faster by doing something stupid and figuring out that it’s wrong than by endlessly searching for the “right” decision
Movistar no da soporte para el uso de su Internet Móvil en Mac OS X 10.7 (Lion), solamente soportan desde 10.4 hasta 10.6. Sin embargo, si funciona, he aquí lo que yo hice para configurarlo:
De la página de Movistar sigues las instrucciones para descargar e instalar el Escritorio Movistar.
Cuando lo instales es muy probable que te de un error como me ocurrió a mi
No te preocupes, hazle un restart a la máquina y en tus aplicaciones vas a tener el “Escritorio movistar Latam”, arranca la aplicación, en mi caso la aplicación detectaba el modem Huawei pero no se conectaba, si te ocurre lo mismo, ve a “Escritorio Movistar Settings” y vas a “My Internet connections”, ahi editas la conexión por defecto o creas una nueva (y la luego la marcas como por defecto).
Los cambios que hay que hacer en la conexión son:
Guardas los cambios (recuerda que la conexión debe ser la usada por defecto) Y eso es todo, ya deberías poder conectarte
In ActionMailer (Rails 3) you can’t decide not to send an email. For instance, you have the following mailer:
class FooMailer < ActionMailer::Base
def bar_email
if some_condition
mail(...)
else
# Can I do nothing? No :-(
end
end
end
If you invoke FooMailer.bar_email.deliver!, when same_condition is false you will get the following error:
ArgumentError: A sender (Return-Path, Sender or From) required to send a message
The workaround for that is move the condition to the place where you are making the call to FooMailer.bar_email.deliver!
To add your Heroku application as a remote in your git repository, use the following command:
git remote add heroku-remote git@heroku.com:project.git
Where project.git is your heroku application, and heroku-remote the name you want for the remote, in my case I usually have several remotes, one for production, staging and dev
Esta es la presentacion que di en el BogotaConf (@bogotaconf) sobre NoSQL
(Update 19/Abr/2012): Agregado el video de la charla
Edit the file: /path/to/SublimeText2/Packages/Ruby/Ruby.sublime-build to contain this:
{
"cmd": ["/path/to/ruby/bin/ruby", "-cw", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.ruby"
}
Then create the following file /path/to/SublimeText2/Packages/User/ruby_check.py:
import sublime, sublime_plugin
class rubyCheck(sublime_plugin.EventListener):
def on_post_save(self, view):
if view.file_name()[-3:] == '.rb':
view.window().run_command("build")
Now when you save your ruby file automatically the syntax will be checked
Here the gist
All things in the universe start from a point and return to a point. One point calls up a new point, and extends into a line. Everything is a scene of gathering and dispersal of points and lines. Existence is a point and life is a line, so I am also a point and a line
If you’re working in your feature-branch:
git checkout feature-branch
and by mistake you pull from a wrong branch (usually master or develop):
git pull origin different-branch
You can fix it with this:
git reset --hard origin/feature-branch