HN user

j2d2j2d2

630 karma

Python, erlang and guitars!

Twitter: @j2labs

Code blog: j2labs.tumblr.com

Code: https://github.com/j2labs

Posts22
Comments125
View on HN
www.getrichslowly.org 15y ago

How I built my own house - without a mortgage

j2d2j2d2
1pts0
pieratt.tumblr.com 15y ago

CEO of Svpply: I have no idea what I'm doing

j2d2j2d2
177pts72
twitteraccountcreator.com 15y ago

Twitter account creator

j2d2j2d2
2pts1
j2labs.tumblr.com 15y ago

Slides - ZeroMQ: Super Sockets

j2d2j2d2
1pts0
stackoverflow.com 15y ago

What does your .gitconfig contain?

j2d2j2d2
78pts7
j2labs.tumblr.com 15y ago

A bunch of floating point errors

j2d2j2d2
2pts2
www.mensjournal.com 15y ago

The Blind Man Who Taught Himself To See

j2d2j2d2
1pts0
www.youtube.com 15y ago

Mark Suster interviews Jon Steinberg, Founder of BuzzFeed

j2d2j2d2
2pts0
j2labs.tumblr.com 15y ago

Meandering In Ocaml

j2d2j2d2
11pts0
j2labs.tumblr.com 15y ago

Speed tests for *json and cPickle in Python

j2d2j2d2
40pts21
bijansabet.com 15y ago

Your Tumblr reach is likely bigger than you think

j2d2j2d2
1pts0
dabeaz.blogspot.com 15y ago

Dave Beazley: Putting all of my Past PyCon/IPC Presentations on Slideshare

j2d2j2d2
9pts1
blog.aweissman.com 15y ago

Maximizing Serendipity

j2d2j2d2
8pts0
thegongshow.tumblr.com 15y ago

Thoughts on Social Altruism as a Vector of Virality

j2d2j2d2
2pts0
sixrevisions.com 15y ago

The Perfect Web Designer Should Not Exist

j2d2j2d2
2pts1
mediamemo.allthingsd.com 15y ago

Napster Changes its Tune on an iPhone App, and Joins the Crowd

j2d2j2d2
1pts0
aws.typepad.com 15y ago

Amazon Web Services Blog: Run Oracle Applications on Amazon EC2

j2d2j2d2
3pts0
analytics.blogspot.com 15y ago

Google Analytics Blog: iOS 4 Compatible Mobile SDK Now Available

j2d2j2d2
2pts0
www.appleinsider.com 15y ago

Crowds gather for China iPad launch, China Unicom starts iPhone 4 preorders

j2d2j2d2
1pts1
neteffect.foreignpolicy.com 15y ago

One week inside the Haystack | Net Effect

j2d2j2d2
1pts0
mediamemo.allthingsd.com 15y ago

Something You Knew Already: Rich People Trading Magazines for iPads

j2d2j2d2
2pts0
highscalability.com 15y ago

Google's Colossus Makes Search Real-time by Dumping MapReduce

j2d2j2d2
1pts0

That is a goal of Brubeck too. By using DictShield for modeling you get all your modeling needs, including serializing to Python dictionaries or JSON strings, but it doesn't have an opinion on what database you us.

Your database layer might change, for whatever reason, so you adjust a few queries for loading data and you're back in action.

In addition to this many people haphazardly choose their framework and make the mistake of using Tornado without understanding how nonblocking I/O works. If a user chooses.

Brubeck, they would get nonblocking support for free, which makes it a considerably safer haphazard choice.

I think it's unfortunate that the power of choice isn't as appreciated outside the Python world but I can also relate to people who feel they have to read way too much stuff.

In spite of this, however, Brubeck indeed aims to be a one-stop shop. It uses coroutines + nonblocking I/O to make scaling up easy but it also a web.py style routing system because all of us know this style already.

J2 Labs is the name of my consulting company (and twitter account @j2labs).

Brubeck + DictShield are both projects that have risen from building API's for startups. I aim to make Brubeck as useful as possible for building web projects a quick and easy process, without sacrificing easy scaling.

My thinking here is that a solid model should help developers build their idea fast and make it through the early days of startups without breaking their backs.

I don't particularly like working with Tornado because it offers little support for the plethora of Python drivers that are blocking only. On top of that, the callback model, while powerful, can lead to some seriously confusing code.

I believe people will find the combination of Mongrel2, eventlet and a database agnostic modeling system (DictShield) very flexible.

The difference here is that Brubeck answers ZeroMQ messages from Mongrel2 instead of being a web server. So instead of using WSGI, Brubeck connects to Mongrel2 via a ZeroMQ socket and reads messages representing the web requests.

Beyond that I attempted to create a familiar interface for everyone who's used a pythonic web framework before. Indeed, a lot like Flask, but also like Tornado.

* Tornado style routing: https://github.com/j2labs/brubeck/blob/master/demos/demo_min...

* Flask style routing: https://github.com/j2labs/brubeck/blob/master/demos/demo_noc...

Brubeck is a Mongrel2 handler which makes it effectively a ZeroMQ Framework. But it is built with web serving in mind so I (I wrote it) attempted to also bring many of the customs we're used to with web frameworks to the Python + Mongrel2 world.

There are many python frameworks and each serves a different need. If you are a Tornado user but find the blocking / nonblocking paradigm confusing, you would probably get a lot out of Brubeck because it replaces the IOLoop (like Twisted's reactor) with a simpler system, eventlet.

I'm glad you think it's hip! It's only a couple months old.

Everything you've said assumes these cities are going to explode with 1) enough people to buy the apartments and 2) enough people who can afford them.

Could you clarify your view on those two issues?

It shouldn't. Open source version numbers greater than 1.0 dont mean a whole lot.

Chrome, the browser, around version 8 (give or take). How much sense does that make?

Personally, yes. I like to use eventlet in Python partially because of that. Interacting with the scheduler is implicit in eventlet (and gevent, which some prefer) so you write code that looks synchronous.

On top of that, you get nonblocking I/O almost for free, similar to what node attempts to provide, where instead of real nonblocking I/O the system will make blocking I/O look like it's nonblocking. Scala does this too.

But, users of Twisted could also use inLineCallbacks for a similar feel, though it's not required. I'm curious if Node.js could just build the same?

I agree. It's interesting to see node fans get huffy when Erlang people say, "hey, we're still #1"

But for people who already love JS, node is a dream come true. It's really fast. Not as fast as Erlang, but more than fast enough to justify building massive projects in it. Assuming you are one of those that loves, or believes in, JavaScript...

Howard Schultz and Michael Dell come to mind first. Larry Page is the most recent.

Yahoo is a good counterpoint, though I'd suggest externalities like a lack of visionary leadership or a lack of intellectual capital, compared to their rivals, are more to blame.

Edit: Schultz wasn't a founder, but I believe he was their first visionary leader.

I'd like to see a return of Gates. Microsoft will continue being unvisionary if they bring anyone else to the table.

You just can't fake the magic of the founders.