Sign in or Join FriendFeed
FriendFeed is the easiest way to share online. Learn more »

Robert Cooper › Likes

Dion Almaer
"thanks to google wave" - http://www.flickr.com/photos...
"thanks to google wave"
Drop me a line if you have any questions, Dion. We're adding and changing things really fast, so the books can get a bit stale :) - Joel Webber
re @joel Yeah, GWTiP is really locked at 1.4 stuff. We are outlining a 2ed now with 1.6+ stuff, but the state of the art against trunk has definitely outstripped a lot of stuff in the book. - Robert Cooper from twhirl
@robert: Hey, at least you managed to *write* a book. We never quite found the time. I guess this is just the natural way of things with any rapidly-evolving technology... - Joel Webber
@joel Yeah. We kept up with the 1.4 stuff during writing. 1.5 was features but not really a sea change. The 1.6+ stuff, particularly the stuff that was pimped during the Wave talk is a big change. Heck, I just now figured out what was causing the segfault in hosted mode on the mac that was delaying the gwt-maven for 1.6 release :P LIke 45% of Chapter 3 of GWTiP is about working with the shell TC that doesn't even really exist anymore! - Robert Cooper from twhirl
Brad DeLong
Hey! National Review! Latinos Are Not Repeat NOT Asian-Americans! - http://delong.typepad.com/sdj...
HAHAHAAHAHA: "In the old day National Review would have at least been able to get the racism thing right..." What a great snark. - Piaw Na
Cote'
Play Cheney Off, Keyboard Cat from KeyboardCat - http://crazylinks.tumblr.com/post...
Kevin Fox
For Thomas Hawk and others: NYPD Operations order regarding public photography
nypd order stating photography is legal.jpg
Anyone have any copies of similar orders for SF, LA? It'd be more useful to keep in your pocket than an official looking card. - Kevin Fox
That might be the most useful thing posted on FriendFeed to date. Where did you find that, Kevin? - DeWitt Clinton
Friend of a friend. I'm working on verifying its authenticity. I believe this is the order THawk referred to in this post though: http://thomashawk.com/2009... - Kevin Fox
Wow! This is very interesting. I'm glad someone has outlined rules for police to follow, even if they don't seem to always follow them. - Brandon Titus
Intermediate source, though it doesn't explicitly say how they got the order: http://jeremybales.blogspot.com/2009... - Kevin Fox
He says in a later comment that he got it through the NY Press Photographers Association. - Seth
This is good! Thanks Kevin! - Thomas Hawk
"2. Members of the service may not demand to view photographs taken by a person absent consent or exigent circumstances." Pardon? Is there something missing here? - Gilbert Harding
Convenient, seeing as how I'll be going to NYC later this week. - Gabe
Printing this and putting it in my backpack! - noeltykay
I like that..thank you Kevin.. - HotNYC News Blog.
DeWitt Clinton
The time engineers waste fighting their IDE is enough to build a whole new IDE that engineers could waste their time fighting.
Or you could not use and IDE and save everyone a lot of time (even the people who don't use IDEs have to suffer through the results of IDE code generation) - Bret Taylor
Over the last 15 years, I've stuck with EMACS and spent my time writing code for Emacs to fit what I need. Now I still prefer EMACS to any IDE. The switching effort just isn't worth it. - Piaw Na
Even though I have to do most of my coding with the Visual Studio compiler, I still find myself doing much of the work in VI rather than the VS editor. - Wizetux
I'm with you Piaw Na; I've been using Emacs for a decade and am actually just now starting to bend Emacs to my way. I'm becoming more and more productive with it. - Travis B. Hartwell
When I started working in 1991 the company I joined all used vi, and I gave up my emacs skills. Big personal mistake. Look, I still like working with Eclipse, but losing all that experience was a waste. - Robert Konigsberg
Funny, I spent years fighting against using an IDE, but once a good one came along (no, MSVC doesn't count), I could never go back without losing what sanity I have left. If I'm writing Javascript, Python, or whatever (even C++ might as well be a dynamic language to the IDE because it's so damned hard to parse because of the preprocessor) -- I still use vim. But with a language that's... more... - Joel Webber
@Bret: You (like many of us) must have had some bad experiences with the mounds of crap that come out of MSVC for things like ATL, MFC, and COM. If people you've worked with are using IDEs to generate (and not clean up by hand) code for Java, C#, etc., then they're just fools. - Joel Webber
I just received a well-timed appreciation from a colleague for bringing "Eclipse to the benighted masses who had theretofore been suffering under the burden of emacs." I don't even know what benighted means, but I hope it doesn't mean "formerly productive". - Robert Konigsberg
I use emacs for script/dynamic languages and IDEs for static typed languages. But I've to say, I waste far more productivity on dynamic languages trying to track down implementations, what files they live in, or which of 10 identically named methods 'foo' is the one I want. Large javascript codebases are particularly irritating to jump through, even with IDE code completion. Nothing can... more... - Ray Cromwell
Switch from Eclipse to IntelliJ and you won't fight anymore. :) - Ray Cromwell
I use Vim for writing code. No IDE unless I need to lay out a GUI dialog. - Morton Fox
vim. I've tried to switch to Emacs several times, but just couldn't make it over the hump. I'll use Eclipse, if forced. - DGentry
Intelli FTW -- hands down best JAVA IDE out there (and now offshoot supports Ruby and a ton of other things) - Grant Gochnauer
For almost 10 years I've been using emacs with vi emulation (viper). Before that I used vi. Been thinking of switching back to vim though since it can probably do everything that I do with emacs, and faster. - Jasmin Patry
I have tried to use eclipse over 10 times in past 4-5 years. But after few days or a week, I switch back to Vim. The glitter of GUI IDEs is hard to resist, but they don't necessarily add to my productivity. Vim on the other had does excellent job in making one task faster - editing. No other editor is as good as Vim when it comes to navigation through source code and extendible macro system. - Jayesh Salvi
Last time I used VIM, it had no ability to understand code for navigation purposes, and was purely a syntax coloring regexp based text editor, although it appears there's some code completion plugins for some languages, surely, you can't be suggesting this come anywhere close to modern IDEs which keep a complete preparsed AST database of all visible code and let you instantly find methods, usages, classes, files out of thousands via a single key press. - Ray Cromwell
That's why I built my own IDE - Dave Winer
Yes, Vim doesn't have code completion functionality (at least that I know of). That's the upside of GUI IDEs like eclipse. (although, cscope and ctag do provide symbol lookup to partially make up for this limitation). In my case, automatic code completion didn't balance my choice of navigation freedom that I get in Vim. ... it's just me (and other vim lovers), others might have different preferences. - Jayesh Salvi
@Jayesh - try ctrl+n next time you're using Vim (6.2 or higher, if memory serves) - it's not code completion like you'll find in Visual Studio (which can infer completions based on context, etc.), but it will complete any string found in any open Vim buffer. It certainly gets the job done well enough for me! - Brett Kelly
Can you explain what you mean by navigation freedom (other than running a regexp). To me, the biggest feature of the editors in these IDEs is the "Go to Definition" feature. I can open a project with 1,000 source files, in which I've never before seen the code, and at any point, I can hit "Ctrl-B" on any symbol and instantly open the file and look at the implementation that symbol... more... - Ray Cromwell
Ray, that turned out not to scale for Google sized code bases, where I had to build gtags: http://code.google.com/p.... That's the thing about emacs --- when I needed something like that, I built it. It's painful to add to Eclipse or IntelliJ. - Piaw Na
@piaw: whoa, really? IntelliJ was dealing with Google3 just fine, as late as 2006. But I agree with your main point, that it's easier to build such things for emacs and vim. - Neil Kandalgaonkar
@RayCromwell: The appeal of vim is not in any one feature but all of them put together. I can use it for just about any text-hacking job known to computing, from anywhere in the world. But Eclipse and IntelliJ have unmatched features for Java, especially refactoring and browsing giant codebases. - Neil Kandalgaonkar
@Piaw TAGS is equivalent to IDE 'Goto Symbol', but it is not the same as the type-inferencing or structural search capability in IntelliJ where I can navigate by type relationship or AST structure. I'm a long time emacs user since '86, but seriously, building features like IntelliJ has for Java is more difficult because building an incremental language compiler with rich indexed type... more... - Ray Cromwell
DeWitt Clinton
:: Truth Transformation Ministries :: - http://www.itistruth.org/
itistruth.png
I should really go to this church. - DeWitt Clinton
Haha, it reminds of me of crack intros on Commodore 64 games. "Intro by SharperFX, Greetz to Eagle Soft, God, Jesus, ...." - Ray Cromwell
“The personal, premillenial [sic], and imminent return of our Lord Jesus Christ is our hope and has a vital bearing on the purpose life and service of the believer.” - Anthony Citrano
“There will be a bodily resurrection of all the dead; of the believer to everlasting blessedness and joy with the Lord, and of the unbeliever to judgment and everlasting conscious punishment.” - Anthony Citrano
The website is impressive. - Gary Burd
@kfury - you seeing this? I'm thinking gamma.friendfeed.com. - DeWitt Clinton
LOL @ Ray - all we need is the ANSI graphics ;) All of these have a kinda Scientology vibe to them - maybe it's just the strangely sci-fi style. - Anthony Citrano
"Exceeding the perceived limits of design" http://www.sharperfx.com/ - Gary Burd
Why is there a full moon prominent behind the cross? Was Jesus a Lycan? - Ray Cromwell
Hm, I missed that, Ray. - Anthony Citrano
@Ray: "Greetz to Eagle Soft..." Wow, you *really* took me back with that one. For a moment, I was just sitting there in my room in front of the C64 having just downloaded some game over the last 35 hours on my 300 baud modem, waiting... waiting... there's the intro... crash! Gah! - Joel Webber
Dion Almaer
Wakeup Call Alarm for iPhone - http://www.cyandesign.co.uk/WCA...
"Use your alarm clock to ring another phone when it goes off! Your iphone now becomes a 'dual' alarm, it can wake you up, and call another person at the same time!" - Dion Almaer
Joel Webber
Note to SJMC: If you're going to do mobile users the "favor" of redirecting them to your mobile site, please link them to the *actual article* they were linked to in the first place. thx.
Also, please let users override that. Some mobile browsers are pretty powerful and can deal with non-mobile sites just fine. - Tudor Bosman
Amen, Tudor. Especially when the "mobile" site is horribly cippled. - Joel Webber
Jon McAlister
appengine-jruby - Google Code - http://code.google.com/p...
Tho ruby is my current life, the fact that both the FF and AppEngine teams picked python gives me enormous pause. Also all of my collective-intelligence books are written in python. I know, I know, a language is just a tool, and most patterns translate. Still... today's news leaves me more uncertain than certain -- - Christopher Galtenberg
Jeremy Zawodny
I wish to ban "Experts Exchange" from all my Google Search results. Always.
There's a greasemonkey script to at least remove the link from the results page - Topbit
The greasemonkey script mentioned earlier: http://userscripts.org/scripts... - Aral Balkan
the link: http://userscripts.org/scripts... And there are others there - Topbit
Google needs FriendFeed filters :) - Susan Beebe
Don't you mean Expert Sex Change? - Jim Norris
I tend to include -experts-exchange.com if I'm googling for anything technical. I shouldn't have to do that. - Mark Trapp
Would be nice to get the ability to get rid of all paid service. - Tyler (Chacha)
There is never ever a reason to include EE in search results. What, I'm going to pay to get a technical question answered? Are you kidding me? - You.
Stack Overflow is the best alternative. - Rich
If you click on the cache link in Google, the "paid" answers are cached at the bottom of the page-- no signup required. :) - Jeremy Felt
Yeah the cache trick is nice but isn't that a violation of Google's TOS? providing different results to the crawler? - Bill Pennington from twhirl
No need for the cache...if you scroll all the way to the bottom the answers are there. - Brian Newman
Interesting... if you open the link (non-cached) in a new tab, the answers don't show, but if you follow the link through google in the same tab, the answers do show at the bottom. Weird. - Jeremy Felt
The answers are generally way, way on the bottom and only visible if you visit the thread from Google's search results. Frustrating: yes, but there is also a lot of good information in there... - John μller
I'm not alone. I'd like to bad about.com too. - Paul Grav
«Interesting... if you open the link (non-cached) in a new tab, the answers don't show, but if you follow the link through google in the same tab, the answers do show at the bottom.» This is even officially allowed by Google these days, it's called "first click free" (others might call it "sort of cloaking"). - Philipp Lenssen
I feel the same way about anything from Associated Content. - EricaJoy
CustomizeGoogle extension for Firefox (or something similar) allows user to define filters for search to make it more usable. - Daniel Schildt
Go ahead and allow the results to Experts Exchange to show, and when you get there use this script on the page. http://draconislabs.net/upload... If you need to, save a copy of the info in case you need it later. - April Russo (app103) from NoiseRiver
Jeremy, set up a Firefox Quicksearch bookmark for Google searches and just exclude the bad domain there, using the following string in the Properties/Location field: http://www.google.com/search... -inurl%3Aexperts-exchange.com - Erik Dafforn
Sorry, that truncated the URL. After .com, add /search?q=%s -inurl%3Aexperts-exchange.com - Erik Dafforn
I was able to use info from EE only recently. I would just scroll down to see the answer. Even after they'd done something to prevent that, I would still hit a link that allowed me to scroll down and read what I needed. - MiniMage - HLtW
Totaly true. Everytime I search for JEE stuff this freaking pages pops up ... - Marius QúådflÌÊg
am I the only who can kick off *wrong* (in my opinion) links in Google output? http://www.google.com/support... - A.T.
add "-expertsexchange.com" to your search query? just a thought. - Dossy Shiobara
@dossy sometimes you have a dream to have it as permanent filter, preferably with feedback to original website that they are classified as morons by 10.000.000.000 users :) - A.T.
@Jeremy, just as a hack I made you a Custom Search Engine called 'All But Experts-Exchange'. Compare the results of [http://www.google.com/cse...] with [http://www.google.com/search...]. You can access the CSE here: http://www.google.com/coop.... - DeWitt Clinton
A better solution would be for us to enable something per-site with SearchWiki [http://googleblog.blogspot.com/2008...]. I actually thought we could already, let me look again. - DeWitt Clinton
I would like to do this as well, Experts Exchange is the biggest joke. Stack Overflow has everything any more... w/o hiding their answers. - Nicholas Kreidberg
How do you configure a Custom Search Engine to exclude specific sites? - Paul Grav
@Paul - once you've set up a CSE, follow the link that says "[Edit this search engine]" and look at the left-hand column under Control Panel for a link that says "Sites". Find the section called "Excluded sites" and then "Add Site". I think our user experience here could be better. The Custom Search Engines are incredibly powerful, but not nearly as discoverable as they could be. - DeWitt Clinton
DeWitt, thanks for the reminder about CSE. It's an incredibly cool feature. - Jason Wehmhoener
Include this in your query site:-expertsexchange.com - FFing Enigma (aka Tina)
totally agree, I hate those wankers - Toby Graham
@Jason - thanks! Custom Search Engines are perhaps my favorite power feature that Google offers. Come to Google I/O and I'll show off something neat with them. - DeWitt Clinton
There should really be a search experiment to do this. Exclude the follow sites from your results. SearchWiki doesn't do it AFAIK. I've thought about suggesting the search experiment at work but never got around to it. I think I shall today. - EricaJoy
me too... hate experts exchange - mikepk
Erica: Google *does* offer a way to do this in your query. Try searching for YourKeyWord site:-siteIhate.com site:-OtherSiteIHate.com The "-" verbiage is how you tell the engine to *not* return results from those sites. Conversely, you could search "keyword site:MyFavoriteResource.com" to only return results from your intended target. - FFing Enigma (aka Tina)
Scroll to the bottom works for me. And sometimes there's good answers. I think it's ridiculous that I have to scroll to the bottom but... for me it's not worth adding yet another extension or greasemonkey script. - Robert DeBord
Haven't seen it in the comments, but you can always use the SaerchWiki Labs feature to remove any unnecessary results from view. I think you can go as far as 'ban' a domain. - ElijahBailey-Zu of FF <0,
firefox addon which applies custom css styles to some websites will be very useful for EE. to show only questions and answer. hide all other crap from pages.. - Turkey banned Bloggum :(
How to have an answer to a question, in 110 comments. I love it when we help someone figure out something, FF exists with that underlying community feature: help. 9) - ElijahBailey-Zu of FF <0,
Me too! I hate that site. - Jess Lee
Jason, it has nothing to do with being ugly. It has to do with them cluttering my search results with information that's behind a paywall. - Matthew Gifford
It's a good thing they put that hyphen in there, "Expert Sexchange" is obviously not their business model! - Ryan
Google's results have, IMO, been degrading over the years and EE is just one of the problems. - Michael McKean
They are a PITA, show up everywhere but only display 1/2 of what you are looking for, very bothersome. - Allen Harkleroad
+1 the same. I really hate them - shuvalov
experts exchange sucks - leonardobag
Amen - Ahsan Ali aka. Slick from IM
I hate them too. - Enrico Lamperti
Ray Cromwell
GWT's type system is more powerful than Java - http://timepedia.blogspot.com/2009...
Shows how you can achieve Category/Extension Methods ala Objective-C/Groovy/Smalltalk, or C# Extension Methods, in GWT with absolutely zero overhead in compiled output. - Ray Cromwell
I wish FF could group comments from related entries. - Ray Cromwell
It's always nice when a solution to a relatively narrow problem ends up solving a broader problem you didn't anticipate. I never even considered the utility of being able to have Java treat *other* Java objects as though they were Javascript objects. I'm sure Scott did when he wrote it, though, because that's the sort of thing he'd love. - Joel Webber
DeWitt Clinton
Freedom Tower in NYC gets name change - Security- msnbc.com - http://www.msnbc.msn.com/id...
Freedom Tower in NYC gets name change - Security- msnbc.com
"The Freedom Tower is out. One World Trade Center is in." Thank goodness. - DeWitt Clinton from Bookmarklet
Good idea. Anything with the word 'freedom' in it would be completely out of place at the dawn of the New World Order. - MVB (Curmudgeon of FF)
Now they just need to actually build the damn thing. 8 years is a bit long to leave that land empty. - Joey Gibson
One World Trade Center sounds good as a name to me. - Mike Reynolds
Much better name. - CW™
One World Trade Center is gone. They need a different name. - Dennis O'Neil
Dick Wall
Headed to EclipseCon tomorrow with the rest of the posse
dan farber
Gore: Smartgrid $400 B over 10 years...vs $120 B every year cost to businesses for crappy system we have today
Bob Lee
How to Write a Chrome Extension in Three Easy Steps - http://www.mattcutts.com/blog...
Bret Taylor
Pizza joint gives staff t-shirts with the text of 1-star Yelp reviews - Boing Boing - http://www.boingboing.net/2009...
Pizza joint gives staff t-shirts with the text of 1-star Yelp reviews - Boing Boing
"At San Francisco's Pizzeria Delfina, they know how to own their pain. Rather than wringing their hands over Internet sourpusses who give them one-star Yelp ratings, they've printed up tees with excerpts from the most scathing reviews ("This place sucks") and given them to the staff to wear." - Bret Taylor from Bookmarklet
wow, what an interesting approach to marketing ...hmmm. Sorta pokes fun at Yelp reviews - Susan Beebe
Delfina is hardly a regular pizza joint. It is a fine dining restaurant in a good neighborhood and has a great word of mouth reputation. It's sometimes hard to get in on a busy night. They are in a pretty strong position to do this as anyone eating there will find the reviews absurd. - Robin Barooah
On Yelp, as on the internet at large, you never know why someone is saying what they say, or with what authority they speak, until you dig into it a little. From what I can tell, it's about 80/20 in San Diego. 80% people who are bitching because they're crazy or felt like they were mistreated for some reason and maybe 20% people who actually sound like they know food and have reviewed more than one place(and thus might be worth listening to). - Mr. Gunn
Of course, part of why this works is because Delfina pizza is widely known to be very good. - j1m
Kudos, Delfina Owner, Freaking brilliant move! - AJ Leon
Love it. Contrasts with a cafe in my neighborhood that says Yelpers aren't welcome. :) - Jame Ervin
Patrick Chanezon
Cee Bee
Wombat poo paper launched - ABC News (Australian Broadcasting Corporation) - http://www.abc.net.au/news...
Wombat poo paper launched - ABC News (Australian Broadcasting Corporation)
"Creative Paper attracted worldwide interest for its 'roo-poo' paper in 2005. Darren Simpson from Creative Paper says the paper is green or gold depending on the time of year the droppings are harvested. He says the company is pleased with its quality and texture. "One of the things that we're finding is that wombats are much cleaner and do a much better job of pulping it, so we're finding it's a lot easier to make paper from wombat poo in comparison," he said. Mr Simpson says they are careful to use only scats from wombats in captivity, because animals in the wild use them for communication." - Cee Bee from Bookmarklet
never heard of such a thing. supposedly kangaroos are gettin in the act too: http://www.telegraph.co.uk/travel... - Cee Bee
Always wanted some more shitty paper. - Colby Olson
the web site for sheep poo paper (http://www.creativepaperwales.co.uk/) is adorable. the longer you stay on the site, the more sheep appear in the header. you can drag them around with your mouse, also, for maximizing the fun. - Marie has inbox zero!
supposedly they can make paper out of all kinds of animal poo including elephants, buffaloes, etc. interesting idea as far as environmental concerns go - Cee Bee
Envelopes made out of that paper would be disgusting - Tamara
you have a point tamara - Cee Bee
Dave Morin
Google CEO: Twitter A 'Poor Man's Email System' (GOOG) - http://www.businessinsider.com/google-...
Wow. This is why a company that values engineering only is never going to understand Twitter. Twitter is like email in the same way that a coffeeshop is like a grocery store. I mean, they're both in the edible-product-delivery business right? - Neil Kandalgaonkar
I think "a poor man's email system" is a compliment. - Kevin
I think way too many people elevate Twitter above and beyond what it really is. It's far less functional than what I had in the late 80s with IRC, and there it was fully federated, had ample third party clients, bots, and other gateways (except for SMS), including the ability to read old public messages. An IRC channel was essentially a Twitter URL, and IRC channel logs == twit feeds. Only thing missing was SMS integration. But you had moderation, channel ops, filters, DCC, and more. - Ray Cromwell
The magic of twitter to me is its simplicity, and I also never judge it farther than a protocol. It's not a product, or a platform, it's just a way of communicating. - anna sauce
Ray, functionality wise, of course. Twitter isn't popular because it has the best feature set. They just nailed the unidirectional, and got the hype etc. It isn't about the technology. Having to setup an irc client and deal with all of the irc features is a PAIN for many people (this comes from an old time irc operator. ah the k-lines!) - Dion Almaer
Chris: "I enjoy the simplicity of not using it" - lol. Funniest analysis of twitter I've heard. - Kevin
Yeah, it's a huge hype machine, but then again, I make sure not to follow the hypers, and then they're not part of my twitter-reality - anna sauce
The www-ness of it is the key difference for a large slice of people. Other clients/protocols like IRC are simply off the radar screen; or, if confronted with them directly, are treated like a dark alley. - Micah Wittman
Something has been lost in the age of www-everything. The browser has encouraged increasing amounts of wall-garden siloed proprietary systems, in contrast to the pre-Web era when everyone collaborated on open IETF specs and built interoperable clients. If the web had been invented first, USENET would never have been federated, email would have been siloed behind proprietary online services, etc. Sure, it led to easier deployment to end users, but that doesn't mean we didn't give up something valuable. - Ray Cromwell
For those who haven't seen it, here is my spiel/observations of the post-Web trends and what I think we've lost: http://timepedia.blogspot.com/2008... - Ray Cromwell
Ray, I hear what you're saying. I think the www was to usernet/gopher what tv was to radio. Me: over the last several years I now consume more audio-only (podcasts - "radio") content than tv/video, but the vast majority are the opposite, and have been since the visual broadcast medium emerged. I think the silo-ing would have crept in with or without the mosaic factor, but I'd also say that it made empire builders more gleeful in their pursuits. - Micah Wittman
What bugs me about Twitter et al, is that we demand that email, blogging, etc be federated, but people seem perfectly willing to accept, nay sometimes cheer, that "microblogging" must be centralized, almost as an inevitability. I refuse to accept that multicast, durable, asynchronous, chat channels must be centralized to a single utility provider (an unreliable one at that) The fact that, in 2009, we do not have a global scale IM system seems a disgrace to me. - Ray Cromwell
RT @cristoblanco "I enjoy the simplicity of not using it." - Jeremy Hylton
I agree with Ray Cromwell that it is sad that there is not a standard for Twitter-like status messages, but the IM world is similarly fragmented. In olden times, people wrote good software to bridge systems, like sendmail. Seems difficult today. - Neil Kandalgaonkar
@Chris White you don't have to like Twitter (I only use it occasionally) but the point is that unlike IM, Twitter messages have URLs. They are asynchronous and durable. They can be aggregated into RSS. They are deliberately limited in size, both for pithiness and to enable the user to scan many people's Twitters very quickly. My point was that a coffeeshop is not just a coffee retailer; they have tried to make a social experience around coffee. Similarly, Twitter is a designed social experience. - Neil Kandalgaonkar
@Chris White Friendship comes from the shared moments in our lives. It's just a primate thing to grow close to people we share experiences with. The brilliance of Twitter is that it allows people to share moments more-or-less as they happen, even when you are not physically together. But it's designed carefully so that the user isn't overwhelmed. - Neil Kandalgaonkar
Bob Lee
Wealthy Idiots Meet Idiot Reporter - The Plank - http://blogs.tnr.com/tnr...
Dumbasses. No doubt they voted for McCain. - Bob Lee
Bret Taylor
How FriendFeed uses MySQL to store schema-less data - http://bret.appspot.com/entry...
This is a technical overview of the new backend system we launched a couple of days ago. - Bret Taylor
First question, why MySQL instead of a straight key/value/attribute store, like a bdb? (Amazon's SimpleDB works along similar principles, btw.) - DeWitt Clinton
Cool stuff Bret. Love to see this kind of stuff. Would love that chat about the Ajax side of things ;) - Dion Almaer
DeWitt: Historical reasons; we have some operational experience maintaining MySQL servers, and MySQL is very popular so there's a lot of support available. - Tudor Bosman
Oh right, none of you are ex-Amazon. (Any Amazonian reading this will understand...) - DeWitt Clinton
How small do you keep the shards? Can you keep the entire index tables in RAM? Are you backed with SSD? - DeWitt Clinton
Not all of it is RAM. We use normal hard drives for this system, and we have enough RAM such that the working set fits in memory. Most of the oldest stuff on FriendFeed is not accessed frequently, and that data is not typically resident in memory. - Bret Taylor
Thanks Bret, nice post. - Ömer Faruk Kurt
So for something like 'user_id_index.get_all' you'd trust that InnoDB has that user in RAM, and that you have only a small set of active users at any given time (for web requests). Same for the relevant entities you'd "join" against. Makes sense. (Sorry, having a hard time typing coherently tonight.) - DeWitt Clinton
Yah, those indexes are typically in RAM. Our indexes contain a timestamp as well (since they are ordered reverse chronologically), so the oldest entries referenced by that index would likely not be in RAM depending on how many pages back they are on most feeds. - Bret Taylor
BTW, did you guys look at any other serialization mechanism other than pickle? Any pros/cons for cpickle? - Arvind Sundararajan
cPickle is the same format as pickle, just implemented in C instead of Python. We use cPickle. marshal is faster, but according to docs may change from version to version of Python, so we didn't want to use it in our DB. - Bret Taylor
@Bret "250 million entries", is it possible to give the size of the DB? and what is your opinion about when will you need to change this system again or is it strong enough for years Meybe you will only need hardware instead of structure changes? - Ömer Faruk Kurt
Ömer: I don't have an exact number off the top of my head, but a lot of data is the indexes themselves, so adding indexes is almost as significant as adding entries. - Bret Taylor
This sounds exceptionally similar to how the AppEngine datastore does things, except that it's MySQL and not BigTable. - Alex Power
Aren't commercial RDBMSes (like Oracle, MSSQL) designed to support the sorts of things you're looking for, like online reindexing and joining across shards? Why not use them? Lack of experience? NIH? Too expensive? - Gabe
"We like MySQL for storage, just not RDBMS usage patterns" Excellent post Bret, thanks for sharing! - Mahesh CR
Gabe: "designed to support" and actually working are two different things. I think that is why companies like ours generally don't use commercial software and choose to use open source software. If it doesn't work, we can fix it. In my experience, most of those features don't work at the scale consumer web sites need, and it certainly wasn't worth the cost and time to find out from our perspective. - Bret Taylor
Bret: That should be the new slogan for FLOSS. "If it doesn't work, we can fix it." - KyleHase from twhirl
Non-RDBMS-patterns may work when there is no great needs for processing the actual data (like reports etc). In LOB-apps this would be a big no-no, but in large-scale services like FF alternative methods are almost necessary... - Jemm
Thanks for the writeup! Is there a reason you don't declare the added_id as an UNSIGNED INT? - Roger
Roger: no, no reason. - Bret Taylor
@Bret, this is a pretty cool write u!. Might I suggest as a subject for future write ups, how the realtime update system works (e.g. how it knows what updates it needs to push), and perhaps how the feed fetching system works and how these might inter-relate? - Ray Cromwell
Ray: good ideas. We will do more of these. We want to in theory - they just take a bit of time to write up, and we like writing code more than blog posts :) - Bret Taylor
Bret, do you really think that guys like Oracle and MS create features for enterprise-level databases that don't work or scale to meet the needs of those who buy them? Of course you may be right, but the TPC tests generally get results in the hundreds and thousands of transactions per second. In reality, though, what can you really fix if something doesn't work? Are you going to debug MySQL if it starts corrupting data or optimize it if it's too slow? - Gabe
Gabe: yes, we have already debugged MySQL when it has crashed. It would have been impossible without the debug symbols and source code. - Bret Taylor
Gabe: I've been doing a fair amount of tracing through MySQL core dumps over the past week, and just having the ability to look at the code, plus the size of the community working with the same code base and debugging problems, seems to make it worth the cost at this point. We haven't changed any of the MySQL code yet, but Google and others certainly have. - Jim Norris
This is the best thing I read today. - pastas9
I'm skeptical of Oracle and other commercial pre-packaged systems because the companies are focused on extracting revenue via software sales and their products are highly optimized for a certain problem domain that doesn't really fit our experience very well. - Jim Norris
So I guess the downside is that if you change your indexes you need to change the code, too. How do you manage the table creation, code migration and data sharding all at once? - Nick Lothian
Nick: It is actually not bad: make the tables, update the code, start writing to the indexes for new entities, then run the "Cleaner" to fill in the indexes for the older entities. When the cleaner is done, you can start using the indexes for features. - Bret Taylor
The most important decision about your design- and why not going with databases RDBMS etc. to manage the indices - is that your users don't really look up the old stuff, so keeping the old entries in RAM/live indices isn't worth the time hit it would take to do huge indexes on long tables. This seems like a "running index"- that is, it's populated by the application in many places at one time, instead of in one place, that the DB then optimizes over the entire history. - anna sauce
Reminds me of some multi-user java apps back 10 years or so ago that had to manage simultaneous users on live systems. great post, Bret, and fun to see what's working behind the scenes. - anna sauce
"if you change your indexes you need to change the code" is not a problem unique to this system. You always have to update your code along with your schema. You have to write code to read from the tables even if you use a typical RDBMS, and you can't do that without an index, so this staged process exists in some form no matter what your storage scheme looks like. - Bret Taylor
Bret, it sounds like MySQL crashes a lot. Are you assuming that commercial products will crash just as often and the vendors won't debug it? - Gabe
Gabe: Every piece of software crashes, whether it is written by Oracle or by open source developers. The difference with open source is that we are not dependent on someone else to diagnose and fix the problems. This is not a unique sentiment. Google, Yahoo, Facebook, FriendFeed, Twitter, et al, have all chosen open source infrastructure for this and a variety of other compelling reasons we have already discussed. - Bret Taylor
Brett, I agree that not being dependent on somebody else is great. In fact, the product I work on is probably 99% open source or developed in-house. I even replaced a relational DB with a pickled Python object store a year or two ago. However, I'm also not considering writing my own transaction protocol, indexing, and query engine because the open source DB I use doesn't support... more... - Gabe
Re: "change your indexes you need to change the code" - yes, conventionally you need to change your code if you change your tables. But you do get some opportunities for runtime optimisations by changing your indexes (although in practice this can have availability costs as you note) - Nick Lothian
OK I'm going to put this out there: sounds like you're re-inventing the wheel. - anna sauce
Being able to open something up to understand, diagnose, and fix things yourself is underrated. - Amit Patel
DeWitt, part of the reason we didn't use a simpler store is that we're using mysql replication. We'd have to replace that too. Probably not hard, but it's working well for us. Also sometimes you do want transactions for performance within a single DB (each xsaction is a single log write, vs multiple little writes). - Private Sanjeev
re: SSDs and mysql. I can't speak for all SSDs, but the Intel X25-M gets internally fragmented very quickly, reducing write performance by 10-20x. Things that do large sequential writes like bigtable or lucene are a better fit. - Private Sanjeev
Part of the purpose behind traditional schema driven designs is to 'protect' the data from the programmers and the applications - which is not insane given the level of commitment people have in some kinds of organization. One of the statements that the FF people are making here is that they have trust in themselves and each other and they care about what they are doing. - Robin Barooah
You guys rock so hard it HURTS! THANK YOU, FRIENDFEED! - Josh Haley
Just logged in... this sounds really cool.... hmmm :) - Susan Beebe
great post -- liked the discussion in the comments too! some people thinking relational databases can do everything; other people not understanding rationale behind key/value store; other people mad you've reinvented it using MySQL... :-D favorite comment from guy who is having a heart attack because anyone might think it's a good idea: "it is like using a database to solve the problem... more... - Karim
what is the correct name for this? "schema-less data?" "entity attribute/value (EAV) store?" "key/value store?" personally, i like "property bag" :-D also, have you considered Amazon SimpleDB, or Microsoft SQL Data Services for hosted services, since they are based on similar ideas, just not on MySQL? - Karim
Sanjeev, I heard rumors about the X25-M performance running down after fragmentation, but last I heard was Intel was unable to replicate & "looking into it." 10-20x should not be hard to spot. :-) Are you in touch with Intel...? Also, have you seen similar problems on SSDs with Samsung controllers? (I went with the Corsair...) - Karim
Karim, it may not get as bad with other SSDs, but they start off with much higher write latency for small random writes than the X25-M. - Private Sanjeev
The Samsung, you mean? All I was trying to do was *not* get the JMicron controller and *afford* it :-D - Karim
but why are the ssIDs varchars, is the question (from @eonarts comment) - anna sauce
anna: what are ssIDs? If you mean the UUIDs, they are just 16 byte binary strings. - Bret Taylor
Just look how many comments on this begin with someone's name. "anna:" "Karim," "Sanjeev,". Somehow there needs to be a reply-to-comment mechanism. Fortunately FriendFeed uses json blobs in their database so this won't require a painful schema change ;-) - Kevin
Bret: you're right, I re-read the post and couldn't find evidence of the Primary Key Erin mentions in her comment, as varchar. Am I missing it? - anna sauce
schema changes aren't painful, and I have a question for more current DB/programmatic people (than me): why is this called schema-less? There is a schema, it's just that the database application isn't being used to index, Bret's crew are doing it manually. Blobs in columns doesn't mean it's schema-free, that's been going on for 15 years. I think it's just that he's cracking the indexing methodology and offroading. I'd like to hear from some PostGres people on this- Disqus is on PostGres aren't they? - anna sauce
Anna: that person is talking about the URL index. What we are doing is correct for this application; we want the index to be in that order on disk, not in a different order. - Bret Taylor
Bret: ah, ok - anna sauce
I just remembered that one of my client's DBs is actually Btrieve, which is nothing more than a way of storing binary blobs with certain byte ranges indexed. (They are still using a DOS app from the '80s, with the Btrieve running on a Novell server.) The only real difference is that they have fixed-length keys and records, while the MySQL data is variable-length. - Gabe
Bret: Thanks a lot for the informative post! Any thoughts on MySQL vs Postgres? We found tables crashed with too many simultaneous writers in MySQL, but your post says it "doesn't corrupt data", so I guess you haven't had such issues. - Ruchira S. Datta
Bret: Do you apply the same approach to perform searches on your stored text data? (i.e. inside the data storing the BLOB) - Roger
Bret, do you care to explain briefly how you approach the following/follower aspect without JOINs? I loved the article, keep reading it every once in a while... - Jorge Escobar
Jeremy Zawodny
"...in new mexico, you can add "'n shit" to the end of any sentence" (overheard at work)
Bob Lee
Dell Mini 9 Is Down to $200 For One Day Only [Dealzmodo] - http://i.gizmodo.com/5161421...
DeWitt Clinton
json-ply - Google Code - http://code.google.com/p...
For no particular reason, I wrote a lex/yacc-based JSON parser in python this weekend. See http://code.google.com/p... for the implementation, and http://code.google.com/p... for the test suite. - DeWitt Clinton
And if you ever need to write a parser in Python, I highly, highly recommend PLY (http://www.dabeaz.com/ply/). I'm going to write a blog post on just how great a library it is. - DeWitt Clinton
Note that my benchmarks indicate that this is around an order of magnitude slower than simplejson's pure python parser right now, so you shouldn't use it as a drop-in replacement (I intentionally made the API slightly different for now for just that reason). I'm not even sure I'll be able to bring performance up to simplejson's speed -- this was more of a learning exercise, though I am happy with how clear the code turned out. - DeWitt Clinton
I spent an hour or two profiling last night and I'm not sure I'll be able to speed it up significantly more. A faster lexer would help, but the lexer only accounts for about half the runtime (which is weird, I would have expected it to dominate). I may look more at optimizing the PLY code, but the library is so rock solid already that I don't expect to find anything obvious. In any case JSON parsing is such a straightforward problem domain that I hope json-ply serves a purpose as a teaching tool. - DeWitt Clinton
Dion Almaer
The Campaign To End IE6 - http://ajaxian.com/archive...
Please please please... - Joel Webber
Was IE7 really that much better than IE6? I'd hate to be stuck with IE7 for a long long time to come either, so let's end IE7 as well. And, if Microsoft doesn't support svg/canvas/etc let's end that too. :) - Ray Cromwell
@cromwellian IE7 is better enough to cause much less pain for cross-browser websites, including alpha-PNGs and saner rending in strict mode. - Oleg Ivanov
Agreed that IE7 still sucks, but Oleg's right -- the CSS fixes, alpha png fixes, and some performance improvements (e.g., slightly better garbage collection and leak handling) make it suck at least 27% less :) - Joel Webber
I don't know, IE7 still hasn't fixed my biggest complaint bug. "Strict" mode still doesn't render a position:relative inside and overflow:hidden properly :/ I would say 27% less is a little on the generous side. Still, the basic box model stuff is much improved. - Robert Cooper from twhirl
I'll be the first to wish for IE6's quick death. Microsoft has done their part with forced upgrades, but a single Norwegian site's warning does not make for a campaign. That's more like a lazy web-master's refusal to test and fix CSS errors on IE6 and throwing up a fuck IE6 banner instead. - Bill Strathearn
Die die die you PITA piece of crap. I cannot stand how many kludges I have to do with that evil thing. If my boss wasn't such of a drink-the-kool-aid Gates fan boy I'd have thrown up an IE specific error message long ago. - Andrew Leyden
DeWitt Clinton
json-ply - Google Code - http://code.google.com/p...
"A JSON parser designed for strict compliance with the Crockford I-D, built using the PLY (Python Lex-Yacc) library. " - DeWitt Clinton
Google Code
Dave Johnson
The Angry Drunk: Scoble Just Doesn’t Get It - http://www.theangrydrunk.com/2009...
"Social Networking is not Marketing; but the inability to grasp that fact is the defining characteristic of the New Media Douchebag" - Dave Johnson
Patrick Chanezon
Timepedia: GWT Canvas: Rendering rotated text - http://timepedia.blogspot.com/2007...
Colby Olson
Looking for some support from FriendFeed - http://robynolson.com/
Looking for some support from FriendFeed
Looking for some support from FriendFeed
Looking for some support from FriendFeed
Hey FriendFeed, I dont ask for favors often, but this time I am. About a week ago my mother started a blog at workpress, and she's been pouring a lot of work into it over the last few days, and I mean she's been putting some serious hours into it. My plea to you is to go and visit her blog, hear what she has to say, and perhaps leave a comment? She's a breast-cancer survivor, a widow, and a mother of two children, and a very serious and avid gym person. She has some serious stories on cancer, healthy eating, fitness, working out, and just life in general. I would love to see her get some feedback, give her some support, and hopefully keep her on track. Please and thanks! - Colby Olson from Bookmarklet
I will :) - directeur
Haven't read everything yet, but it seems she put real efforts on it. And that's what I appreciate more in people: GIVING. It looks like she has lots of plans, lots of ideas and experience to share and I like it too. I actually like it when people like you and me put efforts on things and try to help. Kudos to your mom :) - directeur
Directeur, you are a saint. Thank you. - Colby Olson
whoa, your moms is hot! - Ňicķ
That wouldnt be the first time I've heard that. - Colby Olson
fo sho - i'll reshare even if you like - Zee.
I have to read more, but it looks great. I am going to pass the link on to my wife, I think she will enjoy it. - Robert Couture
that's really great. i'm sure you're very proud of your mom. she seems like an incredible person - Cee Bee
Congrats to your mom, Colby. :) - Mona Nomura
Thanks guys, this really did make her day. Thank you so much. - Colby Olson
Other ways to read this feed:Feed readerFacebook