HN user

mr_dbr

33 karma
Posts1
Comments29
View on HN

> We're talking about a traffic spike that is 30-to-1 type ratios. In other words, 30 times more IPv6 traffic is coming out of Google's data centers than before.

Given that Google enabled IPv6 traffic to a high-bandwidth service like Youtube, is the spike really of any note?

If a week ago 100 people were using Google Search via IPv6, then today one person views a single Youtube video, that would easily account for a "30-to-1" spike

The actual number of users with IPv6 would be interesting, the fact there was a traffic spike seems quite irrelevant..

This seems like an absurd, silly idea..

1) Have any laptops (or MP3 players) actually been used to smuggle explosives onto a plane?

2) Aren't laptops and such searched for explosives anyway? (x-ray'd, sniffer-dog'd etc - my hand-luggage was randomly swabbed for explosives)

There is some logic to banning such electronics, but it's the same logic that lead to water bottles and metal butter-knifes being banned..

The linked news-item (http://www.nytimes.com/2009/12/27/us/27plane.html ) seems to be a better argument for giving all airline passengers guns than it is for banning laptops..

Futurama proposes a different reasoning for the inevitably changing human-robot ratio (I couldn't find a clip of it, so.. use your imagination):

Fry: Well, so what if I love a robot? It's not hurting anybody.

Hermes: My God! He never took middle school hygiene. He never saw the propaganda film.

Farnsworth: It's just lucky I keep a copy in the VCR at all times.

[He presses a button and a film title, I Dated A Robot!, appears on the screen. In the movie a couple sit in a cafe and stare into each other's eyes. A narrator walks into the scene.]

Narrator: [in movie] Ordinary human dating. It's enjoyable and it serves an important purpose. [He turns the table over and a crying baby appears. He turns it back again.] But when a human dates an artificial mate, there is no purpose. Only enjoyment. And that leads to ... tragedy.

[The woman behind him turns into a blank robot and the man downloads a celebrity onto it.]

Billy: [in movie] Neat-o! A Marilyn Monroe-bot!

Monroe-bot: [in movie] Ooh! You're a real dreamboat, (mechanical voice) Billy Everyteen.

Narrator: [in movie] Harmless fun? Let's see what happens next.

[The scene cuts to Billy's bedroom where he kisses the Monroe-bot. His mother walks through the door.]

Billy's Mom: [in movie] Billy, do you want to walk your dog?

Billy: [in movie] No thanks, Mom. I'd rather make out with my Monroe-bot.

[Enter his dad.]

Billy's Dad: [in movie] Billy, do want to get a paper route and earn some extra cash?

Billy: [in movie] No thanks, Dad. I'd rather make out with my Monroe-bot.

[The girl from the cafe, Mavis, walks in.]

Mavis: [in movie] Billy, do you want to come over tonight? We can make out together.

Billy: [in movie] Gee, Mavis, your house is across the street. That's an awfully long way to go for making out.

Narrator: [in movie] Did you notice what went wrong in that scene? Ordinarily, Billy would work hard to make money from his paper route. Then he'd use the money to buy dinner for Mavis, thus earning the slim chance to perform the reproductive act. But in a world where teens can date robots, why should he bother? Why should anyone bother? Let's take a look at Billy's planet a year later. [The scene changes and a foam hand rolls across an empty football field.] Where are all the football stars? [The foam hand drifts across an empty laboratory.] And where are the biochemists? [The scene changes to a split screen of human and robot couples making out on beds.] They're trapped! Trapped in a soft, vice-like grip of robot lips. All civilisation was just an effort to impress the opposite sex ... and sometimes the same sex. Now, let's skip forward 80 years into the future. Where is Billy?

[The scene changes to a post-apocalyptic world. Billy is an aged man but still with his Monroe-bot and still making out with her.]

Billy: [in movie] Farewell!

[He dies.]

Narrator: [in movie] The next day, Billy's planet was destroyed by aliens. [A fleet of flying saucers destroy buildings with laser shots.] Have you guessed the name of Billy's planet? It was Earth. Don't date robots!

[A "Don't Date Robots!" caption appears on the screen and the movie ends. The Space Pope is displayed on the screen with "Crocodylus Pontiflex" written around him in English and alien.]

Announcer: [voice-over; in movie] Brought to you by the Space Pope.

(stolen from http://www.futurama-madhouse.com.ar/scripts/3acv15.shtml )

Given that Gemcutter is a relatively new service, my first guess would be the graph is skewed if they switched to gemcutter before other popular Ruby projects (more so if FXRuby is a dependancy for another popular gem which is hosted elsewhere)

Then again, their download page http://www.fxruby.org/downloads.html only mentions RubyForge..

Python vs Clojure 17 years ago

The whole sentence regarding an if blocks (lack of) scope seems.. wrong.

> .. since y has never been declared in that given scope. I don't quite know how Pythonists handle this, but I can imagine many situations where this will be the cause of much confusion

Given the following code:

    if some_irrelevant_function():
        x = 2
    else:
        x = 5

    print x
The author is claiming it would be less surprising for that to raise a NameError exception, complaining x is undefined?

> To resolve it you have to manually call 'del y'

No. You just have to be sane with the usage of your variables. I have never run into a situation where this has been a problem.

> I don't have the numbers for Python, but I can't count the number of C app's that have suffered from memory-leaks and what not, based on the lack of automated garbage collection. With Pythons use of scope, I imagine quite a few bugs will follow.

Err, no.

----

> Now in one Python doc I found they actually refer to this type of data [dictionary] as immutable

Assuming the docs actually say this, they are incorrect and should be amended.. Dictionaries are absolutely mutable.

> Lambda

Err. The complaint here is you cannot use "?" in an identifier...?

> To Pythons credit it actually pinpointed the exact character which caused the exception - You shouldn't except that much help from Clojures backtraces....yet

Not to make this into a "languageX vs languageY" debate, but I'd say having decent error messages is far preferable to being able to use symbols in an identifiers name..

Good or bad, I'd say Apple are pretty much stuck with ObjC. Cocoa and all the other frameworks OS X uses are written like they are because of the language's syntax. This is demonstrated by how crappy the PyObjC code looks (compared to "regular" Python):

    notificationCenter.addObserver_selector_name_object_(
        notificationHandler,
        "handleMountNotification:",
        NSWorkspaceDidMountNotification,
        None)
To make it work with some other language (say, C#/C++/Ruby/Brainfuck/Python or whatever) would basically be a complete redesign of the framework, which in turn would basically be a complete redesign of OS X.. And why? Objective C is a perfectly decent language.. I'm not sure anyone would be using it where it not for Carbon/Cocoa, but it's not a bad language at all

The git checkout [filename] behaviour always confused me..

Yes, it's documented, but git seems to really try and make it difficult to lose any work.. but has a command that makes it simple to irreversibly lose your upstaged changes, without so much as a warning?

At least "git revert" sounds like it might undo changes.. In what way does "checkout" imply both "checking out" branches, and reseting a file to it's previously commited state?

I present to you, Ubuntu in D Minor:

http://www.mediafire.com/?sharekey=bc9a7de093071754ed24a2875...

...it's not actually in D Minor, but it's certainly Ubuntu (ubuntu-9.04-desktop-i386.iso.torrent, converted to a proper, listenable MIDI file)

Only done the encoding just now.. Basically the code loops over each byte in the file, ord()'s it, creates a note with that value and advances to the next beat.. Decoding should be simple enough, but the simple MIDI library I was using only creates MIDI files.

One slight problem is the file is about 5-6 hours long, so I don't think we'll be sharing torrents via background music on Youtube videos quite yet.. A more time-efficient way to pack the bytes into notes is definitely possible (currently it only plays one note per time-slot), but that would have taken far longer than I wanted to spend on this...

The Python code, including the required smidi.py module: http://gist.github.com/202593

Good point, or you end up with situations like http://news.bbc.co.uk/1/hi/wales/7702913.stm

> When officials asked for the Welsh translation of a road sign, they thought the reply was what they needed. Unfortunately, the e-mail response to Swansea council said in Welsh: "I am not in the office at the moment. Send any work to be translated".

That said, using Google Translate to make an initial translation should be fine, as long as you get someone who actually speaks the language to check it over before release.. For smaller projects, it's going to be easier to get someone check over a file, than getting them to manually translate hundreds of phrases

It'd also be nice if the scroll-position was saved when you close the application.. When you reopen the file, it's always back to page 1..

Their plan seems to be, give stuff away for free, charge for more storage. I would have been surprised if they charged for the iPhone application..

http://www.stifflog.com/2007/05/09/erlang-for-the-practical-...

Not the best tutorial ever, but I found it helpful.. It describes a fairly simple, but non-trivial task (creating an RSS feed from your email inbox, generating the RSS feed, and directly interacting with the POP3 protocol over SSL)

Also, most of the code will require slight modification to work with the most recent version of Erlang. This seems like a bad thing, but it forces you to actually understand the code and determine what broke, rather than just copy-and-pasting everything.. For example, the regexp module had changed name, so I prodded around the erlang library code to see where it went, and if the arguments had changed - in doing so I realised how simple (most of) the code was, something I wouldn't have done if the tutorial was "better"..

More importantly, why hasn't http://www.thepcspy.com/kittenauth taken off?

This is more practical (and cuter) than using brand-logos.. Pictures of kittens and other animals are easy to find, whereas getting a wide enough range of companies willing to let you use their logos will be far more difficult.. It would be like having a captcha where there are only 5 possible strings to enter..

The "new web standard" is as obscure as "sw", and has various flaws.. Perhaps the biggest flaw is that the notation does not work for all-upper-case sarcasm, such as "A web standard for sarcasm? That's REALLY great idea.."

What exactly has Folding@home achieved in the time it's been running (about 8 years now)?

It's a nice concept (using idle CPU time to help cure diseases!), but the papers on the F@H site doesn't exactly inspire me - http://folding.stanford.edu/English/Papers - quite a few seem to be about the F@H itself (like "N-Body simulation on GPUs"), they're hardly "Folding@home cures suchandsuch disease"..

Then again I'm not a molecular scientist, and I don't understand half of the words in those titles...

What about something like..

    defaults = load_stored_config_to_dict('example.conf')
    
    parser.add_option(
        "-q",
        "--quiet",
        action="store_false",
        dest="verbose",
        default=defaults['quiet'],
        help="don't print status messages to stdout")

A lot? There's about two lines I'd consider "boiler plate" (three if you count the import)

    from optparse import OptionParser

    parser = OptionParser() # initialise parser
    parser.add_option(...) # add option 1
    parser.add_option(...) # add option 2
    (options, args) = parser.parse_args() # run parser, get values
..and the sample add_option call:
    parser.add_option(
        "-q",
        "--quiet",
        action="store_false",
        dest="verbose",
        default=True,
        help="don't print status messages to stdout")
I don't see anything repetitive, nor unnecessarily object-oreiented

Might be different for stills, but nearly all 35mm motion picture film, which goes through DI, is scanned at either 2K, or 4K... 4K is about 8.5 megapixels, not quite the 175megapixels the article claims

This post http://forum.blu-ray.com/showpost.php?s=1e1304228adc42f80162... explains the resolution of film well (quoting here for posterity),

> Film resolution is specified in resolving power in c/mm (cycles per millimeter) or lp/mm (line pairs per millimeter). Diferent stocks have different resolving power. Normally finer grained (slow) film has more resolving power, higher sensitivity (faster) film has less resolving power, etc, all else being equal.

> A simplified triangle of image quality capability is made by grain-speed-resolution. If you try to get more speed, graininess usually increases and/or resolution decreases, etc. With advances in film emulsion technology the triangle gets bigger. You get higher speed with the same fine grain, equivalent sharpness, etc.

> If you have coarse big grain you get more speed (sensitivity) but the resolving power is decreased, while if you have finer smaller grain, packaged in a more uniform way into a thinner emulsion layer, you get better sharpness and the ability record finer detail per millimeter, but less sensitivity (you need more light) somewhat similar to having more pixels packed into a sensor.

> The lens on the camera also has a resolution limit and the combined resolution of the film emulsion and the lens resolution that ends up on the final image on the negative is less than each's.

> So having the resolving power of the final image (c/mm) and the size of the image (mm) you can multiply both and get what the resolution of the film/camera/lens system is capable of.

> Also what we perceive as grain on photographic images is actually grain clumps as the grains are randomly distributed in irregular patterns within the film emulsion. (The smoothing and more uniform distribution of grain in film emulsions is one of the ways film quality has improved over the years) We're not looking at the individual grains themselves when we look at images in normal picture and movie viewing magnifications. To see the real individual grains you have to use those microscopic enlargements where the image is blown up so much you can barely make any of it.

OS X looks good because it's visually consistent, something that cannot be said for Linux..

Just in terms of frameworks, on Linux there is (in common use today) GTK+, Tk, Qt, wx (and probably others). There's also different versions, and different themes (and the themes aren't interoperable, so if you have use a specific GTK theme, and start at a Tk application, they'll look completely different)

On OS X there is Cocoa, and that's about it. There is Carbon, but it's deprecated and used by very few applications

The default Ubuntu install looks good (colour-scheme preferences aside). It only looks bad when you start installing other applications - as soon as you install, say, a KDE application it looks horrible.. Not because that application necessarily looks bad, but because it's inconsistent..

The first bit of code seemed perfectly readable..

Seems like decreasing the font size a few points would have clearer a better solution than clouding the could with loops and `eval()`/closures..

Depending on the context, perhaps showing the first class "full size", and abbreviating the other two would work.. or, show the code for one, then explain "we define another class named C, which prints C, and final one named D, which prints D" - it is a "talk", after all..

That's why I consider `eval` to be "evil" - there's almost always a better way..