Archive for the ‘Featured’ Category

The Most Fun You Can Have With a Computer

03 Jan

Early 2014 I needed to write a website transaction monitor, that receives instructions on transactions to perform on websites using a real web browser. It performs the transactions and verifies that the website is working. Examples of transactions include log in to a website to verify that users can still login, or checkout on an e-commerce site to verify that the shopping cart is working. Being mostly an OOP programmer (with Ruby exposure to high order functions and anonymous functions), I quickly realized that my imperative style of programming would not be sufficient for this project. This program needed to be declarative and correctness was extremely important.

It was time to search for solutions outside the Ruby community and outside any community that favors OOP or imperative programming.

I first turned to the Common Lisp community searching for enlightenment, I started with the book “Practical Common Lisp” by Peter Seibel. Common Lisp seemed cool, way more capable than Ruby but I wasn’t feeling any enlightenment. My biggest problem with Common Lisp was that the language and its tooling is outdated in today’s modern programming world. Luckily I found and switched to Scheme.

After reading the book “Simply Scheme – 2nd Edition: Introducing Computer Science” by Brian Harvey, Lisp clicked in my brain, I got my first spark of Lisp enlightenment. I then read the “The Little Schemer” by Daniel P. Friedman, which is now one of my favorites books. Scheme became my favorite programming language.

Next I read the Wizard book, “Structure and Interpretation of Computer Programs” by Harold Abelson, then came the next level of enlightenment. Few chapters into the book I found answer to writing my declarative website transaction monitor. In a few lines of code, I wrote a website transaction monitor that works like a tiny lisp interpreter, takes instructions for transactions in the form of S-expressions which gets evaluated and performed on a website using a real web browser. This was written in Ruby available here on github, its part of a bigger project I’m working on and i’m still going to be cleaning it up.

At that point I was all about Lisp, I tried to see if I can use Scheme in the real world. Chicken Scheme is a good implementation to use for real world Scheme apps but around that same time, I discovered Clojure.

Clojure and its tooling is modern, and even got some inspiration from Rails and the Ruby Community. Clojure has programmer happiness in mind. I started learning Clojure bought the books “Programming Clojure” by Stuart Halloway, “The Joy of Clojure” by Michael Fogus, “Clojure Cookbook: Recipes for Functional Programming” by Luke VanderHart. Published my first Clojar little-couch, which is a simple port of my RubyGem Leanback from Ruby to Clojure. All just for fun.

I write Ruby code fulltime at my day job, my side projects are 99% Ruby, I’m heavily invested in the Ruby ecosystem, and Rails is still a powerhouse in web development, Rails is always a safe bet when building a web application, most problems you run into have already been solved by Rails. These are strong arguments for me sticking around with Ruby otherwise I would switch to Clojure/functional programming and never look back.

I wanted to experience a pure functional language, so I started learning Haskell, read and still reading “Learn You a Haskell for Great Good!: A Beginner’s Guide” by Miran Lipovaca. I enjoyed the book but I need to read other sources to understand Monads. I plan to spend some more time playing with Haskell in 2015. To fully understand functional programming I feel I should learn a pure functional language thoroughly. For now Haskell is my first choice with OCaml a close second. I also have Elixir in mind as a language to get into at some point.

In 2014, through functional programming I re-discovered programming once again, it felt like the time I first started programming, I felt that sense of adventure and endless possibilities. 2014 was the most fun I have ever had programming. I can say with evidence, that functional programming is the most fun you can have with a computer.

Also worth mentioning, I enjoyed reading the book “Functional JavaScript: Introducing Functional Programming with Underscore.js” by Michael Fogus.

Great essay by Paul Graham on Lisp and programming languages


This thing of ours, has gone mainstream

14 Nov

You know that something has really gone mainstream when it appears on a South Park Episode. This year it appears as if Trey Parker is actively reading Hacker News. Things I thought only belonged on Hacker News front page are now appearing on South Park episodes, software is really eating the world. If you doubt it, watch south Park’s current season.

South Park Season 18
Episode 1 – Go fund yourself – about startups and crowdfunding, features kickstarter
Episode 4 – Handicar – About Car sharing, and Electric Cars features Lyft, Uber, Tesla and Elon Musk
Episode 5 – The Magic Bush – About Drones and privacy
Episode 6 – Freemium isn’t Free – About Freemium and mobile apps business models.
Last night’s episode 7 – Grounded Vindaloop – About virtual reality. Features Oculus freaking Rift.

Big question, what is Trey Parker’s Hacker News handle.

South Park is the definition of mainstream, the discussions on HN that we thought the rest of the world would not care about is now the center and focus of the mainstream. Now is definitely a good time for kids to start learning programming.


Startup idea: Elastic Cloud for Music

24 Sep

I would like to see a music streaming service with a vast music collection similar to Spotify and Rdio but instead of providing an app and charging users for subscription, this startup would simply provide an API that gives developers access to build apps with their music collection and charge developers for bandwidth and storage, similar to the way Amazon s3 charges for bandwidth and storage.

It would be like the early days of twitter when developers could plug in to twitter’s pipeline and build social apps, but the difference here is that is that this startup already has a business model. So no conflict of interest with third party developers.

With the creativity of developers I can only imagine the diversity of music apps we could see from this. Developers with special interest in certain music genres could create human curated music apps for the genre. There will be genre specific music discovery apps and music streaming apps that are tailored for specific situations.

I hope someone would build this service.


Finding Nemo with Google Maps

26 Sep

Google is like a mad scientist with $50 Billion in the bank. They did Google Earth but that wasn’t enough for them. Now they are doing seaview, you can browse underwater, follow a clown fish in search of Nemo. I’m sure someone is working on “spaceview”.

View Larger Map
Try swimming with the sea turtles.



JavaScript: 2011 Technology of the Year

01 Feb

JavaScript had a great year in 2011. Here are some of the best moments for JavaScript last year, in no particular order:

-Adobe killed Flash on mobile devices and will start the transition of their web technologies to HTML5/CSS/JavaScript here.

-Microsoft killed Silverlight as their cross platform runtime environment to focus on HTML5/CSS/JavaScript here.

-Microsoft announced that “metro style” apps for Windows 8 will be built in JavaScript/CSS/HTML. More about it here.

-Adobe acquired Nitobi (Creator of PhoneGap), and donated PhoneGap to Apache Foundation. This move could make  PhoneGap a standard for mobile development here.

-Rails 3.1 adopted CoffeeScript causing great controversy and the most colorful Github page ever here.

-There was always a cool new JavaScript project on the first page of Hacker News. Here’s some of the best I remember:

J-OS – JavaScript operating system

JS Linux – Boot a Linux kernel right in the browser.

Broadway.js – H264 decoder in JavaScript.

pdf.js – PDF reader in JavaScript.

JavaScript IDE– Create web apps in JavaScript right from your browser.

There you have it and jQuery was everywhere. I write this as a Ruby/Unix guy, who thinks JavaScript had an extra-ordinarily great year. I may have missed other important moments. Feel free to add more in the comments.

It’s equally important to give credit to the players that helped make JavaScript the Technology of the Year. I will list them below:

  •  The Open Source community:  For all the awesome  wizardry.
  • Google: For moving the open web forward, supporting the FOSS community and releasing great open source technologies like Google Chrome and V8.
  • The Webkit Open Source project and Apple.
  •  Steve Jobs for excluding Flash on iDevices and selling HTML5 as the future of the open web.

Let’s have a toast for JavaScript.

When in doubt, do a barrel roll

04 Nov

So business guy is looking for a programmer to build his app. Here’s how the interview went.

Programmer: “I built a nosql database that uses javascript for queries. It even supports map/reduce. I also wrote a h264 decoder in javascript. I can build your twitter/google+/facebook social app.”

Business guy: “hmm I don’t think so. I’m looking for a rockstar ninja Rails and .net programmer.”

Programmer: “Ok watch this.”

Programmer opens his web browser, goes to google and types do a barrel roll.

Business guy: “Wow that is awesome!”

Programmer: “Hit refresh”

Business guy: “Wow dude, you’re HIRED!”

(Note: “do a barrel roll” works only on Chrome, Safari, Opera and Firefox. Try it when your pitch is failing. Good luck.)


Best Video Game Trailer Ever: Dead Island

22 Oct

One problem I’ve always had with video games, is that they can’t connect with you emotionally, the way movies do. This game Dead Island maybe able to change that. Watch it’s trailer below;

It’s amazing how they told this very emotional story in 3 minutes. I’m not a gamer but I might try this game, even if it’s just to get back at those zombies for that little girl.

I hope the game lives up to expectations.


It’s just some code you can’t use

06 Jun

Whats the point of Hackathons? You sit down and code for 24 hours. Eat junk food all night, drink lots of soda and red bull. Then end up writing a lot of bad code.

At hackathons, your M.O. is to write code that appears to work, it doesn’t matter how it works. Once you get a feature appear to be working, you move on to code other features. The problem with this type of code is that it doesn’t scale. It makes you feel like you have a working product, but you really don’t. It works fine when you have 10 users but it starts to fall apart when you get to 1000+ users and becomes huge mess when you get to 10000+ users. I think this is a pointless way to build software. You write a lot of code in 24 hours but you end up with a lot of code you can’t use later. You also learn a ton of bad coding habits.

The best thing to do at a hackathon if you must go, is to socialize with people while you work on your long term side project. Its a great place to meet new people and share ideas with them but not the place start and finish something useful.

At the Techcrunch Disrupt hackathon.


Most Creative People in History Starring Conan O’Brien

25 May

(l to r) Madonna, Conan O’Brien, Steve Jobs, Moses, Teddy Roosevelt, Albert Einstein, Frida Kahlo, Socrates, Ben Franklin.


Coder Girl – An ode to female programmers

05 May

…feels like my first hello world
what it is to run with a coder girl
and it ain’t hard to like how she writes
with her pretty interface, plus her source is tight
wanna get in where I fit in like a plug-in
this is the true meaning of computer lovin’…

Pass this on to your coder girl. Check out more videos here:
This song hits the spot. I still remember my first ‘hello world’ written in QBASIC. It felt amazing. So I know exactly what he means in the song.

Premium Wordpress Plugin