An early birthday present: The Gmail Javascript compiler was just open-sourced! http://code.google.com/closure... (it compiles JS into smaller, faster JS)
Unfortunately it looks like the internationalization features may be missing. I wonder why those were removed? (or if I'm just not seeing it)
- Paul Buchheit
@Paul the Closure project has three components: compiler, library, and template language. Looks like the Closure/library might be competing with jQuery.
- Shakeel Mahate
I think jQuery does a lot of stuff that might confuse the compiler, e.g. iterating over an array of string function names and creating new function wrappers (look at the way the parent/child/next/prev/etc functions get installed) The Closure library is also full of type annotations that help the compiler make better optimization choices, so you're likely to get a better compiled outcome using Closure than jQuery + fixes + compiler
- Ray Cromwell
@paul -- I know you've been wanting this opensourced for a long time. sorry it took such a long time. Nick Santos and the jscompiler team has finally done it! Cheers!
- Jing Lim
Congratulations to the team (and @Paul & Jing) -- I know everyone's been waiting a long time for this. For anyone considering whether to use jQuery vs Closure, consider that they're meant for largely different purposes. jQuery's good for enhancing static web pages; Closure's much better at building large apps. And as Ray points out above, Closure the library is going to get much better results from Closure the compiler than an arbitrary js library would, because of all the type annotations.
- Joel Webber
Paul Buchheit has been at the top of my best of pages all month. Rock on, Paul.
- Donald C. Lindsay
Hey HAPPY BIRTHDAY PAUL !!! Cool present!! <insert CAKE> :D
- Susan Beebe
I just opened the link and I'm kind of astounded. I had no idea what a deep influence Paul had over at Google. Created GMail? I am in awe. That plus Friendfeed and many other accomplishments. Happy birthday, Paul. I know we get fussy here sometimes about you, but that's only because we love so much what you helped create, and we're terrified at the thought of it vanishing.
- Kamilah Gill
"multiprocessing is a package that supports spawning processes using an API similar to the threading module. The multiprocessing package offers both local and remote concurrency, effectively side-stepping the Global Interpreter Lock by using subprocesses instead of threads. Due to this, the multiprocessing module allows the programmer to fully leverage multiple processors on a given machine. It runs on both Unix and Windows."
- Jim Norris
from Bookmarklet
Spooky. I have had this page open in a browser window for the past week.
- Gabe
Interesting. I was not aware that Python has multiprocessing lib. Can someone teach me how commonly this module used by pythonista? For example, is FriendFeed using it? The best part I like about Java is its java.util.concurrent package and I wish I could add this kind of feature to Ruby someday. (I'm nahi at ruby-lang.org, one of a std-lib committer)
- NaHi
from f2p
I wasn't aware of it either, and I don't think it's commonly used, but it's pretty interesting. FriendFeed mainly uses Tornado's nonblocking event-driven architecture along with a little bit of multithreading.
- Jim Norris
I had stumbled upon this a few weeks ago; works great for those cases where you want to take some else's (potentially non multi-* aware) code and throw it across all of your cores.
- Eric Borisch
Jim: Thanks for comment. I found that multiprocessing module is bundled as a std-lib from Python 2.6 (2008-10-01, PEP 371). Widely adoption is yet to come and you picked this as a topic; I've understood now. And for me it's interesting to know that FriendFeed mainly uses Tornado's events for background jobs. Jobs I thought are search indexer, keyword matcher, index table updater, cleaner, etc. I thought these jobs needs to be passivated/backup-ed and restored but it may not be needed by careful design.
- NaHi
from f2p
(Sorry for Ruby topics) GIL is a hot topic in Ruby world as well and Matz (Ruby designer and CRuby developer) seems to think it may not be a serious problem in this many-core era. He's also driving projects for MVM (multi-VM) and distributed KVS.
- NaHi
from f2p
He who refuses to do arithmetic is doomed to talk nonsense -- John McCarthy
- Peter Norvig
from Bookmarklet
Great article. After watching Levitt treated with kid gloves on the Daily Show the other night, it's good to see the details broken down like this. Yet another case of "useful for getting attention in a book" != "correct or sensible in any way".
- Joel Webber
"Note: Sprint is currently rolling out the ability to enable free call forwarding. Until that is completed, this feature may not work or you may be charged every time someone leaves a voicemail." I'll give it a shot and see what happens.
- Benjamin Golub
Yeah, I'm going to need to look into T-Mobile's call forwarding rate. I'm sure there will be one.
- 1x29
I liked this part: ---Users specify high-level desires: *“99%ile latency for accessing this data should be <50ms” *“Store this data on at least 2 disks in EU, 2 in U.S. & 1 in Asia”
- Ahmet Alp Balkan
"phenomenon in which a word or set phrase is separated into two parts, with other words occurring between them: "A-whole-nother", "Abso-fuckin-lutely", "Wel-diddly-elcome"."
- Simon
from Bookmarklet
Author Arundhati Roy on the Human Costs of India's Economic Growth, the View of Obama from New Delhi, and Escalating US Attacks in Af-Pak - http://www.democracynow.org/2009...
""This nickel-a-line-of-code gig is lame. You know where the real money is at? You start your own religion." And that's how both Extreme Programming and Scientology were born."
- Bret Taylor
From 2006, but just read it today. So many classic lines...
- Bret Taylor
"Norvig’s writeup is a short essay explaining about 100 lines of Python that can solve any Sudoku. Jeffries [inventor of XP] writeup, by contrast, is spread over five lengthy blog postings here, here, here, here, and here and ends without coming anywhere close to actually producing a program that can solve any but a tiny subset of all Sudoku problems." http://www.gigamonkeys.com/blog...
- Bret Taylor
This is so bizarre. A Sudoku board is a 9x9 grid of integers. Most basic brute force solvers can easily solve any Sudoku game. The Siebel guy talks about the representation problem as if it were some sort of question where it's reasonable that serious working programmers would have any trouble at all representing it. Hello. NINE BY NINE ARRAY. And yes, Python has two dimensional arrays: you just make an array of arrays. (Norvig's hash table is also fine, mind you.)
- ⓞnor
But yeah, it's the difference between writing code and solving problems.
- Jim Norris
ⓞnor, it wasn't a serious working programmer, it was some kind of TDD consultant :)
- Paul Buchheit
The Norvig vs TDD guy story is hilarious btw.
- Paul Buchheit
Funny, just the other day my friend George and I were making fun of TDD nuts. While I'm all for unit tests, it doesn't make sense to write them before you know what the code will do yet!
- Gabe
I think maybe some people are just drawn to absolutes. If something is sometimes good, then it must always be good and is the only true and right way.
- Paul Buchheit
"I think maybe some people are just drawn to absolutes." That's absurd, and I categorically disagree. Those people are absolute morons.
- Jim Norris
Paul, I remember discussing this post with you back when he wrote it, and wondering what Steve has against pair programming. I now do most of my coding with a partner, and spend a lot less time debugging than before. It's great to code review as you type -- it saves tons of testing, debugging, refactoring, and redesigning.
- Gabe
OMG... that norvig code makes me so happy in my face. <3 <3 <3
- ௸ (k2g)
I am not an expert on agile programming, but I had always thought that a big part of it was to start coding as soon as possible, instead of spending days writing up specifications. Stevey mentions that design documents are taken very seriously at google.
- Robert Felty
Is that the button that enables or disables the smart key system? (the car will start as long as there's a key inside the vehicle; also, you can open the doors by placing your hand on the handle as long as you have a key on you). If so, I think that that button is labeled KEY on mine (2005 model year).
- Tudor Bosman
This reminds me of the fridges stocked with a variety of bottled water including "smart water". That's what I always picked--you wouldn't want to drink dumb water, would you?
- Ruchira S. Datta
Error-riddled ‘Superfreakonomics’, Part 2: Who else have Nathan Myhrvold and the Groupthinkers at Intellectual Ventures duped and confused? Would you believe Bill Gates and Warren Buffett? « Climate Progress - http://climateprogress.org/2009...
Nathan Myhrvold is a fun guy, a good photographer, and full of energy and ideas. Unfortunately, when it comes to climate science, he's a intellectually lazy, unable to understand the most rudimentary data, and confuses his grand boondoggles with reality---at least if you believe Levitt and Dubiner's account. I think if you work in software, you get used to the idea that you have latitude to design what you want, and if it is fundamentally a good idea, you can make it work. Unfortunately, physical sciences that deal with the real world are not like that. A "good idea" will fail if it does not jibe with reality.
- Peter Norvig
from Bookmarklet
It's annoying when the real world can't be neatly abstracted away.
- Jim Norris
"Did you mean" suggestions for potentially incorrect recipients. For Apps users, hopefully no more accidentally sending the financial spreadsheet outside the company.
- Keith Coleman
from Bookmarklet
"PhotoSketch is an internet-based program that can take the rough, labeled sketch on the left and automagically turn it into the naff montage on the right."
- Paul Buchheit
from Bookmarklet
Wow, that is awesome. The authors list cracked me up: "Tao Chen, Ming-Ming Cheng, Ping Tan, Ariel Shamir, and Shi-Min Hu". One of these things is not like the others.
- Jim Norris
What is the definition of naff here? Here in the UK it effectively means stupid/silly/rubbish.
- Travis Koger
The words "cookbook" and "recipe" are almost synonymous with imperative step-by-step directions. There are books about cooking which instead have the aim of educating you about the art and science of food preparation, which you might think of as a more declarative style of programming -- they describe the constraints, you solve them to reach your goal.
- ⓞnor
I prefer the Italian cookbooks because of the spaghetti code!
- Gabe
LOL. prefer them for the Ministrone: Tag soup
- Roberto Bonini
I prefer object-oriented cookbooks, where the tomato tells the pasta to cook itself.
- Jim Norris
But first you need a vegetable factory, which is of course instantiated via a vegetable factory factory, which is itself specified in an XML file.
- Paul Buchheit
Aren't those just a series of blog posts about how you can set up a panel of judges to evaluate how tasty your dish is, and also some discussions of the best way to organize your cookware, and whether a measuring cup is a subset of spoons, without ever discussing the actual preparation of food?
- ⓞnor
Shouldn't you have some sort of vegetable service, so you can instantiate different vegetables at runtime? Also, I may need to unit test that bottle of wine you're cooking with.
- Jim Norris
If a vegetable factory is a farm, is a vegetable factory factory... some agribusiness giant, like Monsanto? Or maybe a vegetable factory is a plant, and a vegetable factory factory is a seed.
- ⓞnor
I think Monsanto is a vegetable factory factory service provider implementation.
- Jim Norris
That's an implementation detail Dan, and therefore less important than the fact that we've carefully avoided creating any explicit dependencies. Presumably there's some kind of framework that can help with this.
- Paul Buchheit
Also, the measuring cup should just implement the Spoonable interface. Like your mom.
- Jim Norris
Yes, I think what's needed here is some sort of fruit guice.
- ⓞnor
Based on everything I've read about object-oriented programming, I think it would make more sense conceptually if the vegetable was a subclass of Rectangle.
- Mark Trapp
I wouldn't talk Jim, since *your* mom implements the Forkable interface.
- ⓞnor
At least my mother doesn't throw BrokenBarrierException.
- Jim Norris
Broken bury 'er exception? I hardly know 'er!
- ⓞnor
This has got to be the nerdiest thread of the month.
- Andrew C
Have you ever tried cooking in Haskell using Monads to separate and constrain side effects?
- Jim Norris
Paul: I'd rather have a farm factory than a factory farm! I think Monsanto is a factory farm factory.
- Gabe
I have to wonder if anyone has used any optimizers to plan out, say, a kitchen breakfast, given a standard autonomous programmable robot with attached spatula, various stores of ingredients, minimal thresholds for consumability, and double-blind taste testing for scoring. Given a robot arm dextrous enough to lift and move pans and mix ingredients and pour them between containers, it...
more...
- Jim Norris
Why isn't Linux written in contemporary Asian-Mexican fusion? ;)
- Pablo Mayrgundter
If the cooking is made by a team then we probably need some book on methodologies, like Agile cooking :)
- funkyboy
because imperative style needs you to behave like a dumb processor, one needs a smart interpreter for functional style recipes :D
- thequark
"I'm actually very ordinary, except people get to pay their money to come watch me work. The same way that we go to McDonald's.. we don't care about the guy behind the counter, but if he was doing something special, we'd pay our money to go watch him cook that hamburger." - Samuel L. Jackson
- April Buchheit
No offense to you Rigza, however we American's are used to seeing announcement to never send anything to Libya, Iraq and North Korea.
- Jason Shellen
Oh, I assumed you felt dirty for using paypal.
- Jim Norris
+1 Jim. PayPal makes me want to claw my eyeballs out every time I'm forced to use it. I sometimes think they just make it incredibly obtuse and outright buggy just so people will give up trying to get that $37.59 they have lying around in an account.
- Joel Webber
Mustard overlapping with the sausage must be a syntax error. ;-)
- Nenad Nikolic
How much time passed between when you saw this and when you laughed? I think this set some kind of record. The light had barely started hitting my eyes.
- Doug