Millions of Tiny Databases [pdf] - <AUTHOR> https://assets.amazon.science/c4/11/de2606884b63bf4d95190a3c2390/millions-of-tiny-databases.pdf <comment><USER2> This is my paper (along with Tao and Fan). It's a great feeling to have this published and available, and I'm super proud of the team behind Physalia.

There's a lighter-weight introduction to the work here: [https://www.amazon.science/blog/amazon-ebs-addresses-the- cha...](https://www.amazon.science/blog/amazon-ebs-addresses-the-challenge-of- the-cap-theorem-at-scale) and for those attending NSDI, I'll be talking about Physalia in the "Deployment Experience" session on Wednesday.

<comment><USER3> Very cool. I haven't read the whole paper yet, but from a quick overview it seems somewhat similar to SLOG (which also deals with world-scale replication by trying to keep data closer to the nodes that use it):

\- [http://www.vldb.org/pvldb/vol12/p1747-ren.pdf](http://www.vldb.org/pvldb/vol12/p1747-ren.pdf)

\- [https://blog.acolyer.org/2019/09/04/slog/](https://blog.acolyer.org/2019/09/04/slog/)

Any thoughts on this comparison?

<comment><USER2> Very interesting, I hadn't seen SLOG before. It seems like there's a fairly similar core insight: placing data near where it's used can help with some system properties. They appear to be more latency-focused and we were (primarily) aiming at availability.

The other different part of Physalia is our focus (again, for availability) on placement for 'blast radius'. That means we try limit the number of cells than any one failure (software, infrastructure, etc) can touch. Geo-replicated systems can have similar concerns, but I haven't seen the same level of focus on it as a key design goal.

</comment></comment></comment><comment><USER4> Thought for sure this'd be a thinkpiece on Excel in the enterprise ...

Seriously, though, this whole paper uses an amazing amount of terminology - blast radius, colony, color, game day, split brain - and an awesome biological metaphor of the Portuguese man o'war.

Great read even if you don't care about fault tolerance, CAP theorem, or distributed balancing at AWS-scale.

One sample quote of the value of cheap heuristics over full-blown number- crunching:

> Globally optimizing the placement of Physalia volumes is not feasible for > two reasons, one is that it's a non-convex optimization problem across huge > numbers of variables, the other is that it needs to be done online because > volumes and cells come and go at a high rate in our production environment. > Figure 11 shows the results of using one very rough placement heuristic: a > sort of bubble sort which swaps nodes between two cells at random if doing > so would improve locality. In this simulation, we considered 20 candidates > per cell. Even with this simplistic and cheap approach to placement, > Physalia is able to offer significantly (up to 4x) reduced probability of > losing availability.

</comment><comment><USER5> Abstract at: [https://www.amazon.science/publications/millions-of-tiny- dat...](https://www.amazon.science/publications/millions-of-tiny-databases)

> _...Physalia is a transactional key-value store, optimized for use in large- > scale cloud control planes, which takes advantage of knowledge of > transaction patterns and infrastructure design to offer both high > availability and strong consistency to millions of clients. Physalia uses > its knowledge of data center topology to place data where it is most likely > to be available. Instead of being highly available for all keys to all > clients, Physalia focuses on being extremely available for only the keys it > knows each client needs, from the perspective of that client._

> _...We believe that the same patterns, and approach to design, are widely > applicable to distributed systems problems like control planes,configuration > management, and service discovery._

It'd be interesting to constrast this approach with Route53's or IAM's datastore which need to be globally-replicated with time-bounded eventually- consistent reads, and transactional but verifiable writes.

I hope AWS begins publishing about S3, now. One can look at the patents AWS engineers author to get a feel for some of the internals, but they are (intentionally?) hard to read.

For instance, patents filed by two of the many S3 founding-engineers: [https://patents.google.com/?inventor=James+Christopher+Soren...](https://patents.google.com/?inventor=James+Christopher+Sorenson%2c+III,Allan+H.+Vermeulen&oq=inventor:\(James+Christopher+Sorenson%2c+III\)+or+inventor:\(Allan+H.+Vermeulen\))

Also see:

[https://aws.amazon.com/builders-library/](https://aws.amazon.com/builders- library/)

[https://research.google/pubs/](https://research.google/pubs/)

<comment><USER2> It's not really about the design of S3, but if you're interested in some of the philosophy and thinking behind S3 you might enjoy "Beyond eleven nines: Lessons from Amazon S3 culture of durability" [https://www.youtube.com/watch?v=DzRyrvUF-C0](https://www.youtube.com/watch?v=DzRyrvUF-C0)

</comment></comment><comment><USER6> Tangentially related, BigQuery uses a similar usage-based approach to place and replicate data in a manner that's likely to be available for users:

[https://cloud.google.com/blog/products/data-analytics/how- bi...](https://cloud.google.com/blog/products/data-analytics/how-bigquery- zone-assignments-work)</comment>


Ask HN: How Did You Get Out of Tech and What Are You Doing Now? - <AUTHOR> After spending 20+ years in software and SW related management positions I'm am wondering how others have moved to a new (neighboring) industry and how they broke into their new role. What do you do in your new role and why has your background in Tech made you a great fit for whatever it is you do now? <comment><USER2> If you learn traditional management techniques and understand fully project management, a lot of time those skills transfer to a lot of industries, you giving up a big advantage in industry experience and will likely want to rapidly ramp that up for any industry you want to move to.

I did this, I regretted it, and went back to tech, but it did make me reevaluate why I wanted to leave, and focused on finding a job that limited those issues.

</comment><comment><USER3> What do you define as a neighboring industry?

What Color is Your Parachute has a lot to say for job seekers looking to move into a different industry and may be worth a read.</comment>


Tech/iOS Angel Investors - <AUTHOR>

I need to be in contact with someone, looking for individuals with investing experience in these fields. Any suggestions or direction? Thanks. <comment><USER2> Crunchbase.com is a great resource for this type of research. Try searching for companies in the categories you mention and see which investors are in those deals.

<comment><AUTHOR> I've browsed around a bit there already, it's a bit tough to get peoples direct contact information though. Rarely ever can you get an email, usually a Twitter will help, but it's still not a surefire method. Thank you though, I'll be digging through CB more.

</comment></comment><comment><USER3> Try using AngelList, filtered by market: <http://angel.co/mobile></comment>


Lowest Price Comcast Internet service is $74.95 - <AUTHOR> https://www.xfinity.com/learn/offers/details?offerId=9626110012 <comment><USER2> When I view the link, the lowest price is $29.95/mo for internet-only 10-Mbs</comment>


Coffee can protect the brain, and it has to do with the kind of roast you drink - <AUTHOR> https://boingboing.net/2018/11/06/new-study-discovers-why-coffee.html <comment><USER2> Blogspam of

[https://www.sciencedaily.com/releases/2018/11/181105160825.h...](https://www.sciencedaily.com/releases/2018/11/181105160825.htm)

</comment><comment><USER3> TL;DR, drinking coffee may reduce the risk of Alzheimer's and Parkinson's disease. It doesn't matter if it's dark or light roasted.</comment>


The warning signs of defending the status quo - <AUTHOR> http://sethgodin.typepad.com/seths_blog/2011/08/the-warning-signs-of-defending-the-status-quo.html

<comment><AUTHOR> "Embrace sunk costs" had got to be my favourite (albeit painfully common)</comment>


Exapunks - <AUTHOR> http://www.zachtronics.com/exapunks/ <comment> fake-name I love the idea of almost every ZachTronics game.

My issue with them is that they get close enough to actual programming that I invariably quit, and go actually work on a hobby programming project, rather then play. As a result, I generally buy the game, play the first few levels, and then go make some commits on a programming puzzle that has an actual end- result that I benefit from.

I really wish the games used an actual language or assembly opcode set. If I could play TIS-100 _and_ practice ARM or AVR assembly, _that_ would be amazing.

<comment><USER3> You just articulated what has been bothering me about these games! I couldn't put a finger on it. I tried them out, and found them to be incredibly well made, and yet couldn't get myself to play them. I felt like I was seriously wasting time that I could spend doing actual programming, so I stopped. I think these games would do really well targeting an audience that is new to programming.

<comment><USER4> Life is too short to feel like you always need to be productive. Believe me, I know the feeling and I find it frustrating because it impedes my ability to relax.

Time spent enjoying yourself and learning things (even if they aren't directly applicable to work) is not time wasted. Improving your problem solving skills is always good and it often feels good, as long as you keep the level of time commitment within a healthy range.

<comment><USER5> The way I read grandparent is that the game feels so much like real work that you might as well get something out of it. I have the same problem with a lot of puzzle games: I already solve puzzles all day every day, might as well go work on those.

<comment><USER6> I have the opposite feeling - solving "puzzles" for real-life work is tedious and boring (and the end result is _just_ money), while Zachtronics games let me exercise the same mental muscles with much less frustration.

EDIT: Urm, sorry. Zachtronics games let me _actually_ exercise my brain, just like side projects. Real on-the-job programming these days is mostly gluing, which has nothing to do with technology, and is essentially navigating _bureaucracy_ created by other people. You have state A, you know state B you want to be in, you have to discover the appropriate forms to fill in and stamps to collect on the way, and often perform kafkaesque dance around public keys and OAuth flows and related concepts. It's getting about as fun as tax forms.

<comment><USER7> > Real on-the-job programming these days is mostly gluing

My God, are we working the same job? Have you ever found a job that was not just gluing things together?

<comment><USER6> Not yet. I hear that these jobs exist, but I seem to be consistently unable to find them.

<comment><USER8> Companies with the interesting jobs are not as profitable as those with glue- things-together jobs, and aren't hiring. In fact, I hear they're looking to get out of that business entirely. It'll soon be glue, all the way down, with university partnerships so kids can pay tuition to invent new stuff before they graduate to glue land.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I beat this last night. It's easier than TIS-100 (no 9 instruction limits!) and Shenzhen I/O, following the general polishing trend of Zachtronics games becoming more _beatable_. SpaceChem (their first puzzle game) was stupidly difficult [1] [2].

My personal ranking: Opus Magnum > Shenzhen I/O > Exapunks > Infinifactory > TIS-100 > Spacechem.

[1]: [https://www.gamasutra.com/view/feature/172250/Postmortem_Zac...](https://www.gamasutra.com/view/feature/172250/Postmortem_Zachtronics_Industries_SpaceChem.php?print=1) [2]: [https://www.gamasutra.com/db_area/images/feature/172250/comp...](https://www.gamasutra.com/db_area/images/feature/172250/completion_thumb.jpg)

<comment><USER10> What does "stupidly difficult" even mean? Does it just mean you did not manage to solve all the puzzles (yet)?

Honestly, I find that Spacechem is one of the very best game ever. I am really happy that Zachtrorics continues trying making better similar games, as it generally does make great games (I immediately purchase all their games - <USER2> only missed Opus Magnum as I was busy becoming a father when it launched), but so far, I was not able to feel the joy I felt when my Spacechem reactor finally worked, watching all the chucks fitting together (I know, I really need to try Opus Magnum which is more similar to Spacechem than other games in the serie - but my impression is that the UI looks much more busy, and simplicity is one of Spacechem strong point, which makes it enjoyable on a tablet for example). I'll admit that Spacechem had the advantage to be the first of this kind I tried, so it could be one of the reasons I loved it so much.

Also I am a bit sad that making games easier to beat is even a goal at all - it's great to try to make them easier to play / to start for non-programmers and beginners. But I find that having a few levels that are really challenging makes a game strictly better. I know that many people think "I paid for the whole game, I need to be able to finish it all reasonably quickly", but personally, I think it could just mean that the game was simply not challenging enough.

For what it is worth, I did beat Spacechem (whatever it means, I have the "beat the game" achievement on Steam), but I am stuck on TIS-100 and Shenzhen I/O (I spent much less time on this one though). Exapunks does feel easier than both for now (the programming language is slightly "higher level", so maybe it feels more familiar).

<comment><USER11> "stupidly difficult" to me means Nethack. You should try it if you're into rpgs :)

<comment><USER10> I like Nethack :) Btw, that reminds me of Dwarf Fortress and the whole "losing is fun" idea, of which I am a great fan as well, and do not find anything stupid about it ;)

</comment></comment></comment></comment><comment><USER12> I would highly recommend any Zachtronics game to anyone who enjoys programming as a hobby.

Exapunks this time around was lovely, along the same vein as TIS-100 and Shenzen I/O, less like Spacechem/Opus Magnum/Infinifactory (which I would still highly recommend.) Going back further, I'll add [http://www.zachtronics.com/ruckingenur- ii/](http://www.zachtronics.com/ruckingenur-ii/) and [http://www.zachtronics.com/kohctpyktop-engineer-of-the- peopl...](http://www.zachtronics.com/kohctpyktop-engineer-of-the-people/) as notable Zachtronics games to enjoy.

Write code for swarm-like processes to hack networks and perform tasks before exiting the network without a trace.

</comment><comment><USER13> God bless Zachtronics. One of the very few who scratch that special itch with their games, and man are they good at it.

<comment><USER14> You are so right. These guys make the games I wish I could make if I were a game programmer/designer. Top notch. The other small game designer who I can recommend is this guy: [http://www.crypticcomet.com](http://www.crypticcomet.com) .Too bad it seems he does not make games anymore.

<comment><USER15> Which game are you recommending? Also what do you like about it?

<comment><USER14> He has only 3 or 4 games. I recommend Solium Infernum [http://www.crypticcomet.com/games/SI/Solium_Infernum.html](http://www.crypticcomet.com/games/SI/Solium_Infernum.html), it is a TBS game, it is actually a computer table game, if such thing makes sense. If you have time, you can read here an epic AAR series [https://www.rockpapershotgun.com/2012/01/03/solium- infernum-...](https://www.rockpapershotgun.com/2012/01/03/solium-infernum-the- complete-battle-for-hell/)

</comment></comment></comment></comment><comment><USER16> >The year is 1997. You used to be a hacker, but now you have the phage. You made a deal: one hack, one dose. There's nothing left to lose… except your life.

Is this not the plot of Neuromancer?

<comment><USER17> He'd made the classic mistake, the one he'd sworn he'd never make. He stole from his employers. He kept something for himself and tried to move it through a fence in Amsterdam. He still wasn't sure how he'd been discovered, not that it mattered now. He'd expected to die, then, but they only smiled. If course he was welcome, they told him, welcome to the money. And he was going to need it. Because -- still smiling -- they were going to make sure he never worked again. They damaged his nervous system with a wartime Russian mycotoxin. Strapped to a bed in a Memphis hotel, his talent burning or micron by micron, he hallucinated for thirty hours. The damage was minute, subtle and utterly effective. For Case, who'd loved for the bodiless exultation of cyberspace, it was the Fall. In the bars he'd frequented as a cowboy hotshot, the elite stance involved a certain relaxed contempt for the flesh. The body was meat. Case fell into a prison of his own flesh.

<comment><USER18> Early Gibson vs late Gibson begs the question -- What's more punk? Unfocused but incandescent adolescent rage or technically executed vicious critique?

<comment><USER19> That sounds like comparing Sex Pistols to Porcupine Tree.

</comment></comment></comment></comment><comment><USER20> I've decided that any game zachtronics puts out is a day 1 purchase for me. Only game I've pre-ordered in years.

</comment><comment><USER21> 1997, yo. Massive corporations rule everything, people are getting wet-wired into cyberspace, pollution and overpopulation and climate change have thrown everyone but the super-wealthy into a desperate struggle for survival... and Hanson's "MMMbop" is playing on the radio.

Just the concept made me smile.

</comment><comment><USER22> Very cool. A friend put me on to TIS-100 when I was curious to play around with assembly, and it was a very helpful (and fun) introduction.

<comment><USER23> TIS-100 is also available on iOS, but unfortunately iPad only.

<comment><USER24> > unfortunately iPad only.

Mostly for practical reasons. I can't imagine how the UI would work on a phone -- either the text would be microscopic, or you'd have to scroll around constantly.

<comment><USER25> It's of course far easier to armchair design, but I could imagine it working well enough?

Each individual cell is ~12 lines of very short line lengths, yeah? You can easily fit a single cell on-screen with a keyboard while editing (or potentially while running), and then you could imagine a more abstract representation of a whole running system if you choose to zoom out while the system is running.

A few years ago I built a prototype of an iOS editor for Core War ([https://en.wikipedia.org/wiki/Core_War](https://en.wikipedia.org/wiki/Core_War)), and it felt super-natural to have a custom keyboard whose keycaps were individual opcodes rather than ASCII characters.

</comment></comment></comment></comment><comment><USER26> steam store link:

[https://store.steampowered.com/app/716490/EXAPUNKS/](https://store.steampowered.com/app/716490/EXAPUNKS/)

<comment><USER27> I hope it appears on gog.com before I break down and buy it from Steam.

<comment><USER10> Reach out to their user support, they might be able to help you with that.

<comment><USER28> It likely won't come to GOG until it comes out of early access on Steam.

</comment></comment></comment></comment><comment><USER29> I love Zachtronics games, but they have really ridiculous performance requirements. My MacBook Pro heats up like crazy playing them.

<comment><USER30> Same, I think it is because it was built in Unity

<comment><USER31> Judging from the installed game files it seems to based on SDL2 and not Unity3D.

<comment><USER32> I asked Zach about it once (in email), he said:

> We do all of our development in C# using a custom low-level "game engine". > At some point we need to do a writeup about it, it's kind of interesting > tech.

But I think they have at least one Unity game... or so I thought.

<comment><USER31> Would also love to read a detailed writeup about their custom engine.

Also found this quote[1] from an AmA on reddit:

> We've used C# since SpaceChem. I can't imagine using anything else, > honestly. Infinifactory and TIS-100 use Unity, while everything else uses > some kind of lightweight SDL-backed C# engine.

> SHENZHEN I/O and Opus Magnum are both using a very minimalist C# "engine" > inspired by some of Casey Muratori's ideas on game engines and game > programming. It uses DirectX or OpenGL for graphics, and SDL for everything > else. It's basically just one giant Update() loop, and is the greatest game > engine I've ever had the pleasure to work with. Despite this, I would not > advise novice game programmers to do the same.

[1] - [https://www.reddit.com/r/IAmA/comments/78wv2h/im_zach_barth_...](https://www.reddit.com/r/IAmA/comments/78wv2h/im_zach_barth_the_creative_director_of_the_game/doxgfx5/)

</comment></comment></comment></comment></comment><comment><USER33> This looks like a lot of fun. I just started playing gladiabots ([https://gladiabots.com/](https://gladiabots.com/)) which will probably scratch that itch for a while. Exapunks seems to have a bit more of a learning curve and story from what I can tell from the trailer.

<comment><USER34> This is why I'm obsessed with HN. Thank you so much for linking this, it's exactly what I've been hoping someone would make!

</comment></comment><comment><USER35> Looks cool, but why would they not allow me to fullscreen the YouTube video?

I see that a lot is it the default from YouTube?

<comment><USER36> I think it's a setting in the YT video

</comment></comment><comment><USER37> Exapunks is 'Early Access' I'm waiting for the full release to play.

<comment><USER38> That's certainly important to note. Though in this case the game is done already and basically "release" quality. I think they did the same thing for TIS-100 as well; Early Access for a bit even though the game is done and 99% bug-free.

<comment><USER39> They've been releasing games this way for a while. Early Access with most of the pieces in place, with some polish on graphics, balance, and music for a few months before it's all finalized. Shenzhen I/O and Opus Magnum were done that way for sure.

</comment></comment></comment><comment><USER40> Looks like there's a Javascript-based puzzle API as well: [http://www.zachtronics.com/virtualnetwork](http://www.zachtronics.com/virtualnetwork)

</comment><comment><USER41> i wish the little CPUs weren't so impoverished.

<comment><USER42> One (general-purpose) register! I guess we should think of it as a distributed systems simulator, not a CPU simulator.

<comment><USER38> The 6502 only had one (general-purpose) register and it did just fine.

<comment><USER43> You can almost treat the 6502 as if it had 256 registers.

Imagine a 6502 with no memory.

<comment><USER44> Some of the lower attiny micro like attiny13 have only 32 registers and no ram !

</comment></comment></comment></comment></comment><comment><USER45> It'd be kind of nice to have opcodes like some sort of Forth language just for variety and fun.

</comment><comment><USER46> Aw I thought it was going to be an actual hacking game, more like uplink or hacknet. I really want a new game that's as good as uplink...

<comment><USER47> Uplink was fun but I'd say this game has far more "hacking" in it. You have to do things like:

        - crack passcodes
        - manipulate tv station tapes
        - soft-mod console disk firmware
        - dial-up various hosts using a programmable modem interface

etc. Obviously it's all in a toy world but I'd say it's much more like what I'd imagine a hacking game should be than uplink.

</comment></comment><comment><USER48> Exapunks is to programming as piano tiles the mobile game is to playing a real piano.</comment>


The Fallacy of Chesterton's Fence (2014) - <AUTHOR> http://abovethelaw.com/2014/01/the-fallacy-of-chestertons-fence/ <comment><USER2> Chesterton's Fence is always worth keeping in mind when maintaining code too.

Sometimes you'll come across some crazy nested conditional that seems to be checking for cases that can't even happen. It's tempting to say "this is nuts, I'll just rewrite this whole overgrown method into two lines!". Sometimes that's even a good idea. But some programmer before you thought that crazy code was worth writing, and you _might_ want to check `git blame` and see if you can figure out why.

Example: A while back I ran across a pretty rare race condition in some pretty gnarly distributed code. But there was an obvious fix, so I opened up the file where the fix should be made and found...

...someone else already had made that fix. Except it was in a conditional block which boiled down to "if (false) {...}". The fix would never run! No matter, it would be the work of 10 seconds for me to fix the conditional and push this code to production.

But first, I checked the logs. One of my colleagues had written this code (so that the fix would run) about two years ago. And then 20 minutes later he had committed a hotfix to _stop_ the code running. Reading between the lines, the "obvious fix" clearly broke something less obvious and even more important somewhere else in the gnarly distributed code. That "broken" conditional wasn't a bug, it was a fence, and it had been erected for a good reason. And the race condition I found was _really_ rare, and the whole gnarly distributed code is slated to be refactored next year, so...I left it.

(Now, the lack of comments explaining all that in the code base, and the fact the broken code was still in the code base just locked behind an always false conditional...those were issues. Then again, stuff like that happens in real code bases, even if they shouldn't. If you expect live to be completely tidy and well behaved, reality is going to be really confusing sometimes.)

</comment><comment><USER3> "Put very simply: don't destroy what you don't understand."

The Chesterton's Fence story has always bothered me. The moral puts all blame on the person challenging the fence for not coming to the same conclusions as the builder.

For the person building the fence, it's easy to assume that the purpose of your work is self-evident, but the truth is that it is hard for anyone else to put together the facts as you saw them, and it's harder still to reason the same way you did. So just thinking really hard about the reasons for the fence's existence will not necessarily lead to a correct -- or even desirable -- result. The story's moral may as well have been: "What I did is more important than what you want to do." Or: "Fear change."

I'd rather see a dual lesson drawn from the same story: "If what you are doing is important, it's just as important to make it clear _why_ it is important."

This particularly applies in the context of software development, when a little effort to make the rationale of some code more clear can pay off over the dozens to hundreds of times the code must be read and rejustified.

<comment><USER4> It doesn't put any blame on anyone. It encourages us to stop and think in such a way that there is no blame for anyone. (Typically, the people who built the fence are not here any more, so we can't make any more requirements on them, only on ourselves.)

</comment></comment><comment><USER5> Ahh, yes:

* the machine that depends on the data was brought into service before you were born

* the programmer who wrote the original software in VB died of cancer--10 years ago

* the first machine operator who spec'd out the software retired--after a long and full career

But you, having been here 6 whole months, decide that it's time to move this folder because it's stupid that it's not with all of the other similar files?

Thus: Steve's Rule of Enterprise Systems: if you yourself don't fully understand why it is the way it is, don't touch it.

<comment><USER6> Steve's Corollary of Enterprise Systems: Don't touch anything ever.

</comment></comment><comment><USER7> This article presents a thoughtful topic worth considering...

...too bad that it seems wrapped around (imho) making a case for bigotry against same-sex marriage (and seemingly presenting it from a Mormon perspective).

Do I agree with the idea that one should "look before you leap"? Certainly; maybe the old process had a purpose and should be kept.

But not when it is to the detriment or isolation of a particular class or group of people (especially on seemingly pure quasi-religious grounds).

<comment><USER8> I've always had a problem with Chesterton's Fence precisely because it is a sort of status quo bias that can be (and is) used as an argument in favor of backwards social norms and traditions. It's one thing to say "Don't touch that piece of code you don't understand." It's totally different to apply that line of reasoning to norms and laws that actively hurt people. Sometimes there's a reason for the way things are and the reason is just plain stupid and cruel.

<comment><USER9> The fact that you think the reasoning behind traditional marriage is "just plain stupid and cruel" is probably the best example of Chesterton's Gate I've yet seen. It indicates that (a) not only do you not understand the reasoning, but (b) our society has changed so much, and so subtly, that it's almost impossible to get anyone to understand that reasoning. Needless to say, I don't think this bodes well for us over the long-term.

(Ducking all the incoming downvotes - I'm keenly aware of how unpopular this position is, and how bigoted it seems to most folks these days - which sort of proves my point.)

<comment><USER10> You're right, society has changed quite a bit.

The other possibility that you seem to implicitly dismiss is that the original reasoning is understood perfectly well, has been debated to death, and has been found to no longer align with what the majority of people want out of society.

Chesterton's Gate argues against removing the fence out of haste and ignorance, but not against removing it after intense debate and careful consideration.

<comment><USER9> And yet somehow, within a decade, we've redefined (almost out of existence) the single most fundamental human institution, an institution which has lasted for thousands of years and which virtually every great thinker prior to the last 15 years has understood as the prerequisite and foundation for any civilized society. This radical redefinition of marriage - and in its wake, of what it means to be human - couldn't have happened without incessant propagandizing and cheerleading from every element inside our popular and our news media. And yet how often did you hear this media allow through a coherent statement of the views opposing SSM, as expressed by, say, Ryan Anderson? How often was debate shut down _a priori_ , as mere bigotry?

Careful reconsideration? I don't see how that played any part of this recent shift.

</comment></comment></comment></comment></comment><comment><USER11> [http://webcache.googleusercontent.com/search?q=cache:Xgy2VV9...](http://webcache.googleusercontent.com/search?q=cache:Xgy2VV99lwYJ:ldsmag.com/the- parable-of-chestertons-fence/&num=1&hl=en&gl=us&strip=0&vwsrc=0)

<comment><USER12> This is not the same article linked in the post. You linked to

[http://ldsmag.com/the-parable-of-chestertons-fence/](http://ldsmag.com/the- parable-of-chestertons-fence/)

But the primary link is to

[http://abovethelaw.com/2014/01/the-fallacy-of-chestertons- fe...](http://abovethelaw.com/2014/01/the-fallacy-of-chestertons-fence/)

Neither currently seem to require a cache link.

<comment><USER11> At the time, the primary link was ldsmag.com, and did not work.

</comment></comment></comment><comment><USER13> I'm not sure why the article refers to Chesterton's fence as a fallacy when it basically agrees with the principle that you shouldn't blindly push reforms without understanding the reasoning behind the existing state of things.

That's not to say I disagree with the content of the article. I think it presents a good approach to promoting improvements to processes, the key takeaways being:

1) Observe the process and try to understand all aspects of it (not just that which affects you).

2) If you still feel that it can be improved, come up with a plan to improve and implement the process in a limited scope over which you have control.

3) If successful, break down why it was successful, and evaluate whether it is suitable to be expanded to the general case.

4) Find the owner of the existing process to discuss it with them, and present your proposed improvements.

I think there's an argument to be made that you should talk to the owner of the process before you start coming up with improvements, which could save some time on understanding it. But I suppose that depends on the situation.

<comment><USER14> It's referring to the "I don't see the use of it, let's remove it" part as a fallacy, and agreeing with the "no, come back after you see the use of it" part.</comment></comment>


BBC News launches 'dark web' Tor mirror - <AUTHOR> https://www.bbc.com/news/technology-50150981 <comment> m-p-3 Is it really a mirror though? It looks more like they simply added a .onion domain.</comment>


uSpread – The Anonymous Location-Based Social Network - <AUTHOR> http://betalist.com/startups/uspread

<comment><USER2> Looks interesting, but a twisted mind might interpret the name differently than you might like</comment>


Any ideas to prevent cross-site hacks that use IE's MHTML redirection bug? - <AUTHOR>

<comment><AUTHOR> I've just been tightening up our upcoming microPledge website -- <http://micropledge.com> \-- to prevent cross-site request forgery (CSRF). I added a random SHA as a form key to each form.

But! Then I discovered this lovely IE security hole. An attacker can use cross-domain JavaScript and an mhtml: redirect to grab the page, get the form key, and then do the POST. Brilliant! Anyone have any experience in getting around this?

(To test the vulnerability in your browser, go to <http://secunia.com/Internet_Explorer_Arbitrary_Content_Disclosure_Vulnerability_Test/> \-- my copy of IE6 was vulnerable, IE7 wasn't, and Fx doesn't support mhtml so it's not.)

<comment><USER2> Easy. Don't use IE6.

Really.. Stuff like this isn't about 'not supporting IE6'. It's about the time spent not being worth it. :)

<comment><USER3> How are you going to keep your users from using IE6?</comment></comment></comment>


ChromiumOS is getting a clang compiled Linux kernel - <AUTHOR> https://lkml.org/lkml/2017/11/22/943 <comment><AUTHOR> See end of the mail for more info:

> In case you wonder if kernels built with clang are actually used on

> real systems, the answer is 'yes': Google Pixel 2 phones ship with

> a v4.4 kernel built with clang, for several Chromebooks (both x86

> and arm64) clang built kernels (also v4.4) are currently distributed

> through the 'beta' channel and will be deployed to most users of these > devices in December.</comment>


India Up for Sale as Modi Offers National Icons to Plug Deficit - <AUTHOR> https://www.bloomberg.com/news/articles/2020-03-05/india-up-for-sale-as-modi-offers-national-icons-to-plug-deficit <comment><USER2> The words "Air India" and "national icon" don't quite go well together. Air India has been an absolute embarrassment for years both in terms of its finances and its quality as an airline.</comment>


Tenant Turner (YC S15) helps landlords manage their rentals - <AUTHOR> http://tenantturner.com/

<comment><USER2> Hey there HN, I'm Chris from Tenant Turner. We're excited to be launching today and I'm happy to answer any questions you may have about what we do.

</comment><comment><USER3> The Show HN prefix should be used only by the founder of the startup. (EDIT: Was removed)

Notably, the "About Us" page doesn't say _who the founders are_.

<comment><USER2> Good point! We, for some reason, removed that from about us page and put it under press ([http://tenantturner.com/press/](http://tenantturner.com/press/)). Perhaps we should reverse that.

</comment></comment><comment><USER4> Solving #firstworldproblems … what's next?</comment>


Discord is not an acceptable choice for free software projects - <AUTHOR> https://sneak.berlin/20200220/discord-is-not-an-acceptable-choice-for-free-software-projects/ <comment><USER2> I help maintain a pretty popular open source game mod. One of the features the mod provides server owners is anticheat, and one of the consequences of that is needing cheats in order to make sure the anticheat system works, to test exploits, and to make the game safer. Discord permanently banned the server and my account because we were breaking terms of service violations, even though we had blessing from the game developer themselves.

They later reversed the ban on my account, but kept the server deleted because they maintained that we advocated cheating. Again, we develop anti-cheat moderation software.

In my last contact with them, I was told that that it was up to us to moderate the server better too. If any user posted cheating related material, they would of course ban the server for terms of service violations anyway (this essentially inverts the typical idea of "safe harbor" protection that traditional websites have).

The problem with not using Discord is that they successfully captured the gamer and game market. As a game related tool, all of our users are on Discord. It's a shame that one company was able to do this.

<comment><USER3> The company was only really able to do this because it was a significantly better platform than what was there before. It was amazing to be able to open Discord for the first time and everything just worked! After struggling with voice chat in Skype, ventrilo, teamspeak, and mumble for years prior, that was a huge breath of fresh air. And the easy way it handled invites and text chat was the cherry on top.

It's easy to hate on Discord's practices but it's worth remembering that they're on top because their project is legitimately good.

<comment><USER4> You struggle with audio settings in discord just like you do in Skype, ventrilo, and teamspeak. Most of the struggles with audio are not with individual programs, but rather your audio hardware, the OS, and its settings. (Windows updates love to screw those up.)

When discord released it didn't even have a Ctrl+f function for a long time. It still doesn't have chat logs on the user end, the permissions system is bad and audio quality is mediocre. On top of all of that, because they don't allow self-hosting it means that discord ultimately controls your conversations.

It caught on because it went viral. The service they offer is good, but the lack of privacy and no self-hosting make it disappointing.

<comment><USER5> And their stability is questionable. While it's not that bad, I experienced their server crash more than once. Never had server crash on my own hosted ventrillo server, not once in a 5 years.

<comment><USER4> I use Discord every day. I would say that there are issues about once a week or few weeks where text messages are delayed by 10-30 seconds. Some of them don't arrive either. Using it for text communication at those times is challenging. I'm unsure what happens to voice chat at those times, but the text part is infuriating.

</comment></comment></comment></comment></comment><comment><USER6> > You should not use services that can rat on you and your friends to the > cops.

>Regardless of whether or not you are the kind of person who mocks or ridicules people—you should be able to use your communications tools to mock and ridicule people, if you so wish. These are normal, acceptable things to do in society. Fuck censorship.

I would guess that for the vast majority of Free Software projects, not having illegal topics discussed on the chat and not having people who mock and ridicule people are features not bugs.

<comment><USER7> Discord is a bad decision for security reasons, for privacy reasons, reliability, and for ethical reasons.

it's not just illegal things that are kicked off. If you violate a third party company's terms of service, say making bots for Team Fortress 2 (a valve video game) then you'll be banned suddenly as well. And Discord is no stranger to banning things that are not illegal but just controversial like, [https://www.reddit.com/r/guns/comments/cvv5da/meta_rguns_dis...](https://www.reddit.com/r/guns/comments/cvv5da/meta_rguns_discord_banned/)

In terms of privacy: they send a tracking request for every single thing you do in their client. Clicked on someone's profile, clicked on a channel, clicked on a server, etc. The URL was named /track before but they renamed it to "/events" recently (but it's still a POST with no response).

Their desktop client is literally a remote administration toolkit, it has full access to FS (electron app) and it loads every script from their servers. They can just add something like require('fs').readFileSync(process.env.HOME + '/.ssh/id_rsa').toString() and send this to their servers, and you won't even notice that (since it doesn't require an update on client because the client is just a browser with full permissions that loads obfuscated code from their servers every time you launch it).

<comment><USER8> Most programs can download new code and open whatever files they want as long as their process has the permissions. You can certainly argue that that shouldn't be the case, but calling Discord a RAT because of it is pretty silly.

(Not defending it on the other counts, though. If I wanted a platform for anything controversial or privacy-sensitive, I wouldn't trust Discord or any other centralized, unencrypted service.)

<comment><USER9> >Most programs can download new code and open whatever files they want as long as their process has the permissions. You can certainly argue that that shouldn't be the case, but calling Discord a RAT because of it is pretty silly.

I think it's reasonable to call it a RAT because it executes arbitrary remote code AND has those permissions.

<comment><USER10> Google Chrome and Firefox (on windows) do the same, via auto update mechanism. Would you call it a RAT?

<comment><USER11> I feel as if there is a meaningful distinction to be made between a program that _occasionally_ downloads binary patches to itself (and will run fine without it), and a program that gratuitously downloads scripts _every time_ it is run, runs them directly from ram so that they can't be audited, and refuses to run if it is not allowed to do this.

<comment><USER12> So if you're running Chrome/Firefox dev-channel _then_ they're a RAT? Or is twice a week not enough to trigger your threshold? What about the canaries that are updated daily? What about betas that are updated every week?

I'm not sure how you come up with a good distinction.

<comment><USER9> >So if you're running Chrome/Firefox dev-channel then they're a RAT?

No, because it's opt-in and it's explicitly needed for the purposes of a dev/nightly build. This is as opposed to a voip client which needs unrestricted access because... they want to be able to run A/B tests on uninformed subjects?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> This last came up for OSS and Slack (e.g., "Please don't use Slack for FOSS")[1][2].

I took some time to reflect on why OSS wasn't the default for these messaging tools, rather than proprietary alternatives — and what it would take to make more users use OSS alternatives:

> As Slack has continued to grow, open source developers have had lengthy > debates about using it rather than IRC. For some, the fact that Slack is > closed source and a walled garden makes it unsuitable when building projects > that are open.

> I'll take a different approach: in the age of software, why is open software > not more competitive for many products used by non-engineers and what can be > done?

What Open Source Can Learn From Slack

[https://www.nemil.com/musings/oss-and- slack.html](https://www.nemil.com/musings/oss-and-slack.html)

\</comment><comment>-

[1] [https://news.ycombinator.com/item?id=10486541](https://news.ycombinator.com/item?id=10486541)

[2] [https://news.ycombinator.com/item?id=11013136](https://news.ycombinator.com/item?id=11013136)

<comment><USER14> There are other choices besides Slack and IRC.

Setting up Mattermost on a VPS isn't hard.

[https://mattermost.org/licensing/](https://mattermost.org/licensing/)

<comment><USER15> Also not free, has banking ramifications, etc.

<comment><USER16> TFA mentions that Mattermost's source is AGPL and the binaries are MIT. It's absolutely free software.

It's also $0 software, in that it being free software and open source, you can simply and legally patch out their license checks and recompile, if you so wish.

<comment><USER15> I was referring to the VPS hosting, not the software.

Ease of hosting is one of the very biggest advantages to something like Slack or Discord.

</comment></comment></comment></comment></comment><comment><USER17> Not your project, not your choice.

"Free" refers to the software license of the source code. That is it.

The maintainers of a free software project don't even have to accept contributions outside of their organization or club.

Private companies that use all kinds of proprietary communication tools regularly contribute to free software. Are all of Red Hat's internal conversations about Fedora guaranteed to make it into the public?

People are also perfectly capable of having private conversations about contributions to free software projects. These conversations don't ever have to be made public. Again, only the code license is what makes a piece of software free.

So if you don't like a project's method of communication, my advice would be to not contribute to it. It's the project's own risk of deterring potential contributors, not yours.

I find it hilarious that someone would find themselves feeling entitled enough to tell a bunch of unpaid open source developers how to communicate with one another as if that someone were their boss at a company. The only place where I'm told what communication tools to use is at work, where I'm paid to comply.

<comment><USER16> I'm not telling anyone to do anything.

I'm telling people what they should not do: that is, don't discriminate against people who insist on privacy.

Choosing to use Discord does that, so people who don't want to discriminate should not choose to use Discord.

I'm also offering them alternatives that don't discriminate against those people, so that they can make better choices if they decide that they don't want to be the kinds of projects that discriminate against segments of their userbase.

<comment><USER18> I think if you humbly said you'd prefer people to not use Discord you'd not get this backlash. But you're making a demand - it's rude and will instantly turn people against you before they really consider your arguments.

<comment><USER19> This is literally tone policing, though. Knock it off.

<comment><USER18> The argument against tone policing in a social justice sense is that people who are being wronged by society are allowed to be angry.

This person isn't being wronged. They just don't like the software other people chose to use in their projects which have nothing to do with the author of the blog post!

If someone tells you they're suffering racism you should listen no matter how it sounds to you. If someone tells you they don't like that you're using Slack and that you should not use it, you're right to tell them to sod off until they can be polite.

</comment></comment></comment></comment></comment><comment><USER20> This particular paragraph is strangely under-informed in an otherwise-good article.

""" Many people in the free software movement find censorship in general to be abhorrent. (That's one very good reason, for example, why emails you receive that might be spam go into a special folder, instead of being silently deleted without you having a option to choose to see them if you wish. Your email server could just delete them! The fact that it doesn't was a deliberate design choice to avoid censorship.) """

Lots of people's email servers do, in fact, silently delete quite a bit of email, because the signal-noise ratio in the world of email spam is so bad it swamped the attention budget of users (and in some cases the storage budget of service providers) ages ago, even with a spam folder attached.

[https://en.wikipedia.org/wiki/Backscatter_(email)](https://en.wikipedia.org/wiki/Backscatter_\(email\))

[https://answers.microsoft.com/en- us/outlook_com/forum/all/ho...](https://answers.microsoft.com/en- us/outlook_com/forum/all/hotmail-silently-dropping-emails-from-work- domain/5c8d927c-533c-4c2a-8a61-28c4ce0cf600)

[https://blog.paranoidpenguin.net/2015/01/outlook-com-is- sile...](https://blog.paranoidpenguin.net/2015/01/outlook-com-is-silently- discarding-email-messages/)

[http://www.enterprisenetworkingplanet.com/netsp/article.php/...](http://www.enterprisenetworkingplanet.com/netsp/article.php/3511691/Spam- Fighting-To-Bounce-or-Not-to-Bounce.htm)

<comment><USER21> Yeah I don't understand that argument -- how could silently deleting emails enable censorship? I guess the email server could censor emails by silently deleting them? If so the fact that it's not in the protocol certainly wouldn't stop the censor...

<comment><USER22> If there's no way for people to access those emails (as they were silently deleted), it's basically censorship, or am I wrong?

<comment><USER16> Correct. Censorship is a tool, it is not inherently good or bad.

You want your email server to censor all entirely-obviously-over-the-top spam messages, for example (e.g. SA score >20). Most people want Facebook and Discord et al to censor spam postings.

However, when censorship veers from basic utility into editorializing (e.g. Facebook and Instagram's algorithmic prioritization/deprioritization in user feeds, Discord banning the legal and regulation-compliant /r/guns subreddit's Discord, or Facebook banning posts with male nipples, or Youtube banning instructional/educational videos about computer security, or Apple and the Taiwanese flag, or Gmail spam-foldering emails from smaller email providers not part of the deliverability cartel, or a million other examples), then it becomes a social issue and a potential problem that we need to address.

Email that is not 100% not-a-false-positive should never be silently trashed.

</comment></comment></comment></comment><comment><USER23> So there was a software project that I wanted to ask some questions about on their IRC.

So I clicked a link on their GitHub page for some online IRC client.

I had a conversation it was great. Except for the part where I wanted to paste some code and it didn't format. And then I was recommended to use pastebin and paste a link.

Then I went away for a bit. Came back later and my computer had rebooted while in standby. (It's an old laptop and is a bit flaky with resume from standby)

I returned and click the link for the IRC chat. And I couldn't see the previous messages.

And they had a link to a log but it wasn't working.

And apparently the server doesn't log by default.

Look, no offence to IRC. But this is some crazy bullshit.

Like Discord, Slack, Gitter, Teams. Whatever. Isn't going have this issue.

At the end of the day people want to communicate and get their stuff done.

For a free software project, sure, using opensource tools is a great idea.

But sometimes faffing around with none core things just wastes everyone's time. Especially with they could instead be working on features and bug fixes.

<comment><USER24> IRC is just a relay. it's not storage and never will be.

<comment><USER25> A IRC server can log. I have once programmed a IRC server to do this for a predefined set of channels, and the MOTD mentions where to find the logs. (This way, everyone is aware of the logs.) Whether or not it logs has nothing to do with the protocol; it can be a feature of the implementation.

<comment><USER26> and most channels have a valid and longstanding rule against public logs.

because if you were raised as i was in the internet of the mid-90s, logs and real names are _weapons_ , and we don't do that to our friends.

<comment><USER27> Anyone reading can "log" the messages. If anything, a server that always logs just forces you to understand that your messages were never protected.

<comment><USER26> Yes, of course, and i maintain private logs for my reference.

Public logs are another matter.

<comment><USER28> Anyone who has private logs can leak them, and nobody will know who did the leak if care is taken.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> I agree that Discord is not a good choice, perhaps not even an acceptable choice.

But.

Discord (not to mention Slack) will simply continue to be the lowest friction choice until a FOSS alternative comes along that is free to use, comes with rich moderation tools, supports fine-grained notification settings, supports offline history without additional effort, supports rich bots, has a mobile client that shares state with the desktop clients, and already exists on most people's desktops.

So to impact the open source communication landscape, the standard that needs to be exceeded is Slack and Discord, not IRC.

<comment><USER30> There is Mattermost, Rocketchat and Zulip.

<comment><USER24> all of which are high friction yes?

<comment><USER31> [https://keybase.io/](https://keybase.io/)

</comment></comment></comment></comment><comment><USER32> It's a bit sad to read so many "I don't discuss anything illegal, so this doesn't affect me" arguments here.

That's not really how it works, and if we take history as an example, most of what you say can be used for profiling and targeting potentially. So no, the above argument misses the point, completely.

We can do better as educated folks. A good starting point to learn bout privacy would be to read -at least a bit- of Daniel J. Solove's "The Digital Person: Technology and Privacy in the Information Age". Also, learning more about history and what happened with PII (personable identifiable information) in WW2 is important.

<comment><USER33> I'm not seeing those arguments. Whose argument are you referring to?

Despite being a strong privacy advocate, I didn't find the post particularly compelling. For the vast majority of open source projects, discussion of anything illegal would be considered off topic, and there is no expectation of privacy since all discussion is public record. Having those discussions being public and searchable is a valuable feature.

Does that mean I am against good tools that enable private discourse (like Signal)? Of course not! Some open source projects probably have a need for private discussion channels. I'm all for them using them. But to then extrapolate from that: "don't use Discord to discuss your open source JS widget library" doesn't make sense to me.

<comment><USER32> I was just reading the discussion happening around the post and where people are going with this. I agree with you Jared, and I didn't find the post particularly compelling as well.

I should have been more clear. I just read through the comments here in HN and tried to make an observation about the level of the conversation that the HN community (is it a community?) seems to be having. Mainly wanted to express that I hoped that we could all learn more about privacy in this day and age, given that it's (or should be) a fundamental matter that relates to most of what we work on these days (at least as people working in tech).

</comment></comment></comment><comment><USER34> "You can self-host Mattermost in a very straightforward fashion."

There's a very long chasm between "You can get the software running, and have it respond on a port to requests" and "Providing a mission critical service that your project relies on".

The key word here is service. It is often drastically underestimated how much effort is required to have a service available, especially at any sort of scale.

Free/Open Source software is irrelevant as soon as you are providing a service, because by design, the only people who have control over the service, are the service operators, and the only people who really know whats running in production are the people who deployed the code.

Given that, the only choice a user has is whether or not to trust whomever is providing the service, regardless of whether or not the software they are running is free/open source, or proprietary/in house software.

</comment><comment><USER35> I would have certainly taken this guy more seriously if I hadn't got a "won't you subscribe to my newsletter" popup in the middle of the article...

<comment><USER36> Why? So this author wants to promote a newsletter. Is it so onerous to click an "X" that you would discredit the information in this article?

<comment><USER37> Sometimes when I'm reading I'm just interested enough to keep reading. Then one of these pieces of garbage pop up and I immediate close the tab.

<comment><USER38> No kidding - it's the sign too that you are kickbait junk usually!

</comment></comment></comment></comment><comment><USER39> I was about to mention Keybase, but since there is no self-hosting option, I'm afraid I can't recommend them as a communication tool for free software projects. IRC is still suitable and used by some but it is viewed as an prehistoric option. So are there any modern alternatives?

Sort of, there's Jami [0] (formely GNU/Ring) which is actually free software and looks nice, but I haven't tried it yet. Another option is the Matrix protocol [1] and some of its clients like Riot.im [2] fit this free software criteria.

[0] [https://jami.net/](https://jami.net/)

[1] [https://matrix.org/](https://matrix.org/)

[2] [https://about.riot.im/](https://about.riot.im/)

<comment><USER40> Zulip is open source, can be self-hosted, _and_ offers free hosting on their servers to any open-source projects.

<comment><USER41> The threading model is also just generally better for async communication than slack/discord style channels.

</comment></comment></comment><comment><USER42> I agree that Discord and Slack has some bad sides, but for kinda opposite reasons than the author.

There are so many discussions, QAs, tips&tricks etc. shared on these chat rooms, that are impossible to find for those not a part of it. If it was discussed in a public forum somewhere, it would pop up in a search engine. I may have a problem with tool X and google for a solution, but since the discussion happened in some closed Discord server I will never find the solution someone else there has posted.

So kinda the opposite of the author's point about privacy: I prefer everything to be open and accessible. Hiding this stuff hampers the adoption without people realizing. I don't join a discord for everything I use, and often I'm not even aware that it exists.

An example I had a few weeks ago: Elm package repo died so I got some weird errors when building my project. Apparently lots of people were aware and knew about the problem and the status. But it was discussed in some Elm slack (I think), so for me not a member there I had no idea what was going on and couldn't find anything about it.

<comment><USER16> Private things, like DMs and user IP/location, should remain private.

Teams using Discord force their team participants to share this information with Discord to participate, who can then share it with whomever they want, with no legal recourse if they harm you as a result.

Public things, like discussion and documentation, should be open and available.

Teams using Discord have outsourced to Discord the decision of who is allowed to even read information that should be public. People who don't ID themselves to Discord and agree to not sue them are prohibited from reading.

It fails on both counts.

</comment></comment><comment><USER43> While I think this is extremely hyperbolic, yeah the author isn't wrong.

Discord is, for all intents and purposes, a privately owned public space. What you say and do there is public, is publically viewable effectively, and that extends to DMs.

Likewise, Discord wants to maintain their public space with their rules. I disagree with these rules, but Discord is free to moderate their space as they see fit.

Just like the owner of a private campground can kick you out for cursing, despite using curse words not being a crime, so can Discord ban you for posting nipples or cheat software.

I think the only malfeasance here is that Discord looks and feels like a private space. It feels like a space where you can talk privately or share things privately, and so people are upset when that expectation turns out to be wrong.

For some FOSS projects, I think Discord is a fine choice. It's low friction and it works well. I use it for my social groups. For many projects that might touch on software or topics that Discord dislikes, or that strongly disagree with Discords moderation, they should use an alternative (whether that's still public like IRC or potentially private like Riot)

<comment><USER44> I support the conclusion, but I feel many of the arguments author makes are highly debatable.

</comment></comment><comment><USER20> It's weird that the author is surprised that the system kicked them off for signing up for a new Discord account and immediately sending the same message to three people via DM.

That's the base vanilla behavior template for a pornbot.

<comment><USER16> Yeah, which indicates what a terrible false-positive this is. It's like their spam detection is just pattern/behavior based, and entirely unintelligent, censoring even authorized users doing normal things in projects they participate in.

<comment><USER20> I wouldn't call it a terrible false-positive. The Bayesian estimate on this behavior is that it's far more likely to come from a porn-bot than a legitimate use case.

(Arguably, the use-case in question isn't even what the service would consider "legitimate;" user was trying to tickle the tiger's tail on purpose. If one doesn't want to get kicked off like a porn-bot, it's not hard to avoid acting like a porn-bot).

</comment></comment></comment><comment><USER45> Not making a judgement call on Discord, but I'd argue that all communication for free software projects should be public and unencrypted.

<comment><USER46> Encryption is kind of moot. Every IRC server has been behind SSL/TLS for a very long time and it doesn't prevent usage nor archives.

<comment><USER45> The core argument in the article is that such systems aren't E2E encrypted.

<comment><USER47> So the same as IRC.

</comment></comment></comment></comment><comment><USER48> > I'm not going to tell you to go use IRC like some cranky old Thinkpad-toting > unixbeard

good, we get crankier when young punks repeat our advice without understanding why it was given.

"There's no single free/self-hostable alternative that has all of the features of Discord,"

... so, just maybe, someone who's got a project to do _might_ want to keep with discord, despite its flaws, instead of fucking around with recreating the same thing only more philosophically pure?

<comment><USER49> Reading this article makes we want to adopt Discord to make sure the author won't be part of the community.

</comment></comment><comment><USER50> Author misses two important points:

1\. I'm not going to self-host any of that stuff for my own projects, nor am I willing to pay for an alternative SaaS that a privacy-extremist finds less objectionable.

2\. Few projects are important enough to me to sign up to use their weird self-hosted or non-mainstream-SaaS solutions.

Discord wins for the same reasons that GitHub wins, that Sourceforge used to win, and for the same reasons that no upstart projects are standing up their own Trac or Bugzilla servers any more.

Insert "Old Man Yelling at Clouds" meme.

</comment><comment><USER51> It took so long for the CSS to load I thought, "Wow, what a beautiful minimalist site!" and then came...everything else.

I agree with part of one of 'sneak's points, though, if not the way it's presented and some of the way it's worded. Discord _isn 't_ a good choice for Free Software.

<comment><USER52> Viewed with Brave, I see a rather minimalist version which loaded quickly. Also, no annoying pop-up.

<comment><USER51> It _looks_ minimalist, but it's not.

I was talking about it without CSS.

Turning CSS-blocking on for it with uMatrix makes it look fantastic once more.

No one with sensible browser settings/extensions will see a pop-up, it's certainly not exclusive to Brave.

<comment><USER52> I agree, and the point of my previous comment was to agree with you, while also implying one of the benefits of increasing the usage of Brave among non- technophiles.

Blocking these anti-features comes automatically with Brave, no effort or setup. As more of us block this nonsense, whether with extensions or with Brave, the less incentive to write excessive CSS and annoying pop-ups.

</comment></comment></comment></comment><comment><USER28> Last time I tried to use discord my account was automatically flagged as suspicious and it forced me to enter a mobile phone - even though I did solve a captcha.

It also insisted that my firefox was outdated even though it was not. It kept being laggy and glitchy, lacks e2ee/e2ea, bans 3rd party clients, is not accessible to people with disabilities, etc.

So yeah, Discord is one of the worst choices, and not only for free software projects.

<comment><USER53> I couldn't agree more. I also really want to emphasize a less mentioned issue with Discord, which is its accessibility (or lack thereof).

It's effectively impossible for anyone with visual impairment that use a screen-reader to use Discord. I could go into (/very/) great length into this, but that's the gist. What makes this even better is that there's no getting around this limitation: third-party clients or client modifications are disallowed in the TOS and will cause your account to be banned.

</comment></comment><comment><USER54> "Their spying extends to every single message sent and received by anyone, including direct messages betweeen users."

It's not spying if it is in their Terms of Service. Full of hyperbole. Yes, common sense SHOULD tell you: If you are using a free service such as this that is not free to operate, then YOU are the product. And you will be marketed to and you will not have privacy. Get over it.

</comment><comment><USER55> Value Discord had over Slack was single account rather than per-instance in Slack(you register a new account over and over for each project admin you work with with Slack), and one fact people be skeptical of competitor is "friction" as discussed here of account creation. Identity is also a problem for lots of Twitter users who rely online identities to it because Twitter the company loves to destructively refresh userbases.

So for civil rights perspective there should be single account database, THE Civil Registry of Internet that let you tie, link-unlink, manage accounts. A face-book in modern term but not necessarily in your real name or for always fully disclosing your genitals. What OAuth realized for a brief moment.

One of the oldest core function of a nation, and we need it. Well that used to be my billionaire dream idea for this quarter and there it goes...

</comment><comment><USER56> 30 captchas just because you're browsing via Tor, a VPN, or a proxy?

How is that remotely acceptable?

There really should be some kind of law against ludicrous shit like that.

People will say "Discord is a private service and nobody's forcing you to use it" but reality is not as black and white as that.

For example, what if your employer invites you to a meeting using a privacy- abusing service like Discord or Google Hangouts? Are you going to risk telling your employer that you're not joining an important meeting because you don't want to use a service without your VPN? What if some important club/charity/etc. has its members in a Discord group?

These services blur the lines between private enterprise and social utility. Like Facebook, services offering "mass interaction" or whatever should be subject to much stronger privacy laws.

The current state of things can't continue.

<comment><USER54> I hate to break it to you: You don't have privacy on the internet. If Discord was chosen by your employer, running on employer-provided laptops, yes, you need to use it. You can certainly call out their questionable ToS to your IT department.

It's not a public "social utility". It is a service run by a private company with their specific ToS. I'm getting so frustrated about people not understanding that YOU ARE THE PRODUCT - in many cases like Discord. You will be monitored, your clicks will be recorded, heck you have NO guarantee that the Open Source version they might have is the code RUNNING on their servers. Even if a company claims they can't read your messages or never will: You can't trust it. Ever.

Someone's gotta pay the Ramen.

</comment></comment><comment><USER57> I'm not even sure its suitable for gaming based on the criteria from the article. We've set the bar lower each year for what is acceptable service operator behavior. Why should gaming throw away privacy and other basics? Is it impossible to respect simple privacy while providing gaming communications? I don't think so.

Why is discord so delighting in logging everything? Who knows? One low effort answer is: To sell it. Privacy is a commodity that can be sold.

And yes, I use discord for all sorts of purposes.

Hmmm. Might need to rethink things. What alternatives exist? Signal?

The big problem is the ability to create a group chat for text, voice, multimedia sharing, eg images, as part of that chat.

</comment><comment><USER58> >you are choosing to hard-exclude all of these types of people from your group, whether you realize it or not.

I agree with the article. That said, both being a ruthless bastard and to play devil's advocate, those people also tend to be drama lightning rods and I would happily exclude them given the option.

</comment><comment><USER25> "Replacement for Threaded, Asynchronous Discussion: Discourse" I suggest NNTP instead, please.

</comment><comment><USER59> We need an improved IRC protocol and modern open-source clients, now more than ever.

Just make a cute, free client and people won't care about the underlying tech.

Most of the better IRC clients throughout history have been paid, but when Microsoft Comic Chat was bundled with Windows, IRC got an influx of tons of new users, in an era with generally fewer computer-literate people than today.

That kind of resurgence can be repeated today if somebody can make a free IRC client on par with Discord's functionality.

[0] [https://en.wikipedia.org/wiki/Microsoft_Comic_Chat](https://en.wikipedia.org/wiki/Microsoft_Comic_Chat)

</comment><comment><USER60> >There are some great alternatives. I'm not going to tell you to go use IRC like some cranky old Thinkpad-toting unixbeard who doesn't recognize that mobile apps are a hard requirement for meaningful social collaboration these days. IRC is a total nonstarter for this use case for many reasons which have been written about before.

I'm not really a heavy IRC user, but is it really that hard for somebody to make a slick IRC frontend with a mobile app as well? I would think that IRC already existing takes away the hardest part for making a chat system like this.

<comment><USER20> IRC's protocol actually makes that challenging; it's chatty and wants a persistent network connection. Mobile devices minimize battery life by minimizing messages per second and only keeping network connections live when necessary.

</comment></comment><comment><USER61> I'm amazed that nobody's recommended Aether[1] as an alternative yet. It's fully distributed, privacy-centric and FOSS, with no infrastructure hosting required. The downside is a heavy client, with slower posts (think 1-5 minutes before you see a reply), as posts are distributed on a DHT (like bittorrent).

It won't replace Discord for gamer chat, but for FOSS projects with small communities and privacy-minded proponents, it should fit needs nicely.

[1] [https://getaether.net/](https://getaether.net/)

<comment><USER54> "with no infrastructure hosting required." " as posts are distributed on a DHT (like bittorrent)."

Someone's gotta run the trackers.

<comment><USER61> Nope, DHT functions as a distributed tracker here

</comment></comment></comment><comment><USER62> Exactly. Popularity means nothing.

Options:

\- Signal, Wire (maybe) - e2e cloud

\- XMPP-based

server - Aenigma[0] - e2e self-hosted XMPP based on ejabberd, preferably in Iceland, Greenland or someplace out-of-reach of regimes unfriendly to human rights

client - Jitsi - multiplatform SIP and XMPP app includes OTR for e2e

\- riot.im - e2e Discord-like replacement (of unknown-to-me construction)

\- i2p - decentralized garlic routing with multiple services

additionally: VPN - self-hosted WireGuard on an anonymous cryptoc-paid VPS

[0] [https://github.com/openspace42/aenigma](https://github.com/openspace42/aenigma)

</comment><comment><USER63> This article was excellent. Best quote:

"John Gilmore, one of the founders of the EFF, once famously wrote, "The 'net interprets censorship as damage and routes around it.""

HN should take that to heart.

<comment><USER64> >HN should take that to heart.

Why? It's nonsense. If the `net really worked that way, no one would even be concerned about censorship on social media or Discord, because it wouldn't exist.

<comment><USER65> This is somewhat like saying that, if the Net interpreted _damage_ as damage and routed around it, there would never be service outages when undersea cables are accidentally cut.

There's a lot of malicious damage out there, and the Internet has been steadily centralizing, de facto, for a couple decades now.

It's an arms race, basically. I support the defensive side here, but victory is by no means assured.

</comment></comment></comment><comment><USER25> I tried to tell them that, but they didn't believe me. (I also tried to tell them that NNTP should be better than using a web forum. They did believe me about that, but nevertheless failed to set it up.)

I think IRC is better. (I think you can also bridge Matrix with IRC, in case you want to have both. Or maybe you can also bridge IRC with Mattermost; I don't know. But they recommend Mattermost, so if you can bridge it in this way, then it can be helpful.)

</comment><comment><USER66> Really wish Slack did not require a backend service just to auto-invite people. Makes it more difficult to allow anyone to communicate with you on your project.

</comment><comment><USER67> What's the recommended alternative?

Don't IRC servers face the same issues of someone being able to read whatever you put through the service?

<comment><USER68> Telegram?

<comment><USER69> Not end-to-end. Telegram servers see (and log, this is in Russia!) plaintext.

<comment><USER70> 1) In the context of a public discussion channel, end-to-end encryption and plaintext logging are _features_. Their presence means that a person is able to join and see context. This is good.

2) Telegram is not based in Russia. In fact, it's been intermittently blocked in the country.

<comment><USER69> I am corrected.

</comment></comment></comment></comment></comment><comment><USER71> It amazes me that there's not a single word about Matrix/Riot.im in this submission or the blog post itself. If you want to resist control over your communications medium, a federated system seems like a no-brainier. And yes, the E2EE is there if/when you need it.

</comment><comment><USER20> I very much appreciate the author's intellectual honesty at the end of the article, where they note that one won't be able to find a drop-in replacement for Discord (but they do note one can build a solution from several not-quite- there alternatives).

</comment><comment><USER72> [https://sneak.berlin/s/2020/20200218.discord/tracking.png](https://sneak.berlin/s/2020/20200218.discord/tracking.png)

Remembered me the Win10 installer settings :)

</comment><comment><USER27> The author mentions 4 times that privacy is a basic human right, I guess to guilt us into agreeing with them.

But the article's actual argument is that contributing to a specific FOSS project is a basic human right, which it is not.

</comment><comment><USER73> By this standard, no free software project should use the Internet at all. Unless you jump through the kind of hoops that even smart, tech-savvy, security-minded people don't, someone is tracking most of what you do. Your ISP can track your DNS requests unless you use DNS-over-TLS (no on does); they can track every IP you connect to unless you use a VPN (in which case your VPN or upstream provider can); in most cases your email isn't secure (no one encrypts email, and eventually it's unencrypted somewhere); communication via alternate mechanisms suffers from the same problems as Discord (IRC, Slack, and other services can also be monitored); every search engine can track you. I could go on.

The bottom line is that Discord doesn't stand out as a particular offender here, and the steps required to alleviate the author's concerns are inconvenient. Most projects have more important things to worry about with their limited resources.

Communication secrecy simply isn't a priority for most open source projects. In fact it's antithetical to the majority of open source goals. Someone pointed out that users might want to discuss security issues privately, and while there's a little bit of merit to that, it's a contrived example. It's not one of the author's concerns, and it's not an issue that arises with most projects. Open source development benefits from being done openly, and secure communication isn't a priority.

I'm in favor of using open source, private, self-hosted tools whenever and wherever practical. I'm not defending Discord specifically, nor encouraging its use. This author is just hung up on something that most people don't care about, especially in the context of software that's meant to be open and public.

There's something about this sort of obsessive fixation on a non-issue that makes people roll their eyes and not want to work with you. People who are using their limited free time to work on some random small project don't want to be lectured at over principles they don't share.

<comment><USER74> your argument here seems really defeatist, people don't use dns over tls because its easier to just grab a vpn, throwing encrypted traffic through a vpn and acting like because the vpns isp can resolve domain names is just as identifying or non free as isp resolving somains straight from your network is just nonsense

</comment></comment><comment><USER75> This repeats a lot of what Stallman has already written is "bad about" Discord:

[https://stallman.org/discord.html](https://stallman.org/discord.html)

</comment><comment><USER76> Asking for a non-voip phone number is a great way to (numerically) reduce spam a lot.

E2E does have a legitimate downside of letting low-quality content run wild.

</comment><comment><USER77> Use a protocol, not a service

<comment><USER20> Protocols tend to be a good first step, but they're extremely vulnerable to abuse without something larger working atop them.

Email is a protocol. Implementation is a practical nightmare because of bad actors. Something to control bad actors is vital to any communications system, regardless of whether you classify it as "service" or "protocol."

</comment></comment><comment><USER78> Another toxic part of the FOSS movement. Ill use whatever I want, thank you very much.

</comment><comment><USER79> > Discord is spyware, silently logging and tracking every action performed > within their app, without once asking the user if they consent or not

You have to read and agree to their Terms of Service and Privacy Policy to use their services.

[https://discordapp.com/terms](https://discordapp.com/terms) [https://discordapp.com/privacy](https://discordapp.com/privacy)

<comment><USER80> And? It's still spyware. I'm not sure what some legal stuff has to do with that.

<comment><USER20> They explicitly ask the user to consent to the TOS during the signup flow.

Yes, we all know nobody reads the TOS. It's still extremely inaccurate to claim Discord has these behaviors without asking consent, when they ask for exactly that.

<comment><USER80> That doesn't mean anything. You have not consented to anything by clicking accept without reading it. Sure, everyone will act like they have it.

It can still be spyware, even with "consent". The original statement still stands, "silently logging, tracking every action performed". They could just add some text that will be shown when something is recorded.</comment></comment></comment></comment>


Ask HN: Learning Complexity Classes - <AUTHOR>

Hey guys I have an interview coming up in a few days and I've come to know from my friends that they stress a lot on having a good idea about complexity classes. So is there any resource on the web or book where a newbie can get good answers to what are NP classes and how is NP complete different from NP hard and the likes.<p>Thanks <comment><USER2> You don't really want to know the full complexity zoo (look it up) really you don't. You want to know the difference in the practical sense between

* logarithmic

* sub-linear

* linear

* quadratic (and other low powers)

* polynomial

* sub-exponential

* exponential

* super-exponential

* NP

* NP-Hard

* The intersection of those last two (NP-complete)

And for each - give examples.

Then you want to say, for a given algorithm, what it's complexity looks like. What's bubble-sort? Why? What's QuickSort? Best case? Worse case?

What's packing? A*? Travelling Salesman? Factoring?

What about the various database operations?

Skim the wikipedia pages on each of those, concentrating on the feel of the algorithm and the statement of the complexity. Then ask about other algorithms, and try to get a sense of how they feel. And why.

Finally - Why can string search be sub-linear?

<comment><USER3> I'll bite on the last one. How can string search be sublinear? Boyer-Moore, the fastest algorithm I know of, is still O(n) regarding the length of the search string. Since strings are inherently linear, you'd need a transformation step to leverage the advantages of another data structure (e.g. suffix tree or a DAWG), and that transformation would need to look at each token. Am I missing somehting?

<comment><USER2> Example:

If you're looking for "aaaaaaaaaaaaaaaa" (that's a string of length 16) and you look in index 15 (counting from 0) and find a non-"a" there, you can leap forward 15 (or 16 - there's an off-by-one error waiting to bite) places. If that's also not an "a" then you can do it again.

It's more complex than that, but the complexity can, in some cases, be sub- linear.

There's another reference I have somewhere to a surprising (and contentious) sub-linear algorithm for something that's "obviously provably linear". I'll see if I can dig it up and post it later. No time now.

ADDED IN EDIT (because there's more than one reply saying the same thing)

Yes, it's futzing the constant. The point is that the constant _can_ be less than one, it's not always necessary to examine every character in the string being searched, which comes as a surprise. But no, this is not sub-linear, although many people describe it as such. Knowing why it's not sub-linear, even when the constant is less than one, is an important milestone in learning about complexity of functions.

<comment><USER4> That's still O(n). Say you're looking for that string in a string of length n. You're search time will be n/16+c, which is O(n).

</comment></comment></comment></comment><comment><USER5> check stackoverflow.com for many resources on the subject</comment>


Ask HN: internsip in valley - (hidden) added value - <AUTHOR>

Hello! I am CS student from university in Europe, just received an offer of 4-months internship at Google in Mountain View. I am trying to become a succesful entrepreneur on the local market, having one failure startup behind me, working on the second one in spare time. I am hacker and passionate about technology as well.
Taking the opportunity to live in Sillicon Valley for 4 months I want to maximize advantages of such a step.
The question is: What in your opinion added value (not visible at the first sight) can I take? What can I learn/experience apart from a great internship and resume boost in the most influential company?
My ideas are:
* meeting startups founders to exchange the experience;
* do some networking;
* visit Yellowstone and other national parks;
* take a photo with Larry, Sergei and Zuckeberg;
* land a next internship, this time in startup (to see the difference);
* ...
whats more? <comment><USER2> [http://alexeymk.com/an-interns-guide-to-a-summer-in-the- bay-...](http://alexeymk.com/an-interns-guide-to-a-summer-in-the-bay-area/)</comment>


How to overthrow North Korea - <AUTHOR> You have two years and $10 million to topple Kim Jong Un's regime.<p>How do you do it? <comment><USER2> Appeal to basic human envy and greed.

Give small shiny gifts to whoever has access to the west. Fund smuggling operations, assist in setting up black markets. Send in films and the means to play them. Doesn't matter if they get taken away from the people you give them to, so long as someone over there ends up with them. No need for overt propaganda. Simply, "here are shiny things, here are people enjoying shiny things, everyone else has this stuff and you don't." And, more basic level: "see how people can live, what can be taken for granted. Food. Light. Toilet paper. Supermarkets."

Then wait. They'll overthrow the regime themselves. It worked for the Soviet Union, though it took a while. It'll work here, too.

</comment><comment><USER3> You spend it on booze and coke and hope that somehow _mumble_ butterfly effect _mumble_ the regime falls.

Seriously, how you can even begin to think that any amount of money, let alone a laughable one, could do anything there is beyond me.</comment>


How Germany Does Prison - <AUTHOR> https://www.themarshallproject.org/2015/06/16/how-germany-does-prison <comment><USER2> Anecdotes from a Scandinavian country:

\- When I was a kid someone "borrowed" a bulldozer and made a huge hole in the wall at a prison. A few guys escaped. But most of the rest didn't. They were having some sort of family day and didn't think it made sense to bolt.

\- I was taught how to swim by a convict on release. He had a police officer with him each time, but she kept in the background. He was doing time for a violent offence, but one that reasonably did not pose a danger to the general public.

<comment><USER3> I think the question to ask people who favor punishment prisons is this: prisoners get out of prison one day. If a prisoner was moving in the house next to yours as your neighbor, would you rather have a prisoner from a prison focused on humane treatment or from a prison focused on punishment?

<comment><USER4> You set it up as "punishment prisons" vs. "humane prisons".

I don't think anyone says prisons should be inhumane in order to punish criminals. The imprisonment is the punishment, not the treatment inside the prison.

<comment><USER5> And yet...Texas made their lesser criminals plant potatoes in the hot Texas sun in the middle of nowhere. Recidivism dropped to almost nothing, for those crimes (petty theft etc).

Cruel? No, some folks line up to do those jobs. If its ok for Joe Shmoe to get paid minimum wage to do it, then its ok for inmates. Just hot and miserable.

Anyway, I'm 'incarcerated' in my cubicle for 8 hours a day. It definitely matters what treatment is inside the prison.

<comment><USER6> > Anyway, I'm 'incarcerated' in my cubicle for 8 hours a day.

Really? You can't go to lunch when you want? Go for a coffee break? Call in sick when you aren't well? Quit that job if you find a better one?

Anybody who lines up for the opportunity to plant potatoes in the hot sun is clearly desperate for work. Desperate people will do lots of things that "normal" people would not.

</comment></comment></comment></comment></comment><comment><USER7> After reading the article, I'm wondering: so, how Germany does prison?

> Over the next several days, I'll be keeping a tour diary for The Marshall > Project and VICE, watching as they visit a series of facilities in Berlin > and Mecklenburg-Western Pomerania

This is an article about what the article will say once they write it. Premature journalism at its best.

<comment><AUTHOR> There are five installments in this Series.

<comment><USER8> And this: [https://www.themarshallproject.org/2015/09/25/prison- without...](https://www.themarshallproject.org/2015/09/25/prison-without- punishment) seems to be the longer article scheduled for October.

<comment><AUTHOR> Great! Maybe a mod will change the URL?

<comment><USER9> Actyally this seems to be a better URL for this: [https://www.themarshallproject.org/tag/how-germany-does- pris...](https://www.themarshallproject.org/tag/how-germany-does-prison)

</comment></comment></comment></comment></comment><comment><USER10> We Germans have our own issues though, it's not perfect. What is the prison system in the US, is the psychiatric system here. Once you get in its wheels, it takes really dedicated lawyers and sometimes even mass-media attention to get out. Just look at Gustl Mollath.

And our "justice" system suffers from massive, massive understaffing, just like the police. It's easy to "cut costs" there for politicians because there is no immediate negative effect, and by the time said effects hit, the politician responsible is not in office any more.

<comment><USER11> I've never seen more police than in Berlin. In Norway I can go for months without seeing police. In Berlin they were everywhere with guns and body armor. So, yeah, not underfunded at all, as far as I can see.

<comment><USER12> Berlin is a special case because there are a lot of places that require protection such as government buildings, embassies and synagogues. There is also a protest somewhere in Berlin on almost any given day. On top of that there is the criminal activity, drugs mostly, which means that the police raid places like Görlitzer Park pretty much daily.

In the rest of Germany there are cities you can easily spend months in without encountering a police officer.

<comment><USER13> Do Police really raid Görlitzer Park? I haven't been in Berlin for long but I was under the impression it was fairly tolerated, and it seems like a bit of a waste of police resources to crack down on (what I understand is) just a bit of weed.

<comment><USER12> They do, not that it has any noticeable impact.

Weed is definitely widely tolerated. Many people are in favor of legalization not just among those that enjoy weed but also among people working in the justice system that recognize that prohibition isn't working. Legalization would make it easier to deal with addicts, make it easier to prevent children and teenagers getting weed, would make many parks nicer to visit and bring in taxes. I think that it's just a matter of time until public opinion shifts to the point that it will be legalized.

Nevertheless the time isn't there yet, the senator responsible for police is member of the CDU, conservative and in favor of prohibition and unfortunately, while it's mostly weed, it's not just weed and many people aren't too happy about the aggressive sales tactics.

</comment></comment></comment></comment></comment><comment><USER14> As far as I know, there are no truly federal prisons in Germany, so depending on whether you're in Mecklenburg-Pomerania or Bavaria, things might vary quite a bit (although stringent federal laws do apply).

<comment><USER15> Up until 2006 prisons were completely regulated federally, even though they were run by the states. Since then, the states are in charge of prison laws, though they don't vary much.

Just as an example for one of they "major" differences: Most states still require TVs in common rooms but as many inmates have their own nowadays, some states made them optional. In Hamburg there is never a TV in a common room. Some states may require the inmates to pay for the electricity they use with their own appliances.

Most other differences are also on that level.</comment></comment>


IBNIZ: audio/visual VM and esoteric programming language - <AUTHOR> http://countercomplex.blogspot.com/2011/12/ibniz-hardcore-audiovisual-virtual.html

<comment><USER2> Forth Haiku, linked in the comments, is also interesting:

<http://forthsalon.appspot.com/>

</comment><comment><USER3> Interesting blog.

"radical low-complexity"

Love that.

"Retro"? Nah.

More like:

\- responsive,

\- easier to understand,

\- capable and worthy of being maintained and repaired

\- hence "built to last".

"Radical"? Nah.

More like: "Practical."

</comment><comment><USER4> Some effects found after playing for a few minutes:

      dp**                 \ rolling columns
      dp*/                 \ teal and magenta rainbow quadrants
      wrd*                 \ rounded square field
      v8Msdv*vd*^wpp8r-    \ dripping columns

Click F12 and scroll to the bottom to find several examples to start from.

<comment><USER5> dp = dup pop = nop

</comment></comment><comment><USER6> This is awesome.

</comment><comment><USER7> I have no idea what I just watched but I thoroughly enjoyed it. More esoterica on HN please!</comment>


Ask HN: Want to build Ruby irb for iOS in RubyMotion with me? - <AUTHOR>

I was on the train this morning, and wanted to double-check a Ruby concept I was thinking about, and thought it would be cool if I had irb on my phone. A couple of apps appear to exist, but I think it'd be a cool project to try with RubyMotion. Either way, would love to hear any thoughts on how to approach this. Thanks! <comment><USER2> Would this be a shell for regular ruby, or for the cocoa touch machine code runtime a la RubyMotion?

<comment><AUTHOR> If I understand the question correctly, a shell for regular ruby, that's within a RubyMotion app.</comment></comment>