1494 stories
·
7 followers

Pósters de OK Computer aparecen alrededor del mundo: ¿qué trama Radiohead para su 20 aniversario?

1 Share

Parece ser que una vez más Radiohead tiene una campaña misteriosa como expectativa: varios pósters relacionados a OK Computer aparecieron hoy alrededor del mundo, lo que dio lugar a especular que la banda está tramando algo alrededor del 20º aniversario del lanzamiento de ese disco.

Varios usuarios de Reddit reportaron ver estos pósters en Londres, Amsterdam y Brooklyn, con mensajes políticos que incluyen los números 1997 y 2017. Algunas líneas incluyen “More Public Fear/More Private Security”, frases que los fans relacionaron con “Fitter Happier“.

Por otro lado, el asiduo colaborador de la banda Stanley Donwood, publicó recientemente en Instagram una imagen del oso de Radiohead con la caption “soon to be real”.

OK Computer salió a la venta el 21 de mayo de 1997 y se ubicó en el puesto #1 de nuestros 50 favoritos de esa década.

Mirá los pósters a continuación:

soon to be real

A post shared by @stanleydonwood on

La entrada Pósters de OK Computer aparecen alrededor del mundo: ¿qué trama Radiohead para su 20 aniversario? aparece primero en Indie Hoy.

Read the whole story
llucax
9 hours ago
reply
Berlin
Share this story
Delete

ISS Solar Transit 2

1 Comment and 4 Shares
Most people don't realize it, but they actually launch a new space station every few weeks because this keeps happening.
Read the whole story
llucax
9 hours ago
reply
Berlin
Share this story
Delete
1 public comment
alt_text_bot
1 day ago
reply
Most people don't realize it, but they actually launch a new space station every few weeks because this keeps happening.

automem: Hands-Free RAII for D

1 Share

Atila Neves has used both C++ and D professionally. He’s responsible for several D libraries and tools, like unit-threaded, cerealed, and reggae.


Garbage collected languages tend to suffer from a framing problem, and D is no exception. Its inclusion of a mark-and-sweep garbage collector makes safe memory management easy and convenient, but, thanks to a widespread perception that GC in general is a performance killer, alienates a lot of potential users due to its mere existence.

Coming to D as I did from C++, the one thing I didn’t like about the language initially was the GC. I’ve since come to realize that my fears were mostly unfounded, but the fact remains that, for many people, the GC is reason enough to avoid the language. Whether or not that is reasonable given their use cases is debatable (and something over which reasonable people may disagree), but the existence of the perception is not.

A lot of work has been done over the years to make sure that D code can be written which doesn’t depend on the GC. The @nogc annotation is especially important here, and I don’t think it’s been publicized enough. A @nogc main function is a compile-time guarantee that the program will not ever allocate any GC memory. For the types of applications that need those sorts of guarantees, this is invaluable.

But if not allocating from the GC heap, where does one get the memory? Still in the experimental package of the standard library, std.experimental.allocator provides building blocks for composing allocators that should satisfy any and all memory allocation needs where the GC is deemed inappropriate. Better still, via the IAllocator interface, one can even switch between GC and custom allocation strategies as needed at runtime.

I’ve recently used std.experimental.allocator in order to achieve @nogc guarantees and, while it works, there’s one area in which the experience wasn’t as smooth as when using C++ or Rust: disposing of memory. Like C++ and Rust, D has RAII. As is usual in all three, it’s considered bad form to explicitly release resources. And yet, in the current state of affairs, while using the D standard library one has to manually dispose of memory if using std.experimental.allocator. D makes it easier than most languages that support exceptions, due to scope(exit), but in a language with RAII that’s just boilerplate. And as the good lazy programmer that I am, I abhor writing code that doesn’t need to be, and shouldn’t be, written. An itch developed.

The inspiration for the solution I came up with was C++; ever since C++11 I’ve been delighted with using std::unique_ptr and std::shared_ptr and basically never again worrying about manually managing memory. D’s standard library has Unique and RefCounted in std.typecons but they predate std.experimental.allocator and so “bake in” the allocation strategy. Can we have our allocation cake and eat it too?

Enter automem, a library I wrote providing C++-style smart pointers that integrate with std.experimental.allocator. It was clear to me that the design had to be different from the smart pointers it took inspiration from. In C++, it’s assumed that memory is allocated with new and freed with delete (although it’s possible to override both). With custom allocators and no real obvious default choice, I made it so that the smart pointers would allocate memory themselves. This makes it so one can’t allocate with one allocator and deallocate with a different one, which is another benefit.

Another goal was to preserve the possibility of Unique, like std::unique_ptr, to be a zero-cost abstraction. In that sense the allocator type must be specified (it defaults to IAllocator); if it’s a value type with no state, then it takes up no space. In fact, if it’s a singleton (determined at compile-time by probing where Allocator.instance exists), then it doesn’t even need to be passed in to the constructor! As in much modern D code, Design by Instropection pays its dues here. Example code:

struct Point {
    int x;
    int y;
}

{
    // must pass arguments to initialise the contained object
    // but not an allocator instance since Mallocator is
    // a singleton (Mallocator.instance) returns the only
    // instantiation
    
    auto u1 = Unique!(Point, Mallocator)(2, 3);
    assert(*u1 == Point(2, 3));
    assert(u1.y == 3); // forwards to the contained object

    // auto u2 = u1; // won't compile, can only move
    typeof(u1) u2;
    move(u1, u2);
    assert(cast(bool)u1 == false); // u1 is now empty
}
// memory freed for the Point structure created in the block

RefCounted is automem’s equivalent of C++’s std::shared_ptr. Unlike std::shared_ptr however, it doesn’t always do an atomic reference count increment/decrement. The reason is that it leverage’s D’s type system to determine when it has to; if the payload is shared, then the reference count is changed atomically. If not, it can’t be sent to other threads anyway and the performance penalty doesn’t have to be paid. C++ always does an atomic increment/decrement. Rust gets around this with two types, Arc and Rc. In D the type system disambiguates. Another win for Design by Introspection, something that really is only possible in D. Example code:

{
    auto s1 = RefCounted!(Point, Mallocator)(4, 5);
    assert(*s1 == Point(4, 5));
    assert(s1.x == 4);
    {
        auto s2 = s1; // can be copied, non-atomic reference count
    } // ref count goes to 1 here

} // ref count goes to 0 here, memory released

Given that the allocator type is usually specified, it means that when using a @nogc allocator (most of them), the code using automem can itself be made @nogc, with RAII taking care of any memory management duties. That means compile-time guarantees of no GC allocation for the applications that need them.

I hope automem and std.experimental.allocator manage to solve D’s GC framing problem. Now it should be possible to write @nogc code with no manual memory disposal in D, just as it is in C++ and Rust.

Read the whole story
llucax
9 hours ago
reply
Berlin
Share this story
Delete

Saturday Morning Breakfast Cereal - Words

7 Shares


Click here to go see the bonus panel!

Hovertext:
More and more, I think the 'they're just a sequence of sounds' is one of the more pointless observations you can possibly make.

New comic!
Today's News:

Book Review Tuesday is here! More reviews at TheWeinerWorks.com

Pyongyang (DeLisle) A quick and fun sketch of the author’s time spent working for an animation studio in North Korea. I don’t have too much to say about it, other than that it’s quite enjoyable, and that I plan to read other books by the author. This isn’t a memoir like March or Maus - it’s not trying to bring you to a heightened awareness of the universe. It’s not particularly poignant, nor is it trying to be. It’s just an incredible well-told, occasionally quite funny, recounting of a short strange time in the author’s life.

Elbow Room (Dennett) Okay, so I’ve wanted to read a book on compatibilism, the belief that “free will” and a deterministic universe are compatible. This seems crazy to me, and I trust the reasons are obvious.

So, I read this book, and my honest initial reaction was disappointment. A lot of the book is spent talking about computer, biology, evolution, and so forth, which to me seems like a sort of sideshow. If so, it’s an especially egregious sideshow, since Dennett frequently complains of perilously misleading elements stuck into philosophical theories.

That said, as I thought it over and discussed it more with people, I got the basic idea, which (to simplify drastically) isn’t so much that you can have free will in a deterministic universe, but that your idea of what free will means is probably wrong. I don’t want to go too in depth in this review, but as a way to think about it, try to consider what the basic physical rules would be for a universe that permitted your intuitive notion of free will. It’s hard to think of anything that doesn’t posit some cheat that just asserts that you do.

In short, I didn’t get the hit of wild enlightenment I was hoping for. Unusually for me, I learned something, yet left disappointed. I will illustrate by the use of what I’ll call Two Dialogues Concerning Free Will.

Dialogue 1:

Mom: Hey, you wanna see a DINOSAUR?!

Kid: but isn’t that impossible?!

Mom: come with me!

[Cut to: Park]

Mom: Meet the pigeon! You know, according to science, birds are living dinosaurs!

Kid: But I wanted a T. Rex!

Mom: Jesus, kid. Obviously that was never gonna happen.

Dialogue 2: Compatibilist: Hey, you wanna see me combine free will and determinism?!

Zach: Sure thing! But how?

Compatibilist: I’ll show you!

[Cut to: Zach reading book]

Zach: So determinism is still true, but individuals appear to have choices, and we can call that free will if we like?

Compatibilist: Yeah. What? Did you think I was going to claim an individual human could defy causality itself?

Zach: I thought maybe-

Compatibilist: By Descartes’ beard, you’re dumb!

--End of Scene-- So, that’s where I am now on this. Like the kid at the park, I’m not disagreeing with the idea that my initial notion of the subject matter was flawed. I’m just annoyed at the way the exciting revelation was presented.

Vietnamerica (Tran) What a great memoir. I’ve been reading a lot of memoirs in graphic novel format lately, and this one was one of the very best, both in terms of its style and execution. I especially enjoyed the way in which the book moved from scene to scene without frequently telling you what year or location it was.

The artwork and, well, comicking itself was just so good that I rarely had to take a second to figure out where the scene had changed to.

The only critique that occurred to me is that the “character” of Tran himself in the story feels very… unformed. Maybe this is simply because it depicts Tran mostly at a younger age, where he would’ve been, indeed, unformed. But, I couldn’t help but feel that the character is so self-flagellating (he is almost always depicted as a sort of know-it-all punk kid) that you miss what could be a more whole interaction between kids and parents. Tran’s past self feels less like a person than a point of embarrassment that the author is covering over with humor.

It still works well enough, but I would’ve loved if, here and there, we had a moment of just Tran being himself, in a way that only develops character, rather than moving forward the book’s telling of history. But, still, quite a good memoir comic, and absolutely beautiful.

Read the whole story
llucax
3 days ago
reply
Berlin
Share this story
Delete

ISS Solar Transit

3 Comments and 4 Shares
I guess it's also the right setting for pictures of the Moon at night.
Read the whole story
llucax
3 days ago
reply
Just use auto white balance... What can possibly go wrong?
Berlin
Share this story
Delete
2 public comments
Covarr
5 days ago
reply
Where is the sepia setting?
Moses Lake, WA
alt_text_bot
5 days ago
reply
I guess it's also the right setting for pictures of the Moon at night.

French Elections: Last Week Tonight with John Oliver (HBO)

1 Comment
From: LastWeekTonight
Duration: 18:09

The presidential election in France could determine the political future of Europe. John Oliver visits an excessively French bistro to deliver an urgent message to voters.

Connect with Last Week Tonight online...
Subscribe to the Last Week Tonight YouTube channel for more almost news as it almost happens: www.youtube.com/user/LastWeekTonight

Find Last Week Tonight on Facebook like your mom would:
http://Facebook.com/LastWeekTonight

Follow us on Twitter for news about jokes and jokes about news:
http://Twitter.com/LastWeekTonight

Visit our official site for all that other stuff at once:
http://www.hbo.com/lastweektonight

Read the whole story
llucax
8 days ago
reply
Mon dieu!
Berlin
Share this story
Delete
Next Page of Stories