I'll have to do some tests to see if this is any faster than my local ISP DNS.
- Benjamin Golub
hmmm... and the reason behind this offer?
- MikeAmundsen
They will then know every single domain name that every user is trying to resolve, and how often, etc.
- Mistletoe Glen
DeWitt that doesn't mean they aren't copied elsewhere or they will actually follow through with the policy.
- Todd Hoff
anyone know what appears when the domain request is invalid? i.e. will i see a google search page w/ ads?
- MikeAmundsen
Yay! This is super cool. I'm using it to work around my ISP (Comcast) hijacking DNS requests.
- Joe Beda ()
Another cool thing are the vanity IP addresses that were obtained for this: 8.8.8.8 and 8.8.4.4. '8' is a lucky number, you know.
- Joe Beda ()
@Todd: Actually, the privacy policy is pretty clear about what's temporary and what's permanent. If temporary logs were "copied elsewhere" as you suggest, it would be a pretty obvious violation of this policy. And I think it's pretty unreasonable to suggest that Google wouldn't "actually follow through" on its own privacy policy.
- Joel Webber
Joe, do you know who had 8.8.8.8 prior?
- Micah Wittman
Fast, doesn't seem to hijack 404s in any way. But I will have to go over the privacy policy carefully, in the context of Google's broader privacy policy. I wish we knew if the NSA had direct access to Google's traffic like they do for ISPs. This will certainly give Google a lot of data about web use.
- LogEx
Joel, it's just a policy. If the NSA or some other agency says Google won't get this slice of spectrum etc then don't be surprised of all that traffic is split off some switch somewhere into total information awareness.
- Todd Hoff
@Todd - half the company would quit in protest on the spot if Google even contemplated doing something like that. Including our own founders. But here's a question -- what could a company do that would reduce your fear? Clearly you use the Internet, and DNS, today. What assurances did your ISP make that cause you to trust them? Personally speaking, I find the Google DNS privacy policy a heck of a lot more reassuring than my ISP's. At least Google is promising in writing to do the right thing.
- DeWitt Clinton
People don't know DeWitt. All those fat internet pipes hook into switches that have tap lines on them. And are there any examples of people quitting en masse in protest? I've not seen it. There's nothing people can do to reduce my fear because I know too much about it. Those promises don't matter. They can change at anytime and there's no external verification and as I said, the data is...
more...
- Todd Hoff
I wonder how much this gets traction beyond things like Chrome OS where Google can require the client to use their name servers. DNS is an abstract concept to most people, and for businesses, Google Public DNS doesn't offer the level of control other managed DNS services offer (like OpenDNS, for example). As an IT guy, one thing that I see missing is the ability to manually refresh the cache. I'm also interested to see how Google respects TTLs.
- Mark Trapp
BTW, here's the Speakeasy Privacy Policy: http://www.speakeasy.net/tos.... Here is Comcast's: http://www.comcast.net/privacy.... Here is AT&T/SBC's: http://www.att.com/gen.... Guess what? None of them publish a log deletion policy and ALL of them reserve the right to do nearly whatever they want (even sell) your personally identifiable information, including IP addresses. Those ISPs are seeing every bit of traffic from our machines today.
- DeWitt Clinton
DeWitt, I went through that, and I'm still left wondering what Google's caching does. It doesn't explicitly say that Google will always respect the TTL on a record, and I don't see a remedy to resolve an outdated cache (for example, if Google fetches a record with a TTL of 86400 10 minutes before I change that record, if there's no way to force a manual lookup, even changing the TTL to...
more...
- Mark Trapp
@Mark -- I can't see how to force a manual refresh either, but I'll find out. I agree that it's necessary in some situations.
- DeWitt Clinton
Mark, that page DeWitt linked to seems to infer that they respect TTL for prefetches: "The complexity of the name selection problem makes it impossible to solve online, so we have separated the prefetch system into two components: a pipeline component, which runs as an external, offline, periodic process that selects the names to commit to the prefetch system; and a runtime component, that regularly resolves the selected names according to their TTL windows."
- Matt Mastracci
@micah Level3 owns 8.0.0.0/8 and Google has 8.8.8.0/24. BTW, 7.7.7.7 is owned by the US Dept. of Defense.
- Joe Beda ()
Matt, what concerns me about that is it seems they interpret the TTL as a range of times they're allowed to ask for a new record; that is, if they automatically refresh records faster than the TTL, that's okay, as long as they don't hold onto it for longer than the TTL. A TTL shouldn't be a guideline: if I set a TTL to 86400, unless I manually tell you to fetch it again, you shouldn't...
more...
- Mark Trapp
Cool, added them to my list of servers that dnsmasq is to use.
- Grant Bierman
The RFC does specify TTLs as "a 32 bit unsigned integer that specifies the time interval ... that the resource record *may be* cached before it should be discarded" I don't know if there's ever going to be a rock-solid guarantee that a resolver will cache your records (its cache could always overflow or become corrupted). Jumping TTLs isn't half as annoying as the broken resolvers that cache one of your round-robin DNS responses for all their customers for days, though. ;)
- Matt Mastracci
Oh yes, checking too quickly is definitely a better problem than checking too slowly. One of the things we used to deal with was managed DNS that charged by the record lookup; in cases like that, you absolutely want people to respect the TTLs you specify or it can wind up costing you dearly. I don't really know if companies still get away with that (we get managed DNS for free now), but...
more...
- Mark Trapp
I'm not happy with this. I feel it is a step too far. They could know and control way too much... from the OS Chrome to DNS/ mweh! And then what about a system fail! Laugh! I'm sure Murphy is working on it. How much of the network could go down with it. #don't-put-all-your-eggs-in-one-basket
- DC Crowley
This is clearly not my cat. If this was my cat he's have one arm shoved down into the printer trying to tear up all the internal whirling bits with his bare claws.
- Soup
Too Funny! Reminds me of the San Mateo Cat Shelter where one of the cats loves to sleep on top of the laster printer where the paper comes out...
- Greg Lato
1600+ to beat the FFundercats live chat thread. I think with this real time now on all threads we're going to see some truly epic comment numbers.
- Simon Wicks
Ivan, no the picture speaks for itself. ;-)
- Kol Tregaskes
Petr, I have no idea what you mean, but thank you. :-)
- Kol Tregaskes
@Kol .. :] that, partially, might have been the purpose.... I don't know it exactly either. :] .. was I reflecting on a cat under the fax, and that it is hard to fax that way ... /?:] ... "underfaxing at its worst" ..
- Petr Buben
there ya have me ! :] .... see, to be honest with you, i saw this pic couple days ago, but i let it go, without posting it ..... what does that make me? :]
- Petr Buben
even a flat cat... faxes just can't handle the hair. You'd have to shave the cat first, else the hair will burn and stick to the drum... a mess! (I am extrapolating from transparencies, mind, i don't have access to a cat to test)
- Joelle Nebbe (iphigenie)
Hehe, Joelle. This is now tied for the 'likes' top stop. One more then, hehe. :-)
- Kol Tregaskes
Hehe, Greg. Blimey! Erm, is that not far from 500 likes now? ;-)
- Kol Tregaskes
Bloody marvelous, Kol. Wish I could like it again... too cute (and help u to 500 likes).
- Roberto Bonini
I couldn't believe it when I logged on from the morning over posting it and saw it was at something 200 likes! You all have a strange fetish with cats and fax machines, hehe. ;-)
- Kol Tregaskes
Am I the only one who saw this and their first thought was - My goodness did someone break that cats neck? It still freaks me out a little
- Steve C
Steve, it does look a little out of place, but cats are pretty bendy. ;-)
- Kol Tregaskes
They fax much better if you flatten them first. What?
- Kevin Pedraja
So we can put this post to rest now. :-) 505 likes final count, wow! :-D Good night all!
- Kol Tregaskes
My like is the last one so far :) - 509 afaik
- getalifejerk
did 3 people really un-like this? now at 506. wtf (edit: uh, oh, yeah, me and 2 + 506 others makes 509. dammit, jim, i'm an artist, not a mathematician)
- ɐ ɯıʞ sıɹɥɔ
One of the best funny cat pictures I've seen! :-)
- John Collis
Kristian, it appears to be. Hehe, John.
- Kol Tregaskes
ای بابا این پیشول بی خیال نمی شود، بابا پاشو برو دنبال یه بازی دیگه ، از هفته پیش تا حالا تو فکس ولو شدی حوصله ات سر نرفته، پاشو اقلا بپر رو کیبوردی چیزی
- Maryaminaa
It's really only social convention which regards it as inappropriate, same with Xeroxing it, like one does with their b__tocks. Wait are we still talking about cats cats here or...
- sofarsoShawn
OMGosh 700+ likes now!! LOL. Thank you all 702 of you. :-)
- Kol Tregaskes
"Jennifer and Jim kept getting huge water bills. They knew beyond a doubt that the bills weren't representative of their actual usage, and no matter how they tried to conserve, the high bills continued. Although they could see nothing wrong, they had everything checked for leaks or problems: first the water meter, then outdoor pipes, indoor pipes, underground pipes, faucets, toilets, washer, ice maker, etc. -- all to no avail. One day Jim was sick and stayed home in bed, but kept hearing water running downstairs. He finally tore himself from his sick bed to investigate, and stumbled onto the cause of such high water bills. Apparently this was happening all day long when they were not at home. Knowing that few would believe him, he taped a segment of the 'problem' for posterity"
- Karen Padham Taylor
from Bookmarklet
HAAAAAAAaaahahahahaha!!! I've got one cat that LOVES to watch the water go down the bowl: I'm screwed if he ever figures this trick out....
- FFing Enigma (aka Tina)
Wait....now that i actually think about it, if the couple didn't know about this before the sick day, then that would imply the cat hid this behavior when the ppl were home. so if he knew enough to do that, then why is he still engaging in the behavior when someone is standing right there watching and videotaping him?
- Felicia Yue
you just made my color blind self cry tears of joy - I can now click that to discover all of the links that some crazy color mad designer has "hidden" from me by their color choices
- bear (aka Mike Taylor)
I'm still on Chrome 3.0.195.27 but it says no update detected... this is in Win7. Pretty sure my OSX Chrome is 4.0.223.11 though.
- Jan Ole Peek
4.0.223.11 is the latest in the dev stream.
- Brian Sullivan
Works on Chrome Mac version here. I added the script as a new bookmark in the menu.
- Jesper Lind
Try this instead to avoid the %20 weirdness: javascript:void(document.body.contentEditable=(document.body.contentEditable!='true'))
- Matt Mastracci
Doesn't seem to work either -- maybe a bug in the dev version?
- Brian Sullivan
World's coolest bookmarklet, especially those who are creating demo apps.
- Mike Reynolds
Wow, this is awesome (works perfectly for me in Firefox 3.5). Simple Bookmarklet code that makes Web pages "editable". Now if only there were save + back buttons or something = Instant Wiki.
- Alex Schleber
I realized after playing for a while, some of the keyboard events stop working, like submitting form by hitting Enter .. (FF 3.5.3)
- \(*_*)/
this is the fundamental line of every wysiwyg editor you use. for IE use allowEdit
- Tzury Bar Yochay
Clicking it a second time makes it un-editable (and therefore it should respond to events and such).
- Paul Buchheit
Cool, worked for me (the box is Windows Chrome 3.0.195.27)
- ǝuǝƃnǝ
I mean in all open tabs and windows, not just in editable mode. It stayed that way, still no keyboard events (not restarted ff yet) :)
- \(*_*)/
Figured how to make it but what's it good for - pretending to rip other people's stuff to sh*t?
- Michael Slattery
Michael - I'm thinking about possible use as a minor webdesign tool. Of course other tools are more powerful, but this is a nice simple one.
- Deborah Fitchett
Looks promising. C++ is too much of a disaster -- we need a real successor to C. "ooc is a modern, object-oriented, functional-ish, high-level, low-level, sexy programming language. it's translated to pure C with a source-to-source compiler. it strives to be powerful, modular, extensible, portable, yet simple and fast."
- Paul Buchheit
from Bookmarklet
Meh. I dislike post-fix'd declarations, and given that the assignment operator is frequently used, I think C's decision to make it a single character operator is the correct one. Otherwise, it doesn't seem any better than say, Objective C, D, or any of the other languages vying to be the next C.
- Piaw Na
Yes, if you're doing a systems language, you need pointers --- for writing device drivers, if nothing else.
- Piaw Na
Based on the sample code, it appears to have a very direct interface to C, which I think is important for a systems language. For most things I'd rather just use Python, but for lower-level, perf-critical stuff, we need something else. D looks like too much, but I haven't tried it.
- Paul Buchheit
Type inference, yummy - a main reason why Scala has mad traction these days
- Christopher Galtenberg
Start by creating a really lightweight and easy to use development environment. I should be able to teach Jay Rosen to program in it. Back in the 80s there was serious compeititon in this area -- from Borland with Turbo Pascal and on the Mac, from Think Technologies with their C and Pascal systems. The languages aren't the issue, at least not for me. I want to program in C again, but the curve is too steep in all the environments. Give me a Turbo environment and some nice libraries, and lets go! :-)
- Dave Winer
Piaw Na: For ':=' I've just made a homepage edit to make it very clear. := is decl-assign. Regular assign is '=' as in C/Java/etc. RTFM! ;)
- 'n ddrylliog
Piaw Na: As for trying to be the next C... well, no =) The next C is probably C itself, since C hackers are way too picky to be satisfied with anyside above C (in high-level/low-level terms)
- 'n ddrylliog
Btw, why is everyone thinking of ooc as a systems language? It can be used as such, but it's not really the goal. Do you all think so because it's compiled?
- 'n ddrylliog
I'm thinking of it as a systems language because that's what I want. We already have reasonable options for higher-level stuff, but when writing a database or whatever, we're stuck with C or C++.
- Paul Buchheit
Paul Buchheit: Hmm. High-performance implementations of current reasonable high-level languages are still pretty much experimental :/ (unladen swallow, shedskin, etc.) Why sacrifice performance? Many compiled languages have shown that expressivity isn't reserved to "interpreted" languages. =)
- 'n ddrylliog
Piaw Na: about ooc being better or worse than Objective-C, D, etc. Well, D is really complex. It gives a *lot* of control, but it makes code less readable imho. As much as you may currently dislike it, the ooc syntax is (for some at least) more readable, so more maintainable, in general simpler, etc. (a lot less trickier than C++, for example. And if you don't see what I'm talking about, you haven't done enough C++)
- 'n ddrylliog
Ocaml is pretty expressive, it has a REPL, and it's been in the top of the language shootout benchmarks for years.
- Ray Cromwell
How does ooc compare to C#? If I had to write something like a compiler, I'd use C#.
- Gabe
C++ a disaster? I don't think so, its main problem is the lack of high level straightforward frameworks. IMHO generic programming is a deeper paradigm than OOP, but like functional languages has a slow learning curve, look at the matrix implementations/compiler optimizations in Boost!
- Sebastian Wain
from iPhone
Sebastian: C++ has lots of significant problems. For example, it's actually 3 languages: precompiler (#define), C++, and templates. The template language is so powerful that you can't even tell if the compiler will halt on a given program, let alone understand the error messages it produces. Just the shear size of the language, manual memory management, things like multiple inheritance, and vast overlapping standard libraries make it hard to program in by giving the progammer an overly large cognitive load.
- Gabe
My two biggest gripes: Error messages from templates, specially from STL, can be notoriously hard to track down. And secondly, default implicit conversions can lead to hard to track down bugs. When you have a type system so complex you have to mentally "run the compiler" as you code, something's wrong.
- Ray Cromwell
I've been doing nothing but C++ lately. It's not bad, but only because everyone subsets it. The compilers are horrible, but I don't think that's because nobody has an incentive to improve g++'s front-end.
- Piaw Na
Ouch. decl-assign is terrible. I hate that. I think C's syntax (e.g., int a = 3; ) is much better than decl- assign. If you want to imitate C, at least make the declarations C-like. Personally, I think language design should be performed so that you can hand-code a compiler (i.e., no lex & yacc). Why? Because hand-coded compilers can much more easily produce human readable error...
more...
- Piaw Na
I've seen it argued that LL(k) compiler-compilers don't have this fault, because they generate recursive decent parsers that look somewhat like what you'd write by hand, JavaCC certainly has this attribute for example. Although I'm quite fond of the parser-combinator approach now.
- Ray Cromwell
What Ray said. yacc uses an LALR parser, and LALR parsers are kind of notorious for producing inscrutable error messages. LL(k) compiler-compilers can generate much more intuitive error messages, and the code they generate often looks like something a human would write. Both JavaCC and ANTLR are good LL(k) compiler-compilers. I believe LL(k) parsers aren't strictly as powerful as LALR...
more...
- Laurence Gonsalves
On the topic of ooc: the "object [space] method-call()" syntax is the most jarring thing about the syntax for me. I'm surprised that there doesn't seem to be any actual introduction to that syntax on the linked page -- it's just used several times without explanation. Also, I have to say I'm not a fan of conservative garbage collection.
- Laurence Gonsalves
Yes, when I hand code parsers, I write them in recursive descent form. The problem with C++ is that it's not easily parseable in that form. And seriously, any language where you can write map<string, string>, but have to write map<string, vector<string> > is seriously messed up.
- Piaw Na
+1 to Laurence's comment about conservative GC: that's plain evil.
- Piaw Na
Yeah, Piaw only uses progressive GC, and even then he keeps complaining that it's finding ways to snatch defeat from the jaws of victory.
- Daniel Dulitz
I believe JavaCC grammar repo has a relatively straightforward C++ grammar implemented, using LL(k)
- Ray Cromwell
Piaw Na: You got so much wrong in so few comments that it's actually worrying. Decl-assign is not terrible. It's called type inference, and is used in a lot of modern languages (ML, C#, Scala) to make our lives easier, and limits repeating yourself and it works damn well. Grow up and learn other languages. So no, the goal is not to imitate C. Go use Objective-C/C#/C++/Java/D if you want C-like languages.
- 'n ddrylliog
Piaw Na: Second: I have hand-written the ooc 0.3 compiler's parser, and it was a piece of cake, because the syntax is so simple and unambiguous. Having "object[space]field" is a non-issues since declarations are "name: type". And you're mistaken in thinking that the fact you can hand-write a parser for a grammar means that it's simple. It's the other way around. If you can write a LL(K)/LR/PEG grammar, then the syntax is *very* straightforward. And the new ooc compiler (rock) uses a PEG grammar..
- 'n ddrylliog
Conservative Garbage Collector: There are advantages 1) the performance is a lot better than you would expect (and actually faster than plain malloc/free for lots of small objects) 2) there are advantages, e.g. seamless integrations with all the C libs out there. 3) Writing a GC isn't easy, the Boehm has been around for years and is well-tested/optimized, portable, etc. Read the papers please :/ This thread is a showcase of ignorance and arrogance.
- 'n ddrylliog
As for "Language blah is better". No, sorry, apples are not better than oranges. That's your personal taste. Well, good for you =) One size doesn't fit all. Why do you even bother?
- 'n ddrylliog
why `diagonal := Vector3f new()` instead of `diagonal := new Vector3f()` or even `diagonal := Vector3f()` is this because someone felt he must not be like any other language?
- Tzury Bar Yochay
I know several typed inference languages. I dislike them --- again, type inferencing never took off not because the technology was hard, but because programmers preferred the declarations --- it really helps. Not to mention tools like ctags/etags, etc., do a good job for popular programming environments (i.e., vi and emacs), which meant that languages without such support never get widespread use.
- Piaw Na
Conservative Garbage Collector: 1) this is more an argument abut gc than conservative gc. I have no problems with gc, I just want accurate gc. 2) That's a fair point, but not enough to make me want to use conservative gc. I'd be happier managing resources from C libraries manually than worrying that hash values are confusing the collector. 3) Yes, writing a gc isn't easy, but I'm sure...
more...
- Laurence Gonsalves
@Piaw, a type inferenced language just means that the type is concretely there, just it doesn't need to be declared in syntax. Thus, any smart editor or IDE, or other tool could reify or show types on demand if the developer so chose. Ctags are a relatively primitive mechanism for source code indexing, once you have an editor which understands your language's AST/semantics, you don't...
more...
- Ray Cromwell
Tzury: why 'diagonal := Vector3f new()'? Because new is simply a static method: http://ooc-lang.org/blog... Your definition of "any other language" must be "Java and C++" and both are inconsistent/magical on this issue, as opposed to, yeah, pretty much "any other language" (Smalltalk, Ruby, Io, ...)
- 'n ddrylliog
I've never heard of this before. Feel a bit disconnected.
- mikepk
Ray: for better or worse, most programmers out there are using Emcas and vi. Why? Because no other tool scales up when you're dealing with large code bases. (That's one reason why even some Java programmers at Google use vi and Emacs) I don't care how primitive the tools are, they have to get things done.
- Piaw Na
I agree with Laurence about conservative GC. The big one is memory fragmentation. Once upon a time, when all we ever wrote were desktop apps, memory fragmentation didn't matter. For server side applications, it matters a heck of a lot, and any language that uses conservative gc might as well provide the delete operator.
- Piaw Na
C++ can be used quite effectively without STL or complicated templates, but it will never be safe from corruption or memory leaks.
- Todd Hoff
@Laurence 1) Yes and no. The performance gap between good conservative and precise (/accurate/exact) garbage collectors is less significant than one would think. 2) That's a valid point 3) Actually, I've thought of using Steve Dekorte's libgarbagecollector (look on GitHub). These are still plans though, Boehm was clearly the easiest option to start with, and ooc itself isn't bound to...
more...
- 'n ddrylliog
Easily one of the most fascinating threads on FriendFeed right now. You guys are talking mostly over my head but it reminds me that I need to get my ass out of managed languages one day.
- Akiva Moskovitz
@mikepk The language+impl has only been out there for a few months. =)
- 'n ddrylliog
@Todd Totally agreed, which explains some design choices in ooc. Memory leaks is a non-issue with a GC, and as for corruption, as long as you stay out of manual memory manipulation, the compiler does most the checking for you, statically.
- 'n ddrylliog
@piaw: I think we're mostly in agreement, but I really don't think it's fair to say that "most programmers use Emacs and vi". I use vi a lot, but when it comes to Java/Scala code bases, I still use Eclipse (or IntelliJ, or whatever). Even at Google. I just don't map the *entire* Google Java code base into my workspace at once. I'm pretty sure the vast majority of Java developers at...
more...
- Joel Webber
Joel: sure, you can play tricks like mapping only what you use. But a surprising number of Java users at Google kick up vim/emacs just so they can use the *fast* low-latency search tools when they need to read code outside of what they've mapped. The numbers were really surprising to me.
- Piaw Na
I've been using emacs for 2 decades and I still use it when I need to quickly edit something or slice and dice text with macros (or I write sed/perl to do it). But when I'm developing stuff, a switchover point occurs where emacs is no longer sufficient and I desire the IDE. Emacs is great for scripts where you can test for errors via a quick eval, but the cost of a compile is high in...
more...
- Ray Cromwell
There is, once you get into Google-size (or even Linux-kernel-sized) code bases. But I guess I've living in the Google bubble for so long, the concept of not having mega-libraries doesn't even occur to me. And we've built enough fancy tools at Google that make Emacs way faster than Eclipse/IntelliJ (see http://code.google.com/p...). Latency matters!
- Piaw Na
Ultimately, this is a search problem, something that google excels at. I'm not sure why you think Emacs has any innate advantage over Eclipse/IntelliJ for this. If GTags can be built for Emacs, it can be done for those IDEs. (Those IDEs already index all symbols and store them on disk) The issue here is that "find symbol" is necessary, but not sufficient, especially on large code bases....
more...
- Ray Cromwell
Heh. I open sourced all the infrastructure, but not the ranking algorithms for code (which are google proprietary) Having seen lots of old Google hands work in Emacs, I think you'll find that they disagree. People have tried adding plugins to gtags for Eclipse/IntelliJ, but none have succeeded --- those IDEs aren't designed to take plugins quite the way Emacs does. Even Vim isn't as...
more...
- Piaw Na
As a practical example, the Linux kernel core (minus the whole driver universe) is about 500kloc. The GWT compiler, which I work on, is about 500kloc. I have zero complains about my IDE's ability (IntelliJ 9) to deal with this code base. Call it a medium sized code base if you will. Too big IMHO to practically use with Emacs/VI (where I desire refactoring and other navigational...
more...
- Ray Cromwell
What you'll find is that top engineers everywhere have heavily customized environments, scripts, editors, libraries, even their own programming languages, that make switching hard. Anecdotal evidence doesn't really prove anything, if "old hands" is meant to covey argument by authority. Like I said, I've been personally using Emacs since 1987, I use a bevy of ELisp, Perl, Awk, and other...
more...
- Ray Cromwell
I think the mindset difference is huge. Codebase too big? The IDE solution is to subset. The EMACS solution is to create a search index held in memory and apply search technology to it. The size of the community hacking away on these tools also matters.
- Piaw Na
Piaw, you do realize that the IDE solution (I can't speak for Eclipse), is to build a search index and apply search technology? IntelliJ spiders all your reachable code and files on project setup (now, as a background process since it can take some time) and serves up IDE functions by consulting the index. In fact, it's very much like Google Suggest. I can type symbol lookup requests...
more...
- Ray Cromwell
Oh yeah, but they do it on disk and so have high latency when the code base scales up. I know, because people switch to Emacs/gtags from those IDEs for that reason. :-)
- Piaw Na
Google's code base is large? I mean, I know the data it holds and indexes is very large, but somehow I assumed the code itself was quite small.
- Andrew C
Actually, they cache some or all of the indices in memory depending on heap, at least according to the IntelliJ lead, if you increase heap, you lower cache thrashing. I still don't see why you think ETags/CTags/etc is any different in this regard. IntelliJ uses a similar index structure, it just records a bitmask on each tag as to the context (comment, identifier, method, field, etc)....
more...
- Ray Cromwell
@Andrew: I assume Piaw's talking about the *entire* code base, apps and all. That's a lot of code.
- Joel Webber
gtags keeps it all in memory on a server, so there's no disk seek latency. There's nothing fundamental about the IDEs that makes this stuff impossible to do. It's just far easier to do in Emacs when there's just one of you. Once the prototype gets going, it's usefulness allows others to add in more useful functionality. Until recently, things like IntelliJ weren't even open source, so...
more...
- Piaw Na
Thanks Joel. Yes, I'm talking about the entire codebase. All of it. :-)
- Piaw Na
@Piaw, Ray: It's becoming clear to me that we're all essentially saying the same thing. To deal with a large, complex code base, you need good tools. IDEs vs. Emacs isn't really much of a dichotomy if they're both building indices and cross-references of your code base and serving them up to you within the editor. They're both IDEs, n'est-ce pas?
- Joel Webber
Yes, I'm just saying, if you need to build something in a hurry, it's far easier to do it in Emacs. But more importantly, ignoring a base of Emacs/Vi users when designing your programming language is ignoring a large percentage of the population. And in some cases, it's a large percentage of a very influential population.
- Piaw Na
@Piaw I somehow lost your point between the "omg I don't like type inference" and the "you're ignoring Emacs/Vim users". It's still straight-forward to look for declarations of things, what's your problem? It's precisely why := and = are separate operators
- 'n ddrylliog
You'll get no argument from me. I'm a fan of diversity in programming, and I do use emacs daily. IntelliJ/Eclipse would do well to offer a simple in-editor tool for building plugins via any Java scripting engine and support saving those persistently. I guess my point is, I can't live without Etags functionality, and now I can't live without all the other features I've gotten used to:...
more...
- Ray Cromwell
Even without any support, editing ooc in at text editor (I personally use Vim and Geany for .ooc) is very easy, cause you can search for "whatever:" (notice the ':') and be done with it. Try doing that with a C/C++/Java codebase =) That's the payback of a simple, non-ambiguous consistent syntax
- 'n ddrylliog
And AFAIK, most ooc users/contributors/hackers use vim. A few use emacs, too. We have a vim syntax file, and a contributor is looking into writing an emacs mode. =)
- 'n ddrylliog
@Piaw, Ray, et al: To finish my previous thought -- There will always be some point at which an IDE (be it Emacs or Eclipse) will fail to scale. The time and space required to deal with the code base eventually grows without bound, and you simply aren't going to load it into a single machine's memory. Even if you could load all of Google's code (or at least its index) into a single...
more...
- Joel Webber
Or you do the work to integrate the external search tool (or whatever) into the IDE. Emacs is designed to make that easy. The other IDEs that are around today, not so much. Code Search introduces a lot of latency. gtags as implemented internal to Google has sub 300ms response times. Whenever it goes down, I get complaints from people, declaring that "it's just too much work to remember where files are."
- Piaw Na
I think Piaw's concern with type inference comes from the fact that explicitly stating the type of something acts as documentation. With type inference that documentation goes away. For example, in ooc, suppose I search for "whatever:" and I see "whatever:= foo()". What's the type? Whatever foo() returns. So now I have to look up foo(). Suppose it uses type inference on its return type (assuming that's possible in ooc). Now I have to dig even deeper.
- Laurence Gonsalves
I'm guessing the IDE digression related to the fact that a sufficiently smart IDE can add the implicit type information back by doing the same type inference as the compiler. The problem with going down that road is that you're coupling the code editor and the language. Either your editor needs special language support so it can do the type inference, or you have to put up with not having an easy way of knowing something's type.
- Laurence Gonsalves
I don't understand how you can do conservative garbage collection without leaking memory.
- Gabe
Gabe: In theory, you can't. In practice, Hans Boehm did a lot of studies in the 1990s showing you that the leakage is very tiny. The real problem is memory fragmentation. With accurate GC, you can actually improve the locality of your data structures in memory (e.g., by putting elements of a linked list or array next to each other so a cache fetch brings them all into cache), with conservative GC, you can't do that.
- Piaw Na
@Laurence: type inference: For me, the advantages far outweighs the drawback(s) (And, no, no return type inference in ooc). Plus, you don't *have to* use type inference. You can declare type explicitly in your whole codebase if you feel like it.
- 'n ddrylliog
For the record: I'm not saying I necessarily agree with Piaw's distaste for type inference. I've thought about the issue in the past, but haven't used languages with type inference enough to have an opinion one way or the other. The lack of return type inference might be a good compromise, as it would tend to limit how far you'd have to search to figure out the type of something, while still eliminating a lot of the "busy work" in languages that require that you specify the type of everything.
- Laurence Gonsalves
@Laurence You've come to the exact same reasoning as me =)
- 'n ddrylliog
I do still think you should explain the "object[space]method-call" syntax somewhere on that page. Up until the point where you use that syntax ooc looks vaguely similar to C/Pascal/Algol/etc., so seeing this unfamiliar syntax with no explanation is confusing.
- Laurence Gonsalves
@Laurence I just edited the homepage. Better now?
- 'n ddrylliog
w.r.t. fragmentation and conservative GC: take a look at "Compacting garbage collection with ambiguous roots" by Joel Bartlett. Worked very well when I used it in a home-brew JVM for alphas at Dec/Compaq about twelve years ago.
- Sanjay Ghemawat
I really like the way C# handles pointers and GC: All objects are allocated from the GC heap. If you need a pointer to a GC-able object, you only get it by pinning it. Once the pointer goes out of scope the object gets unpinned. And you can only use pointers in code marked "unsafe" so it's obvious to the reader.
- Gabe
Gabe - does the fact that C# is not compiled to machine code like C++ make it slower?
- Robert Felty
Rob: C# gets compiled to native machine code when you run the code. There's also a program that ships with .Net called ngen which will create a native image without having to run the code.
- Gabe
It would be nice if Microsoft open-sourced C#/.net. I know there is Mono, but that seems like it will always be second-class.
- Paul Buchheit
What happened to the "Opening .Net Framework's Source Code" project, any ideas?
- Ozkan Altuner
"This is the moment a tiny but very angry kingbird hitched a piggyback ride on a red tail hawk. The feisty little flyer began attacking the bird of prey after it ventured too near its nest. Pat Gaines, 41, captured the moment at Bonny Lake park in Colorado. 'I've never seen a hawk harassed so much. The kingbird pecked at its head as the hawk flew away screaming,' she said."
- Benjamin Golub
from Bookmarklet
"Moreover, our algorithm is conceptually simple: we use transactions to manipulate B-tree nodes so that clients need not use complicated concurrency and locking protocols used in prior work. To execute these transactions quickly, we rely on three techniques: (1) We use optimistic concurrency control, so that B-tree nodes are not locked during transaction execution, only during commit. This well-known technique works well because B-trees have little contention on update. (2) We replicate inner nodes at clients. These replicas are lazy, and hence lightweight, and they are very helpful to re- duce client-server communication while traversing the B-tree. (3) We replicate version numbers of inner nodes across servers, so that clients can validate their transactions efficiently, without creating bottlenecks at the root node and other upper levels in the tree."
- Paul Buchheit
Paul, I think many of us are going to trust your opinion on this white paper. All Greek to me.
- Jon-Paul Bussoli
All I understand is that it is in my best interests to cheer for the way you access B-tree nodes in order to continue to enjoy friendfeed reliably. Go friendfeed algorithm go!
- Jon-Paul Bussoli
@nor It's really not the same thing, unless somehow you're using a distributed B-tree on hash collision, however, if you're getting that many collisions, then the hash algorithm is probably wrong or your key width is too small. Then again, I really don't know what I'm talking about.
- Eric Florenzano
Curious as to what problem Paul is looking at... My default data toolkit these days would probably include sqlite for in-memory data, sharded bdb's for btrees that are too big for memory, and hbase/hypertable for a distributed store. I wonder where this fits in...
- DeWitt Clinton
Ok this is a really *nerdy* post! :*)
- Susan Beebe
DeWitt, I just thought that it looked like an interesting paper. As for the several solutions you mention, I don't know that any of them have distributed transactions (maybe bdb, but that doesn't really work).
- Paul Buchheit
B-Trees and Prof. Bayer http://wwwbayer.informatik.tu-... - would be interesting to know what he'd say, unfortunately he's retired a few years ago. Used to be fairly approachable in all matters B-Tree.
- Mustafa K. Isik
@DeWitt - no room for a traditional SQL based database except as an in memory database?
- Nick Lothian
we had designed and implemented distributed tree control, but transactions were considered "too much" for near-real-time, and they were already in protocol... the rest you know as xGSN boxes in GPRS/3G/HSDPA - dynamic routing for mobile packet networks. I'd left team in 2003...
- A.T.
@paul - I'll readily admit to being out of my depth, but it depends on what the definition of "distribution transaction" is. With bdb a combination of local transactions and guaranteed consistent replication you can approximate a distributed transaction at the cost of speed. See http://www.oracle.com/technol... and http://www.oracle.com/technol.... But those won't work across bdb shards.
- DeWitt Clinton
@paul - A table-based distributed store can do this via a lock on entity groups, where entity groups are defined by relationship formed by instances of similar models that belong to the same parent-based ancestry chain. This is how App Engine transactions work -- see http://code.google.com/appengi... and http://code.google.com/appengi.... Ping ryan for some background there. Not sure if hbase or hypertable support this via their api.
- DeWitt Clinton
DeWitt: have you ever successfully used BDB with millions of newly written entries and transaction support turned on? We kept getting transaction logs with millions of entries that were never consumed, so restarts would take hours as it replayed the logs. Configuring BDB to work for large databases is insanely esoteric to say the least, and it may be impossible to get it to work acceptably in some cases.
- Bret Taylor
@bret -- no, definitely not with large databases. We used bdb's heavily at my last company, though. Aggressive sharding is the key if you want to support either transactions or replication, which matches intuition about how it is implemented.
- DeWitt Clinton
But your comment about millions of entries makes me wonder about which data is getting written to which place. I suspect a lot of problems like this end up with the bulk of the data being written transactionless + replicated to a table-based store (or a transactionless bdb), and only a small subset of the data gets transaction support. So multiple datastores. But you guys know this better than I do, so why am I rambling? : )
- DeWitt Clinton
DeWitt, you can also look into all the trouble that Gaia had with bdb - I simply wouldn't trust any fancy bdb functionality.
- Paul Buchheit
Also, AppEngine transactions are limited to a single "entity group", which I assume means a single BigTable tablet. Essentially, they solved distributed transactions by not having them -- all transactions must be local to a single tablet. From the docs: "Every entity belongs to an entity group, a set of one or more entities that can be manipulated in a single transaction. Entity group relationships tell App Engine to store several entities in the same part of the distributed network."
- Paul Buchheit
@paul - yup, that's the trade-off. Entity groups ensure locality, locality makes transactions fast(er). Same old lever problem -- speed of consistency vs. scope of the transactions.
- DeWitt Clinton
DeWitt, there's nothing wrong with having local transactions -- I'm just pointing out that they aren't distributed transactions.
- Paul Buchheit
Point taken. I got way off-topic regarding your original post anyway.
- DeWitt Clinton
The design seems reasonable. The only part that is under-specified is the way they switch from a master node to a slave. I'm curious why they don't use transactions to maintain replicas but instead rely on some unspecified master/slave replication scheme.
- Private Sanjeev
Hilarious - may all come to pass before 2018.
- Todd McKinney
Love it. But 2018? I'd except to be able to get Friend.com directly through the HUD in my flying car by then... Only silversurfers (like us) would still use "web browsers" in 2018.
- Tony Ruscoe
Twitter feed not available? That may come to pass at 10:30.
- Bill Bittner
And what's up with "low karma comments"? I thought the karma thing left us in the seventies... but yes, everything comes on cycles...
- Alex von Halem
You've got the Google thing backwards :)
- Paul Buchheit
Hey, I just noticed I'm in the screenshot. :D @Paul: ? What's backwards, where?
- Voyagerfan5761
Actually, it missed one important thing - a HUGE ad, taking up the top half of the screen, for a substance that is just as effective as Viagra (which was banned in 2011).
- Ontario Emperor
I think Paul's saying that in 2018 ff will own google
- j1m
It's comforting that hitting monkeys will still be as popular in 2018 as they are now.
- Ginger Makela Riker
One thing they got wrong: by 2012, Paul will have started his own country southwest of Alaska on an artificial island. It'll be called Free Festivusland, and it'll get the top-level domain “ff”. FriendFeed will then be http://ff/ — no dots or coms or nets or orgs.
- Amit Patel
I think the web will be voice and audio driven in 10 years, or at least it will be available. There's even some startup now that can sense nerve pulses to the vocal chords to know what you'll say before you actually say it.
- Mike Reynolds
I think comments won't be replaced by nested commented, just like @ in twitter, many people like this.
- terababy
Mike Reynolds, now I'm scared. Very scared. I'll get myself in trouble before I actually hear what I'm saying (rather than after).
- Ontario Emperor
For some reason, the Facebook deal makes this future user interface look more likely.
- Rishabh Mishra (p248)
Oh SNAP: "Apple's decision to reject Google Voice apps for the iPhone -- possibly at AT&T's request -- has prompted an FCC investigation into the anti-competitive nature of the move. The US government agency on Friday sent letters to Apple, AT&T and Google asking them to explain their roles in both rejecting Google's own app as well as pulling at least two third-party apps that were already available."
- Kevin Fox
from Bookmarklet
Anyone remember a couple of years ago when Eric Schmidt was telling the FCC that we need some kind of openness guarantees on spectrum? Do you now see why it matters?
- Joel Webber
Kurt, it's so hard because unlike deciding to shop at a different grocery store or boycott grapes, deciding to switch carriers to 'send a message' is more permanent. I'd probably get locked in to a 1 or 2 year contract with another carrier, so even if my message worked and Apple and AT&T got better they still wouldn't regain my business for several years, if at all.
- Kevin Fox
It's unlikely Apple or AT&T would be affected by existing customers leaving: they've already paid a good portion of their contract money already, and they are more than made up for in new sales. Bad press, that which would give new customers pause before buying, would be more effective. An FCC investigation, you telling everyone you know how much AT&T and Apple sucks, and news coverage are more likely to effect change than voting with your wallet.
- Mark Trapp
@ kurtstarnes: Yeah, I prefer the market sort it out, too, but my love of how seamlessly my Mac and iPhone work together makes me wonder how long I'm going to continue putting up with Jobs' bully tactics. >
- Mark Novak
from email
We on the Google Voice team have been very surprised (to say the least) by how all this has panned out.
- Chris Prince
from iPod
I assume someone at the FCC wants to use GV on his/her iPhone?
- MVB (Grinch of FF)
from iPod
What's great about the "seamless" interface, vs. a phone that just self-maintains itself? I guess it's the ability to buy music on a large screen, and have it synced to the device? The few times I've had to use iTunes I have found the sync process a bit annoying, but I clearly haven't fully soaked in the awesomeness.
- ⓞnor
My 'snap' wasn't about breaking the camel's back. I'm just happy that someone in a position of authority is taking Apple to task for their seemingly arbitrary and unhelpful approval process. I care less than most whether GV applications are approved for the iPhone and I actually think it's Apple's prerogative to choose which applications are accepted, but their rules need to be clearly...
more...
- Kevin Fox
Personally this has 2 ugly aspects: retrospectively rejecting apps from the app store and what it could mean for apps like Spotify which clearly compete with one of apple's profit centers.
- Adewale Oshineye
FriendFeed has been almost completely blocked in Iran as far as we can tell. We have a large number of very active Iranian users, and we noticed a steep decline in activity yesterday. Graph below.
این نمودار نشاندهنده افت فرندفید به دلیل بسته شدن آن در ایران است
- Mycaptain
Bret: Is this based on IP numbers located in Iran, or actual activity from those users? If it's IP based, it'd be interesting to see the activity on a user basis and see if they've been able to route around the blocking.
- Ken Sheppardson
If Twitter were blocked and FriendFeed weren't, I'd expect an uptick in FriendFeed activity, not a 92% drop.
- Kevin Fox
I.e. given all the users who've previously accessed the site from an Iran IP number, how many have been active from different numbers in the past 2 days.
- Ken Sheppardson
Instead of "liking" this, shouldn't we have an "unlike" button?
- Steven Melfi
:( Bret: According to Stephen fry, these are the iran proxies: 218.128.112.18:8080 218.206.94.132:808 218.253.65.99:808 219.50.16.70:8080 . Can you track these IPs?
- Roberto Bonini
I knew this day was coming. Too bad.
- Robert Scoble
Steven - same feeling here. I always feel weird "liking" bad stories on FF
- Mike Bracco
How does traffic from China look? Or North Korea?
- τorƍue
like for spread but not like for the situation
- Imprenditore
I wonder what the international community can do about stuff like this. Eventually the "bad guys" will lose.
- Michiel Sikkes
Hopefully, we'll never see a graph like this for Turkey...
- Onur Şentüre
that's because the government has blocked access to friendfeed,twitter,facebook,youtube and ... after election and after protests in Iran cities !
- Farshad
Man... :( That's really a corrupt government. Hope it gets better soon.
- Peter
Kheyzaran mentioned over the weekend that both Twitter and FF were blocked for Iran starting I believe on Friday. He is using a proxy when possible to keep us updated
- FFing Enigma (aka Tina)
Bret, any analysis about how many people unable to access FF directly are still able to access it via proxy?
- Daniel Dulitz
Daniel: Well, we are still getting a bunch of Farsi comments and posts. They may be Persians from outside Iran or from Iranians using proxies. We don't have a detailed analysis breaking those down at this point.
- Bret Taylor
Watching the "guerrilla cyberwarfare" aspect of the elections and reactions has been fascinating. Iran's universities are obviously full of resourceful, passionate geeks.
- John Craft
this is really bad. i hope there's some resolution to this. the people or iran have shown a lot of strength and courage to protest the illegitimacy of recent events. i don't think this will stop things
- Cee Bee
Is it possible that the same folks from Iran that are active on Friendfeed are the ones out protesting?
- MVB (Grinch of FF)
please help us , we are under attack ,change friendfeed logo if you can
- فرزاد
make a room for us, invite your friends we will fill it with latest news
- Farshad
I'm completely for having a fair vote, but I'm not sure that I'd want to try and align FriendFeed with a particular candidate, which is what a green logo would imply.
- Kevin Fox
Many iranians using proxies to access FF. and therefore their IPs changes to fake IP .
- آدمیرال
MohammadReza: Maryam's mom is still able to call her relatives and friends in Tehran, so they are keeping some voice traffic open, if not all.
- Robert Scoble
@Kevin, totally understandable.
- EricaJoy
from IM
If Iran thinks they have nothing to fear, then why block Friendfeed?
- Frode Stenstrøm
Frode: because the government is like China: they believe that by retarding the flow of information they will reduce the threat of protests and governmental overthrow.
- Robert Scoble
Very reminiscent of the prelude to the fall of the Shah
- Alan Morris
I don't speak Persian, so I don't know all the searches, but there are still (luckily) a lot of Persian users posting: http://friendfeed.com/search.... If you are Persian and looking for updates, try our search engine to find the few users who still have access.
- Bret Taylor
Frode: and in Iran's case, they are run by conservative religious authorities and they don't like the fact that they are not in control of information flow like they used to be. They like to think they can still control information sources and, since they can't, they try to block places where their citizens can go to share information.
- Robert Scoble
is it a joke? iranian users seems the %90 of friend feed. it could not be real!
- Fırat DEMİREL
Firat: There are no units on the vertical axis of the chart.
- Ken Sheppardson
Firat: This is a chart of traffic from Iran, not of FF's total traffic.
- Kevin Fox
Firat, i doubt that this graph is a percentage graph... probably more likely that it's measuring hits, sessions, or total data transfered (mb, kb, etc)
- Chris Heath
Kevin: what impact did this have on FF's overall traffic?
- Robert Scoble
Robert: Iran is the #6 country for FriendFeed in terms of page views per day.
- Bret Taylor
Thanks all for answers. i told that it could not be real.. :) excuse me, i ve just read Bret's notice and looked at breaking point. i saw what i've missed before.. bad news for ff and iran.. :(
- Fırat DEMİREL
These statistics are incredible, especially the normally heavy useage of FF in Iran.
- Curt Mercadante
Bret Taylor, we can tag our pix and vids about iran election by an english keyword such as 'iran' or 'iranelection'. I think it will help to ff non-persian users to find out more about unrests in iran.
- آدمیرال
Iran restored cell phone service Sunday that had been down in the capital since Saturday. But Iranians still could not send text messages from their mobile phones, and the government increased its Internet filtering in an apparent attempt to undercut opposition voices. Social networking sites including Facebook and Twitter were also not working.
- Üstün Üzüm
martin: those words are not mine actually from a news article from washinton post.
- Üstün Üzüm
On twitter people are retweeting the IPs and ports of unblocked proxies, can we do something like that here?
- Canageek
martin, i'm from iran. twitter is blocked. what evidence you wanna? screenshot!?
- آدمیرال
yes Canageek. we use proxies for tweeting
- آدمیرال
Authorities blocking the internet are just reinforcing solidarity between people, can't they understand ?
- Stanislas Jourdan
Stanislas: not to mention they encourage their smartest and richest people to leave (the ones who have technical skills). There's a reason why Silicon Valley has 10,000 or more Iranians living here. Their government sucks and the people are getting tired of it. Of course if their government was great I would never have met my wife (who grew up in Tehran). So, there is good to come out of a crappy government! :-)
- Robert Scoble
it has always seemed to me that the iranian user base is ENORMOUS here. wow. unbelievable.
- edythe
It is interesting how much civil unrest that is brewing across the globe towards their governments. The knee jerk reactions in attempting to block certain websites shows how much they didn't expect the net to become such a widespread conduit for cutting through the bs and informing those that wish to know. I wish those who take a stand all the best.
- alphaxion
Another way for those that are in Iran is to access through Netvibes (but I don't know if it works or if it's blocked too), adding Friendfeed, Gmail and so on such as modules
- Roberto
Thanks for sharing this, Bret. It's valuable evidence of what's going on, evidence which wouldn't have been available even a few years ago.
- Michael Nielsen
Very interesting...so much for democracy and voting rights in Iran...
- freedom fighter mom
If anybody in Iran feels up to it, can you temporarily disable your proxy and run a traceroute to friendfeed.com and twitter.com then post the results here?
- EricaJoy
Bret and Paul, can you let us know if the traffic comes back, which would tell us they've unblocked FriendFeed?
- Robert Scoble
Robert: absolutely, we will let everyone know when it comes back up
- Bret Taylor
from email
Steven: You Like that it was posted, not the content of the post.
- Tanath
Bret, thanks for sharing the info about the dive. Shame, but what could we have expected from the Iranian status quo?
- Jon Osterholm
البته یه چیز هم هست اونکه بعد از فیلترینگ همه با آی پی غیر ایرانی می ان فرندفید و برای همنی آمارشون اینجا ثبت نمیشه ... وگرنه فکر نمی کنم از لحاظ تعداد نفراتی که میومدن کم شده باشه ... بلکه هم بیشتر
- HΛMΣD ƧΛFΛ
Yes, it happend and we have to use proxy to access friendfeed. Look at democracy in Iran...
- Zahra (raoros)
The coversations and comments here are educational.
- Seek Ground
Good luck to all of you trying to get around the censorship. I hope the big sites are doing what they can to help out.
- Eric @ CSTechcast.com
Looking at the potential of this event in the future for numerous causes is mind-boggling. Really amazing.
- Charlie Anzman
Come to think of it, does FF have a presence in China? I'd imagine it's blocked there. I've seen Chinese on here, but never sure if that's from China or speakers outside.
- anna sauce
Yes, Friendfeed is blocked in Iran. Right now the papers and TV channels here are controlled by the government and our access to satellite channels is blocked too. Friendfeed and Twitter are quite vital for us now. Our main source of exchanging information and news is Friendfeed. Via Friendfeed we let everyone know that where people need help and where to go and how to help them and...
more...
- Selma
Nope, they have blocked all https addresses, we have had to sign in to Friendfeed via anti-filters for the past few months.
- Selma
its a shame. it was one the main media we used to inform ppl. thats why they filtered it. now many users cant sign in
- Myri∂m
Can't we "help" in some way? Providing proxies, I don't know, the kind of stuff pirates do. Pirates, and people trying to make a Revolution happen....
- Zackatoustra
It may not be long before Turkey joins the party.
- Sarp Tüzün
I just spoke with my friend Andres, the main BBC correspondent for the Middle East/Afghanistan, and he mentioned the web is being fire walled in Iran much the same as the the "Great Firewall" during last year's Olympics in China.
- sofarsoShawn
The Iranian websites that people used to exchange information about the election protests in Iran are under cyber-attacks by the government forces and from anonymous sources. Many of them are down right now. These Iranian websites were our few last remaining channels to inform people. What can we do about that? Is there anyone out there who can help us with this?
- emin
i was 53rd active user in friendfeed until this filtering. now i can open FF with proxies and if i can fine. a Vpn but many Vpn here come from companies that have relations with security services, i thunk they allow us to bypass filternig and then, they will arrest who has wrote against their goals
- خیزران kheyzaran
Can't we transfer the data/databases of the sites you, iranian guys, use to any new domain we could buy? I want to help. Not by throwing rocks to "security service" forces, but, at least, by making possible for what YOU have to say to go public, worldwide.
- Zackatoustra
FF is a useful website for Iranian People to get reliable information about demonstration against presidential election.
- پارسـا
so so sorry for iran people... I hope they will win...
- Tanaydin Sirin
and Now Yahoo messenger and google talk blocked in iran :((((
- پارسـا
Selma: 1- I don't use a proxy but clearing all but one (deleting them all logs me out) instance of each friendfeed.com cookie name and refreshing the page always solves this for me in Firefox. Has never happened on Lunascape or IE. Good luck.
- Alexandros Georgiadis
google block fftogo for iranian users!!!
- ★amin.m★
The reason I ask is because if you can email a post, then try sending it to share@friendfeed and also to YourUserName@friendfeed. Then when someone comments you'll receive an email about it and you can comment back to the thread via email as well.
- FFing Enigma (aka Tina)
@Alexandros Georgiadis:for frienddeck.com I see this:You are accessing this page from a forbidden country! but dev.ctor.org/f2p worked! thank you :)
- ★amin.m★
from MojiPage
+ don't use your ISP's DNS server, verify your Firewall, search for rootkits.. + If you really wanna use Tor, be 'mobile', check the onion's status, don't be too confident, continue to use encrypted protocols & 'mobile' ports. At least, read Tor's docs and articles about Tor & privacy/security..
- Thierry R. Andriamirado
now chat like gmail or yahoo messenger are blocked too
- egza
for me,yahoo messenger is not blocked yet!
- ★amin.m★
from f2p
Alexandros: Frienddeck could work for certain parts - posts and queries against user accounts are proxied through the App Engine, searches are direct against Friendfeed so they could probably not work.
- Paul Kinlan
We wish the people of Iran well in these difficult times
- Marc
Not good at all. Best wishes to the Iranian FFers. I hope this whole mess gets cleared up quickly and with as little violence as possible
- Kamilah Gill
definitely DON'T LIKE this... >_< ...would love to be able do more than retweeting proxies
- Daniele
Best regards from Chile to all iranian people, we know a lot about bad government and human rights. Good luck, strength and courage to all of you.
- Roberto Arancibia
It's to bad there is such attempts to block free flow of information, how long will it be before there is more amazing differences happening? Such limits, hmm.
- Ray Marr aka Knatchwa
They have to keep the militants in check. Thank goodness for the pipes that were broken.
- tony
Interesting censorship- same can happen in America - I would like to talk to you abt Friendfeed and bringing over some large groups do you have time?
- JanSimpson
I've seen those censorship about FriendFeed (Iran). Do you know some interesting and objective blogposts about it?
- Thierry R. Andriamirado
from email
And China now has a similar blockage. You should also check on it.
- Kenyth
Sometimes we forget how easy we have it than other countries. But until people revolt & I mean a HUGE revolution injustices will still go on.
- Gabriella Sannino
che jaleb , oonvaght por comment dartarin feed kodoome? bebinim mishe feed 2khtare mardom e farzad davan davan ro be oon beresoonim?
- HΛMΣD ƧΛFΛ
from IM
When you edit your comments on FriendFeed, those edits are now reflected in real-time in everyone's feeds. No need to refresh the page to see the edited comments.
This should improve the experience for some of the more "colorful" discussions on FriendFeed :) Thanks to Gary and Casey for implementing this change.
- Bret Taylor
actaully I had two browser windows opened ..but the other one did not get refreshed
- Peter Dawson
This is bad...it's kind of addicting to just watch people changing their comments in this thread :)
- Tamara
Oh thank you so much, FF devs. I am horrible at reading what I type sometimes and end up with typos. I correct them anyway, but most never saw unless they refreshed. This is awesome!
- Haggis (Sean Loyless)
Ok here's a question - what will BackType pick up as my final comment here? if i can continue to edit it? probably just whatever it is when it happens to hit the comment
- Nathan Chase
That's the kind of attention to detail that makes FriendFeed so good - thanks!!!!!!
- Jim Connolly
Thx Micah, but unfortunately I use Chrome. So, no extensions yet. At least not with the stable version.
- David Schmidt
from email
@Nathan: Unfortunately, we capture every edit of your comment (can look at that as a + or -, but we'll likely address it in the future)
- Christopher Golda
which makes it pretty much like google wave.
- Rohit
Tis true, David. I'm as eager as anyone for Chrome to catch up.
- Micah Wittman
THis is a really neat thing to watch. I saw it happen yesterday in one of my posts.
- Rick Cogley
Indeed, who needs Google Wave now? ;) Great addition. I do hope that comment field changes become versioned (at least optionally) with history of changes. I do like the ability to clarify my wording, but I also like the permanence of immutable comments (like with regular blog commenting, for example).
- Meryn Stol
Please Please Please, can you do the groups listing updates also so you don't have to refresh the screen to see the last time one of the groups was updated?
- Travis Koger
VERY NICE UPDATE! We also need this for deleted comments.
- Alp
Re: BackType - I've noticed that they'll recrawl your comment if you modify it, within a few hours, after some testing. Not sure if it always happens though, but I've seen at least 4 reappear after I've modified them.
- Tyson Key
"To share files on friendfeed.com, simply click the "Files" link underneath the post box and select which files you want to include. You can also share files by including them as attachments on emails sent to share@friendfeed.com."
- Bret Taylor
from Bookmarklet
We have a rolling 24-hour limit for the number and size of files you can upload, but you probably shouldn't hit it unless you are sharing really big stuff.
- Bret Taylor
Are the files public when accessed via direct link? Or do they require authentication?
- Mark Trapp
Any other files that don't work with it?
- Kol Tregaskes
What's the file attachment size limit?
- imabonehead
Kol: i assume you can attach video? it just won't play in-line? or did i misinterpret that?
- Frankie Warren
@imabonehead, from Bret's comment above: "We have a rolling 24-hour limit for the number and size of files you can upload, but you probably shouldn't hit it unless you are sharing really big stuff."
- Dan Hsiao
I tried it with both a txt and a rar file but neither seemed to work (the message was posted without a file attached). [Update: works now for me]
- Philipp Lenssen
Gonna give a big W00T!! to this before I even read the whole thing...
- FFing Enigma (aka Tina)
Now all I need is a number where I can call and leave a VM that gets changed into an audio file, and I can get rid of drop.io for good! Yeah, we're never happy are we? Sorry....
- FFing Enigma (aka Tina)
All we need now is a calendaring system and support for source code.
- imabonehead
mp3 sharing works in FriendFeed? Just when I'm thinking to share some 'musiclets' from time to time via Tumblr! mhh.. interesting, really!
- Thierry R. Andriamirado
this is awesome, i was literally just trying to do this last night on one of our team feeds and had to post links to published google docs instead. going to try it out now. it's like they read my mind.
- Mike Elliott
Kol...we use Drop.io all the time here at my office. This would be great as it is supremely simpler. But approved file types and sizes needs to be understood.
- JA Castillo
Mitch, that would be an option, but I can only imagine the opportunity for the wrong voice file to go to the wronge feed...
- FFing Enigma (aka Tina)
And Akiva is right...where do we start donating?!
- JA Castillo
If we had basic HTML support for first comments on FF, it could almost be used for mail (at least for forwarding and reading mail to and on it).
- Kol Tregaskes
JA, a list of supported file types, limits and sizes is needed... please. :-)
- Kol Tregaskes
This will go a long way in convincing some of my Yahoo Groups to move to FF. Although we must have a list of file types supported, retention times and also if there is a max number of d/l's.
- Gil Francisco III
This is awesome but I'm also concerned about the type of people this might bring to the FF community.
- Johnny
Gil, I'm seriously considering moving my Y!Groups list members from there to FF.
- Kol Tregaskes
This is one of those features that people don't complain about even though they didn't ask the community prior to launching ;)
- Frankie Warren
Dare I ask about Boobies.jpg.virus.exe? - Oops Casey says they are virus scanned
- Richard pancakhaus Walker
Jannifer: RIAA and MPAA, specifically. Say someone shares a copyrighted song or something...RIAA gets cranky.
- Jordan Hofker
Am I the only person that thinks this is an incredibly bad idea?
- Jason Nunnelley
.m4a files sent from the iPhone's Voice Memos feature aren't given a player but are making it through the mail to FF feature. Any support for a player coming down the line?
- Christopher Harley
How about .zip s that are password-protected? Reject I hope... (edit) .zip not supported at all, I gather, good!
- Richard pancakhaus Walker
yeah search by filetype absolutely! filetype:pdf, filetype:mp3, filetype:zip, filetype:doc etc.
- Nathan Chase
Christoper: (via Bret) "Unfortunately we only can play back MP3s at this point. The iPhone voice memos are in M4A (AAC), so we really want to support them, but it is a bit more difficult with Flash and our media setup at the moment."
- Ross Miller
I'm not sure that I'm going to use that feature (I rarely share docs over the internet that weren't created in Zoho or GDocs, anyway), but still it looks pretty neato.
- Miss Elle
Bret, do you have any restrictions to protect against music filesharers etc so you do not become an RIAA target?
- Travis Koger
@ Travis: I was just wondering the same.
- Brian Chang
Bret Taylor, a friend of mine uploaded 1 mp3 and it disappeared. Now he can't upload any mp3 file, seeing a [The "" file type is not supported]. Broken message?
- Jason Nunnelley
"You can only upload 3 audio files every day. Please try again later." Too bad because I was really just trying to see what files worked. .wav aint one of them. No audio notes from Evernote, iPhone, iProRecorder. I soooo want to love this but It's not doing what I need it to do. This feature needs to support some kind of multi photo post with a recording appended to the message. That should be right out of the box. Video needs to come right behind it. Music is cool but citizen journalism is even cooler.
- Christopher Harley
I haven't tested this but, how exactly are you determining audio file types, just using the file extension. If so there is a work around with a simple file rename, an example would be if you change an .mp3 to a .pdf and let people rename it once it becomes local on their machine. EDIT: This workaround would also allow video to be transferred.
- Jimminy Fuller
Maybe I don't know enough, but doesn't this kind of open the door to slipping malicious code to unsuspecting users?
- Fleagle
this is the best thing I know this morning when I open my eyes, well done!
- K.D.
Fleagle: It is possible that someone would do that but FriendFeed is fairly well self monitored. It is still a small group of people in comparison to other networks.
- Jimminy Fuller
Glad for this feature, though perhaps close partnership with Box.net or similar could keep FF storage costs better contained? Not criticizing, just hoping Core Team doesn't get distracted by extending (and babysitting) commodity services. Keep up the great work!
- michael silverton
So we can setup private groups and share questionable files ? :)
- Ahsan Ali aka. Slick
That's pretty much what I was saying, Ahsan. I did one earlier as a test to prove my point, (NOTE: it is a clean file, direct from Revision 3) at http://friendfeed.com/jimminy...
- Jimminy Fuller
Hmmm @Ryo, good catch, posting directly from Android to FF your voice messages, would be cool!
- Ozkan Altuner
Can we tell the lawyers that they "won" and give them all the money? Then start over with a new set of I.P. laws and a new currency? Pretty please?
- Richard pancakhaus Walker
This is great. I'll try this instead of posting to Ipernity.
- Rick Cogley
Seems like a good step in the right direction indeed the concerns are founded based on previous experiences but it is a good start.
- Ubuntu101
Is it possible to set it up as part of the feed like a podcast?
- Ubuntu101
Excellento - inline playing of mp3 files at last - this will be dangerous. But is there are limit??
- Chris Loft
embedding mp3's is just fine when it works .. I've been trying to get a podcast rss feed I have setup imported for the past 8 hours straight only to find out that each time it's not importing squat.
- John Blanton
from twhirl
I take that back it worked once but everything in the description tags showed up twice.
- John Blanton
from twhirl
Can us folks with Symbian OS-based devices have some Adaptive Multi-Rate codec/AMR file love, too? I believe that some Samsung and NEC phones also use that audio file format...
- Tyson Key
Oh, and Google Earth KML files, and Ogg Vorbis files aren't supported right now either, for what it's worth. Still, it's a nice idea, so far.
- Tyson Key
Tried to share an .hta file with Micah yesterday....couldn't attach it. Tried to zip it and still couldn't attach it. Ended up tossing it in my dropbox and posting the link. :-(
- April Russo (app103)
"Reproducing Wikipedia in a dysfunctional physical form helps to question it's use as an internet resource. Articles in the book: Wikipedia's featured articles."
- Cee Bee
from Bookmarklet
My first thought too... kinda disappointed
- Chrimmus Tad
It's only the feature articles - the ones that have been properly vetted, redacted, agreed on and quality controlled (no half finished sentences and "more details needed" stuff) - from the source: "At present, there are 2,529 featured articles, of a total of 2,903,080 articles on the English Wikipedia." The full wikipedia would be 1000 times this, but most of it would be 25 line standard templates with "this article is a stump"
- Joelle Nebbe (iphigenie)
Featured articles are disappointing: that there are so few of them, and that so many of them are on arcane narrow topics (one painting, one book etc.)
- Joelle Nebbe (iphigenie)
Alix- I was thinking the same thing. My childhood set of pedias in the 80s (that were from the 60s and 70s) stacked a lot higher than that. I'm more surprised that there are only 5,000 8.5 x 11 inch double sided pages of Wikipedia information. Seems low.
- Tony
Joelle- Now that seems more along the lines of what I was thinking.
- Tony
disappointed to see so many incomplete articles on wiki..:-(
- Özhan Yiğitler
But you can edit featured articles. Which makes the book out-of-date already :).
- Nikhil Dandekar
art indeed and good metaphor to save trees... go digital
- Yann Ropars
@Cee Bee: Yes, but if the quoted description is part of it, I don't see how it "helps to question [Wikipedia]'s use as an internet resource."
- Scott of Two Countries
Just after have printed this mega volume, this is already passed
- Roberto
from fftogo
wow that's huge... how outdated is it already now? hehe
- Marko Saric
Not huge at all, even if it is only featured articles. Alix noted it looks smaller than book set remembered a kid and I agree. Now, if they printed all the smaller, cross referenced articles each with a page, it would be huge.
- Michael W. May
Hypertext is vital these days to make sense of all that.
- Mark Edmondson
this just strikes me a a pointless exercise (at best) - and the quote seems to suggest that printing it shows how it is less than valuable as a tool. Huh?
- guruvan (Rob Nelson)
....as Percy came to, he wondered why Tabby and Mr.Umph were peering down on him so..alarmingly. But what brought a droplet of fear to his brow wasn't their countenances, oh no, it was the fact he couldn't feel his genitals..
- Terence
Oh poor kitty!!!! My dog bit at a bee and we found out she is highly allergic. Got her to the vet as her breathing was getting worse. Her face swelled twice it's size...like kitty paw.
- Janet
That was my cat like, every other summer.
- Derrick
"They bought minicows -- compact cattle with stocky bodies, smaller frames and relatively tiny appetites. Their miniature Herefords consume about half that of a full-sized cow yet produce 50% to 75% of the rib-eyes and fillets, according to researchers and budget-conscious farmers. "We get more sirloin and less soup bone," Ali said. "People used to look at them and laugh. Now, they want to own them." In the last few years, ranchers across the country have been snapping up mini Hereford and Angus calves that fit in a person's lap. Farmers who raise mini Jerseys brag how each animal provides 2 to 3 gallons of milk a day ... one animal needed less than an acre for grazing. Because the minicows could be grass fed, the couple were spending at least half the amount on feed than they would have on regular-sized animals. The minicows also reached their mature weight faster, so they could be sold for meat sooner."
- Paul Buchheit
from Bookmarklet
I kind of want to own a mini-farm now.
- Paul Buchheit
They're cows the size of schnauzers but they're cattle!
- Akiva Moskovitz
I could swear I saw this on a Jack in the Box commercial....
- Alan Chamberlain
Paul, you've never struck me as a farmer, but if you get a mini-farm, I definitely want to see it.
- Clare Dibble
Yeah, I think the "taking care of it every day" part might be a problem for me. I'll probably have to hire a mini-rancher. I've been thinking about finally getting some ducks too. I think our yard is big enough that the mess won't be too bad, and we'll have a lot of fresh eggs.
- Paul Buchheit
Paul you will have much more poop than eggs from ducks..Trust me. Been there done that. They are fun and cute but very very messy. Unless you have many acres, which maybe you do. Just my two cents.
- Bill Heslin
I'm thinking the proportion of meat to bone would be identical, "less soup bone". LOL.
- Kevin Gamble
Reaching their mature weight faster suggests to me that they develop even less flavour than regular cows. OTOH, being half grass-fed can't hurt.
- Andrew C
Andrew: calves are immature, yet people seem to really like veal for some reason.
- Gabe
Fair enough, but veal is deliberately raised to be mild and tender and unlike beef. (OTOH, speaking of flavourless beef, people do seem to like filet mignon.)
- Andrew C
" They also had a tough time finding collars for ID tags small enough to stay put on their calves. So the owners of the Sonoma Little Cattle Co. in Santa Rosa, Calif., went to a pet store and bought dog collars. "It wasn't until later that we realized they had tiny hamburger and hot dog designs on them," Mintun said."
- Clare Dibble
I wonder how much tri-tip one of these makes relative to a normal size cow.
- Clare Dibble
I think this is the sort of cow that White Castle uses for their little burgers.
- Gabe
I met Ken Robinson while working at Microsoft and the dude was inspiring to hear speak. One thing that's cool about having kids is to see how they learn: my son learns by trial and error. He tries things hundreds, if not thousands, of times before he figures out what makes them tick. We give them permission to learn that way because they are babies. Too bad we stop being able to learn that way when we're older.
- Robert Scoble
Are you kidding. I've got my I was wrong speech prepared and in my suit jacket pocket at all times =)
- Micah Wittman
Paul, wouldn't it be a good time to consider embedding TED's videos? ;-))
- ianf ⌘
Really, Zee? You are not prepared to be wrong [5:44 into Robinson's talk], as this proves <http://ff.im/3dtfY>
- ianf ⌘
I try hard to be open to being wrong. I don't always manage it but at least I give it a hellva try
- Steven Hodson
Being prepared to be wrong implies being prepared to admit it publicly, and without prompts. This is a TALL order for most humanity...
- ianf ⌘
A ted classic. I never get tired of Sir Ken's talk. I have walked in godknows how many times. Always use it whenever I introduce a newbie to Ted.com
- Edward Harran
Interesting talk. I feel like I've been living in a hole (actually, have just been living in Japan!) but what's TED? I'm sure I'll get the idea if I browse around the site but it's interesting to ask here on FriendFeed.
- Rick Cogley
Wow--good shit! The bit about Will Shakespeare had me in tears.
- thepete
Will S. would have instantly choked on a piece of medium-rare mutton had he heard you refer to him as "Will."
- ianf ⌘
This was one of the first TED talks to be published online with help from Google, something like 2 or 3 years ago. I remember it vividly, since I totally and absolutely agree with what Ken Robinson has to say. Remains one of my favorite talks. Ever ;)
- Mustafa K. Isik
play is fearless= adult says = '...nobody knows what God looks like.' girl says 'They will in a minute!'
- Lane Rapp
"Each cell ends with a tab character. A column block is a run of uninterrupted vertically adjacent cells. A column block is as wide as the widest piece of text in the cells it contains or a minimum width (plus padding). Text outside column blocks is ignored." The page includes a Java applet demo of a simple editor which uses this concept. This actually looks pretty sweet.
- ⓞnor
from Bookmarklet
You mean, tabs should be 4 spaces? That's okay but did you read this article?
- ⓞnor
It would require changes to any editor; I see no reason those changes would be harder (or easier) to make to vi. (The changes are to how tabs are rendered; actual editing is unchanged.)
- ⓞnor
Those are good points about time travel, but this could be a relatively incremental improvement that would actually make things a lot better. Not that I'm about to adopt it or anything (as far as I know it is implemented only in gedit), but table-based layout of code fits the way I move code around better than the line-at-a-time reindenting most editors use. Maybe a good intermediate solution would be an editor that works with this model but translates it to a more conventional format on exit.
- ⓞnor
I wasn't smart enough to make the demo do anything interesting for me, but what does this do that you can't do with the emacs commands that in/outdent the selected block of text?
- j1m
j1m: try making one of the variable names (or types) much longer than it currently is. You'll see the entire next column of stuff shift over to adapt without you having to do anything special. Also, since it's only the rendering that's changing, and not the number of space characters on every affected line (as would be the case if you indented everything with spaces), your revision history will be cleaner: only the line you meant to edit will show up as "changed".
- Laurence Gonsalves
What Laurence said -- try editing the "try making this comment a bit longer" text, or the "makeThisFunctionNameLonger()" function in front of it, and watch how things reflow. Or, edit the name of the someDemoCode function and watch the argument list move. Some of these things could be done through fixups and block-move commands, but I think this is quicker and better.
- ⓞnor
@Laurence, yeah, the bit about the revision history seems pretty valuable.
- j1m
What I want is something that can reflow gracefully to variable column widths, so we don't have to argue about 80 columns vs. 100 vs. whatever all the time.
- ⓞnor
Very interesting idea, seen it a few times before. Sad thing is that it isn't really supported anywhere I can find. I only indent with tabs myself, spaces are evil. I hate having to retab files that have to few/many spaces to be readable. =)
- Daniel Bruce
"The above 360-degree full-sky panorama is a composite of 30 images taken two years ago in Racetrack Playa. The image has been digitally processed and increasingly stretched at high altitudes to make it rectangular."
- Benjamin Golub
from Bookmarklet
Why even make it reversible? In public forums where so many users will be first-time users, it might make more sense to always have it facing up, lest people never discover the functionality.
- Kevin Fox
Kevin, great idea -- a faucet that always directs its flow upward. The ultimate in minimalism, it could almost dispense with structure.
- Daniel Dulitz
False, I would expect, because no number is congruent to itself plus one mod 3.3, and Python modulo is sane with respect to negative numbers. You can't add 1 to a string, and only numbers and strings admit the % operator. Is there a trick?
- ⓞnor
I cheated and ran it in the interactive interpreter. Its false for all numeric values of x I tried. Amazingly a string cannot be taken modulo 3.3. (Edit: I mean its a dynamic language after all, a string modulo 3.3 should skip every third letter or something equally clever but useless).
- DGentry
does it involve integer/long overflow?
- Eric Kerr
There is no long overflow in Python (longs are arbitrarily large). I'm waiting for the answer to Daniel's question.
- Tudor Bosman
It's True for certain values of x. I leave it to you to determine which values :)
- Paul Buchheit
Paul, as you said "values of x", I'm assuming that this is not a precedence issue. That is, if I have def foo(x): return x % 3.3 == (x+1) % 3.3, then foo(x) will be True for some values of x.
- Tudor Bosman
True for x = 1e+100 (insufficient precision to represent the +1). What do I win?
- ⓞnor
Heh -- by like 6 seconds. Real time, bitch.
- Joe Beda ()
okay, now I have to look at the code to see what you were using large floats for :)
- Tudor Bosman
Yeah, I'm wondering about the context. (Assuming this was the case you had in mind.)
- ⓞnor
Yeah, somewhere around x=2**53 the loss of precision on the int to float conversion causes it to lose the +1 and the expression is True.
- Paul Buchheit
Liked for the real time smackdown. Hi Joe! Long time no see. How's the family? We gotta get up to Seattle again soon to see all my friends there.
- Robert Scoble
x was the hash() of a string, and at some point the values returned by hash() must have gotten a lot larger than when I had originally written the code.
- Paul Buchheit
Wolfram|Alpha is never sure what to do with _my_ input.
- Paul Buchheit
Wolfram|Alpha just hangs for me most of the time.
- Joe Beda ()
If I have a counter 'i', then i % 3 == 0 will be True 1/3 of the time, but what if I want it to be True with some other arbitrary probability (such as 1/pi), but non-randomly? (so that the values are distributed as evenly as possible) This was my solution (except with > instead of ==). It's kind of overkill, but I couldn't resist the puzzle.
- Paul Buchheit
I think a normal person would have done "hash(i) % 1000 < 318" or the like... but sure, it's cute that you do the modulo directly in floating point space. Cute until the gremlins of floating point *eat your brains*. There's a reason we stay away from that stuff!
- ⓞnor
Okay - it gets stranger -- I wrote a binary search to find the inflection point. I didn't get what I expected. x=9007500000000000 -> True, x=9007500000000000+1 -> False, x=9007500000000000+51 -> True. There is something strange going on. Python version 2.5.4 (r254:67916, Apr 1 2009, 17:38:54) \n[GCC 4.0.1 (Apple Inc. build 5490)]
- Joe Beda ()
Dan, that solution would produce unnecessarily long sequences of zeros (or ones). Once I have that, I may as well just use random(). On the other hand, [int((i+1) % f > i % f) for i in range(0, 30)] will not produce any adjacent zeros if f is >= 2.
- Paul Buchheit
You could use fixed point if you had a typed language and could select longs to hold the result, e.g if you want 3.3, then (counter * 10 + increment) % 33. Overflow bugs are insidious, these days languages should have support for arbitrary precision promotion. I'm reminded of Joshua Bloch's "Nearly All Binary Searches are Broken" blog post: http://googleresearch.blogspot.com/2006...
- Ray Cromwell
Python already has arbitrarily large longs Ray (no integer overflow), so it should not be vulnerable to Joshua's binary search bug. I'm not sure what "counter" and "increment" are in your example though.
- Paul Buchheit
Oh, I see, you want evenly interleaved values with the appropriate distribution? Then why were you using hash() at all?
- ⓞnor
The hash() provides a starting position (hash(feed_id) + i). This is used by the crawl, and I don't want all the feeds having the same True/False values at the same time. The hash provides an even distribution across feeds, and the other part provides an even distribution across time.
- Paul Buchheit
Paul, counter in your case would be hash(feed_id), and increment would be 'i' I'm guessing, the amount you want to add each time. The idea is, if you want to say, mimic x + 0.1 % 3.3, you instead use x * 10 + 1 % 33. Then, if you have arbitrary precision integers, you'll never overflow (the float mantissa/round-off error)
- Ray Cromwell
Ray, the even easier solution was to use hash % 1000000 so that I'm nowhere near the floating point rounding error :).
- Paul Buchheit
No objection there, keep it simple, and floats will be faster than arbitrary precision longs I suspect. :)
- Ray Cromwell
"It just so happens that the robotics substrate software that comes with the system they’re using is programmed in Python. Similarly, the mobile software environment is based on Python."
- Jeremy Hylton
from Bookmarklet
I just remarked to a high school friend day before yesterday about how it was this course (transplanted to Cornell as CS212) that brought me as a programmer to CS instead of linguistics or cog psych. All things change, but I will always honor the old way.
- Daniel Dulitz
6.001 had a pretty profound effect on me, too. I can't imagine what my education would have been like without it.
- Jeremy Hylton