Crossbar.io: Real-Time Distributed RPC in Python (Interview) - <AUTHOR> https://www.podcastinit.com/episode-101-crossbar-io-with-tobias-oberstein-and-alexander-goedde/ <comment><AUTHOR> I've been following crossbar for 2 years now, wrote some doc and tutorials for the team, but only this week have I finally used it in production. Made a real time dashboard for a big transport facility, coupled with vuejs and django.

In short, it's a fantastic piece of software: RPC and Pub/Sub can't be easier and cleaner. The fact it also packs a process manager, a static file server and a WSGI servers makes it amazing.

But we really need a framework around it because right now it's a lot of manual work.

It would probably take a year or so to make something worth it and not "yet- another-microframework", but I've been studying the beast for some time and using it would allow to create a Python framework loaded out of the box with:

\- full async web (and non web) microservices

\- live settings, including routing

\- task queues, with PUB/SUB talking directly to the browser

\- task runner, including for building static assets

\- advanced cache busting strategies

\- hot reloading to help you in dev, or to deploy in prod

\- load balancing and fault tolerance strategies

On top of the regular features.

Additional stuff we could add, not related to crossbar:

\- configuration framework (there is literally no good general solution for configuration management out there. The less terrible being pyramid's and zope's)

\- life cycle and error handling helpers (this is somewhere async framework fails big time) with clean logging, event model and debug tooling.

\- wrappers offer a micro-framework like API that you can unfold into a full- scale framework when your needs grow. Aend not just one or the other.

\- clear story for DB. Qraphql is something to explore but it's a hard topic, with bad asyncio support for ORM and nosqlite db.

\- 2 pass template rendering. Meta template generating templates, then generated templated used on the fly as views. This allow many tricks like pregenerating translated page, URL routing, static assets name based on hash, etc.

\- administration web console, not for the database, but for the project itself.

We really need something to compete with new gen frameworks in Python. Right now there is nothing trying to be on par with meteorjs and the likes.

The trap is that Django is good enough right now, so investing the time and resource into dev something THIS new is hard to justify. And I read the code base, it's not easy to groke (async never is anyway, but here you have to manually deal with the event loop) so finding a team would be hard, and doing it alone even harder.

<comment><USER2> Django integration sounds interesting and it's something we have been mulling about. Could you point any specific examples or code? How did you deal with RPC and Pub/Sub with Django? Solutions that come to mind are adjacent view functions that Crossbar calls when messages arrive (meaning users wont touch those directly) or perhaps going directly to Django with scripts (Django management commands)?

About your wish list:

I understand you'd build these features on top of, or relying on crossbar.io? This sounds like something regular Django wouldn't have a place in. I'd very much like a system with features these features. Django's structure and direction doesn't seem to allow things like this. Class based configuration for various things, use of startup time settings everywhere. Django has a very wide and stable base for regular web stuff, but when you need things like JS web apps, streaming, reactivity, asynchronic distributed operations it gets complicated pretty fast. After more than 10 years with Django I'm still unsure on how to tackle things like this properly, without hacks and loads of boilerplate.

<comment><AUTHOR> > Django integration sounds interesting and it's something we have been > mulling about. Could you point any specific examples or code? How did you > deal with RPC and Pub/Sub with Django? Solutions that come to mind are > adjacent view functions that Crossbar calls when messages arrive (meaning > users wont touch those directly) or perhaps going directly to Django with > scripts (Django management commands)?

There are a lot of things to get Django integration because Django is a lot of things, but I can see 3 points worth mentioning quickly:

\- auth. Crossbar has it's own version of auth, which means you need to create a WAMP auth service and call django.auth.contrib's authenticate() function in it to get authentification in it. It also means you need to create some manual hook for logging out.

\- pub/sub and rpc: crossbar has an HTTP bridge, and it's probably the best way to get Django in the loop for all events. However, you must remember than you may have many Django processes in production, and only one will receive each pub.

\- orm. Django's ORM is blocking, meaning you have to run all calls to it into loop.run_in_executor. It's very annoying and there is no way around it.

> I understand you'd build these features on top of, or relying on > crossbar.io?

Yes. Although the webpart would be handled by something else, but connected with an integrated wrapper.

> This sounds like something regular Django wouldn't have a place in.

Indeed. Django being blocking, you can't really make it the center piece of such a work. You could, however, provide adapters so you can integrate with existing Django project to ease transitions of existing code bases.

> I'd very much like a system with features these features.

Maybe I should start a kickstarter or something like, gather a team and work on it. I gave it a try in short sprints, but a few hours does not cut it. After a while I ended up opening several tickets on the official asyncio repository because as soon as you work that close to the event loop, you run into edge cases you must take in consideration.

> Django's structure and direction doesn't seem to allow things like this. > Class based configuration for various things, use of startup time settings > everywhere. Django has a very wide and stable base for regular web stuff, > but when you need things like JS web apps, streaming, reactivity, > asynchronic distributed operations it gets complicated pretty fast. After > more than 10 years with Django I'm still unsure on how to tackle things like > this properly, without hacks and loads of boilerplate.

We can't blame Django for that though. It has been a useful design for a long time, plus the design is still holding quite well today. It's just starting to show limitions because we compare it to much more recent techs. Still, I agree.

AppConfig and Django channels are hacks written as a workaround of the framework design.

But let's not kid ourself, the amount of work that went into Django is enormous, and it's still the framework making me the most productive to this day. Any alternative would have a hard time just catching up with what it can do before even starting to offer killer features that Django doesn't have.

Some other issues:

\- async is hard. A good async framework should aim at making common task as easy as possible, including debugging. This is really hard, and few developpers spend time on that.

\- async is hard (again). A good async framework should aim at providing a solid even management framework, with a clear lifecycle and robusts hooks. This is really hard, and few developpers spend time on that.

\- configuration is un unsolved problem in Python. There is no such thing as a "standard configuration framework" and we all end up parsing config files, reinventing live settings in database, or dealing with redis/etcd. But configuration is a really, really hard problem : you have serialisation, access rights, value sharing, data validation, hierarchy, handling of different data source and several layers of conf depending of where in the life cycle you are in an app. This is a project on it's own.

\- crossbar code base is not made to be integrated. It's a design decision from Tavendo's team: provide a piece of infrastructure (like nginx, redis, etc) and not a library or a framework. So you would probably have to make some heavy mocking and monkey patching to bend it to a programmable API. Or, god save us, making a fork.

<comment><USER2> Thanks for the tips about Django with Crossbar. It doesn't sound entirely smooth sailing ;) Be that as it may, we got some IoT things starting and it might fit the bill.

I'd certainly back such a kickstarter ;) I took a look at asyncio just a few days ago and got dizzy fast. As you said, async _is_ hard. I just wish it could be more explicit without having all that boilerplate.

These days doing much more functional programming I'm thinking that configuration should be data instead of global state we got now.

I think that Django is still great and keeps getting better. I'm not about to replace it. I just hope it wasn't so hard to use functionality and data in Django projects by less conventional means (such as when async ops, long running processing or keeping track of changes is required).</comment></comment></comment></comment>


Foursquare App For Android Updated with many features - <AUTHOR> http://androidfame.com/33/foursquare-android-app-home-widget

<comment><USER2> Does foursquare (or any of these, really) have a function for not publicly announcing your location until after a delay of a couple hours, such that you may or may not still be at the posted location when it's publicly known?

It'd be the difference between "I'm at this restaurant RIGHT NOW" vs "I was at this restaurant as of a couple hours ago"

I worry about situations such as: [http://marketplace.publicradio.org/display/web/2010/09/17/pm...](http://marketplace.publicradio.org/display/web/2010/09/17/pm- privacy-policies-may-not-protect-your-privacy/)

<comment><USER3> I know there are services like tweetlater.com, but am not sure about foursquare. I thought of making an app to do this, but obviously the second it did well foursquare would add a 'publish at' field to checkins. Might still do it as an intellectual exercise though.</comment></comment>


Tagged unions, or 'variants', in C - <AUTHOR> https://gist.github.com/procedural/2e3c212af4f61dde313af1123ddfbbc9 <comment><USER2> No, no, no! This is terrible!

variant_cast is just garbage. It relies on struct layout, and if anything has wider alignment than ptrdiff_t, it's broken. For example, a double in 32-bit PowerPC has 64-bit alignment but ptrdiff_t is 32 bits, so the pointer is wrong. Maybe x64 you get away with it for most types (not all!), but can you raise your right hand and solemnly swear that you'll never ever want to port to a non-x64 system?

Additionally, all the explicit casting means that this has basically no type safety at all. I can a.tag = tag(SomeThree) even though SomeThree is not a member of a's type, and then I will be able to successfully let b = as(&a, SomeThree) and boom! I've just scribbled over memory without so much as a peep from the compiler. What is the of having tagged unions (a TYPE SAFETY FEATURE) if your tagged union implementation is LESS type safe than untagged unions?

This last point is actually a bit subtle… accessing the wrong member of a union is probably not what you want to do most of the time, but the language in the C standard is quite clear (see DR #257, language was clarified in C99 but present in earlier versions) and accessing the wrong union member just gives you whatever you stored in a union reinterpreted as whatever you read out of it. But this tagged union implementation lets you access a union member which doesn't even exist.

Let's not try to implement new language features on top of C with macros. It never ends well. Either figure out a way to live with a little boilerplate or use a different language, those are the only sane options.

<comment><USER3> I think it's an elegant piece of garbage actually.

All your nitpicks are fairly easy to address.

      +  union zee_tag {
      +      ptrdiff_t    tag;
      +      max_align_t  foo;
      +  };
      +
         struct Some {
      -      ptrdiff_t tag;
      +      zee_tag   tag;

> _I can a.tag = tag(SomeThree)_

tag() just needs to take 'a' as another parameter and do a static_assert.

> _It relies on struct layout_

As in "ptrdiff_t needs to be the first member in a struct"? Oh, the horror. It's C, a language that generally expects you to know what you are doing.

> _all the explicit casting means that this has basically no type safety at > all_

Duh. See above :)

Generally speaking, you are missing a point here. This sort of contraption comes handy when the code needs to add a _bit_ more of invariant checking, but without going over the top. In comparison with a plain union this will help catching the misuse. Granted, it needs to be used correctly itself.

<comment><USER2> > As in "ptrdiff_t needs to be the first member in a struct"? Oh, the horror. > It's C, a language that generally expects you to know what you are doing.

Speaking of garbage, that's some really needless posturing. The comment was about the position of the second element in the structure, I suppose that this wasn't spelled out in the comment but everyone here knows that the first member of a struct is at the beginning.

God forbid you would store __mm128i here, although generally that's an awful idea, it's _not_ unreasonable to want to force 16-byte alignment or the like.

> tag() just needs to take 'a' as another parameter and do a static_assert.

Show me. I'm honestly curious what it would look like.

> Generally speaking, you are missing a point here. This sort of contraption > comes handy when the code needs to add a _bit_ more of invariant checking, > but without going over the top. In comparison with a plain union this will > help catching the misuse. Granted, it needs to be used correctly itself.

Show me a version that adds invariant checking.

<comment><USER3> > _The comment was about the position of the second element in the structure, > I suppose that this wasn 't spelled out in the comment but everyone here > knows that the first member of a struct is at the beginning._

Wit beyond measure, fascinating.

         union zee_tag {
           ptrdiff_t    tag;
           max_align_t  foo;
         };

         static inline void * variant_cast(void * variant_ptr, ptrdiff_t desired_tag) {
           ptrdiff_t * variant_tag = (ptrdiff_t *)variant_ptr;
           assert(*variant_tag == desired_tag);
        -  return (void *)((char *)variant_ptr + sizeof(ptrdiff_t));
        +  return (void *)((char *)variant_ptr + sizeof(union zee_tag));
         }

Shall I sprinkle some comments or is it OK this way?

> _Show me._

        @@ -15,6 +15,9 @@
         #define is(x, T) ((x)->tag == tag(T))
         #define as(x, T) ((struct T *)variant_cast((void *)(x), tag(T)))

        +#define union_field(T) struct T _##T
        +#define tag_union(x, T) (x)->tag = ((x)->_##T, (ptrdiff_t)&Tag##T)
        +
         struct SomeOne {
           int x;
           int y;
        @@ -25,17 +28,24 @@
           float w;
         } TagSomeTwo;

        +struct SomeThree {
        +  float zz;
        +  float ww;
        +} TagSomeThree;
        +
         struct Some {
           ptrdiff_t tag;
           union {
        -    struct SomeOne _;
        -    struct SomeTwo __;
        +    union_field( SomeOne );
        +    union_field( SomeTwo );
           };
         };

         int main() {
           struct Some a = {};
        -  a.tag = tag(SomeTwo);
        +
        +  tag_union(&a, SomeTwo);
        +  tag_union(&a, SomeThree);

           printf("Is `a` tagged as SomeTwo: %d\n", is(&a, SomeTwo));

> _Show me a version that adds invariant checking._

An exercise left to the reader.

<comment><USER2> > Wit beyond measure, fascinating.

I'm flattered that you want to talk about me, but I'd rather talk about the code.

> An exercise left to the reader.

That's really the only interesting part, isn't it? All the other stuff is just minor bugfixes / bikeshedding. I said "show me" the version of tag() that does the static_assert, and "show me" a version that adds invariant checking (that the cast is possible). Neither of these things have been shown. I'm not claiming it's impossible, just that subjectively, this version is worse than doing things the boring way.

<comment><USER3> If you don't understand that tag_union(&a, SomeThree) throwing a compile time error is functionally equivalent to static_assert(), then I see no point in continuing this exchange. Ditto for the invariant checking - OP's original code already covered that with its assert(). In fact, that assert() is what this whole thing is about.

All points in your opening "garbage" comment were trivial nitpicks, which would've been fine if you didn't decide to express them by trashing other person's code in an overly confident manner. I don't appreciate that, just as I don't appreciate you trying to wiggle out from this exchange on technicalities.

<comment><USER2> Yes, you're right, tag_union does throw a compile time error, I didn't read that correctly. By your earlier comment I was primed for a `_Static_assert` and when I didn't see that. I thought it had been left out entirely rather than reimplemented in a different manner.

On the subject of tone--I honestly believe that the original code has severe subjective design flaws and objective implementation errors, and since the post was gathering upvotes but no critique I was worried that people believed that the code was correct. There are still some nitpicks about your new version, but these are fairly minor in my view (the use of reserved identifiers is pretty tedious and easily avoided). The remaining non-nitpick, what I consider to be a show-stopper, is that you can't switch on the tag. 90% of the time when I'm using a tagged union, I'm doing switch (evt->type). While we can substitute a chain of if/else, I'm not fond of the ergonomics and I would prefer a traditional enum. This is a subjective trade-off, however.

Your responses would have been fine if they were criticisms of my argument or of the tone I took. Perhaps I crossed the line, and you called me on it? But these comments are unacceptable ad hominems:

> Oh, the horror. It's C, a language that generally expects you to know what > you are doing.

> Wit beyond measure, fascinating.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> Is there a reason, other than jargon, why this concept is called different names in different languages?

Do variants work different than tagged unions or type classes?

Some people told me that Haskell is superior in FP because of its type classes. Later I read TypeScript has tagged unions, which looked like type classes to me.

Then I looked into Reason and they wrote about variants and I also was reminded of type classes.

<comment><USER5> Type classes are a completely different concept. Tagged unions are sum types.

<comment><USER4> I see.

Care to explain what type classes are then? :)

<comment><USER6> They're known in other languages as interfaces, traits, or protocols: just a set of methods which can be implemented for different types.

Importantly, it's possible to implement type classes for existing types in a separate declaration, as opposed to traditional OO languages where a list of implemented interfaces has to be declared upfront as part of the class declaration. Thus, for instance, a client of a library can declare its own type class and implement it for the library's types. (Many languages other than Haskell support this too, though.)

<comment><USER4> So they're a bit like open classes in Ruby or implicit conversions in Scala?

<comment><USER7> If you're familiar with Scala, then type classes in Haskell are pretty close to traits in Scala (but _not_ implicit conversions, which can make use of traits, but are an orthogonal language feature). They're also close to Rust's traits, it you're familiar with Rust.

<comment><USER4> I see. Thanks.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Any drawbacks of using these #defines? It looks awesome

        #define var __auto_type
        #define let __auto_type const</comment>


Show HN: EmbedBox, an Open-Source UI to Get Your Embed Code Installed - <AUTHOR> http://embedbox.io <comment><USER2> Looks like it's easy to extend with new sites. Well organized code.

[https://github.com/EagerIO/EmbedBox/tree/master/app/targets](https://github.com/EagerIO/EmbedBox/tree/master/app/targets)

<comment><USER3> Thanks! We really appreciate that.

</comment></comment><comment><USER4> Very cool idea, and something that would have been useful on many projects in the past. A little light on # of listed sights, but certainly something I could see myself using for future projects.

<comment><USER3> Thanks so much!

Here are some of the other targets that are on deck: [https://git.io/vi8IK](https://git.io/vi8IK).

If there are any others not on that list you'd like to see added, please let us know or create an issue on GitHub. Thanks again!

</comment></comment><comment><USER5> Wow, this is extremely useful and really addresses a major pain point.

I love it!

<comment><USER3> Wow, thank you! If there's anything we can do to improve it please let us know.

</comment></comment><comment><USER6> It's really neat. Very much needed for our analytics platform Rakam and I already started implementing it.

<comment><USER3> Thanks! That's amazing. :) Let us know if you run into any trouble.

Oh also, once you've finished implementing it, we'd be happy to add [https://rakam.io](https://rakam.io) to our list of companies using EmbedBox.

<comment><USER6> Done! [https://rakam.io/integrate?part=website](https://rakam.io/integrate?part=website)

<comment><USER3> Looks beautiful!

We made some improvements to the way theme colors work [1] so you'll want to upgrade your version to take advantage of that. Thanks so much for using EmbedBox! If you have any feedback on the integration process we'd really appreciate it.

[1]: [https://git.io/viR8p](https://git.io/viR8p)

</comment></comment></comment></comment><comment><USER7> Very cool, nice work. Something we will probably add to Chatlio.

<comment><USER3> Thank you!

If you ever do, please let us know. We'd love to add [https://chatlio.com](https://chatlio.com) to our list of companies using EmbedBox.

</comment></comment><comment><USER8> You are doing the Lord's work here.

<comment><USER9> No, he's not.

</comment></comment><comment><USER9> This could actually be quite useful...

</comment><comment><USER10> This is pretty sweet! Well done.</comment>


Want to live longer? Cut the carbs! - <AUTHOR> http://www.dailymail.co.uk/health/article-1323758/Can-cutting-Carbohydrates-diet-make-live-longer.html

<comment><USER2> The Daily Mail is famous for stories like these. See the website "Kill or Cure" (<http://kill-or-cure.heroku.com>)

<comment><USER3> Indeed, the Daily Mail seems convinced that everything in the world will either kill you (usually by causing cancer) or will make you live forever. They seem determined to place every food item, activity or product on one of those categories.

And sometimes in both at once.</comment></comment>


"I didn't meet my girlfriend until 12 years after our daughter was born" - I-M-S https://www.nytimes.com/2018/09/28/style/modern-love-how-i-met-my-children.html <comment><AUTHOR> There's a trailer for a documentary about this guy and his family here: [https://www.fortydollarsapop.com/](https://www.fortydollarsapop.com/)

Interesting to actually put faces to the people being discussed in the piece.

<comment><USER2> Interesting!

In the trailer, it looks like Madi's parents had a bit of mixed feelings on her meeting Aaron - one was happy, the other scared. Since she ultimately ended up moving to live with him (or in the same building?), I wonder how they've reacted since then.

She's an adult so I guess the moving around bit is around right on time anyway, but it does bring up an interesting consequence to this sort of meet- up for younger children, where the kids believe that they'd enjoy living with their biological parent more than they enjoy living with the people that raised them. And it's certainly possible that they might.

</comment></comment><comment><USER3> When I found my biological mother the similarities were striking. She was a second generation programmer, similar interests, likes and dislikes, we had haunted similar places decades apart, loads of physical quirks. It's mind boggling to me how much of what I thought was my unique self was probably more controlled by genetic variables I had no idea were in play

<comment><USER4> This really depresses me since I'm also very similar to my dad and I do not want to be.

<comment><USER5> you don't have to subject yourself to his limitations. Maybe, being so similar, you can better learn from his mistakes.

</comment></comment></comment><comment><USER6> "But it was Alice's, entitled "A series of awkward events separated by snacks," that floored me.

Hers was a hodgepodge of lists and memories written under duress ("Mom: Write or death!"). Favorite color: "Black. Like my soul." Favorite holiday: "Halloween (because candy and murder)." She liked Alfred Hitchcock films. "Basically," she wrote, "I'm an angsty teen in a child's body."

This kid's 11?"

Forget the mother, make an entire article about that kid. Heck, let her write that article.

<comment><USER7> Kids, especially girls, tend to hit that phase very early in bad family situations.

<comment><USER8> I hit that phase very early and had an idyllic childhood.

</comment></comment></comment><comment><USER9> I find it jarring that someone calls people that they've never met "my children". I get it - biologically they are offspring, but IMO the language should reflect that being a father/mother/child means having a role in the upbringing, and reserve a separate name for mere passage of genes.

<comment><USER10> > reserve a separate name for mere passage of genes.

Genes are account for about 50% of the differences between people (with the other 50% being environment), so I don't know if "mere passage of genes" is a phrase that really makes sense. (Actually, "nurture" is less, because the 50% environmental component includes surroundings that parents have no control over: [https://www.medicaldaily.com/nature-vs-nurture- debate-50-yea...](https://www.medicaldaily.com/nature-vs-nurture- debate-50-year-twin-study-proves-it-takes-two-determine-human-334686.))

</comment></comment><comment><USER11> At the age of 45, hoping to find some detail about my father I sent a cheek swab to FTDNA. Not only did I find him via a relative doing genealogy but he turned out to be a completely different person than I had thought! My aunts had been telling me it was wishful thinking on my mother's part because she was obsessed with who she wanted it be.

Can you imagine? Forty five years of not knowing who your real father is because someone refused to face reality! Unfortunately reading these threads on Reddit made me realize my story is all too common. All I can say is highly recommended if you're trying to discover your _true_ roots.

<comment><USER12> I'm in a similar circumstance, being into adulthood having not identified my father (who is believed deceased). 23andMe didn't turn up any useful hints, but your story makes me think I should give some other services a try... thanks for sharing.

<comment><USER11> You're welcome and best of luck.

</comment></comment></comment><comment><USER13> I don't know about the good looks but the author definitely has a good writing style to keep the reader engaged. Very wholesome and warm story!

<comment><USER14> Here's a photo:

[https://media3.s-nbcnews.com/j/newscms/2018_46/2646241/18111...](https://media3.s-nbcnews.com/j/newscms/2018_46/2646241/181114-aaron- long-mn-1300_83634f820a17562716c5d1e86cd30f6f.fit-560w.jpg)

Long (and his mother) are in the middle, Bryce and Alice on the right, Madalyn is 2nd from left. Jessica (Alice's mother, and now Long's girlfriend) is at far left.

</comment></comment><comment><USER15> I found my biological mother just a few years back, right after I turned 18. There is not much better than being introduced as an adult to siblings and relatives and having your circle of loved ones expand overnight. This inspires me to write my story somewhere.

<comment><USER16> I was kinda on the other end of this, truly a wonderful experience. It's absolutely true that as soon as you meet someone related to you, it's completely obvious.

It's a funny story for me - one year in the fall, when I was about 12, my mom got in contact with her biological daughter, my oldest half-sister, so boom, new sister for Christmas.

Next year, my father confirmed that he was the biological father of my older half brother - boom, new brother for Christmas.

I sat both my parents down very seriously and said "This shit has got to stop. It's becoming a trend. Are there any others out there? Even the tiniest possibility?"

<comment><USER17> I didn't have the experience either one of you did, unfortunately.

The other side of my family sought me out when I was 26. My siblings are all 20 years older than me and my nieces and nephews all 6-10 years younger than me. They're nice people but they lived fairly normal New England Catholic upper-middle-class lives. I pretty much grew up broke and on the street in the seedier areas of old New York. We have very little in common.

It's probably my fault that everything didn't gel, but it's difficult accepting a completely new family as an adult when you already have struggles with your existing one.

Moreover, my father was a complete creep and I learned why my mother stayed away from him. The whole experience was very uncomfortable and very sad and we haven't spoken since.

</comment></comment></comment><comment><USER18> > _In the end, the sci-fi trappings of our love story are irrelevant: ..._

Just before I got to this paragraph I was thinking how this article could have been a science fiction short story similar to ones I'd read back in the 80s or 90s.

I'm still waiting for my flying car, but we may be living in the future after all.

</comment><comment><USER19> The nature/nurture party game is an incredibly fun and interesting idea. Tangentially makes me think that sperm donors are a ripe focus group for research on nature/nurture. Anything like this done already?

<comment><USER20> Twins which were raised separately are often used for such studies: [https://www.google.com/amp/s/www.cbsnews.com/amp/news/just-a...](https://www.google.com/amp/s/www.cbsnews.com/amp/news/just- alike-twins-separated-at-birth/)

</comment></comment><comment><USER21> This is such a delightful story. Genetic testing turned the lost biological family from an enduring personal mystery into a Google search. Something that was supposed to be forever hidden was suddenly indexed. And lo and behold, blood is still thicker than water.

</comment><comment><USER14> More coverage (largely about a different example, but including Long's discovered family as well):

[https://www.nbcnews.com/news/us-news/sperm-donor-dad-when- st...](https://www.nbcnews.com/news/us-news/sperm-donor-dad-when-strangers- shared-dna-become-family-n937366)

</comment><comment><USER22> What a weird but heartwarmingly beautiful story!

</comment><comment><USER23> This article sounds like an advertisement.

<comment><USER24> Agree. He mentioned 23andMe waaaaaaaay too many times for this not to be an ad.

<comment><USER25> Is there anything that prevents 23andMe from selling the genetic data they collect?

<comment><USER26> Nope. Which is why I refuse to use services like theirs.

<comment><USER27> I found my biological family through them. Mother, father two brothers, nieces and nephews and an aunt. Definitely woth it for me.

</comment></comment></comment></comment></comment><comment><USER28> The evolutionary game theory of sperm donation is fascinating. On the one hand, there is the prospect of a huge number of offspring. On the other hand, donors are pairing their genetic legacy up with genes from people who are reproductively challenged.

<comment><USER29> Isn't it usually the mother's partner (or lack of one) who is reproductively challenged?

<comment><USER14> Sometimes it's the _combination_ that's the problem, though that can often be worked around with IVF.

</comment></comment></comment><comment><USER30> Intelligent and hardworking but still don't want to take responsibilities of raising children as it takes too much time. Then sperm donation looks like a nice option.

</comment><comment><USER31> Tangentially related is the recent documentary "Three Identical Strangers", triplets separated at birth who discover each other like you wouldn't believe.

</comment><comment><USER32> What would happen if he had met another mom before the one of the story ? Would the same spell have happened ? Or was it a bit of luck the first mother was the one ?

<comment><USER33> I was wondering what he was going for with "I'm up to 10 now; I have had some contact with the new ones' mothers but haven't made plans to meet yet"

</comment></comment><comment><USER34> Very sweet and humorous writing. Sci-non-fi gone right, for once.

</comment><comment><USER35> Russian roulette: [https://duckduckgo.com/?q=sperm+donor+child+support&t=ffab&i...](https://duckduckgo.com/?q=sperm+donor+child+support&t=ffab&iar=news&ia=news)

<comment><USER36> While it looks like mixed results at first, on closer inspection every one of those is for the same case. It appears that as of the latest ruling, he does not owe child support.

<comment><USER35> We are seeing different results.

[https://www.mcclatchydc.com/news/nation- world/national/artic...](https://www.mcclatchydc.com/news/nation- world/national/article24727612.html)

[https://www.theguardian.com/money/2012/oct/26/gay-sperm- dono...](https://www.theguardian.com/money/2012/oct/26/gay-sperm-donor-pay- child-support-maintenance)

[https://nationalpost.com/news/canada/child-support-case- invo...](https://nationalpost.com/news/canada/child-support-case-involving- sperm-donor-is-a-canadian-first-that-could-be-decided-by-a-new-ontario-law)

[https://www.seattletimes.com/nation-world/sperm-donor- liable...](https://www.seattletimes.com/nation-world/sperm-donor-liable-for- child-support-judge-rules/)</comment></comment></comment>


Big Tech's View of Universal Basic Income Is Deeply Flawed - <AUTHOR> https://mondaynote.com/big-techs-view-of-universal-basic-income-is-deeply-flawed-acd7c2f2a02a <comment><USER2> This will be unpopular, but: what if an uncomfortably large part of the population just _really doesn 't have anything economically worthwhile to offer_ in the modern context? Nobody wants to say that, but if it's true, then something like a UBI or dole (even granting the author's problems with it) is all we can do short of mounting a massive Plato's Cave-like conspiracy to convince people they are doing something useful.

<comment><USER3> We also have the problem that people are forced to evaluate what activities would be productive for them in terms of the money paid to them, but it's debatable whether the aggregated signals of demand in a given economy truly reflect what people would believe are "important" or "needed" or "valuable" activities (using scare quotes specifically because _obviously_ the whole debate revolves around how to determine the meaning of these types of terms).

My mom is an example. She works a highly menial and thankless job at a rural county courthouse in the Midwest, where she is paid an extremely small salary, given very few benefits, very little vacation time, and has no prospect for retirement, regular raises, career growth, etc. The courthouse could operate with probably 25% of the current staff, but they keep headcount artificially high because state funding and other programs depend on how many employees they have.

Largely, my mom is paid money to endure slight sexual harassment from small town attorneys and judges, and to do a tiny workload of clerical work. And the amount of money is barely enough for basic living in her area, even after accounting for the lower cost of living there.

It seems bang obvious that her employment is inefficient. The same exact thing happens for thousands of people in her area, whether in government, school jobs, private companies. There's just a ton of excessively meaningless work that companies or employers have ulterior reasons to sponsor with a paycheck even fully knowing that the labor itself is not productive or necessary at all.

I think if my mom knew she had a reasonable guaranteed basic income, she would volunteer her time at the local hospital, deliver meals to sick people, do more productive labor around her own home or through child care provided to my siblings and their children, perhaps create craft works to sell online, etc.

The net result could easily be that her overall labor productivity in the big picture sense would go way, way up after she is free to quit the essentially pure loss menial job and focus on things where she knows she can add actual, obvious value for people.

Unfortunately, I think most developed nations suffer this problem. Lots of jobs exist because of weird misaligned incentives on the part of the employer, who could truly not care less about the actual labor productivity of a bunch of employees and has them on the payroll for totally separate reasons.

<comment><USER4> Maybe your mom would, I'm sure she's a lovely woman.

But I know from hard experience that a lot of people wouldn't. My ex lost her job at some point and was looking for a year for a new one. She became terribly depressed, just staying in bed and crying all day. I'd talk her out of it, she'd be OK for a while, and then get depressed again because she felt "useless" and "like a loser".

I encouraged her, again and again, to go out and get a basic job even if it was menial, like waiting tables, or to volunteer for something, or to learn new skills, so at least she'd have something to do. But she refused to even look for jobs that weren't fancy middle class office jobs, volunteering was out of the question and her attempts at learning new skills were half-hearted at best.

Jobs aren't just a source of money. They're a source of validation, every day. Take away the job and people don't magically become perfect citizens who spend all their time doing generic good. They can become lethargic and depressed. As, in fact, the article articulates w.r.t. the French system.

<comment><USER3> I've had long-term unemployment as well (over 18 months) and I think that is an entirely different phenomenon that's not connected to what people would do if they had some financial security of a basic income.

Long term unemployment creates a type of inaction/depression for some people (this happened to me, and it sounds exactly like what happened to your ex partner). Because so much of my identity was bound up in what job I had, what career goals, how much money, etc., it made the feeling of being unemployed severely distressing. I really _wanted_ to do things like volunteering, or even basic self-care like exercising, but I _could not_ due to the distress of unemployment and the feeling like I absolutely _had_ to find an "acceptably good" job (for social status) and neurotically do nothing but dedicate all my efforts towards that.

If the status of having a basic income is a positive thing, like framing it as an opportunity to pitch in with civic duty and give back, I think it would satisfy the status and "sense of accomplishment" requirements for a lot of people.

But either way, the extremely distressing feeling of long-term unemployment is really not comparable. I would say, for example, that what you observed from your ex partner does not give you any capability of predicting what your ex partner would have done with basic income during that unemployment period. The situations are just too drastically different.

</comment></comment></comment></comment><comment><USER5> The author makes a false equivalence between the RSA in France and the typical UBI proposal. An individual's RSA benefit decreases as their work income increases. This has the effect of making an individual weakly indifferent to working, since it will provide no marginal increase in income. Most UBI proposals involve a benefit that doesn't phase out with income (or phases out at an income level so high that it doesn't matter). The RSA, in both design and implementation, is a lot like the already-existing EITC in the US.

The whole point of guaranteeing income is to try to avoid the distortion of incentives that comes from means-testing benefits. When the author claims that a UBI (like the RSA) would create a permanent class of non-workers, he is basing his argument on an elementary misunderstanding of policies involved.

<comment><USER4> No, I think it's a reasonable comparison. Yes, phasing out benefits creates an incentive not to work.

But even many UBI proposals have _some_ phase out, if only because the taxpayer paying money to a millionaire feels fundamentally wrong on so many levels.

And the bigger problem is more basic. The idea of UBI is that freed from the need to work, people will form utopian societies full of volunteering and self improvement and art projects etc. But France and realistically most welfare systems show that isn't true. People don't engage in self-improvement en- masse. They sit around watching TV or scrolling through Instagram all day, feeling useless and depressed.

<comment><USER6> > But even many UBI proposals have some phase out, if only because the > taxpayer paying money to a millionaire feels fundamentally wrong on so many > levels.

UBI has no phase out, by definition. Something with a phase out can not be called "universal".

You can decide it's reasonable or not as you wish (but those millionaires pay more taxes than they receive). Just try to criticize the correct program.

</comment></comment></comment><comment><USER7> What I don't get about articles like this is how they just go on and on about how bad of an idea UBI is but don't propose any kind of a solution.

It's not like UBI was created just to have fun, there are legitimate problems facing our society and our current trajectory is that the problems are getting worse.

Maybe I am just missing some part of the article but what's the point of saying something is bad without even talk about ways it could be implemented better or alternatives.

<comment><USER8> > What I don't get about articles like this is how they just go on and on > about how bad of an idea UBI is but don't propose any kind of a solution.

You're falling for the politician's fallacy. You see a problem, you see a proposed solution, and not hearing any other solutions, you've determined that this solution will fix the problem.

Recognizing that a solution is bad is worthwhile in and of itself. If he's right and we accept that UBI is the wrong solution to the problem then we can stop funneling time and effort into trying to implement that solution and instead look for a solution that may work. Just because he doesn't have that solution doesn't mean we shouldn't listen to his reasons why UBI won't work.

It's like if two non-mechanics were trying to fix an engine and one proposes to slap the engine with his dick until it works again. Just because the other guy doesn't know how to fix the problem doesn't mean he's wrong when he says that slapping the engine with a dick isn't going to fix the problem.

<comment><USER4> The fallacy runs even deeper than that. There might be no solution at all, by the construction of the problem.

The correct response to "this will not solve the problem you want to solve" is not "ok so you give me a better solution then", unless the problem is so existential that even doing something horribly wrong is still better than doing nothing.

The correct response may well be, "this will not work, therefore we should do nothing".

<comment><USER9> I've noticed over time that "doing nothing" is scary to most people on a subconcious level. It breaks the illusion that we have total control over our world.

<comment><USER10> I am one of those people. My productivity has improved _greatly_ by gritting my teeth and forcing myself to do it(nothing), though. For instance, rather than commenting here right now, I should be doing nothing and figuring out which of my many tasks I _should_ be doing.

</comment></comment></comment></comment></comment><comment><USER11> For the working class, tech is disrupting faster than it's creating value, the results are more distributional then they are enriching. The self driving car removes the human behind the wheel but does nothing to reduce the cost of the average car. Transportation does not become too cheap to meter - it costs about the same, minus the human salaries, and also minus the cab city tax that was typically redistributed into infrastructure for all.

There is almost no venture investment into say nuclear, too cheap to meter electricity. There is no investment into radically new and automated ways to build cheap, quality housing from locally available materials, or refine more, cheaper ore with less impact on the environment, or manufacture more durable, upgradable goods.

The supply of stuff is not disrupted by massive abundance, just the social rules about who gets what. It used to be the guys building the stuff in every community who were rewarded; now, all their paychecks go to a single dude in San Francisco that wrote a marginally better algorithm for doing stuff and the next day it spread around the world over the Internet. It turns out, there's nothing unique or special about a human body, just a soon-to-be-outdated type of 3D printer - with a software update latency measured in years and limited write cycles.

A basic income capable of lifting people from survival and into knowledge building is on the order of $5000 at current purchasing parity - impossible to finance by any tax or industry unless we radically alter the actual supply of goods.

</comment><comment><USER12> "That's why I remain fascinated by smart people in the United States being so misguided about the implications of the UBI in a country that has no decent healthcare system, a poor primary education complemented by a horrendously expensive higher education system. A state in which having more than two children is a mark of social status and in which any life crisis can lead to a social precipice."

from the article

<comment><USER13> >A state in which having more than two children is a mark of social status?

Really? I never knew that was a thing.

<comment><USER5> It's not. I honestly can't even imagine where the author would get this idea.

If anything, having fewer/no children is a mark of status, both globally (higher income countries tend to have lower birth rates) and in the US (vaguely implies both parents are working and have access to contraceptives, etc).

To be clear, I don't think that there's much of a status signal either way.

<comment><USER14> It is very much a thing in the US. The middle class almost exclusively has 0, 1 or 2 children; only the poor and the rich have more.

21 percent of families earning > $200K had at least 3 kids in 2011, an increase from 15% in 2000. Every other demographic saw their numbers go down.

[https://www.nytimes.com/2014/04/10/fashion/The-Growing- Three...](https://www.nytimes.com/2014/04/10/fashion/The-Growing-Three-Child- Household-in-Manhattan.html)

Anecdotally I see that too. Almost all of my children's classmates come from 2 child families with the occasional single; almost all of my wife's surgeon friends have 0 or >2 children.

<comment><USER5> You may be right. Although I'd claim that a trend piece + a modest change in demography aren't quite the same as a "mark of social status".

I'm applying the following standard: if someone told me that their friend had 3 kids, would I infer something about their social status? At least for me, not really? Like you said, the poor and rich both have >3 children. ymmv of course

</comment></comment></comment></comment></comment><comment><USER15> _> Education is ripe for disruption. There's a commonly believed fallacy right now that technology companies, specifically VC-backed technology education companies, are going to disrupt education. That's bullshit. Instead, Harvard, Yale, MIT, and Stanford are the favorites to disrupt education when they fall under heavy and sustained government pressure over the irrational and immoral hoarding of their mammoth endowments. Harvard claims it could have doubled the size of its freshman class last year with no sacrifice to its educational quality. Good. Do it. More students, paying no tuition, at the best schools will disrupt the system._

Harvard matriculates a teeny, tiny fraction of all university students. Doubling that number is not a solution. Even doubling that number at all ivies and elite universities is not even remotely close to a solution.

UBI may not be the correct solution, but even UBI isn't _this_ out of touch.

<comment><USER16> Maybe I'm just cynical, but I have a tough time believing that the preference for graduates from "top" colleges is entirely because they produce the best results rather than just a way to (necessarily) artificially limit access to a scarce resource. Just for the sake of round numbers, let's say there are enough quarter-million-dollar-a-year jobs for 1% of the population, but 10% of the population, with a bit of training, could step in and do those jobs. What do you do? You set up some semi-artificial, but still realistic, hurdles to limit the applicant pool. Doubling the applicant pool isn't going to solve the "problem" (if you even see it as a problem); it'll just necessitate an extra hurdle.

<comment><USER15> _> Maybe I'm just cynical, but I have a tough time believing that the preference for graduates from "top" colleges is entirely because they produce the best results rather than just a way to (necessarily) artificially limit access to a scarce resource._

This is not really relevant. The author of this piece suggests that the path to affordable higher ed in the US is elite institutions doubling their full- rides. But that's a drop in the bucket; "everyone go to an ivy on a full ride" is not a sustainable or realistic way of decreasing the cost of college.

 _> Just for the sake of round numbers, let's say there are enough quarter- million-dollar-a-year jobs for 1% of the population, but 10% of the population, with a bit of training, could step in and do those jobs._

This is also not a problem. Most people who go to college would be perfectly happy with a stable 80k. Or even 60k. The problem is not that folks can't get 250k. The problem is the massive amount of money they have to spend to get certain jobs that pay those wages, even at lower-tier universities. And more Harvard scholarships aren't going to solve that problem.

</comment></comment></comment><comment><USER17> Perhaps UBI does require thinks like universal health coverage but that would not make it "deeply flawed" that would mean tweaking is needed.

And that UBI requires low unemployment is directly contradicted by the head of the article where UBI is described as a potential solution for loss of jobs due to automation.

But either way theorizing beforehand why it will or won't fail is comparatively unproductive; we can actually experiment and see if it works.

And interestingly two conditions of the article; a sort of universal heath care and low unemployment, currently apply in the US. So the article should be predicting success there.

<comment><USER18> > we can actually experiment and see if it works.

Actually, we can't test UBI without enormous risk.

If the number of people involved isn't close to 100%, it isn't _universal_. Any societal effects for good or ill cannot be reasonably extrapolated to the full population. What might "work" for 5% of the population getting UBI might cause the next Great Depression at 100%.

<comment><USER19> > Actually, we can't test UBI without enormous risk.

Yes we can.

> If the number of people involved isn't close to 100%, it isn't universal.

Right, so your test has 100% coverage but not at a level that completely displaces all other means tested benefit programs. Maybe it initially just displaces, say, General Assistance type programs. Then you can gradually scale it up and continuously evaluate.

<comment><USER20> I'm not sure that's a valid test. UBI at $10/month is absolutely worthless. UBI at $500/month is probably worthless. UBI at $1000/month is barely adequate. If you start the test at small amounts, you're going to experimentally decide that it doesn't work. But that only means that it doesn't work _at those amounts_. It could still work at larger amounts.

Of course, it could bankrupt the country at larger amounts, too...

</comment></comment></comment></comment><comment><USER21> There's a fellow I follow on Tumblr who got tired of all the talk about UBI without any concrete specifics, and so took it upon himself to look at actual, real UBI proposals with serious analysis. There are fewer than you'd think, considering how much talk there has been about it:

[https://squareallworthy.tumblr.com/tagged/ubi](https://squareallworthy.tumblr.com/tagged/ubi)

To be honest, the results are sobering. There are depressingly few proposals to begin with, and they all seem to be fundamentally flawed: they either have a lot of fuzzy math to handwave away problems, or they are politically impossible. Each of his posts ends with "If this is the most serious UBI proposal, there are no serious UBI proposals" and it's a hard point to argue with. I was a strong UBI supporter even six months ago, but between this analysis and questions like "With a $2,000/month UBI payment, won't landlords just simultaneously raise rent by $2,000/month?" with no obvious answers, I'm really pulling back.

</comment><comment><USER22> I am really having trouble sussing out the author's thesis. What are they arguing, exactly?

<comment><USER15> IMO the central thesis is that society should have a negative view of tech companies and tech workers. That's the only thesis that each argument made in the post actually justifies. So if that's not the true thesis, then I guess the article is just a sequence of incoherent and poorly constructed arguments about UBI, education, corporate taxation, etc.

A counter-argument to the "you should hate tech people" thesis might be the pronounced support among tech workers for fixing the problems their industry helps create. The author argues that this is actually yet another reason why we should have a negative view of tech companies and tech workers, because UBI won't work and because we could fix college affordability by forcing Harvard to fund a few more full rides.

</comment></comment><comment><USER23> Any UBI program that doesn't take basic living expenses ( housing, healthcare, bandwidth, food ) into account is just a fancy detour for the money to go back into the pockets of the ownership class rather than creating lasting wealth for society at large.

At best UBI is one element of a comprehensive restructuring of society towards one that actually tries to be a knowledge economy where unique individual talents are cultivated and useful knowledge is discovered and disseminated as widely as possible for the maximum benefit of society as a whole.

</comment><comment><USER24> The author seems to believe that UBI proponents are opposed to single payer healthcare, and this could be his central beef. He never criticizes UBI itself, he's yammering on about big tech's "view". But it's hard to tell, I had to dig for a while to find an identifiable point.

> Yep, but not with five hundred bucks a month, Marc. At least not in your > country, where 44% of the population can't afford a $400 medical emergency.

</comment><comment><USER25> Everything about this post is based on supposition, speculation, and a fundamental misunderstanding of UBI. No, Mr. Filloux, nobody is advocating for a $500/mo dole in which recipients have to pay out of pocket for emergency room visits.

Nor, dear Sir, is the _Revenue de Solidarité Active_ anything even remotely close to Universal Basic Income, because it _is not universal._

The straw men are piled so high it constitutes a fire hazard.

</comment><comment><USER26> Sneering about $500-$1000/month and talking about being able to afford a medical emergency[1] tips the author's hand: He's not worried about the actual poor, he's worried about the losers, mid-income aspirational types that will never be able to afford the lifestyle they're intensely integrated into and aware of.

UBI would make their misery even worse, asserting their status over people who "flip burgers for a living" is all they've got.

[1] If you're in the US and poor enough that UBI would be life-changing, you're almost certainly either on Medicaid or in a place where the first-line medical treatment is going to an emergency room and skipping out on the bill.

</comment><comment><USER27> > Universal Income yields some results in two types of countries: ultra-poor > nations when it lifts entire families from the street, or in affluent ones > like Finland who already have a generous social safety net, free healthcare, > a good education system and a low unemployment rate.

So, the author says that it works when the country has almost nothing (and then any money will make a huge difference) and in countries where the population already has a good return for their taxes, and then receiving that money can provide some incentive to do other things.

</comment><comment><USER28> This seems like a strawman screed. It seems like this guy literally created an argument out of what he thinks the general "big tech" consensus on UBI is and then attacks it.

His argument seems to be the amount suggested (which he suggests) isn't enough and that tech companies need to pour lots of money into helping people.

</comment><comment><USER29> I have a working theory that the _fundamental_ differences between conservatives and liberals include the following:

(1) While both groups would like an _accurate_ understanding of human nature, conservatives tend to be pessimistic and liberals tend to be optimistic.

(2) While both groups would like to be compassionate and charitable, they're riled by different problems: Conservatives especially hate the idea of freeloading / abuse of charity, but liberals especially hate the idea of anyone not receiving the charity.

It sounds like Filloux would consider himself a conservative, and the VCs liberals, according to my theory.

</comment><comment><USER30> I'm a libertarian, and don't support a welfare state in general. I view UBI as a great replacement for current welfare programs including food stamps. It largely eliminate the "welfare gap", where when people earn more money, their benefits start dropping off, resulting in a reversed incentive structure leading to trapping people in poverty.

UBI implemented as a negative income tax would result in much less waste and more freedom to the beneficiaries. It's also politically viable as it could be seen as more "fair" since technically everyone receives it.

Edit: I think the "automation displacing human jobs" argument is easily the weakest in favor of implementing a UBI, especially since it's not necessarily economically realistic.

<comment><USER31> I keep forgetting that UBI, implemented properly as you describe, in a nation with pre-existing Robin-Hooding ... is a net-gain for liberty.

Yet, given history, I doubt that the median-minus-one politician could have the courage to end the current welfare programs if and when a UBI system is enacted. So I'm ... ambivalent ... about what to think of UBI.

<comment><USER19> Since you probably can't implement a sufficient UBI to provide an income floor that removes the need for other programs initially (at least, anytime soon), but instead need to start low and ramp up with productivity gains, you need a phase-in mechanism.

You can do this in a way that avoids forcing politicians to have the will to eliminate existing means tested programs but achieve that in effect by simply, add party of the phase in, specifying that UBI income counts as income in applying benefit formulas for existing programs.

It'll be much easier to kill each of the programs when no one has a low enough income to qualify for it.</comment></comment></comment>


James Webb Space Telescope - <AUTHOR> http://www.jwst.nasa.gov/ <comment><USER2> Hey, my job's on HN! I work on JWST (simulation software, among other stuff) and I think it's pretty cool too :)

<comment><USER3> Very cool. How much data is going to be arriving from JWST daily? Is it going to be readily open to the public?

<comment><USER4> > Is it going to be readily open to the public?

The scientific data will be available to the public, sometimes after a "proprietary" period (typically in the range 6–18 months) where the data is only accessible to the team who successfully proposed to obtain that data.

</comment></comment></comment><comment><USER5> My group at Goddard has done work on the JWST detectors. JWST is a big deal here. It also scares the crap out of me, due to the gymnastics that are needed to get it unfolded properly, in a location where repair is impossible. A lot of people will be very, very happy when this thing is in orbit and working.

<comment><USER6> What kind of detectors are you working with? Are they of a different kind or just more powerful than what's already up there?

<comment><USER5> Sorry, I'm just the sysadmin here. A lot of the JWST work was done before I got here, but we still help support them. I'm sure there is detailed information on the web about the detectors in use on JWST.

</comment></comment></comment><comment><USER7> As excellent has Hubble has been, the JWST is going to put it to shame. The potential risk, however is that it won't be serviceable, as Hubble famously needed to be very early in its life. If all goes as planned, we're all going to have some really nice new desktop wallpapers in a few years. And, I suppose, a better understanding of the universe will be a nice side benefit.

<comment><USER8> Interesting tidbit: JWST can't see blue. While Hubble could see entire visible light spectrum, astronomically infrared is more interesting. So JWST can see infrared, but not blue.

Astronomical images always have been heavily edited and it never was "what you may see", but it is more so for JWST.

<comment><USER9> It's not just that IR is "more interesting" (maybe it is), but it's much more difficult to see through the atmosphere. It's obviously cheaper and easier to build huge optical telescopes on the ground, but to see into the infrared, you need to get above the atmosphere.

Edit: source [http://coolcosmos.ipac.caltech.edu/cosmic_classroom/ir_tutor...](http://coolcosmos.ipac.caltech.edu/cosmic_classroom/ir_tutorial/irwindows.html)

<comment><USER10> IR is _profoundly_ more interesting, precisely because it is able to penetrate all sorts of media, most especially interstellar dust and gasses, allowing JWST (and others) to see stars that can't be seen by their visible light.

Regarding our atmosphere filtering IR: do you feel the heat of the sun when it shines on you? That's light. Infrared.

Edit: Additional point of fact: our atmosphere interferes with light by scattering it away from its angle of incidence. Light with a longer wavelength is able to get through without scattering (IR, red, orange, yellow, etc) light with a shorter wavelength (blue) is more likely to collide with a molecule of _something_ on the way in, and it gets bounced around so frantically that all those blue light waves seem to kind of pile up and come from _everywhere_. No, our atmosphere's light transmission woes are much more deleterious to the smaller wavelengths of light than to IR.

</comment></comment></comment></comment><comment><USER11> This fella is down at Northrop in Smell Segundo! My Dad always shoots me a text whenever he's had a chance to look at it. He told me a neat story once about the mirrors inside it... that when he stood in front of it, he felt really strange. It's because the mirrors we are all accustomed to have so many imperfections compared to the types used in this device. He wasn't used to seeing such a perfect mirror image.

<comment><USER12> Not to diminish the achievements of the opticians working on the JWST, but you can obtain the same level of perfection at home, using everyday tools. However, you'll be working on a much smaller surface.

Make your own telescope mirror. To pass the tests, it must follow the ideal surface with an error less than lambda/4, where lambda is the wavelength of visible light. In practice, that's 0.1 microns or less. Also, the density of scratches and pits must be very low (not detectable by usual means).

It's totally doable by hand, working in your garage, on a piece of glass the size of a dinner plate. It just takes a very, very long time, at least on first attempt. My first telescope took over a year (admittedly, I took too many breaks, and then I did a lot of experiments with the techniques).

[http://florin.myip.org/blog/150-mm-f8-mirror-25-mm-pyrex- pol...](http://florin.myip.org/blog/150-mm-f8-mirror-25-mm-pyrex-polishing- and-figuring-log)

</comment></comment><comment><USER13> Telescope mirrors:

[https://www.flickr.com/photos/nasawebbtelescope/page9/](https://www.flickr.com/photos/nasawebbtelescope/page9/)

[https://www.flickr.com/photos/nasawebbtelescope/page11/](https://www.flickr.com/photos/nasawebbtelescope/page11/)

JWST vs Hubble: [https://farm5.staticflickr.com/4076/4813007838_13c736d9ca_z....](https://farm5.staticflickr.com/4076/4813007838_13c736d9ca_z.jpg)

Mirror curvature( large jpg ): [https://farm5.staticflickr.com/4114/4813106662_0d3eeddc27_o....](https://farm5.staticflickr.com/4114/4813106662_0d3eeddc27_o.jpg)

</comment><comment><USER14> Remember who runs congress now, prepare for it be canceled (again).

<comment><AUTHOR> I saw this in Wikipedia:

"The JWST has a history of major cost overruns. In 2011, the United States House of Representatives voted to terminate funding, after about $3 billion had been spent and 75 percent of its hardware was in production. Funding was restored in compromise legislation with the US Senate, and spending on the program was capped at $8 billion. As of December 2014, the telescope remained on schedule and within budget, but at risk of delays."

Source: [https://en.wikipedia.org/wiki/James_Webb_Space_Telescope](https://en.wikipedia.org/wiki/James_Webb_Space_Telescope)

<comment> java-man Some things ARE expensive because they are difficult, require quality components or processing. I would rather spend on difficult science than on dumb bombs...

</comment></comment></comment><comment><USER15> I'm glad to see some folks on here involved with the JWST, thanks for all your efforts!

I have a question: is the big cost primarily due to the one-off nature of the components, figuring things out for the first time etc? I ask because there's some proposals (ExoEarth Mapper) for constructing a giant array of 20+ of JWST-like telescopes in order to get pictures of earth-like planets.

So if one JWST costs $8Billion, how much would 25 cost?

</comment><comment><USER16> Also check out: [http://jwstsite.stsci.edu/webb_telescope/](http://jwstsite.stsci.edu/webb_telescope/)

STScI will be the Science and Operation Center for JWST.</comment>


Impact of 'iSlate' Could Rival iPhone - <AUTHOR> http://www.nytimes.com/2010/01/04/arts/04iht-design4.html?hp

<comment><USER2> "Could rival" articles are a great example of what's wrong with newspapers these days. A quick paragraph by paragraph breakdown of the content of this article should be enough to show anyone what's wrong with it:

P1: People are excited about Apple's rumored tablet computer.

P2: People were excited about Apple's rumored phone.

P3: The iPhone was successful. (Plus an irrelevant point about Apple's controlling nature.)

P4: Bloggers are excited about a possible tablet computer, but Apple has failed sometimes as well.

P5: Irrelevant discussion of other possible industrial design releases this year.

P6: Nothing.

P7: Nothing. (The entire content of this paragraph is an incorrect statement that tablet computers have been becoming more popular since the XO laptop. The article's author has confused netbooks with tablets. It's also confused the XO computer with the design concept the OLPC organization recently created that they will soon fail to implement.)

P8: Continued confusion of the tablet and netbook markets.

P9: The rumored tablet computer from Apple will be able to do stuff that you would expect a tablet computer to be able to do.

P10: The market for eReaders needs a messiah. (If I were being more snarky, I might say that the writer has never met an Amazon Kindle owner.)

P11: An extremely popular eReader would improve the demand for content normally used by eReaders.

P12: The rumored tablet will need a corresponding store.

P13: Nothing. (Plus an incorrect point about Apple's sustainability. Whether she means environmental or economic, there's no evidence to support either point of view.)

<comment><USER3> Re: P7-P9. I don't think the author is confused at all. It seems to me that those in the market for a netbook would strongly consider a tablet as an alternative (if a tablet wasn't already in their consideration).

In a year or two, I could see somebody's technology collection consisting of smartphone/laptop|desktop/netbook|tablet. I have a harder time imagining the average consumer being interested in both a netbook and a tablet.

<comment><USER2> My problem with it is that tablets have not become significantly more popular since 2005, which indicates to me that she's confusing the two.

</comment></comment></comment><comment><USER4> I think this is a great example of why print media should go out of business. This article contains no new information and no useful analysis. The author profits on the backs of all the people who have tracked down rumors. By virtue of her position at the NYT she can be the vessel by which this data is communicated to the masses.

<comment><USER5> This is the same publication that broke the NSA wiretap story; it operates 20+ foreign bureaus and has won more Pulitzers than any other paper. But, yes, let's shut it down for running linkbait about Apple.

<comment><USER4> I meant "should" in the sense that it is a good thing they rapidly being eclipsed by newer types of journalism, not that they should actively be shut down.

"Sure they have a ton of Pulitzers." Given that blogs have only become serious competitors to print media in the last 5 or so years this shouldn't be a surprise, and it certainly isn't a defense.

"They maintain lots of foreign bureaus." Again this is awesome, except now we can just get the info from residents of these areas.

"They broke the NSA wiretap story". Sure and folks on the internet broke "Document-gate" when people were trying to frame GWB.

I'm not against the NYT, but I am against them just slurping up content from the web, adding no value and then passing it off to their customers without credit to the original sources. I'm really against the factual errors brought up in the top post.

<comment><USER5> I find these comparisons amusing. The NSA wiretap story documented unconstitutional malfeasance by one of the largest, most secretive organizations in the US government. The "GWB was framed" story involved knowing the typeface used in a fake document circulated by a private citizen and inadvertantly authenticated by a private news organization.

Similarly, I'd like to know who in Darfur is going to file the CNN "i-Report", or how many 140-character "Tweets" it's going to take to document the next genocide.

I'm not in favor of the NYT, but I think I have a decent bead on what the "new journalism" has in store for us (breathless promotion of context-free Flip Mino clips of Iranian protests on Andrew Sullivan's blog; TechCrunch), and I'm confident that most of its advocates don't _really_ understand that @BreakingNews actually gets its news from big companies that pay people to actually report.

<comment><USER4> I'm glad I can amuse you. Another example would be the "Citizen Reporters" who documented fraud committed by ACORN by going under cover with a flip cam. The NYT did almost no substantive reporting on the matter. I'm sure you'll try to write that off by saying it is just righty propaganda, a tacky spectacle, etc.

However Al Franken won by a razor thin margin in a state with active Acorn voter registration efforts. Might they have been the difference that got him elected? Now his vote makes a massive overhaul to our health care system possible. I'm not sure if reshaping 20% of our economy is on par with "documented unconstitutional malfeasance by one of the largest, most secretive organizations in the US government", but on a day to day basis it will certainly impact more people, in more significant ways.

And yes I can see where you could stress test this argument successfully. Congrats. Take great satisfaction in citing the supremacy of of a 100+ year old medium with an established business model that has managed to keep a slight edge on a 5 year old medium that is still getting its legs.

<comment><USER5> You're not doing the "new journalism" any favors with the examples you're choosing to advocate with. The O'Keefe ACORN video you're talking about has been roundly criticized for editing out details that exculpate ACORN staffers. The fact that O'Keefe probably had a real story to chase down makes it _worse_ , because his sloppy efforts --- which by his own admission mix "attack- attack-attack" political tactics with reportage --- make it impossible to talk about ACORN without talking about the credibility of the reporters.

You seem eager to talk about politics. I don't care what your politics are. I care that we're exchanging The Wall Street Journal (35+ foreign bureaus) for Twitter, TechCrunch, and the YouTube exploits of DailyKos and Malkin "diarists".

<comment><USER4> I'm not eager to talk politics, however most big news stories share that subject so it's hard not to. In fact, my original criticism of "old media" and all the bureaus and trappings that lend it legitimacy, was that it had gotten lazy and shallow. This seems to be your quarrel with "new media". I'll reiterate my original point. I don't like repoters who write factually incorrect articles that are read by millions when there are better original sources.

I would like high quality journalism be it new or old.

Nary a partisan statement to be found:)

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> It's interesting that both the Newton and Cube--which the article correctly points out as unsuccessful financially--still have cult followings. From what I've read, the Newton--which is, I believe, the first PDA--did many things better than any PDA since, including the iPhone.

</comment><comment><USER7> The author called App store a "successful exercise in design democracy", to which I can only say "what?".... the App Store is anything but democracy.</comment>


On Competing with C Using Haskell (2017) - <AUTHOR> https://two-wrongs.com/on-competing-with-c-using-haskell.html <comment><USER2> > So when people say "C-like performance" in this sort of context, what they > really mean is "the performance if we choose to make a foreign call to a > function written in C instead of writing the same function in Haskell".

That's not really why we use C(or C++ or Rust) for high performance code. The author got really close by calling out branch prediction overhead and reading 1mb from memory.

However he completely missed the overhead of a cache miss. We use C because you can be _explicit_ about your memory layout so that when you read memory in a predictable pattern(linearly forward/backward) the prefetcher can keep ahead of you and avoid cache misses. You're looking at 400-1200 cycles per cache miss which can happen on each reference access if you're not careful.

I don't know how rich Haskell's support for Value vs Reference types and memory layout are but this is something you can't just wave a compiler at since it's highly dependent on your dataset and use cases.

<comment><USER3> > I don't know how rich Haskell's support for Value vs Reference types and > memory layout are but this is something you can't just wave a compiler at > since it's highly dependent on your dataset and use cases.

Haskell has both value types (unboxed types) and reference types. By default, lazy reference types are the default. If you add a '!' before the types of fields in a record, you get direct pointers. If you add a '! {-# UNPACK -#}' or enable the '-funbox-strict-fields' option, you get directly embedded value types.

That being said, C has more first-class support for low-level manipulation, but if you wanted to, you could just add this kind of manipulation onto Haskell as a library. In my last company, we developed a library that used higher-kinded polymorphism and phantom types to basically make low-level memory manipulation a 'first class' value that could be reasoned about using Haskell's type system.

However, this required that you annotate your types appropriately. Nevertheless, code would end up compiling into highly efficient direct memory and register manipulation, while still having all of Haskell's typical type safety.

<comment><USER2> Interesting, thanks for the detailed breakdown.

How's support for directly mapping chunks of memory to packed structures? We used to do a lot of in-place loading in games(yay for spinning, physical disks) so it being able to do blind casts was almost as important as value types themselves.

<comment><USER3> Haskell allows unsafe pointer arithmetic and manipulation (of course, the functions are all named 'unsafe'!). But, you can write safe interfaces on top of it. I have an example of an external sort using the standard fibonacci merge algorithm, which uses raw pointers and memory mapped IO under the hood, but which exposes a safe API. I've done some basic benchmarking, and it's about as fast as Postgres's sort on my machine, for simple binary doubles and ints.

Here it is: [https://github.com/tathougies/extsort/blob/master/Data/Exter...](https://github.com/tathougies/extsort/blob/master/Data/External/Sort.hs) .

I think it's a good example of 'low-level' Haskell.

</comment></comment></comment></comment><comment><USER3> In his explicit recursion example, the author questions why the compiler doesn't convert it into a tail call. The issue here is that the speed he gained in the tall call version had nothing to do with the tail call. It has to do with the fact that the accumulating parameter is strict. The explicitly recursive version is lazy, which means there is a thunk structure of (1 + 1 + ... ) being built up in memory, which is then evaluated. This overhead of building up this thunk, and then evaluating it (awful cache characteristics) is what he's seeing. By adding a bit of strictness, the author could likely get the optimizer to convert it into a strict tail call.

<comment><USER4> [https://wiki.haskell.org/Foldr_Foldl_Foldl%27](https://wiki.haskell.org/Foldr_Foldl_Foldl%27) explains this in detail.

</comment></comment><comment><USER5> I am not convinced that advancing over two different string buffers and comparing their contents - even with a variable amount of advance due to character encoding - would have a branch miss in it if programmed by a competent programmer in any language.

I am also not convinced that this problem can't be completely clobbered by SIMD, regardless of platform (x86 vs Neon) and language (Haskell, C, whatever).

A comparison of languages in this case for performance (outside the kiddy division) would either (a) center around which language could get the hell out of the way and let the programmer use intrinsics or (b) which language could actually allow the programmer to express SIMD concepts in a nice language- friendly way.

I have occasionally seen some pretty cool stuff from FP folks in the latter direction, which, if brought to production quality, would allow FP people to absolutely slaughter naive C code.

<comment><USER3> There is a summer of code project this year to make GHC output SIMD code from standard Haskell code. The llvm backend does this now, but it comes at the cost of being less efficient on normal Haskell code, and also unable to access all the rich type information that GHC theoretically could.

Nevertheless, GHC has all SIMD intrinsics available for use, and they're all type checked, as you'd expect: [https://hackage.haskell.org/package/ghc- prim-0.5.2.0/docs/GH...](https://hackage.haskell.org/package/ghc- prim-0.5.2.0/docs/GHC-Prim.html#g:29)

</comment></comment><comment><USER6> In OCaml, there's the option to directly call the native function without any setup cost or overhead, in fact, some of the standard library's function are offered this way. For example:

        external sqrt : float -> float = "caml_sqrt_float"
         "sqrt" [@@unboxed] [@@noalloc]

<comment><USER7> The overhead that is being talked about in the blog post is mostly the impossibility to inline/optimize the C code of the callee, setting up the stack frame, etc.

How would OCaml avoid that?

<comment><USER6> It does a reasonable job:

        external my_sqrt : float -> float = "caml_sqrt_float"
           "sqrt" [@@unboxed] [@@noalloc]

        let () =
          let x= my_sqrt 1.0 in
          Printf.printf "x = %f" x

becomes something like:

        ...
        camlInline__entry:
                .cfi_startproc
                subq    $8, %rsp
                .cfi_adjust_cfa_offset 8
        .L102:
                movsd   .L103(%rip), %xmm0
                sqrtsd  %xmm0, %xmm0
                movsd   %xmm0, (%rsp)
                movq    camlInline__6@GOTPCREL(%rip), %rbx
                movq    camlPervasives@GOTPCREL(%rip), %rax
                movq    208(%rax), %rax
                call    camlPrintf__fprintf_1291@PLT
        ....

</comment></comment></comment><comment><USER8> Competing with C is a pretty low bar, nowadays; although I appreciate the uniquely careful definition used here.

When you are serious about performance, nowadays, cache misses and branch prediction are decreasingly relevant. You need to talk about drawing on computational resources practically inaccessible from C, including AVXn vector units, and shaders.

C's weakness for expressing abstractions is a fundamental and unbridgeable handicap for such computation. C++ might be up to the job, and Haskell should be. It is not clear whether Rust is. For this kind of hardware exploitation, direct compiler support will always lag far behind. You need for the language to be expressive enough to support writing libraries that wrap access to the platform's hardware features in a way that the library can be ported to other hardware without changing client code, and present its capabilities in a way natural for the language.

Compiler optimizers are good at merging client code with library implementation when both are in the same language, and can identify efficiencies not available to library or clients taken in isolation.

It is not typically less work to write such a library than to tailor a compiler, but the work has better longevity. Other people port the library for their hardware, and all the compilers and programs are brought along.

In the case of rustc and ghc, where there is momentarily only one compiler, it may be harder to see this.</comment>


GCC licence change - <AUTHOR> https://marc.info/?l=openbsd-tech&m=149032069130072&w=2 <comment><USER2> > Therefore, I am asking all authors to respond to this thread if they object.

> ...

> If we do not hear from you, we will assume that you have no objection.

Is "nobody objected" a high enough bar to re license a project? Or am I misunderstanding what's happening?

<comment><USER3> The context is that OpenSSL decided to re-license and sent an email saying "send an email if you object" to everyone. Theo De Raadt understandably objects strongly to this, and is parodying it by declaring intent to relicense GCC in the same way.

Also, he's contacting gcc devs by emailing firstname.lastname@example.com.

The entire point is that it's NOT a high enough bar.

<comment><USER4> Maybe not, but...

Is it wrong that I really don't care? The OpenSSL license is a historical disaster, and Apache 2.0 is just infinitely preferable. Everyone is up in arms about the principle of the thing, but can't we just agree to fix the license? Does anyone _not_ want this?

<comment><USER5> That's the point: Does anyone _not_ want this?

A group of people can't just get together and decide to 'change' the license of something when they are not the owner of said thing. In this case, contributions to OpenSSL. You're welcome to "want" OpenSSL to be under MyFavoriteLicense but at the end of the day when you use it and lawyers come after you because someone's contribution _wasn't under MyFavoriteLicense_, it's your fault.

</comment></comment></comment></comment><comment><USER6> Mods, could we get a title edit clarifying the joke?

<comment><USER7> Please use the original title.

<comment><USER8> "...unless it is misleading or linkbait."

</comment></comment></comment><comment><USER9> Ahhh, the open source community joking about relicensing. Reminds me of that PR on swift right after it was open-sourced[1]. I've been contacted in the past W.R.T. a relicensing effort for a project I'd worked on. Given that I was as fine with the new terms as the old, I gave it the go-ahead[2].

I know people like to care about the integrity of licenses and such, but IMO so long as there's a good faith effort to communicate with past contributors, relicensing seems reasonable (if a pain). Maybe they shouldn't have said "silence is acceptance" in their email, though.

[1][https://github.com/apple/swift/pull/17](https://github.com/apple/swift/pull/17) [2][https://github.com/thrimbor/sbep/issues/1](https://github.com/thrimbor/sbep/issues/1)

</comment><comment><USER10> It's unclear how anyone on the openssl team can possibly think this is going to work unless they believe corporate sponsorship provides them with enough clout/money to bully dissenters.

</comment><comment><USER11> _> Everyone deserves access to C technology without restriction, especially as rust makes inroads._

What? Is this whole letter some form of sarcasm?

<comment><USER12> Yes, see [https://marc.info/?t=149028609000002&r=1&w=2](https://marc.info/?t=149028609000002&r=1&w=2) for some context. One of the other comments summarised why this is funny.

<comment><USER13> Only very few find this funny. This is no joke. This is a serious death treat towards LibreSSL. Theo reacted with a satire. But not a funny one.

<comment><USER8> What prevents LibreSSL from being under an Apache 2.0-compatible license?

(Also, what prevents LibreSSL from replying with "This is great, but can we get dual MIT/Apache 2.0"?)

<comment><USER13> Dual licensing seems to be the best solution, yes. The license specialists need to come up with a solution. I'm not one</comment></comment></comment></comment></comment>


The Real Deal About rel="me" - <AUTHOR> https://wiki.zegnat.net/media/the-real-deal-about-rel-me.html <comment><USER3> The largest problem the semantic web is tackling is answering the question that is at the end of the article

> If someone has the URI of that thing, what relationships to what other > objects is it useful to know about?

In many ways, its really a question about the observer than the page; which means the pages seeking to answer it - even for their own special cases - <USER2> get the answer consistently, and often subtly, wrong.

The upshot is that pages will comply or optimise for particular observers- for financial or political reasons. This makes it very hard for observers not fitting the expected mould to make definitive use of the semantic web.

For example, a world in which distributed validation is not immediately politically or financially important (ours) is one in which such schemes as described in the article are faced with a huge problem of being consistently and often subtly broken.

User validation isn't something I'd like to be widely broken.

</comment><comment><USER4> rel="me" for authentication sounds like it could help with the inevitable problem of Mastodon account verification. Instead of putting a verified checkmark on your name, whatever that is supposed to mean, put one on your home page if there's a rel="me" pointing back to the same profile. Parties that don't fully trust you (other federated servers, most likely, but individual clients if necessary) can verify the relationship before displaying the check mark.

<comment><USER5> Mastodon now publishes rel=me on profile links, so you can do bidirectional verification between mastodon and other rel=me publishers like github and wordpress, as well as your own site. [https://xoxo.zone/@KevinMarks/100616472097157585](https://xoxo.zone/@KevinMarks/100616472097157585)

<comment><USER5> more discussion of this in a fediverse context: [https://pleroma.site/notice/3922993](https://pleroma.site/notice/3922993)

</comment></comment></comment><comment><USER6> I really like the Indie Web stuff, and I think that their idea of using one's own website as a login is a great one. The problem is that one _actually_ ends up using some third-party website (e.g. github.com) to run authentication for one — and generally via a fourth (indieauth.com). Adding two extraneous parties to an authentication seems pretty extraneous to me: rather, it'd be a good idea just to specify a way to run web sign-in entirely from one's own site.

<comment><USER7> One _can_ do that, but it's built entirely on a protocol to do exactly this:

> _just to specify a way to run web sign-in entirely from one 's own site_

and many in the community do not involve third parties. The rel=me thing through IndieAuth.com is merely a trick to get started quickly, by relying on existing identity providers.

[http://indieauth.net/](http://indieauth.net/)

</comment></comment><comment><USER8> I've found that almost all the results I get from Google these days point to some "big site": pinterest, quora, wired, verge, etc. Often, these sites are behind a paywall/login wall, and the content isn't very good either.

Is the whole concept of authors publishing their opinions and thoughts on their personal websites dying, or is Google ranking such posts lower?

<comment><USER9> By the way, why can't I still tell Google to ignore e.g. pinterest or w3schools?

Google wants to know everything about me so they can serve me better (they claim), but a simple preference to exclude a website from my search results is not possible?

<comment><USER10> _> By the way, why can't I still tell Google to ignore e.g. pinterest or w3schools?_

You can. Use "-site:pinterest.com -site:w3schools.com". To facilitate using it in every search, setup a keyword search so you can type "gsearch blah" and have the querystring automatically add those two filters. I agree there should be a way to add sites to a global blacklist in your user settings if you have a Google account. I'm sure Google has monetary reasons for not doing so though.

<comment><USER11> [https://chrome.google.com/webstore/detail/personal- blocklist...](https://chrome.google.com/webstore/detail/personal-blocklist-by- goo/nolijncfnkgaikbjbdaogikpmpbdcdef)

Personal Blocklist (by Google)

Blocks domains/hosts from appearing in your Google search results.

<comment><USER10> Neat, but this isn't a complete solution as I, and many others, use Firefox. I can't see a good reason this needs to be an addon instead of a user setting, other than to only allow only Chrome users to use the "official" add-on. There is a Firefox version that, perhaps a bit tongue-in-cheek, is called "Personal Blocklist (not by Google)". I keep the number of addons I install to a minimum so will be sticking with my keyword searches (I actually filter Pinterest from my searches).

</comment></comment></comment></comment></comment><comment><USER12> Reading the article I couldn't get rid of the feeling "gee, what a first world problem" (where by the world I mean the World Wide Web).

On the actual topic:

Rel="me" sounds bizzarely narrow, at the same time wildcard-ish and borderline narcissistic. Something like Rel="about:author" or Rel="author:blog" seems better to me.

Disclosure: not big on web semantics.

<comment><USER7> As the article says, it's not for authorship (rel="author" and a bunch of other options), but for connecting profiles. What's borderline narcissistic about that? Is keybase.io also "borderline narcissistic" since you can verify accounts on it, or Github because you can link to your homepage from your profile? (which they actually mark up with rel="me", but that's all rel=me does: make the existing links machine readable, and the bidirectional linking allows some level of verification)

<comment><USER12> Thanks for clarifying and pardon my half-assed reading, I get the idea now!

I see the benefit of authenticating personal profiles and protecting people against account hijacking and fake accounts.

With "borderline narcissistic" I was referring to the fact that personal profiles are a giant part of the web nowadays (which is sad on some level) and creating even a special rel value for it felt like submitting to the current state of affairs.

<comment><USER13> Personal profiles were always a big part of the web; in the 90s, it was all those sites with URLs with a tilde (e.g. [https://www-cs- faculty.stanford.edu/~knuth/](https://www-cs-faculty.stanford.edu/~knuth/)), and lots of pages on Geocities et all were also personal profiles.</comment></comment></comment></comment>