Yahoo mail is terrible

I’ve been using Yahoo Mail the last couple of days, and that shit is so terrible, I had to write this blog post about it.

1. It’s slow as snail — Something is definitely wrong with the javascript engine on yahoo mail. Clicking between folders is significantly laggy and sometimes it just bugs out and won’t load

2. Mail delivery and receiving is not instant — I’ve had mail that did not arrive for over 10 minutes. WTF… I don’t think I’ve ever seen anything like this on any other mail program I’ve used.

3. The default font is like 7pt. What the hell.

4. Spam filtering is bonkers — They put half of my mail in spam. I keep marking things as not spam, but it doesn’t seem to change anything.

5. Why the fck do they keep asking me to create a public profile?? — This is like that whole G+ fiasco. I just wanted to change the name on my email, but I could not do it until I signed up for their public profile.

Stop using Yahoo Mail. It’s terrible.

Bill and Melinda Gates commencement speech at Stanford

You don’t even have to leave your computer to see that people have no idea what poverty and suffering looks like outside of our borders.

Go to a liberal new source like: reddit, nytimes, npr, etc.. and read the comment section of stories about the new influx of illegal minors crossing the border.

You will see that the top comments are something like “these people are terrible parents”.

That kind of sentiment shows a complete lack of understanding about the degree of suffering people are facing.

The desperation that forces parents to send their children to make a perilous trek across the desert should not be perceived as bad parenting, but as a horrific reminder that those people’s normal lives are WORSE.

Like Melinda Gates said, “there is no difference at all in what we want for our children”.

I did not arrive at this understanding because I possess some sort of superior capacity for empathy. In fact, I am usually chided for lacking empathy.

The only reason I understand this dilemma so well is because I know many Vietnamese parents who’ve made the same choices.

They put their entire family, fortunes, hopes and dreams in small boats and headed out to sea risking starvation, drowning, and piracy. But at that time, it was the “better” alternative.

The power of prayers

One thing that I miss about being religious is having the option to pray.

For non-religious people, the act of praying may look awfully weird. Like a child writing a Christmas wish list to Santa Claus.

But that’s not how I experienced prayers. It was more like having a quiet moment to sit down and talk to a close friend and counselor who is a great listener.

And the power of pray did not come from the hope that God would use his power to make your problems go away. I never believed that God would answer my prayers by letting me win the lottery, or strike down my enemies. But instead, the power of prayers came from the peace of mind that you get after praying.

Religious people have a great imagery for this: Footprints in the Sand.

For example, when something sad happens in my life, like when a family member get sick, I used prayers to deal with the sadness and powerlessness of the situation. Or when something exciting and unpredictable happens like when I applied for college. I relied on prayers to assure myself that everything is going to be ok and it will all work out.

I understand that it’s all psychological and there are many alternatives such as therapy, drugs, or even yoga…. and that’s fine. But prayers work and it’s free.

Nowadays, I don’t have that option in my toolset.

When shitty things happen, I just stare blankly into space. I don’t know who to turn to, or what to think. The uncertainty of life is just that: uncertain.

TypeError: can’t convert ActiveSupport::Duration into time interval

TypeError: can't convert ActiveSupport::Duration into time interval

One of those stupid bugs that shows up in one environment, but not the other.
Both environments are running the exact same version of Ruby (1.8.7), Rails (2.3.4), and ActiveSupport (2.3.4)

The confusing thing is, on the environment where that works, this does NOT:


Which is the correct behavior. But why would Timeout::timeout work??

Looking through the ActiveSupport source yielded nothing of value.

I know the solution is:


But I just want to understand why.

UPDATE: I was wrong. I was using Ruby 1.8.7 vs Ruby 1.8.7 EE

In Ruby 1.8.7 EE, The Timeout::timeout method is different.

It does not raise from a failed sleep

      y = Thread.start {
        sleep sec
        x.raise exception, "execution expired" if x.alive?

Like Ruby 1.8.7 does

    y = Thread.start {
        sleep sec
      rescue => e
        x.raise e
        x.raise exception, "execution expired" if x.alive?

Rails SSL – certificate verify failed

Woke up one morning to find the outbound ssl connections my app (Ubuntu / Apache2 / Ruby on Rails) was trying to make, are no longer working (it was working just fine yesterday) with the following errors:

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

It took a frustrating couple of hours digging around, and ending up on several unhelpful stackoverflow answers, for me to come to this conclusion:

The trusted SSL certs for my servers were out of date:


The fix: Find the latest version of ca-certificates.crt and replace it.

If you don’t drink you’re a pussy

Drinking alcohol is a human social experience that I do not understand.

I can drink at most 2 beers, or other alcoholic equivalence of that. But even then, I find the feeling of drinking alcohol to be very discomforting. I get nauseated, I don’t like the feeling of losing control of my senses, and feeling just sick in general.

It amazes me how much people can drink. It amazes me more how much people crave drinking, and how drinking is an absolutely normal part of the human experience and an essential part of enjoyment and entertainment.

Every culture, every country, every nationality has alcohol and drinking is a crucial part of social bonding and celebration.

Because of this, I often feel like an outsider at social events. I can pretend to enjoy alcohol, but in my mind, it’s like ingesting a poison to pacify peer pressure.

I don’t understand when in human society did alcohol consumption become a necessary adaptation. It’s perhaps just as important, or more important, than having the ability to shake hands, smile, and chit-chat with fellow human beings.

Sometime I wonder if we co-evolved with alcohol, and that some how it is essential to the survival of the human body, so that is why most people have a craving and desire for it. If that is the case, my DNA is some how screwed up and I lost that trait.

I don’t begrudge people for drinking. It’s like my obsession with crawfish, I am sure some people will find that very strange. But I have begun to increasingly notice that drinking often leads to some very bad decisions.

The one clear bad decisions that I have watched countless people make, after drinking, is driving intoxicated. I know, I know. We’ve all been educated about the dangers of driving drunk, but you would have to be lying if you tell me that you’ve never had friends or family drive while clearly intoxicated.

Yes… When I do witness such events, I always offer my advice and help, but there it is not easy to convince someone that they have had too much. They will ALWAYS tell you they are fine.

It’s easy to intervene if that person is a close friend, but it is almost IMPOSSIBLE to do anything for anyone else. I am not a praying man, but I have on numerous occasion prayed that the person I am asking to not drive, just make it home ok.

The other thing I don’t understand is why people drink around their family members. I understand and can sympathize with drinking around friends and having some great drunken fun, but why would you want to be ass drunk around your mom?

Anyways. Just some thoughts from a pussy who can’t drink.

How to tether the Nexus 5 on T-mobile

On the Nexus 4, you could easily tether on tmobile by enabling the hotspot.
On the Nexus 5, they disabled it. If you connect to the hotspot and browse, it will redirect you to t-mobile’s website.

Here is how to get around that. (Credit: xda-developers)

  1. Download the Android SDK
  2. Enable debugging on your phone: Settings > About Phone and then tap on ‘Build Number’ 10 times.
  3. Connect your android to your computer
  4. Find the program “adb” in “platform-tools” and run the following commands
  5. # get your device's serial number
    adb devices
    # load adb shell for the device found above
    adb -s <serialNumber> shell 
    # in adb shell run this magic command
    settings put global tether_dun_required 0

That’s it. Your phone can now tether.

This technique is awesome because it does not require rooting your phone and you are only using official tools provided by Google itself. No third party apps necessary.

Google pays ransom

It’s very interesting to look at the list of groups that google donates their money to:

On this list are both left and right foundations, as well as democrat and republican congress members.

There are many groups on this list that I find absolutely disgusting: Heritage Foundation, Ted Cruz, Texas Public Policy Foundation, etc…

But I guess it’s not really fair to say that Google is bias or conservative, since they also donate to groups that I like: Electronic Frontier Foundation and The Brookings Institution.

I don’t know what to think about it. The more I look at it, the more it just looks like this is a list of people Google pay ransom to.

How to use Lenovo OneKey Recovery Factory Restore

I have a Lenovo G450. I wanted to change the hard drive. The recommended way to do it is to use OneKey Recovery and burn a DVD to re-install the OS. Who has DVD-writable discs lying around? Not me.

Here is how to re-install the Windows Operating System that came with your Lenovo OneKey Recovery easily. You can even put this on a USB stick to make it easier.

  1. Unhide the hidden OneKey Recovery partition on your hard drive named “LENOVO_PART”
    • Use
    • When you open PTEDIT32, you will see all the partitions. One of them will be “type” — “12” which is a hidden partition type. Change that to “type” — “07” (like the others)
    • Save and reboot
  2. Find the OS image in the hidden partition. It should be under “LENOVO_PART\OKRBackup\Factory\OS.okr”
  3. Download this tool “Windows Automated Installation Kit” to get the program imagex.exe and bcdboot.exe (you have to install the program, then look around in the program files for imagex.exe and bcdboot.exe)
  4. Format the destination Hard Drive you want to load the OS onto. You could either have this Hard Drive connected as an external HD, or you could have loaded it from WinPE or something…
  5. Run imagex. Tell it to use the OS.okr image to write the OS to your desired destination. Like this:
    imagex.exe /apply C:\path\to\OS.okr 1 D:\
  6. Once it’s finished, make the new OS installation bootable with:
    bcdboot.exe D:\Windows
  7. Reboot and you’re done.

This make it super easy for you to backup and move your Lenovo Factory OS partition. No more stupid OneKey Recovery console, or DVD burning.