Yahoo's Fight for its Users Earns the Company Special Recognition by EFF - <AUTHOR> https://www.eff.org/deeplinks/2013/07/yahoo-fight-for-users-earns-company-special-recognition <comment><USER2> Ironically the only major tech company not to deny NSA involvement, is seemingly doing the most for its users privacy. Fighting against the overreaching arm of the US Govt in secret courts for the last 6 years, without any potential for publicizing their plight exemplifies Yahoo's true stance on user privacy. Actions speak louder than words, what you do when no-one's watching, without any potential of direct benefits or exposure shows Yahoo's true colors.

Which is in stark contrast against other major tech companies strategy of instead deny direct involvement, launch marketing campaigns promoting users privacy as their top priority and go as far as launching anti-privacy campaigns criticizing the privacy policies of their competitors, whilst simultaneously providing an indiscriminate fire-hose of private user data directly to the NSA.

</comment><comment><USER3> I have hated yahoo because of their poor products, bad user experience, ridiculous design sense, and what appears to be just brand marketing for a brand's sake.

However, I have to say this news gives me a strong reason to reevaluate yahoo. And my own feelings about this makes it clear to me there is a market in customers who are interested in having their rights respected. I'm looking forward to the new wave of strong security, and corporate user rights policies as a feature.

<comment><USER4> I think Marissa has recently did a lot of changes to improve Yahoo.

<comment><USER5> She seems to be good at getting nerds talking about Yahoo. I don't think I was ever in the target market for any of their products, and I almost forgot the company existed, until the recent controversy about the ban on remote working.

<comment><USER6> Uh what do you have against remote working that you're switching to Yahoo just cause they banned it?

<comment><USER7> I understood that to mean he'd forgotten about the company until the remote- working ban controversy brought it back into the spotlight, not that he's boycotting Yahoo on the basis of its remote-working policy

<comment><USER8> Actually he thought the opposite, that said user was switching to Yahoo! because they banned remote-working on the basis that said user does not approve of remote-working.

But it is confusing.

</comment></comment></comment></comment></comment></comment><comment><USER9> Companies should be commended for their efforts to fight these orders. However, let's not forget that Yahoo also handed over information to the Chinese government that led to the arrest and prolonged imprisonment of multiple people, and then tried to cover up their behavior by pretending they didn't know why the information was being requested.

I suspect that the backlash from those actions may have led the company to appeal the FISC orders, fearing similar potential future liabilities.

Source: [http://arstechnica.com/tech-policy/2007/11/yahoo-calls- withh...](http://arstechnica.com/tech-policy/2007/11/yahoo-calls-withholding- of-info-on-chinese-arrests-a-misunderstanding/)

<comment><USER10> I don't think that's how it works. Yahoo went all-in with China and has significant staff and hardware and user records located in Chinese jurisdiction. Once you make that initial mistake you're basically fucked when it comes to resisting the Chinese government, because they'll just throw your people in jail, or confiscate servers.

In America there are appeals processes, so Yahoo could avail themselves of those.

So Yahoo may well have had a consistent "fight for the users" policy, but were constrained differently in different jurisdictions.

</comment></comment><comment><USER11> The complete tally for different companies is here: [https://www.eff.org/who- has-your-back-2013](https://www.eff.org/who-has-your-back-2013)

<comment><USER12> I suppose the big empty space on the right is where "Respects users' privacy in _their own_ business practices" should be.

But of course this is only about the Big Bad Government.

It's an interesting cultural difference how privacy suddenly becomes in issue in the US now that it's about the government, and totally fine when people were being tracked an profiled for profit.

<comment><USER13> There's a key difference.

When it's the government, there's a chance a big black van will pull up next to you and haul you away for the rest of your life.

A corp is likely just trying to manipulate you into buying their worthless junk. Not good, but at least you're not dead or imprisoned.

</comment></comment></comment><comment><USER14> "Yahoo went to bat for its users – not because it had to, and not because of a possible PR benefit"

Good for them, but also perhaps motivated from poor PR resulting from this episode: [http://en.wikipedia.org/wiki/Criticism_of_Yahoo!#Outing_of_C...](http://en.wikipedia.org/wiki/Criticism_of_Yahoo!#Outing_of_Chinese_dissidents)

<comment><USER15> Even if the incident with screwing over the chinese dissidents is the entire reason they fought the NSA in court that does not subtract one iota from the good karma they deserve for fighting the NSA in court.

People who learn from their mistakes deserve at least as much praise as the ones who got it right from the beginning (the list of which seems to be exceptionally short in this case).

</comment></comment><comment><USER16> Only in 2005, Yahoo helped the Chinese regime prosecute a journalist. That wasn't the only time that happened, either. (Source: NYT - [http://www.nytimes.com/2005/09/07/business/worldbusiness/07i...](http://www.nytimes.com/2005/09/07/business/worldbusiness/07iht- yahoo.html?_r=0) )

<comment><USER17> I'm tired of this example. AFAIR, Yahoo got a valid court order to turn over information, and they complied because they had a presence there. No other company: not Google, not Microsoft, not AOL would have done anything different.

<comment><USER18> Twitter might have, if they had a presence.

They had this sort of issue in France a while back didn't they?

</comment></comment></comment><comment><USER19> "... While Yahoo still has a way to go in the other Who Has Your Back categories (and they remain the last major email carrier not using HTTPS encryption by default)..."

Why? and how vulnerable to Eve, not using HTTPS?

<comment><USER20> This is what I'm so confused about. 6 years ago they realized they would need to protect their customers from prying eyes yet they couldn't wrap their heads around encryption being a major player in that system? I'm not buying it.

</comment></comment><comment><USER21> Subhed: "The truth begins putting its pants on."

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

<comment><USER22> Except when Snowden actively denies these companies inability to avoid compliance.

I'm not sure who to believe that this point. This whole thing is messier than cold war politics and it was probably orchestrated that way.

</comment></comment><comment><USER23> Well, this is a little weird... Yahoo that joined PRISM in 2008 gets a gold star from EFF?

<comment><USER24> I doubt you can "join" PRISM. You're forced in.

<comment><USER25> "forced in" meaning that in order to continue to conduct business as is without trying to circumvent in the name of their users interests, they chose to align their interests with the surveillance state in order to minimize any potential short term corporate hardships.

It kind of reminds me of how a certain president received a nobel peace prize yet the actions conducted under his policies (or rule) are in contradiction to the ideals of what the prize is named after, but I digress.

There is always a choice to be made…

<comment><USER26> > potential short term corporate hardships

You mean prison time, like what happened to Joseph Nacchio? [http://en.wikipedia.org/wiki/Joseph_Nacchio](http://en.wikipedia.org/wiki/Joseph_Nacchio)

<comment><USER25> Notice I did not say "potential short term _individual_ hardships", regardless of what he was charged and convicted of (which wasn't failure to comply with NSA orders of which he says are in retaliation of)…

<comment><USER22> So you're completely disregarding the possibility that Qwest was dismantled and Nacchio was just a pawn?

</comment></comment></comment></comment></comment></comment><comment><USER4> Notice the name of the law used is mentioned in this article.

<comment><USER27> Protect America Act?

<comment><USER28> How Orwellian of them. Does that law still exist, though? I thought they replaced it with the FISA Amendments Act or something.

<comment><USER4> Yes, they did. I read an article about it before.

</comment></comment></comment></comment><comment><USER29> It seems like an odd choice to leave the exclamation point out. [http://en.wikipedia.org/wiki/Yahoo](http://en.wikipedia.org/wiki/Yahoo)!

<comment><USER30> Ironically, the HN auto-linker doesn't pick up on it, either.</comment></comment>


The Luna Programming Language - <AUTHOR> http://tjholowaychuk.com/post/7517832396/the-luna-programming-language?repost

<comment><USER2> What's the point? He'll never beat LuaJIT. I'd rather see a new language with a "slow, slow, and slow" implementation that had interesting semantics than another python/lua/js cut-down LISP.

<comment><USER3> That's not a very good reason to ignore writing something you're interested in.

</comment></comment><comment><USER4> Namespace collision: <http://asana.com/luna/>

<comment><USER5> I thought Asana's Luna was dead in the water?

</comment></comment><comment><USER6> This is the kind I do on my whiteboard when I feel like procrastinating a new language.. but I find it terribly cool that you've been forward with this and started implementing it :)

Also, I didn't get how you would make the difference between a closure and a simple boolean?

For instance:

      users map(age > 20)

and

      users show_age(age < 40) # Because for some reasons, people > 40 don't like to say their ages ;)

Also, I don't know if you know the Arc language, but I'd suggest reading the tutorial written by pg. I particularly like how all functions are shortened.

I.e. keep instead of filter/select, etc.

Also, something cool is that if a literal instead of a lambda is given to keep, it will use the identity function.. (keep 'a '(a b a c)) = '(a a)

Good luck with that :) (And forget about the "Do we need another language crap"; they say that on about any new languages. (Hint: We'd still be using C++))

<comment><USER3> haha thanks man. yeah I agree, the day I stop playing around as a programmer, is the day I'm dead. Every programmer should explore different aspects of CS and have fun doing it.

I'll check out Arc!

</comment></comment><comment><USER7> Looks interested! But I find the function args syntax very confusing:

        greet =: user msg
          console log('hello #{user} #{msg}')

You're using whitespace as a message separator AND as an argument separator.

Also, I don't think it is possible to implement lazy arg eval (opt-in callee evaluated messages) in a VM. That's why IO is an ast walking interpreter.

Good luck!

<comment><USER3> I have plans :D thanks man!

Params used to be comma separated, and they still could be, but definitely optional unless defaults are implemented. To future-proof it's probably best to add them back

</comment></comment><comment><USER8> @tjholowaychuk: Check out context threading (<http://www.cs.toronto.edu/syslab/pubs/demkea_context.ps>) by Prof. Angela Demke Brown as an alternative to direct threading.

<comment><USER3> looks like a good read! thanks :)

</comment></comment><comment><USER9> Looks like it could be fun.

How attached are you to writing a slow old C virtual machine back end?

Why not use a fast JIT/AOT, like the LLVM backend? I could be tempted to just implement one.

By the way is there a typo on line 46 of ast.h?

<comment><USER3> For now I'd like to stick with ANSI C for portability but other than that I'm down for JIT alternatives as long as it's quick and easy for others to hack on/install.

Nah that's valid but that macro list might as well just be the enum I'm not using it for anything else right now

<comment><USER9> No worries. One problem with adding a Jit is you usually want to put extra information in the ast, such as LLVM objects, so I'm not sure how totally easy it would be to hack in in an unobtrusive way.

The other problem is that VMs like LLVM are quite good for statically typed languages, but not always great for dynamic ones. It's probably too early to tell either way. And yeah, even if you use the C interface to LLVM, you still need to compile it with a C++ compiler, which sucks a bit.

Regarding what I thought was a typo, you define n but undef t, but no worries, I guess I didn't read the rest of the code.

Good luck!

<comment><USER9> Just for fun I threw up a project I've been working on:

<https://github.com/wbhart/Cesium>

In backend.c (esp. lines 171 and following) you can find the beginnings of an LLVM backend (it does work, but doesn't do a whole lot atm).

The whole project is in a major rewrite at the moment. I had fully implemented the toy language described here:

<http://selmer.warwick.ac.uk/cesium.pdf>

with an LLVM backend. But I was relying on closed source code for the parser generation and that began to nag at me, so I'm rewriting the entire thing from scratch to use greg (a fork of leg).

I'm also adding type inference this time around.

</comment></comment></comment></comment><comment><USER10> User allowed =: realm !(banned || blockedFrom(realm))

may become:

User allowed =: realm not banned || blockedFrom(realm)

Nearly choked when I saw this one. Wish I never have to look for bugs in a language with such syntax.

<comment><USER3> ruby? just like any language you just have to understand op precedence..

</comment></comment><comment><USER11> This looks a lot more like Io than Javascript. I wonder why he didn't mention it.

</comment><comment><USER12> Units of measure is fun little detail :) F# has something similar: <http://msdn.microsoft.com/en-us/library/dd233243.aspx>

</comment><comment><USER13> Do we need another fractional Lisp that reuses Python/Ruby/IO syntax?

Just give me the power of Lisp and more in a new and interesting way and we'll discuss implementation performance later.

Oh look, operator precedence. Yet another thing prefix notation eliminates me from having to memorize or otherwise puzzle out.

Why do we have to keep doing this over...and over...and over...

Make an LLVM Lisp with S and M expressions and concurrency primitives and you have an interested customer, otherwise, I'll keep hacking in Clojure.

I _love_ seeing new things but I don't understand why people keep making these kinds of languages over and over, we've been doing it since Perl, Python, and Ruby came out.

<comment><USER14> "I don't understand why people keep making these kinds of languages over and over" -- TJ makes _lots_ of things, from web frameworks to template engines and css DSLs, to see him make a language makes me think: "ooh, TJ made a new toy!"

As far as does the world need it? That is a hard question to answer. Will it achieve mass adoption? My money is on no -- another question is: How long will TJ keep at it?

<comment><USER3> yeah, I'm really expecting it to be widely adopted, it's just a fun project to hack on in spare time and share some thoughts.

<comment><USER15> Missing a "not"?

<comment><USER3> haha yikes, yeah my bad, _not_ expecting..</comment></comment></comment></comment></comment>


Dungeon Scrawl: Old school maps in minutes - <AUTHOR> https://dungeonscrawl.com/ <comment><USER2> I love the style of this and tried something similar before changing direction with Table of Sending.

After lots of testing, I settled on 2.5D tiles for the DMs who wanted to sketch their maps 15 minutes before playtime:

\- [https://tableofsending.com/](https://tableofsending.com/)

The shadowcasting fog-of-war has also been awesome since the map is semantically understandable:

\- [https://twitter.com/HunterLoftis/status/1269396682233581568](https://twitter.com/HunterLoftis/status/1269396682233581568)

</comment><comment><USER3> Looks great. Making maps is the worst part of being DM for me and playing on computer sets high standards for map quality so I end up spending 90% of prep time drawing maps :/

I've made a quick and dirty generator of outdoors maps for my hex crawler campaign, maybe someone will find it useful: [https://ajuc.github.io/outdoorsBattlemapGenerator/](https://ajuc.github.io/outdoorsBattlemapGenerator/)

It has export to FoundryVTT (.dd2vtt format), I find it so much better than roll20.

</comment><comment><USER4> Is the Escher-esque image under "Isometric Edit Mode" ([https://dungeonscrawl.com/images/pic10.png](https://dungeonscrawl.com/images/pic10.png)) a joke, or does the tool allow for physically impossible layouts? Or am I reading the image wrong and it's a physical layout?

<comment><USER5> This reminds me of the Dr Who episode "Castrovalva"; the Doctor and his companions do spend some time running around trying to figure out the layout until they realize what's going on.

I've entertained the idea of DMing that type of thing for a while now.

<comment><USER6> Q1, Queen of the Demonweb Pits, had something similar if I recall.

<comment><USER7> There was an article in Dragon magazine back on the 80s about hypercube dungeon layouts.

<comment><USER6> Even further back, there's Hunt the Wumpus, which I think was originally laid out on a Platonic solid. Messing with adventurers is a time-honored tradition!

<comment><USER8> The original Wumpus map I've always seen referred to as a "squashed dodecahedron", though since it only uses numbered vertices without spatial coordinates there is no particular way to distinguish it from an actual dodecahedron,

</comment></comment></comment></comment></comment></comment><comment><USER9> I started using inkarnate [0] a few weeks ago. You can use the parchment style to have maps with old looking style.

People use it both for world/regional maps and for town but also scene maps [1]

[0] [https://inkarnate.com/](https://inkarnate.com/)

[1] [https://www.reddit.com/r/inkarnate/](https://www.reddit.com/r/inkarnate/)

</comment><comment><USER10> My dad has always talked about how much he loved having to draw his own maps for games like Labyrinth [0] and Asylum [1]. He just recently played Breath of the Wild and while he loved it, he mentioned how cool it would be to have to draw the map there.

I love the spirit in this, great job!

[0] [https://en.wikipedia.org/wiki/Labyrinth_(1980_video_game)](https://en.wikipedia.org/wiki/Labyrinth_\(1980_video_game\)) [1] [https://en.wikipedia.org/wiki/Asylum_(1981_video_game)](https://en.wikipedia.org/wiki/Asylum_\(1981_video_game\))

<comment><USER4> Your dad may enjoy the Etrian Odyssey series ([https://en.wikipedia.org/wiki/Etrian_Odyssey](https://en.wikipedia.org/wiki/Etrian_Odyssey)) for the DS and 3DS where a big part of the game is you drawing the map on the bottom screen as you explore the dungeon.

Review of the latest game for 3DS: [https://www.polygon.com/2017/10/17/16492092/etrian- odyssey-5...](https://www.polygon.com/2017/10/17/16492092/etrian- odyssey-5-v-beyond-the-myth-review)

</comment></comment><comment><USER11> Hopefully this catches the eye of someone in the thread who'd know: I have a 5yo and 7yo who have loved playing some version of ad-hoc D&D I invent on the fly but it inevitably breaks down at some point because I haven't accounted for something along the way.

What's the most basic setup I could use in terms of character attributes, dice, calculations, etc. They love even the most basic imaginative adventure so I'd rather something be easier to play quickly than take a lot of time learning. 20+ years ago I played some basic D&D and then some other rip-off (Rolemaster?! Swear it started with J though.)

I have an old Heroquest set somewhere but haven't been able to find it in my parents' attic.

<comment><USER12> _but it inevitably breaks down at some point because I haven 't accounted for something along the way_

Could you give more details? That might be helpful in providing some ideas.

<comment><USER11> For example, I might have instructed them to roll for three character attributes. And then they encounter an enemy which has hit points of some sort and maybe attack and defend numbers. And then I realise that something about their character attributes doesn't really gel with how I'm trying to get them to roll dice against that enemy. Or, wait, they need to jump across a pit but did one of their attributes apply (strength, dexterity) and how would it modify their rolling target.

My memory of childhood D&D stuff is very foggy which probably hinders more than it helps.

I think I need to know what the simplest set of character attributes and enemy values might be that can withstand some basic sketch-map-as-you-go exploration and fighting. Is it strength, dexterity and wisdom, out of 20? Or two or five attributes?

<comment><USER12> There are so many ways you could handle this. But I think the most important thing to remember is that not _the system_ should be the focus of the game but _fun_. Don't just improvise the plot (according to your player's actions), but improvise "the system" as well -- after all, it's yours, and your only duty is to make it fun for your kids.

Forgot a certain ability on your streamlined ability sheet? Well, who says they all have to be determined beforehand like in DND? Just make them roll new ability specs just when you need them.

Or simply make due with what you've got, e.g. by adjusting what you originally had in mind for the enemy attack with what is possible within your simplified system. And for the next game, slightly update the system whenever you've identified an oversight.

Don't sweat it, the exact rules are not so important, as long as your players can rely on consistency (as a proxy for fairness). For kids, I think, in the end they're gonna love it when they can just roll some dice every now and then and observe how what their characters do results in success when they roll well and (non-catastrophic) failure when they don't. Other than that, I would imagine the theater-of-mind aspect, i.e., the plot and the general world setting will probably be much more important.

<comment><USER13> Modern (5e) D&D even explicitly encourages this with it's skill system. DMs are encouraged to just pick a stat (or even let their players pick a stat) that feels like it's applicable to the situation, then then add that to their roll.

</comment></comment></comment></comment></comment><comment><USER14> As someone who has been moved his DnD sessions to Discord with COVID going on, and has made a "shareable map" out of Google Sheets, this looks fantastic!

<comment><USER15> My table has made great use of [https://shmeppy.com](https://shmeppy.com) for remote-play maps. The maps it makes are much less sophisticated (just painting color on the squares and lines of a grid). What it gives you instead are player/monster tokens that everyone can see, measuring tools, and "laser pointers" to allow participants to draw attention to a region of the map while speaking.

EDIT: also an awesome fog of war feature; how could I forget?

</comment></comment><comment><USER16> Gave it a spin. UI is pretty clean, good landing page and neat that it can do isometric as well. Love the path tool. Wish there were dedicated Undo/Redo buttons in the top bar. Only bug I found was that if you use the menu item to 'rough it up', ctrl+z undoes the rough up and the last item you created.

</comment><comment><USER17> I would like to see a randomize button that creates something random and then lets me edit it to my tastes. It's just so exhausting to plan an entire dungeon from scratch.

<comment><USER18> One thing I found fun was to start by blocking out one room, then another and another and basically switching between tools - the geometric shape too for a tower or two, and then start linking them up.

After a little bit of noodling you start to feel the outline of a building and then you can be a little more deliberative.

In my experience, the hard part about planning out a dungeon is filling it with encounters.

There's another creator (Donjon) which doesn't make maps as prettily or easily as this one but it does allow you to basically do what you're looking for:

[https://donjon.bin.sh/d20/dungeon/](https://donjon.bin.sh/d20/dungeon/)

<comment><USER19> You can actually import generated Donjon dungeons into Dungeon Scrawl using the TSV file

</comment></comment></comment><comment><USER20> I've played around it a bit since someone recommended it a few days ago. Great for coarse dungeon layouts, but would probably need some more detail-oriented "finishing" if I'd want to use it for VTT play. Once we're going back to real dice, this might come in handy, if I'm ever doing a dungeon-heavy campaign.

Until then, I have to cope with the oddities of running DungeonDraft with Wine.

<comment><USER21> Yeah once we go back to an actual table (2021?) this will be amazing. I can see using this to sketch out a dungeon before breaking down into smaller maps in DungeonDraft for VTT.

</comment></comment><comment><USER22> I'm currently playing through the old Zelda games that don't provide an in- game map. This looks like it could be useful.

</comment><comment><USER23> This tool is awesome and perfect timing because I am writing an adventure for my daughter and her friend to play :)

</comment><comment><USER24> It looks pretty awesome from the bit I could play with it. It would be nice if it worked properly on mobile also. Just being able to hide the tool bars and pan without the keyboard would help a lot.

</comment><comment><USER25> I've been kicking around an idea that would also require a similar sort of browser-based drawing tool. Is there a good library for building these, or do I start with a blank <canvas>?

<comment><USER26> There are a lot of graphics libraries out there, but I've been using PixiJS.

[https://www.pixijs.com/](https://www.pixijs.com/)

</comment></comment><comment><USER27> I haven't really done role-playing about 20-years but aren't dungeon crawls a bit simplistic compared to freeform adventure story telling?

</comment><comment><USER28> The "old school" style they're advertising is mostly based off of Dyson Logo's maps. I think it's interesting that this seem to come out after Dyson started teasing a similar program for his Patreon subscribers. On one hand, it's a great looking piece of software, but it feels a little scummy to write software that heavily leans on Dyson's style and then directly compete with him.

<comment><USER29> Is this somehow distinctive from Dragon Magazine / Dungeon Magazine from the late 80s in a way I'm not seeing? Or eg. the various TSR boxed settings with dungeons?

<comment><USER30> That cross-hatching-in-the-walls thing is fairly distinct, and I saw it immediately on Dyson's blog but not on a quick survey of old Dragon/Dungeon maps. That said, Dyson is clearly _going_ for that aesthetic mostly, so it could be convergent evolution, and I'm hardly up to date on current styles for maps in other places.

<comment><USER31> Just taking a look at Dungeon Magazine on archive.org and it seems that crosshatching in walls is pretty common, at least in the early editions.

[https://archive.org/details/Dungeon_Magazine_002/page/n25/mo...](https://archive.org/details/Dungeon_Magazine_002/page/n25/mode/2up)

[https://archive.org/details/Dungeon_Magazine_002/page/n45/mo...](https://archive.org/details/Dungeon_Magazine_002/page/n45/mode/2up)

[https://archive.org/details/Dungeon_Magazine_002/page/n51/mo...](https://archive.org/details/Dungeon_Magazine_002/page/n51/mode/2up)

[https://archive.org/details/Dungeon_Magazine_003/page/n31/mo...](https://archive.org/details/Dungeon_Magazine_003/page/n31/mode/2up)

[https://archive.org/details/Dungeon_Magazine_003/page/n41/mo...](https://archive.org/details/Dungeon_Magazine_003/page/n41/mode/2up)

</comment></comment></comment></comment><comment><USER32> This is really great, I love the clean UI and ease of use. This must have been a huge amount of work!

</comment><comment><USER33> Panning does not work in safari

</comment><comment><USER34> Could use a link to jump into an existing example map.

</comment><comment><USER35> [https://dungeondraft.net/](https://dungeondraft.net/)

<comment><USER12> Amazing! Windows only, though :(

<comment><USER20> Their big feature for the next major release is a Mac version, and until then it works quite okay in wine. Probably better in Linux/Wine, as that tends to have fewer graphics bugs.

My enjoyment factor of both DungeonScrawl and DungeonDraft is a bit different, as with 'Scrawl it's awesome sketching a big event location, whereas with 'Draft I get a Bob-Ross-ian spark when adding minor details. A candle here, a floating corpse there, some cobwebs and fungi…

I can pair DungeonDraft with FoundryVTT, where you can get virtual lighting support imported from the maps. So you don't have to "paint" your walls twice, once for the pure visuals and once to see where vision and movement is blocked.

</comment></comment></comment><comment><USER36> Any chance of splicing each grid as a unique PNG and building it up in JSON like Tiled when exporting?

</comment><comment><USER37> I can't really tell what this is. Is it just a drawing tool that applies styles, or does it procedurally generate dungeons for you? If it doesn't procedurally generate, it would probably still be more fun to just use graph paper and some coloured pens

<comment><USER38> It just draws things.

This one generates dungeons:

[https://watabou.itch.io/one-page-dungeon](https://watabou.itch.io/one-page- dungeon)</comment></comment>


A justification of Test Driven Development using Queueing Theory - <AUTHOR> http://jbrains.ca/permalink/285

<comment><USER2> He assumes that there are no more bugs once you put tests before coding, and he also assumes that there is zero cost to putting tests before coding. (Or at least, he doesn't mention these things.) With assumptions like that you can prove anything. Even without queuing theory.</comment>


Why Google needed to build a graph serving system - <AUTHOR> https://blog.dgraph.io/post/why-google-needed-graph-serving-system/ <comment><USER2> Hi all, author of Dgraph and the article here.

Glad to see this post trending on HN. I'm around if you want to ask any questions, and will share whatever I can about my experience with graphs and the decisions at Google.

Since leaving Google, I've built Dgraph [1]. It is open source, designed for horizontal scalability, ACID transactions and provides incredible performance for both reads and writes. And of course, it solves the join-depth problem as explained in the post. So, do check it out!

And do remember to give us a star on GitHub [1]. Your love helps other open source users give Dgraph a real shot in their companies with similar leadership struggles as I experienced at Google.

[1]: [https://github.com/dgraph-io/dgraph](https://github.com/dgraph- io/dgraph)

<comment><USER3> I'm sorry your efforts failed internally. Our infrastructure is somewhat ossified these days: the new and exotic are not well accepted. Other than Spanner (which is still working to replace Bigtable), I can't think of a ton of really novel infrastructure that exists now and didn't when you were around. I mean, we don't even do a lot of generic distributed graph processing anymore. Pregel is dead, long live processing everything on a single task with lots of RAM.

I suspect your project would have been really powerful had you gotten the support you needed, but without a (6) or a (7) next to your name it's really hard to convince people of that. I know a number of PAs that would benefit now from structuring their problems in a graph store with arbitrary-depth joins and transactions. I work on one of those and cringe at some of the solutions we've made.

We've forgotten what it's like to need novel solutions to performance problems. Instead, we have services we just throw more RAM at. Ganpati is over 128GB (it might even be more) of RAM now, I suspect a solution like dgraph could solve its problems much more efficiently not to mention scalably.

Good on you for taking your ideas to market. I'm excited to see how your solution evolves.

<comment><USER2> One of the TLs was a T7. Got overruled by T8 :-).

As Google is growing, there are many T7s around. So, you really need T8 and above to actually get something out of the door, when it comes to impacting web search.

P.S. Dgraph is Apache license, written in Go/Protobufs/Grpc. Google might have an appetite for that, worth pushing internally. [https://github.com/dgraph- io/dgraph](https://github.com/dgraph-io/dgraph)

<comment><USER4> My understanding is that by default, dgraph query responses are in json. Is it possible to get gRPC responses instead?

<comment><USER2> Dgraph exposes both HTTP endpoint and gRPC endpoint. All our official clients use the gRPC endpoint, including Go, Java, NodeJS client.

[https://docs.dgraph.io/deploy#ports- usage](https://docs.dgraph.io/deploy#ports-usage)

</comment></comment></comment></comment></comment><comment><USER5> Thanks for writing this up! I worked with the Knowledge Graph as a contractor at Google in 2013. My manager had a neat idea for adding our own Schema and triples (actually quads) for a specific application.

It surprises me how many large companies do not have a 'knowledge graph strategy' while everyone is on board with machine learning (which is what I currently do, managing a machine learning team). I would argue that a high capacity, low query latency Knowledge Graph should be core infrastructure for most large companies and knowledge graphs and machine learning are complementary.

<comment><USER6> Sounds like a good Enterprise saas product idea

<comment><USER7> The beauty of RDF is it can support schema promiscuity i.e. you can have many schemas for your same data. You can do that with OWL. In typical graph databases you are fixed on nodes, properties and edges, but in RDF you can choose what should be node and properties arbitrarily. My issue with RDF has been performance works great for categorical, relationship heavy data, but not so much for numerical data.

<comment><USER5> I am also a fan of RDF and OWL. My two 'practical semantic web' books (one in Common Lisp and one for Jave/Clojure/Scala) are now 8 years old, but you can get free PDFs from my web site. Those books badly need second editions, the material is interesting but outdated.

<comment><USER8> Mark, are you up for helping with solid security for cl-solid? (The library now works with both Neptune and Allegrograph) [https://github.com/gibsonf1/cl- solid](https://github.com/gibsonf1/cl-solid) \- live use of cl-solid library here [https://graphmetrix.net](https://graphmetrix.net) , sometimes very lively discussion of Solid here: [https://gitter.im/solid/chat](https://gitter.im/solid/chat) (including Tim BL)

<comment><USER5> I have no time right now. Contact me in 5 weeks and we can talk then.

<comment><USER8> Great

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> OOT, but the illustrations on their home page ( [https://dgraph.io/](https://dgraph.io/) ) is veeery cute, you should check it out.

<comment><USER10> It makes you wonder how the product handles mushroom and more importantly, snake.

<comment><USER2> Badger don't care!

[https://www.youtube.com/watch?v=4r7wHMg5Yjg](https://www.youtube.com/watch?v=4r7wHMg5Yjg)

</comment></comment></comment><comment><USER11> I've been using DGraph for quite a while now in a side project of mine.

I looked at a number of other graph dbs, and landed on dgraph for a few reasons.

a) I like the query language. It felt natural to me. That's just my opinion though. Other languages felt cumbersome, and I didn't feel like I was operating on a graph.

b) I needed write performance. I'd talked to colleagues about their experiences (I have some friends at graphy companies) and every time I asked "what about X graphdb? could it handle this write load?" the answer was "no, definitely not".

I chose dgraph and it's been working like champ. Support via slack has been solid, they're focusing on the right things (performance, correctness), and I have a lot of confidence in the future of the project.

<comment><USER2> Not just you, a lot of Dgraph users appreciate the intuitive model of GraphQL+- (modification on GraphQL), and how it fits naturally with JSON and apps. When I started in 2015, I didn't imagine that our decision to use GraphQL would become such a major "feature." GraphQL has taken off like a wildfire, which was hard to imagine back in 2015 when it just launched in July 2015.

In fact this year, we plan to align GraphQL+- even more with the official GraphQL spec. Stay tuned!

re: write perf, it just got a whole lot better with 3 changes I made recently, and there're still a lot of room for optimization: [https://github.com/dgraph- io/dgraph/commit/b7189935e6ec93aec...](https://github.com/dgraph- io/dgraph/commit/b7189935e6ec93aec04762321252b70f98466985)

<comment><USER11> Like I said, a big part of feeling confident in my choice to use DGraph is the direction - the improvements to the QL and performance, as well as the Jepsen tests, are exactly the work I want to see as a consumer.

And that is one hell of an improvement. Nice work.

</comment></comment></comment><comment> chao- This a really neat historical perspective, although I do find one detail odd:

> _If you are sneering at the memory requirement, note that this was back in > 2010. Most Google servers were maxed at 32GB._

As I recall, Nehalem EP (launched 2008 or 2009?) could handle in excess of 100GB per socket? Not cheap necessarily, but definitely still counted as "commodity hardware" for that era. I say this recalling that even my mid-tier workstation from then could handle 48GB (in that wonky era of triple-channel RAM), though I only had it loaded with 12GB. Then again I could see, if said servers in 2010 were at the end of a purchasing cycle from 2007 or so, that they were "maxed" at 32GB?

Anyway, my from-memory nitpick doesn't detract from the article's ultimate point, though: distribution was an obvious need that would only become more pressing.

<comment><USER12> The hardware replacement cycle is much longer than you've implied. Servers I am building today will still be TCO-positive for 15 years. In 2010 Google data centers would still have been full of their first generation dual-socket Opteron machine.

<comment> chao- I will happily stand corrected, because I was only implying based on very limited awareness. I am only directly familiar with workstations, where I've seen replacements occur on the order of 4-7 years, not servers or entire datacenters. However, everything I read seemed reinforce an idea that servers follow a similar pattern. Maybe I was just wildly misinterpreting?

With the relative stagnation in per-core performance since about 2010 I could easily see something built then expecting to last to 2025, power consumption improvements nonwithstanding.

</comment></comment></comment><comment><USER13> Insightful article / ad. Maybe the problem with the idea is that in practice not many users want to do joins at arbitrary depths levels, e.g. "sort all the children of US presidents by height" is probably not a very common query needing a massively distributed architecture?

<comment><USER14> "Travel from NY to LA over the weekend" was probably not a very common demand needing a massive investment in air travel infrastructure and equipment circa 1900. User demand is bounded by the capability of the tools commonly available.

<comment><USER13> True, but to a certain extent only. The tail only gets so fat...

</comment></comment></comment><comment><USER8> For the scalability side of graph, we've just started using Amazon Neptune RDF, and have been amazed that we can easily and very quickly run sparql queries on 2.6 billion triples on their smallest 2 core 15 gig machine. Incredible capacity.

<comment><USER2> As others mention, Neptune is based on Blazegraph. It is a layer on top of Amazon Aurora and has the typical graph layer issues I mention my blog post (in particular the join depth problem).

When Neptune was launched, I wrote another article critiquing its design. Worth a read: [https://blog.dgraph.io/post/neptune/](https://blog.dgraph.io/post/neptune/)

<comment><USER15> I'd missed the announcement of Neptune, so thanks for alerting me. Have you reviewed the Microsoft Azure Cosmos DB, with its graph access layer?

<comment><USER2> I haven't. But, the design is the same. Graph layer on top of another DB, because they didn't want to invest in building a native graph DB.

In general, that approach doesn't lead to good performance, as I explained in the blog post.

</comment></comment></comment></comment><comment><USER16> I've been looking for an open source graph nosql style database that makes it easy to do gather-scatter on a GPU. It's been tough.

 _Plug:_ some people are working to fork/restart Blazegraph development, which is the database Amazon took to make Neptune. Its GPU features are missing, as they were originally kept proprietary. If you have any interest and know how, this could be an exciting project to contribute to!

[https://github.com/blazegraph/database/issues/86](https://github.com/blazegraph/database/issues/86)

</comment><comment><USER17> There is also Janusgraph which Google contributes to [http://janusgraph.org](http://janusgraph.org)

<comment><USER18> If you don't do datastructures right, then it will suck on performance.

Imagine doing a search-engine in a rdbms without special datastructures.

<comment><USER17> janusgraph is usually used with Cassandra. This is the schema - [https://docs.janusgraph.org/latest/schema.html](https://docs.janusgraph.org/latest/schema.html)

<comment><USER18> See mrjn replies. You need native graph db.

</comment></comment></comment></comment><comment><USER19> This reminded me of SQL.

> Say, you want to know [people in SF who eat sushi]....If an application > external to a database was executing this, it would do one query to execute > the first step. Then execute multiple queries (one query for each result), > to figure out what each person eats, picking only those who eat sushi.

A query like that in SQL could also suffer from "a fan-out problem" and could get slow. It's often faster to put subqueries in the From clause than the Select. It's certainly faster than an app taking the rows of one query and sending new queries for each row, as many developers do. For example:

      select
          p.name,
          (
              select max(visit_date)
              from visits v
              where v.person = p.id
          ) as last_visit
      from people p
      where p.born < '1960-01-01'

can be slower than:

      select p.name, v.last_visit
      from people p
          join (
              select person, max(visit_date) as last_visit
              from visits
              group by person
          ) v on p.id = v.person
      where p.born < '1960-01-01'

In the second example, you first form a new table through a subquery of the original. This is not what a new programmer would first try. The first example, with the subquery in the Select clause, is closer to the train of thought. Also you would guess that getting the last visit dates of each person is more efficient after you know who to look for (like, only the people born before 1960). But in my experience, it often hasn't been.

Therefore likewise with this San Francisco sushi query, I was thinking that if it were SQL then I would (1) get all people in San Francisco, (2) get all people who like sushi, and then (3) join them, to find their intersection. Lo and behold, I then read that it is the same solution in this humongous graph database:

> The concepts involved in Dgraph design were novel and solved the join-depth > problem.... The first call would find all people who live in SF. The second > call would send this list of people and intersect with all the people who > eat sushi.

<comment><USER2> Now consider doing this in a distributed setting, with SQL tables splits across dozens or 100s of machines (see Facebook TAO).

<comment><USER20> So are there any benefits in dgraph over SQL/RDBMs(matureness and widespread query lang) for single machine setups?

<comment><USER2> I don't want this to become a flame war between SQL and Graph. But, we see a lot of developers come from SQL to Dgraph, because the join performance of SQL gets worse as the data size grows, and so devs have to resort to doing aggressive data normalizations. Even more of a problem when your entire dataset is on a single machine.

For e.g., Stack Overflow normalizes their data to avoid doing joins: [https://archive.org/download/stackexchange](https://archive.org/download/stackexchange)

<comment><USER21> Did you mean denormalize?

<comment><USER2> Yes, I meant denormalize. Thanks.

</comment></comment></comment></comment></comment></comment><comment><USER22> Slightly off topic, but while we're on the subject of graph databases: could anyone point me at some useful introductions to the subject? Thank you.

<comment><USER2> I'd suggest starting with [https://docs.dgraph.io/get- started/](https://docs.dgraph.io/get-started/), and then going to [https://tour.dgraph.io](https://tour.dgraph.io). It gives you all you need to understand the query language (based on GraphQL) and get you up to speed building your first app on a graph DB.

<comment><USER11> I'll echo this - I learned about graph databases using DGraph.

</comment></comment></comment><comment><USER23> How does Dgraph compare in performance, features to something like Neo4j?

<comment><USER2> Slightly old post, but we did some benchmarks couple of years ago: [https://blog.dgraph.io/post/benchmark- neo4j/](https://blog.dgraph.io/post/benchmark-neo4j/)

We also get to hear benchmark conclusions from users who tried out Neo4j, Janus, Datastax DSE Graph, etc. They typically find Dgraph to be the best performing one.

There's a comparison chart here: [https://github.com/dgraph-io/dgraph#dgraph- compared-to-other...](https://github.com/dgraph-io/dgraph#dgraph-compared-to- other-graph-dbs)

<comment><USER23> Thank you for the comparisons. I think the approach you've taken with the documentation and the support out of the box for libraries in Go, Python etc is excellent, the playground is definitely a winner!!

</comment></comment></comment><comment><USER24> [https://archive.fo/IsWTe](https://archive.fo/IsWTe)

<comment><USER25> Thank you. That page freezes Chrome, ironically.

</comment></comment><comment><USER26> This was a great article, and I'm a competitor! :) Learned a lot about the history.

My one nit-pick is they say distributed joins are hard though. But they don't really justify it other than the assumption other engineers have come from a traditional DB background. It is not a hard problem if you try to solve it on your own though: You do the join on the client, incrementally (or debounced if necessary) as the data is streamed. This works very well at scale in production (TB/day) for our system.

<comment><USER27> There are a variety of distributed join scheduling models to consider depending on the latency of the network and the size of the data sets. Techniques like Bloom filters used to accelerate joins by minimizing the data transmitted are novel to many developers. Layer in HA and transactions, and it becomes hard.

</comment></comment><comment><USER6> We are using AWS Neptune in building our marketing analytics product. What I have realized is that it has best of both worlds, the querying power of SQL databases and schemaless functionality like nosql databases.

<comment><USER2> Consider Dgraph :-).

[https://blog.dgraph.io/post/neptune/](https://blog.dgraph.io/post/neptune/)

<comment><USER28> I loved working with Dgraph, but I hate doing system/database administration work.. do you have any plans of providing a hosted solution?

<comment><USER2> No concrete plans yet, but that's a direction we want to go in.</comment></comment></comment></comment>


When Irish Eyes Are Crying - <AUTHOR> http://www.vanityfair.com/business/features/2011/03/michael-lewis-ireland-201103?printable=true

<comment><USER4> The bank bailouts made very little sense, the biggest toxic bank, Anglo Irish Bank, was not a retail bank. They specialised in property financing. Letting them go under would not have resulted in the Irish Government having to cover huge amounts of deposits. The current majority party (Fianna Fail) has a history of connections to property developers and this connection is what a lot of people though spurred the saving of Anglo. Now more information is bubbling up about the exposure of European banks to Anglo and the other Irish banks. Europe (especially Germany) wants this mess cleaned up because if the Irish Government drops the guarantee then their own banks will have a huge hole in their finances. These were essentially risky investments made by foreign banks that the Irish taxpayer is now being forced to pay back.

Bank of Ireland and Allied Irish Bank were profitable (extremely so in the context of the Irish economy) and if kept in government hands would eventually make back their losses. Anglo made it's profits on the back of the property bubble, not something that will be repeated any time soon.

This is the perspective of an Irish economist on the debacle: [http://www.ronanlyons.com/2011/01/18/the-irish-bank- sandwich...](http://www.ronanlyons.com/2011/01/18/the-irish-bank-sandwich- time-for-the-eu-to-face-up-to-reality/)

<comment><USER5> I'm in Berlin now and it appears the Germans feel these so called bailouts are rescuing countries that don't have their affairs in order. I think these bailouts are mostly to prop up German and French banks. Banks in Europe and the U.S. have finally figured a way to socialize their losses and privatize their gains. Big bonuses are still the norm at American banks even though it was their bad bets that led the U.S. to its current economic mess.

<comment><USER6> "Big bonuses are still the norm at American banks even though it was their bad bets that led the U.S. to its current economic mess."

I agree wholeheartedly, but there are _so_ many people who readily (and hastily) blame "dumb and poor" people who shouldn't have gotten mortgages, Fannie and Freddie (US loan guarantors) who backed those mortgages, and one rogue liberal US representative (Barney Frank) who somehow bullied the entire 500-member legislative branch and then President Bush into allowing more mortgages to be handed out to poor people, thus causing the worldwide financial crisis.

Seriously, that's what people actually believe. What can be done to convince them that it's way, WAY more complicated than that?

<comment><USER5> Yeah, it's hard to convince people that the CRA was not responsible for the real estate collapse. There were property bubbles in Spain, Ireland, Britain, etc. The CRA was responsible for those, obviously.

It's easy and natural for one to want to collapse a complicated issue into something manageable and understandable. Even if there is no evidence for it.

<comment><USER7> Holding interest rates artificially low, and very favorable tax treatment for real estate investments and gains, clearly added a lot of air to the bubble.

</comment></comment></comment></comment></comment><comment><USER8> Anger is certainly an appropriate reaction in circumstances like this, but I find articles like this really gloss over the nature of the shared responsibility for what happened.

Yes, banks and governments (including the US! - we just haven't felt the full brunt of it yet) engaged in many unsustainable and downright fraudulent practices. Asset bubbles are breeding grounds for such things. On the other hand, no one forced homebuyers to take on loans they knew they could not afford, or spend borrowed money at unpayable rates.

Now, everyone wants a bailout. Neither banks nor consumers should get them. Iceland actually did the right thing by taking its banks into receivership and breaking them up. The banks screamed bloody murder and threatened national chaos, and the Icelandic economy did grind to a halt for almost a year. Now, they seem to be on a road to sustainable recovery. This is not true in either the rest of Europe or the US, where the bailouts came fast and generous. Look at today's job report. Is that the sign of economic growth?

While the decisions were justifiable at the time, TARP, TALF, and the like need to be admitted as mistakes and corrected. If this means recognizing all of our largest institutions as insolvent, so be it! The nation requires a banking system, but not any individual bank. It will hurt badly, just as it hurt in Iceland, but the alternative is Ireland and Greece.

<comment><USER9> On the other hand... for the equivalent square feet in Tucson, my rent went up 50% over a decade for the same square footage. When you see your rent go up so drastically, while everyone is getting low interest rate mortgages, you start to question your "fiscal responsibility." If I had bought in 2006, I couldn't have sold my property today. However, we didn't know where the "new normal" would even out.

People took on these home loans, in most cases, because of the fear of rent increasing past their ability to pay. If you buy, you may not be able to afford it now, but eventually inflation will bring the numbers into line, especially not knowing where the "new normal" would be.

<comment><USER10> _People took on these home loans, in most cases, because of the fear of rent increasing past their ability to pay._

This is one of the most retarded ideas I've ever heard.

Renting: a small, liquid, short duration, unleveraged short position.

Owning: a large, illiquid, long duration, highly leveraged long position.

So basically, to follow a short term trend, people decided to tie up a large chunk of their life savings in dangerous, long term leveraged bets. Financial literacy FAIL.

<comment><USER5> I guess it's fine to put a lot of blame on people who bought houses they ended up not being able to afford. However, there were fraudulant practices by mortgage companies.

Banks have more responsibility for the mess because they are the experts (allegedly) at assessing risk. They are the ones that got ratings agencies to give high scores to the mortgage backed securities. They are the ones in a position to wreck the economy by collective failure. They are the ones who got a bailout and clamored for one.

An individual homeowner who makes a bad bet doesn't ruin the economy. Too big to fail banks who make millions of bad bets do ruin the economy. They socialized their losses and continue their extremely high pay and bonuses.

The anger should mostly be aimed at the banks. Especially in light of their dubious foreclosure practices. People are mostly financially illiterate. People don't understand percentages and compound interest. People are not rational (most of the time). A regulatory apparatus that isn't beholden to the banks is what is needed.

<comment><USER10> _They are the ones that got ratings agencies to give high scores to the mortgage backed securities._

And that's an issue between them and the people/institutions they sold those securities to. It does not in any way absolve individuals for making dumb bets, particularly when those individuals often lied on their loan applications.

The housing bubble simply could not have occurred without financially illiterate people making bets they didn't understand in the hopes of getting rich quick. I agree with you that any individual bank had a more harmful effect than any individual real estate speculator, but that's just a matter of size. Collectively, real estate speculators are just as guilty as banks.

I don't disagree with you at all concerning bailouts. We should end "too big to fail".

But on the other hand, try to remember that real estate speculators also received massive subsidies (frannie, mortgage deduction) even before the crisis. The banks, excluding GM, have more or less paid back their portion of the bailout (this even includes the AIG portion). Real estate speculators have not paid back their subsidies.

 _The anger should mostly be aimed at the banks. Especially in light of their dubious foreclosure practices._

Many loan originators did shoddy paperwork to save a buck, and didn't transfer the lien's to the right party. Real estate speculators are now exploiting the legal problems caused by this shoddy paperwork to break their contracts and squat in homes they don't own. The loan originators absolutely deserve to be sued by the bond purchasers over their negligence.

But the real state speculators are also culpable for exploiting legal quirks to steal homes from their rightful owners [1]. We may not be 100% sure whether BankAm Loan Issuing Corp, BankAm Loan Servicing Corporation or the MBS corporation is the rightful owner of a home - but we are quite sure that the squatters currently occupying it stopped paying their mortgage and therefore do not have any right to it. The squatters deserve to be foreclosed upon, and then the loan issuer, servicer and bondholders can fight over who really owns the home.

Banks are a convenient political target. But real estate speculators are just as guilty as the banks.

[1] Obviously, not all real estate speculators are doing this, but I have read quite a few media accounts of this.

<comment><USER8> Spot on.

The whole "Fraudclosure" thing is a bit of a red herring. Yes, banks should be made to pay for their negligence in complying with basic mortgage laws, but does their negligence change the fact that the occupants of those homes have not and cannot pay their mortgages? The mortgages are delinquent, no matter who the actual owner of the note is. All the controversy has done is slow down a process that will eventually happen either way.

TBTF needs to go. Many banks, including big boys like JP Morgan and Bank of America, probably need to be recognized as insolvent despite the bailout money they took. The foreclosure mess in its own way probably only slows this down by continuing the cloud the status of the properties in question.

<comment><USER11> I thought JP Morgan came out relatively unscathed from the crisis, weren't they the one bank to not need TARP funds?

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Pardon if I deviate a bit from the main topic.

I live in Ireland, and it was quite disheartening when the last budget cuts appeared. Taxes were increased across the board. If you were earning 25,000 Euros a year, you would pay an extra 1000 Euros in tax (and surprisingly enough, this low earner class was the worst beaten income group by hike in tax in percentage terms - 4+% more tax!).

Since its general consensus that banks, govt. etc are at fault (to which I agree), I want to say something which generally is ignored, just a theory. The Celtic Tiger years, due to low Corporation Tax rates, have had the similar impact on the economy as Resource Curse (<http://en.wikipedia.org/wiki/Resource_curse>). Ireland got rich so fast with all the incoming money that lots of careless spending by government as well as people was ignored. The property prices went up crazy, things became awful expensive etc etc. When nobody cared about how much govt spent or how much banks are landing real estate developers, this was bound to happen IMHO. If Ireland had gotten rich slowly and on its own (by increasing exports, productivity etc), such rackless spending bubble economy would probably never have manifested itself.

<comment><USER13> The UK spent the last 10years in a period of genuine economic growth - <USER2> still managed to increase it's national debt.

There is no limit to how much government's can spend, however they get the money!

<comment><USER14> Until 2002 it was actually going down. Then the increase was moderate and it finally exploded in the 2007 recession.

</comment></comment></comment><comment><USER15> As someone currently living in Ireland, I found the subtitle of this article particularly appropriate: "Where's the rage?". The Irish government bankrupted the country many times over by putting the debts of the banks on the backs of the people. But, unlike France, for example, where people have taken to the streets and brought the country to a halt to be heard, in Ireland there is nothing like the level of activism that one would expect given the depth of the economic quagmire.

I find it quite sad to see how a country that was once such a hotbed of political unrest has become so passified by the recent wealth that it experienced. My guess is it has to do with people having the feeling that they are stakeholders in the system now, with mortgages and fungible assets, and so they are less willing to want to subvert the system itself rather than muddle along even with unsatisfactory political solutions.

<comment><USER13> Best reply I heard was an interview with a new graduate.

"We will just do what we have always done when the government fucks-up - <USER3> emigrate!"

<comment><USER16> In a nutshell, that's it. People have a sense of resignation on the whole thing. There is very little prospect of things improving any time soon. The choices would appear to be a) adjust to a lower standard of living, or b) get out.

</comment></comment></comment><comment><USER17> It's interesting to compare Greece and Ireland.

Greece was profligate, openly cooking the books since at least 2002 (<http://en.wikipedia.org/wiki/Greek_Financial_Audit,_2004>) whereas Ireland was doing the noble thing by imposing austere measures on itself.

Yet both needed bailouts by the EU recently, and both will probably wind up defaulting.

<comment><USER18> Ireland and Greece are COMPLETELY different. Greece's government budget is wildly fraudulent. Ireland's government was responsible, but decided to encumber taxpayers with private banking losses. Irish voters, like those in Iceland, may yet reject this deal.

I know I would. The international banking cabal has captured the "democratic" processes across most of the West and is using those governments to plunder their people.

<comment><USER19> " _Ireland's government was responsible...._ " absolutely untrue.

" _As a small, open economy, Ireland was always going to be vulnerable to global swings," says Ray Kinsella, an economist at University College Dublin. "But this is predominantly a self-inflicted crisis._ "

[http://www.businessweek.com/magazine/content/10_48/b42050820...](http://www.businessweek.com/magazine/content/10_48/b4205082055642_page_4.htm)

There was an expensive, taxpayer-funded study done (can't seem to find it atm, but if you Google around you may find it) which basically concurs with the above statement - our crisis was largely our own making. The international credit crisis may have accelerated it slightly, but it would have happened eventually anyway.

I attended a great presentation by a guy called Ed Walshe, who is the former president of one of Ireland's biggest colleges (<http://en.wikipedia.org/wiki/Edward_M_Walsh>) where he laid out in black and white all the idiotic stuff the government got up too when times were good. Things like massively increasing the numbers of civil servants - not in front line services like doctors, nurses and teachers; but useless bureaucrats in offices in Dublin, massively increased civil servant pay - way ahead of inflation (this effectively bought them popularity for the next election), cutting income taxes across the board, 'throwing gasoline on the fire' by giving extra tax breaks to property developers (section 23 and section 50 tax breaks) when things were extremely overheated and the brakes should have been applied etc. etc. I can dig up a copy of the presentation on my hard drive if you are especially interested.

Also adding to the problem was non-existent regulation of the banks and construction industry in general. The head of the construction federation was a guy who was former Fianna Fail (the main party in government). The head of the banking lobby was a former member of a party that was in power with Fianna Fail. Basically at the highest levels in Ireland the whole scene operated like a gigantic old boys' network that would put things to shame in most other parts of the world.

</comment></comment></comment><comment><USER20> One of the few positive things to have come out of the financial crisis of 2008 is that it has probably killed any prospect of Scotland becoming independent - we used to be promised that we could share in the same kinds of success as Ireland and Iceland if only we had the courage to go it alone!

I doubt if many people have the appetite for being stuck in a small country with a financial monster like RBS or HBOS.

[NB I am a reformed Scottish Nationalist]

<comment><USER21> Whenever I hear about people wanting to break away like that I'm always reminded "There's strength in numbers". As the world economy starts to flatten out, we're all learning that it comes down to a population game. I wonder if we'll see a point where two countries vote to merge together to create a stronger economy.

<comment><USER22> See: the European Union. Shared currency, very little restriction to travel and trade, made it possible to compete economically with the UK.

<comment><USER19> Yes, the EU has those advantages, but it's bloated, unwieldy, mainly tries to serve the interests of Germany (biggest economy) and is ill-structured to deal with the type of problems currently affiliating the 'peripherals' (or 'PIGS': Portugal, Ireland, Greece, Spain). The features of a common monetary policy are great when times are good, but allows the problems of one nation to spread like a virus when times are bad. So it's a double-edged sword.

<comment><USER14> I find that statement a bit weird. Germany are on the hook for something like 120 billion in this bailout. That's €1500 for every man, woman and child in the country.

And that's after essentially funding the EU for the past 20 years. Though things have levelled a bit of late, they used to have net contributions about 3x higher than the next one (the UK).

</comment></comment></comment></comment></comment><comment><USER23> "Which way entire nations jumped when the money was made freely available to them obviously told you a lot about them: their desires, their constraints, their secret sense of themselves. How they reacted when the money was taken away was equally revealing."

So true, for countries _and_ people.

</comment><comment><USER24> Here's the previous article in what seems to be a series: [http://www.vanityfair.com/business/features/2010/10/greeks-b...](http://www.vanityfair.com/business/features/2010/10/greeks- bearing-bonds-201010)

</comment><comment><USER19> Wow, great to see Michael Lewis, one of my favorite authors, coming to little ol' Ireland and do such an in-depth piece on us. I had no idea that the insane decision to bail out Anglo Irish was so directly linked to Merrill Lynch's 'advice'.

Interesting fact: I was sitting less than 50m away from the heroic egg-thrower when he went for the kill. Wasn't in the same room unfortunately. We were warned to hide our bank ID badges that day going in and out of work :-)

</comment><comment><USER25> One fundamental problem we have in Ireland is the way in which we elect our Dáil (parliament).

There's a 4 minute section in this video (43m45s onwards ) <http://www.rte.ie/player/#v=1090239> which explains better than I can, but here goes:

In short: 1\. There are multiple seats (often with a few candidates running from the same party) per constituency. 2\. It doesn't take many votes to get elected (Any more than 8,000 votes got you elected in my constituency of 86,000 people).

Politicians don't compete on the differences between their parties because they're also competing against another locally running party member. Instead, they wage very local personality based campaigns. Since they only need a few thousand votes, they can and do call door-to-door to chat with everyone they can. Pothole need filling? Let your local candidates know and by god it'll be fixed immediately.

This means that the people who end up making important decisions on whether or not to take on 100s of billions of euros worth of debt are the people who came across best on a few thousand house calls.

<comment><USER13> There's a great book written by a civil servant in Ireland's foreign ministry in the 80s.

He said he had two maps on his wall, one of the eastern bloc enemy and a bigger one of his minister's constituency - a crisis (eg a pothole) in the constituency was the priority.

<comment><USER25> Ha! That doesn't surprise me at all. What's the book called?

There is an appetite to reform this stuff now, but it's hard to imagine the winners of the game when played by those rules deciding to change it dramatically.

<comment><USER26> 'An Accidental Diplomat'? <http://www.amazon.co.uk/dp/1902602390>

</comment></comment></comment></comment><comment><USER27> Completely off topic, but the ?printable=true in the url is a very nice touch

</comment><comment><USER28> Australia also has had a long, rolling property boom, with bank lending behind it all.

It didn't pop when expected because our economy was propped up by mineral/metal prices, due to China's demand and surprisingly little supply from other countries. Both may change.

<comment><USER29> It still has a bubble which hasn't popped. Australia is def a nation to watch.

<comment><USER30> Crossed my mind to ask if anyone saw any parallels with Australia. Glad to see someone mention it.

My rough interpretation of the article is that cheap labour from Poland distorted the Irish economy, and the banking contagion resulted in loans to the Polish who couldn't afford the loans, and subsequently disappeared, especially once the whole economy went sour.

An important difference to Ireland's story is that the people who make up Australia's cheap imported labour face greater restrictions in entering the country as they are, with the exception of New Zealanders who are have the same living standards as Australians, international students (and possibly people on working holiday visas) who, to my understanding, are required to demonstrate sufficient funds to get by. Staying on after graduation of whatever course is not guaranteed and has become more difficult post a recent policy change. Australia runs a points system in issuing residency visas and has just cut the number occupations/courses which receive points.

My feeling is that the same expectations fueled bubble has arisen here (I'm in Melb) but has been sustained by the resilient resources dependent economy as well as the capital inflows from those who see Australia as an attractive place to invest and/or also live/have a holiday home.

"real-estate bubbles never end with soft landings. A bubble is inflated by nothing firmer than expectations."

Although the factors driving the housing bubble in Australia are different from those in Ireland, if we concede there is a bubble in Australia, and we listen to economics professor Morgan Kelly, we're due for a crash.

A couple counterpoints to the above: China's demand for resources will probably span another two or three decades, and also Australia's financial lending practices are not and haven't been as lax as those of Ireland or the US.

</comment></comment></comment><comment><USER31> some previous discussion on this: <http://news.ycombinator.com/item?id=2171381>

</comment><comment><USER32> Banking seems a lot like a gambling except that it's heads you win and tails they lose.

Lend big into a property bubble and you'll be rewarded with colossal bonuses.

The bubble bursts, loans go bad and the share price collapses.

However the main banks banks are considered too big to fail and the taxpayer has to bail them out.

Bonuses (smaller ones) for exceptional performance continue to be the norm, rolling heads the exception.

Why don't the shareholders get rid of their employees, the bankers who have overseen the collapse of their asset?

The shareholders are Pension funds who, while they ostensibly have the little peoples'interests to preserve, are actually run by people from the same gene pool as the bankers themselves.

These people sit on one anothers remuneration committees.

Dog does not eat dog.

<comment><USER33> "Too big to fail" is a classic perverse incentive, and a mockery of the idea that the financial industry can somehow self-regulate.

Unfortunately, if you remove deposit insurance (or any of its variants), people's savings once again become subject to the self-fulfilling whims of insolvency or _the unfounded rumour of insolvency_.

<comment><USER34> > Unfortunately, if you remove deposit insurance (or any of its variants),

I've heard that Canada didn't get deposit insurance until the 50s or 60s, well after the US.</comment></comment></comment>


Benchmarking BDB, CDB and Tokyo Cabinet on large datasets - <AUTHOR> http://www.dmo.ca/blog/benchmarking-hash-databases-on-large-data/

<comment><USER2> Sorry, but 500MB DB size is a tiny dataset these days (anything < 1GB is tiny, < 4GB is small, < RAM on a single node (~8GB-64GB) is medium, < Disks on a single node (~128GB to a few TB) is large, huge dataset requires multiple nodes and typically above 128TBs.)

<comment><USER3> I agree, plus TC has a ton of parameters that can be tweaked, and the defaults are pretty small. The one that has the most pronouced effect is the bucket size, or the "width" of the hash table. The bigger, the less chance of collisions, which means you have to follow a linked-list to find the exact record. He used 11M keys, so a bnum in the range of 40M would be much quicker.

I benchmarked TC b+tree on a 1TB db with ~350M keys, and it worked great. I would publish the numbers, but I'm embarrassed that they aren't very rigorous.

cdb docs say it has a limit of 4GB, which makes it pretty much worthless for anything I would use it for.

<comment><USER4> Actually, the core CDB data structure only limits keys and values to 4GB _each_ , not in total:

<http://www.unixuser.org/~euske/doc/cdbinternals/index.html>

The hash algorithm used also only produces a 32-bit key, meaning you'll be limited to 2^32 total records. Again, though, unless your data is of trivial size, that gives you considerably more room to work with than a hard 4GB limit.

 _Edit: doh! can't use double-asterisk for exponent on HN_

<comment><USER5> Then why does the Perl implementation (<http://search.cpan.org/~msergeant/CDB_File-0.96/CDB_File.pm>) warn of the error:

CDB database too large -- You attempted to create a cdb file larger than 4 gigabytes.

?

<comment><USER6> I believe rcoder is saying the 4GB database limit is a property of the implementation rather than the cdb format.

</comment></comment></comment></comment></comment><comment><USER6> It would be nice if DJB would release CDB under the public domain like he has now done with most of his other software. However, there's a great public domain implementation by Michael Tokarev I'd recommend: <http://www.corpit.ru/mjt/tinycdb.html>

<comment><USER7> A caveat to TinyCDB in Windows:

Don't forget (In Windows) to specify O_BINARY eg:

      O_RDONLY |O_BINARY

Also the case in Berkeley DB 1.86.

Otherwise it opens a file in ASCII mode, when Windows writes \r\n when it reads in \n... , and dies after just a few records.

<comment><USER6> I have a Lua binding to tinycdb. I hadn't considered Windows compatibility and this bug exists in my code. I've just committed a fix, thanks.

</comment></comment></comment><comment><USER8> In my experience, the downside of BDB is simply the license. There is no way for me to use it in my program (and distribute my program) without opening up my source. I can't simply 'query' a BDB server - by using BDB at all I have to link to it and also open source my own code as part of the Sleepycat License (or so I've been told - IANAL).

<comment><USER7> DB up to and including 1.86 are Berkeley license (basically 'do anything with this but include this notice' but without open source requirements), but DB up to and including 1.86 only allow < 2GB databases. :-(

I tried to upgrade it with 64-bit integers, but it's such convoluted C code I can't make head nor tail of it.

Also try _buying_ BDB ($20,000). I emailed them asking for a discount, but Oracle (who owns them now) never replied. :-(

<comment><USER9> If by convoluted, you mean "half the source code is detailed comments", then sure...

</comment></comment></comment><comment><USER4> I'm a bit surprised at the poor showing of Tokyo Cabinet in this test, given the amount of buzz it's gathered in the last few months, but the CDB results honestly don't surprise me in the least -- it's a special-purpose datastructure wrapped in a thin library that just _smokes_ any other DB type if your workload allows for a complete rebuild of the database on each update.

<comment><USER10> As someone mentioned up above, the author probably didn't tune the bucket number appropriately.

</comment></comment><comment><USER11> It's a shame there is not Redis among the tested KV DBs. I guess the networking layer is not an option in this specific use case.</comment>


Slicehost goes down for major outage - Still no ETA on the fix. - <AUTHOR> http://status.slicehost.com/2012/2/13/stl-a-networking-issues-4

<comment><USER2> It's 15 hours now. They have some very irate customers.

Rackspace bought them a year ago and have been migrating accounts to their own servers, but this huge outage doesn't reflect well on Rackspace management either.

</comment><comment><USER3> They've been down for about 10 hours now, and are doing a very bad job at updating their status blog with any information. Apparently they've lost a router.</comment>


100k Digitized Art History Materials from Getty Research Institute Now Available - <AUTHOR> http://blogs.getty.edu/iris/100000-digitized-art-history-materials-from-the-getty-research-institute-availble-in-dpla/ <comment><USER2> Some of those later images could use some cropping- this seems related [https://news.ycombinator.com/item?id=8362379](https://news.ycombinator.com/item?id=8362379)

</comment><comment><USER3> As a former Systems Librarian I am excited BUT the execution of being able to see and find interesting things is always difficult. The searches and the sets are what makes the collection awesome and I am hoping as we learn more and more we can see amazing things at home that we would never have had opportunity to view otherwise.

</comment><comment><USER4> The DPLA who is handling this has a pretty great API. Check it out: [http://dp.la/info/developers/codex/](http://dp.la/info/developers/codex/)</comment>


Amazon Prime Video Now Available in More Than 200 Countries - <AUTHOR> http://www.businesswire.com/news/home/20161214005486/en/ <comment><USER2> They launched in Uruguay now, and at a really competitive price (under 3 dollars), compared to Netflix's 9 dollar and rising.

Their catalog is really underwhelming so far, though.</comment>


Classic Chinese Novels - <AUTHOR> https://en.wikipedia.org/wiki/Classic_Chinese_Novels <comment><USER2> I'm going to guess this was posted because [https://news.ycombinator.com/item?id=21792763](https://news.ycombinator.com/item?id=21792763) linked to [https://crypto.stanford.edu/~blynn/c/apl.html](https://crypto.stanford.edu/~blynn/c/apl.html) which commented "APL is the Classical Chinese of programming languages. ... Lengthy prose written in Classical Chinese, though minimalist and beautiful, is hard to read. While there are many great classical Chinese poems, there are only Four Great Classical Novels." linking in turn to the same Wikipedia page as this posting.</comment>


Equity Questions - <AUTHOR> A tech startup in US with 2 founders are trying to hire me as third employee. They got seed funded few months back and have contractors and few employee's outside of US.<p>Currently, i earn $250K and going in with 50% salary cut. How much equity should i look for ? <comment><USER2> no less than 20%.

</comment><comment><AUTHOR> Any suggestions folks ?</comment>


Intel may be incentivizing mini PC makers to delay or not build AMD-based models - <AUTHOR> https://www.notebookcheck.net/AnandTech-editor-reports-that-Intel-may-be-incentivizing-mini-PC-makers-to-delay-or-not-build-AMD-based-models.461262.0.html <comment><USER2> Ian Cutress's original comment the article is based on: [https://twitter.com/IanCutress/status/1249819270537715719](https://twitter.com/IanCutress/status/1249819270537715719)

<comment><USER3> Is it dishonest to call incentives bribery ?

<comment><USER4> Yup & Intel got dinged ~2 billion for it last time AMD jumped ahead with Athlon vs P4. It took 5 years for AMD to recoup that money during which time Intel used it to retool & revamp their processor line with Core. The problem is that 2 billion is probably peanuts vs the kind of market share gains AMD should have rightfully had.

</comment></comment></comment><comment><USER5> The funny thing is, there are already smaller OEM's changing to AMD.

It would be interesting to see them come bigger than the bigger OEM's

</comment><comment><USER6> There also might be simpler explanation and that is development takes time and multiple platforms take multiple of development cost.

<comment><USER7> Bribery is actually a pretty simple explanation.

<comment><USER8> Its not bribery, its MCP (Meet Comp Program)!

Nowadays its no longer in a form of clear $cash money$ bribe, instead Intel offers cross promotion (including you in their marketing, pushing your product to their clients), bundle deals (buy hiend motherboard, receive CPU and/or SSD for free), or bonuses (sell X amount at $MSRP, receive free product bumping your margins by as much as 20-30%).

BTW That $1.45 billion European Commission (EC) penalty? Intel not only never paid that, but actually managed to fight and bribe their way to possibility of overturning it altogether. [https://www.telegraph.co.uk/technology/2017/09/06/victory- in...](https://www.telegraph.co.uk/technology/2017/09/06/victory-intel-eu- court-orders-11bn-fine-re-examined/)</comment></comment></comment>