Jonmaim's Online http://jonathanmaim.com Most recent posts at Jonmaim's Online posterous.com Thu, 14 Apr 2011 06:05:00 -0700 Best Gmail UI ever! http://jonathanmaim.com/best-gmail-ui-ever http://jonathanmaim.com/best-gmail-ui-ever

Gmail_inbox_zero

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Sat, 26 Mar 2011 07:17:48 -0700 I wish i was 12 again #gameboy http://jonathanmaim.com/i-wish-i-was-12-again-gameboy http://jonathanmaim.com/i-wish-i-was-12-again-gameboy
Media_httpimagesinsta_jopra

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Wed, 16 Mar 2011 07:29:23 -0700 #war of the #world http://jonathanmaim.com/war-of-the-world http://jonathanmaim.com/war-of-the-world
Media_httpdistillerys_gagvr

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Sat, 12 Feb 2011 23:31:32 -0800 Somewhere in Montreux http://jonathanmaim.com/somewhere-in-montreux http://jonathanmaim.com/somewhere-in-montreux
Media_httpdistillerys_ejcfe

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Mon, 31 Jan 2011 10:06:10 -0800 Black mamba shrimps and red wine http://jonathanmaim.com/black-mamba-shrimps-and-red-wine http://jonathanmaim.com/black-mamba-shrimps-and-red-wine
Media_httpdistillerys_dhbsf

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Thu, 27 Jan 2011 00:21:01 -0800 My Grooveshark Playlist http://jonathanmaim.com/my-grooveshark-playlist http://jonathanmaim.com/my-grooveshark-playlist

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Sun, 23 Jan 2011 02:54:59 -0800 Old man with a cigar http://jonathanmaim.com/old-man-with-a-cigar http://jonathanmaim.com/old-man-with-a-cigar
Media_httpdistillerys_ekthe

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Fri, 21 Jan 2011 12:53:00 -0800 All you need for a friday night train trip! http://jonathanmaim.com/all-you-need-for-a-friday-night-train-trip http://jonathanmaim.com/all-you-need-for-a-friday-night-train-trip
Media_httpdistillerys_xbjig

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Mon, 17 Jan 2011 10:34:34 -0800 How Facebook ships code http://jonathanmaim.com/how-facebook-ships-code http://jonathanmaim.com/how-facebook-ships-code

Sources:

http://framethink.wordpress.com/2011/01/17/how-facebook-ships-code/
http://www.reddit.com/r/programming/comments/f3u0n/how_facebook_ships_code/c1d3b37
http://www.quora.com/What-kind-of-automated-testing-does-Facebook-do/answer/Steven-Grimm 

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Thu, 06 Jan 2011 07:59:05 -0800 Javascript: JSON.stringify does not output functions! http://jonathanmaim.com/javascript-jsonstringify-does-not-output-func http://jonathanmaim.com/javascript-jsonstringify-does-not-output-func

RTFM:

Json

Demonstration:

Example

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Mon, 03 Jan 2011 10:02:00 -0800 Snow Adventure! http://jonathanmaim.com/snow-adventure http://jonathanmaim.com/snow-adventure

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Thu, 23 Dec 2010 23:18:51 -0800 This is it! http://jonathanmaim.com/this-is-it http://jonathanmaim.com/this-is-it
Media_httpdistillerys_wfmby

Taken at Place de la Palud

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Wed, 22 Dec 2010 10:28:30 -0800 TheBros http://jonathanmaim.com/thebros http://jonathanmaim.com/thebros
Media_httpdistillerys_wjdfl

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Sun, 19 Dec 2010 07:24:52 -0800 Explosion http://jonathanmaim.com/explosion http://jonathanmaim.com/explosion
Media_httpdistillerys_xator

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Thu, 16 Dec 2010 10:36:39 -0800 Best WebGL demo so far: Google Body Browser http://jonathanmaim.com/best-webgl-demo-so-far-google-body-browser http://jonathanmaim.com/best-webgl-demo-so-far-google-body-browser

Enjoy bowsing the layered human body! But before anything else please install Firefox 4 beta to get a WebGL compatible browser.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Wed, 15 Dec 2010 23:16:00 -0800 You can make more wealth http://jonathanmaim.com/you-can-make-more-wealth http://jonathanmaim.com/you-can-make-more-wealth

Money is not wealth. It's just something we use to move wealth around. So although there may be, in certain specific moments (like your family, this month) a fixed amount of money available to trade with other people for things you want, there is not a fixed amount of wealth in the world. You can make more wealth. Wealth has been getting created and destroyed (but on balance, created) for all of human history.

Paul Graham

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Thu, 02 Dec 2010 12:34:29 -0800 Client-side technologies used in the #NewTwitter http://jonathanmaim.com/client-side-technologies-used-in-the-newtwitt http://jonathanmaim.com/client-side-technologies-used-in-the-newtwitt
While browsing Quora - a great social question/answer site I recommend you to have a look at - I stumbled upon this question about the client-side technologies used in the new Twitter experience. Here are some short introductions on these hot technologies:
  • Mustache templating language: Although this template engine is not very concise, its strength is that it can be used on the client-side as well as the server-side. 
  • jQuery: Do I really need to introduce this one? ;-)
  • LabJS: Parallel loading of javascript resources that make your page load faster. Here is a benchmark to show you the potential improvements.
  • Modernizr: Detects if specific HTML5 features are present.
  • JSON-P: (JSON with Padding) is a workaround for the Ajax cross domain problem. It exploits the idea that you can dynamically create a new <script> linked to an external resource to fetch external data. More explanations here and here.
  • oEmbed: Format to turn an URL that points to a rich data (e.g., image, video, ...) into structured meta-data (dimensions, author, title, etc.). This is ideal to embed the rich data on your site.

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Mon, 22 Nov 2010 02:25:08 -0800 Working backwards http://jonathanmaim.com/working-backwards http://jonathanmaim.com/working-backwards

At Amazon, when designing new products they work backwards from the customer until they get the minimum set of features that will satisfy the customer problem. The benefit of the method is to avoid overbuilding things.

Here is the Working Backwards process as defined here and here: 

  1. Start by writing the Press Release. Describes in a simple way what the product does and why it exists - what are the features and benefits. It needs to be very clear and to the point. One page max. Here is the outline:
      Heading - Name the product in a way the reader (i.e. your target customers) will understand. 
      Sub-Heading - Describe who the market for the product is and what benefit they get. One sentence only underneath the title.
      Summary - Give a summary of the product and the benefit. Assume the reader will not read anything else so make this paragraph good.
      Problem - Describe the problem your product solves.
      Solution - Describe how your product elegantly solves the problem.

  2. Write a Frequently Asked Questions document. Includes questions that came up during the press release creation and questions that other folks asked when you shared the press release.

  3. Define the customer experience. Mockups of each screen that the customer uses. The goal here is to tell stories of how a customer is solving their problems using the product.

  4. Write the User Manual. Three sections: concepts, how-to, and reference, which between them tell the customer everything they need to know to use the product.

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Wed, 17 Nov 2010 02:27:00 -0800 Storing password data with MongoDB and Node.js http://jonathanmaim.com/storing-password-data-with-mongodb-and-nodejs http://jonathanmaim.com/storing-password-data-with-mongodb-and-nodejs

Imagine the worst case scenario with your webapp: someone infiltates your system and is able to steal your database and all its sensitive data like passwords! Are you using MongoDB and Node.js? You're probably wondering what's the best solution as MongoDB currently has no solution to hash passwords automatically. Anyway you certainly want to avoid any of these automatic helpers; just do a quick google search for "cracking mysql password" and you'll get convinced ;-)

An interesting solution is coming from Paul Buchheit's blog, which proposes to use the bcrypt library to compute salted-hashes instead of weak MD5/SHA-1 ones or worst plaintext passwords.

There is a bcrypt javascript port on github tailored for node. The core of the library is in C and uses libbsd so you have to use the node-waf utility provided with node to compile it. Here are the commands on Ubuntu:
sudo apt-get install libbsd-dev; cd node.bcrypt.js; node-waf configure; node-waf build; Everything should work fine, but in case something is going wrong, here are the different setup commands I've had to write in my particular system config to make this work:

  • I added a link in the node directory to make node-waf work correctly:
    cd node/lib; ln -s ../tool node;
  • The wscript used by node-waf in the node.bcrypt.js directory was missing node include path:
    ../node/src ../node/deps/v8/include/ ../node/deps/libev/ ../node/deps/libeio/
  • Finally to require the bcrypt lib from my app I added an index.js file in the root directory of node.bcrypt.js, which contains:
    var bcrypt_lib = require('./bcrypt_lib'); module.exports = new bcrypt_lib.BCrypt();

Congrats! You can now enjoy robust hashing!

 

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim
Fri, 12 Nov 2010 13:19:06 -0800 Funny comments on Techcrunch http://jonathanmaim.com/funny-comments-on-techcrunch http://jonathanmaim.com/funny-comments-on-techcrunch

I hope these comments are still funny out of context :-)

Screen_shot_2010-11-12_at_10
The original article

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/838571/Screen_shot_2010-11-03_at_10.33.17_AM.png http://posterous.com/users/KGcnSrVlT3 Jonathan Maim jonmaim Jonathan Maim