Apache Guacamole - <AUTHOR> http://guacamole.incubator.apache.org <comment><USER2> I've been using Guacamole for 3+ years over many different releases. Support about 20+ users at any given time. It is a "Win" in my book. RDP Performance is decent for regular use. We make extensive use of VNC with it. We spawn Virtual VNC/X Instances with Xvnc4 and serve Windows Apps Running in WINE, within the Virtual X Display. It's a great way to "Webify" older enterprise apps so long as you are willing to support it. Thanks to Guac's extensibility, We even have our own print daemon that pushes PDFs to the end user while in VNC sessions.

<comment><USER3> Agreed. Recently set up a 100 user experiment on a beefy server in our research department were I used Guacamole (with RDP) to handle the problem/assumption of participants only having a web-browser. Worked fantastically!

</comment></comment><comment><USER4> 12,000 years ago when 10BaseT still roamed the earth we had things called X-terminals. All the X-terminal had to do was to run an X server, while all computing was done on the large (for the time, typically DEC or IBM) computers some-where else. When X-terminals were packed up and sold by the pallet load we saw having "our own CPU" on our desks as a great liberation. So here's my gormless question: What has changed that fully distributed systems aren't as desirable?

<comment><USER5> >> What has changed that fully distributed systems aren't as desirable?

The amount of stored personal data (content, installed software, preferences/configuration) that the average user wants to access, and the concerns (expense, privacy, resiliency, speed) related to distributing that data.

The average user of today doesn't want more CPU, they want their _stuff_. For most people, it's far more efficient to open a window to the remote machine that has their stuff than it is to try to move all that stuff onto the machine they're sitting at.

</comment></comment><comment><USER6> I absolutely <3 guacamole. Its definitely part of every workspace I provision, its easy to use and plus you get control of everything. I'm glad its an ASF project now, it'll probably get even more visibility than it had before.

<comment><USER7> > I'm glad its an ASF project now

This is why incubating projects should use (Incubating) everywhere and clearly announce their status to avoid confusion. It isn't part of the ASF yet and, while unlikely, the incubation could not work out for any number of reasons. The usual suspects of successful incubations are mentoring them, though, so this will largely amount to very time-sensitive pedantry on my part.

(I was very confused and missed the footer on mobile the first time I read the page. I thought some new project I hadn't heard of had incubated oddly quickly.)

<comment><USER6> I mistyped as well, I meant to say incubating as well.

</comment></comment></comment><comment><USER8> This is an interesting project. I'm glad they built this as we're undoubtedly going to see situations where people absolutely won't use a regular client but have a HTML5 browser they will use. This will serve that niche. Might also help us privacy-aware geeks get them off services that sell them out by facilitating easy hookup to their own desktop and data. Not sure how well it will do that but there's potential. Being Apache project is good thing as usual. :)

EDIT: Given JS vs HTML/CSS discussion elsewhere, I should also give credit to Apache site engineers for using tech that loads instantly and visually pleasing despite NoScript. Loads pretty fast on mobile, too. Good counter- example to bloat of modern Web.

</comment><comment><USER9> If anyone wants to quickly test this out, I made a docker-compose file that uses the official images.

[https://github.com/JoelJ/docker-compose- guacamole/](https://github.com/JoelJ/docker-compose-guacamole/)

<comment><USER10> Nice! That makes it a lot easier to try it out quickly! Will look into it :)

</comment></comment><comment><USER11> When is this preferable to using a VPN or SSH tunnel to carry VNC/RDP/Spice to a local native client?

It seems to me that either you have the ability to install such a client, XOR you don't trust the local machine enough to want to use it.

<comment><USER12> Probably when you want to use the browser (from computers you do not control) or when the user is not that computer literate.

<comment><USER13> Between this and Google Play apps (seems unlikely but I still hope we will have the ability to side load APK) on ChromeOS, we can bring the likes of Citrix to the home -- a permanently Internet-connected headless computer at home and connecting to it from your Chromebook.

</comment></comment></comment><comment><USER14> If Mike Jumper is on this thread, Congratulations!

I worked at a small company that leveraged Guacamole to provide access via the web to a legacy Windows desktop application and working with the Guac team (including direct support from Mike) was a pleasure.

Also, it works well and the bits I saw were well architected. For reference, I replaced their web client with my own AngularJS wrapper at the direction of management and it was pretty easy (with some help from Mike because I was not...still am not...an amazing JavaScript guru).

</comment><comment><USER15> Is there a good Linux equivalent to Window's terminal services? Ideally I'd be able to migrate my X session from physical display/keyboard hardware to VNC then back to physical hardware when I log out. I'd also settle for just being able to easily manage a number of sessions over VNC (with decent authentication).

<comment><USER16> There have been a number of attempts. The closest is [http://www.xrdp.org](http://www.xrdp.org) ([https://github.com/neutrinolabs/xrdp](https://github.com/neutrinolabs/xrdp)), which does basic session management against a backing Xrdp or Xvnc server, proxying either to RDP.

I haven't used it in a while (~6m), but to get the most of it you really had to compile from source and understand how to manage the various daemons (xrdp.ini is a mess, and configuring some things was rather counter- intuitive). Otherwise you wouldn't have resizable desktops (as in xrandr, not rescaling) and other niceties.

Not sure about audio, now that I think about it, but the gist of things is that so far no mainstream distribution got xrdp right or usable out of the box (unless we're talking about the niche LTSP-related stuff).

</comment></comment><comment><USER17> First time heard about this project, thanks to HN. I use both Teamviewer and VNC, how does this compare to them? Especially Teamviewer that is.

</comment><comment><USER18> I'd love to see this packaged up in Homebrew to have an alternative to Back to My Mac that only requires a web browser as a client.

What Dynamic DNS solutions are most popular?

<comment><USER19> I think there's already a docker image that has this packaged up. That might be a lot easier than trying to patch it up for OS X? [0]

[0] [http://guacamole.incubator.apache.org/doc/0.9.9/gug/guacamol...](http://guacamole.incubator.apache.org/doc/0.9.9/gug/guacamole- docker.html)

<comment><USER19> Don't know why I suddenly got downvoted after this comment was voted up?

The Docker image is officially supported by the project, and Docker is easy to install on a Mac, and it's turnkey on AWS, Google, Heroku...

From Guacamole's docs: ``Guacamole can be deployed using Docker, removing the need to build guacamole-server from source or configure the web application manually. The Guacamole project provides officially-supported Docker images for both Guacamole and guacd which are kept up-to-date with each release.''

[https://hub.docker.com/r/glyptodon/guacamole/](https://hub.docker.com/r/glyptodon/guacamole/)

Getting it on a Mac requires installing a slew of dependencies and two daemons (one of which is a Java servlet container). Docker containers almost make it too easy with not too much overhead. To get it working on a Mac, you'd need to install a JVM and tomcat on top of the guacd daemon.

Alright, I'll shut up now. Thought I was being helpful by providing a solution now, but I guess what you wanted to hear was let's hope for a turnkey solution on OS X Homebrew rather than use a Docker image straight from the horse's mouth.

</comment></comment></comment><comment><USER20> My guess is that this project is very poorly advertised...

A couple of months ago I was playing with remote desktops and did not find this marvel.

I ended up playing with X2Go, which is nice BTW.

I am wondering... Assuming I have a Linux remote desktop, can I disconnect and reconnect after a while BUT leave all of my applications running? I mean, without logging out.

<comment><USER21> Check out tmux. It's great at doing that for terminal apps. [https://tmux.github.io/](https://tmux.github.io/)

<comment><USER20> I know about tmux (and gnu screen), but i was thinking of something like pause/resume.

Once upon a time i read that in the eighties at Sun Microsystems they had a big fat thin-client based architecture with dumb thin clients that only had vga port, keyboard, mouse and a smart-card reader.

The nice thing about such architecture was that once your smart-card was pulled out, the screen blanked and your remote session was closed.

But your desktop session was still running, on the server!

The coolest thing about this was that basically you could pick any desk in the building and just sit there and work.

Or you could go to one of your colleagues' desk, pull out his/her smartcard, insert your one in, and show him/her what you've been working on, ask for help, collaborate or anything.

This has always fascinated me.

I was wondering if I could use guacamole to do something similar: leave my desktop running in a datacenter somewhere in the world and use whatever to just connect to it and "resume" working.

<comment><USER22> But that's exactly what tmux does. Are you familiar with tmux attach and tmux detach? (Some people only use tmux for split screens and to keep the session from dying).

</comment></comment></comment></comment><comment><USER23> Guacamole is amazing! Maybe this is a good place to ask this question: Is there a way to make RDP work for two simultaneous users? Currently, as soon as the second RDP connection is made, the first one is logged out. So, we're forced to use VNC instead.

<comment><USER24> Official Microsoft answer: buy a server version of Windows

Unofficially there are a few hacks that either patch the terminal service or replace it with a wrapper that tricks it. Not sure if I would trust stuff like that for important systems. (e.g. [https://github.com/stascorp/rdpwrap](https://github.com/stascorp/rdpwrap))

</comment></comment><comment><USER25> anyone have hands on experience with this and noVNC? Clear winners on either side?

<comment><USER26> I have been using an old version of Guacamole for quite some time, and it works very well. I don't like that it is so heavy (Tomcat, ..) and the setup and user management is rather complicated. Maybe that has changed lately, I sure hope so, because once it's set up, it works beautifully.

noVNC is much lighter, but it seems very limited.

<comment><USER2> Guacamole has support for LDAP Auth.

</comment></comment></comment><comment><USER27> When did it become an Apache project? It used to be its own thing.

</comment><comment><USER28> What is an alternative to RDP for linux? VNC has always be slow and cluncky for compared to RDP.

<comment><USER27> TigerVNC actually works well, I started using it over WAN recently and it's very smooth. Traditionally VNC has sucked. But it's still not as good as RDP in some ways.

</comment></comment><comment> tek-cyb-org So can I install this on a windows computer that I manage? For example, to replace teamviewer?

<comment><USER2> If you have the right version of Windows, you can enabled RDP access. You can then use Guacamole to connect to the Windows Computer.

</comment></comment><comment><USER29> I have to admit this is pretty awesome! I am going to have to suggest this to our platform team at work as a way to allow others to access our build servers. Hopefully this can be configured with strict access controls.

</comment><comment><USER30> Ah if I recall, Red Hat use this for their training environments. Haven't actually tried using it though, as they also support ssh access and I went with that.

</comment><comment><USER31> Bravo! Seems very well done, and seems to work rather well.

</comment><comment><USER32> It would be great to get ATEN KVM support in there too.

<comment><USER33> Oooooh, what I'd give for something that could be a transparent Java-free gateway to all those IPMI / stand-alone KVM interfaces...

</comment></comment><comment><USER34> I love this project, even made an auth-plugin for it. Bye bye RDP and VNC! (for end-user cases at least)

</comment><comment><USER35> Time to ditch Teamviewer.

</comment><comment><USER36> This is the coolest thing I've seen all morning!</comment>


Diana Kennedy - <AUTHOR> https://en.wikipedia.org/wiki/Diana_Kennedy <comment><AUTHOR> First paragraph of the article, for some context:

>Diana Kennedy (born 3 March 1923)[1] is an authority on Mexican cooking known for her nine books on the subject, including The Cuisines of Mexico, which started changing how Americans view Mexican cooking. Her work is the basis of much of the work of Mexican chefs in the United States. Her cookbooks are distinctive because they are based on her fifty years of traveling Mexico, interviewing and learning from cooks of all kinds in the country, and from just about every region.

Apart from all she has done about research and writing about traditional Mexican cooking, the part about her quinta (homestead), i.e. the section "Quinta Diana" is also interesting.</comment>


Show HN: Okk – Create instant activity groups with people nearby - <AUTHOR> http://okk.co

<comment><AUTHOR> Hi all — this is our initial MVP. A fair way of describing it would be Meetup but with smaller groups forming around specific activities instead of a larger general interest group. Have a look and would be happy to hear your thoughts.

We tried to steer away from making another specialty dating app — though obviously some "primal" forces are always at play.

A big question for us right now is whether or not people are motivated enough to network when it's not for work or dating. Or, perhaps a more interesting way of posing the same question: are most people only motivated to network within the comfortable context of a larger organization (school, work, industry event, etc.) or for dating; or is there some appeal to something that is more unstructured? We were joking that we could have called the app "last minute friends".</comment>


Vulkan Applications Enabled on Apple Platforms - <AUTHOR> https://www.khronos.org/news/press/vulkan-applications-enabled-on-apple-platforms <comment><USER2> I think this is fantastic news to combat the fragmentation across platforms (OpenGL, Vulkan, Metal), and allow people to move on past the lowest common denominator (outdated OpenGL [ES])!

</comment><comment><USER3> > The Khronos Vulkan Portability Initiative continues to refine and define a > universally portable subset of Vulkan 1.0 that can be run at native > performance levels over Metal and DirectX 12 drivers. Released into open > source today is the MoltenVK library from The Brenwill Workshop, which > translates calls within the Vulkan portable subset to underlying Metal calls > on macOS and iOS. MoltenVK uses the open source SPIRV-Cross cross-compiler > to translate Vulkan shaders into underlying native code formats. MoltenVK is > being made freely available for all developers, with no fees or royalties > needed to ship commercial applications.

</comment><comment><USER4> So it's Vulkan on top of Metal. Should performance be ok?

<comment><USER5> Early indications[0] show it appears to be okay, and by okay, I mean better than Apple's OpenGL stack.

This is a subset of Vulkan, but it appears to be a broad enough subset to enable at least some game developers to more or less use the same code base.

[0] [https://arstechnica.com/gadgets/2018/02/vulkan-is-coming- to-...](https://arstechnica.com/gadgets/2018/02/vulkan-is-coming-to-macos-ios- but-no-thanks-to-apple/)</comment></comment>


Ask HN: How do I get more help from my coworkers? - <AUTHOR>

As a new hire at my company, my productivity is mostly determined by how quickly I can learn the new system. Of course this means reading lots of source code, but sometimes the fastest way to figure things out about the company's system is to hear it from my coworkers.<p>However, developers tend to be extremely busy and are usually very hesitant to spend time pair programming or teaching best practices, even when asked. What are some things I can do to convince them to help me out? <comment><USER2> Try to code something with "the new system", and ask them specific help with that. Although your problem is not real, and none of your bosses asked you to do that, try to code anything with things you didn't learn yet. Then ask them "Hey, I am having a hard time with this, could you help me?"

It is always better if you are in a real example than just learning by theory, and it's better for them to teach you.

</comment><comment><USER3> Buy them lunch, or even better, beer.</comment>


If a Google Employee Dies His Spouse Gets Half His Salary For The Next 10 Years - <AUTHOR> http://www.businessinsider.com/google-spouse-death-benefits-2012-8

<comment><USER2> Despite the gendered headline, this applies to women working at Google, too.

</comment><comment><USER3> Which other top tech companies offer this? (If any)</comment>


How Disney Uses Technology To Control Crowds In Their Theme Parks - <AUTHOR> http://www.nytimes.com/2010/12/28/business/media/28disney.html?src=tptw

<comment><USER2> Somewhat related, the Touring Plans guys do an awful lot of analysis of Disney crowds and ride wait times to build itineraries for different types of park visitors.

<http://touringplans.com>

<comment><USER3> Yeah, they have been doing a bunch of great data mining

</comment></comment><comment><USER4> From Disney's _fake_ future job postings:

       Experience Required:
       Roller Coaster Tycoon 5+ years

It's interesting to me that although there's someautomation in here they're also obviously using mostly human dispatchers. So it's more like air traffic control than road traffic management (which afaik is mostly automated these days).

I'd love to know if that's because humans are a better layer to the entertainers and other employees or because they require comprehensive oversight for machine decisions. Or maybe it's just cheaper to throw some Junior Imagineers at LCD screens and walkie-talkies than write the algorithms?

</comment><comment><USER5> They've also done a great job with the Fast Pass system, which has saved me from an empty visit on more than one occasion.

</comment><comment><USER6> _If Pirates of the Caribbean, the ride that sends people on a spirited voyage through the Spanish Main, suddenly blinks from green to yellow, the center might respond by alerting managers to launch more boats._

Why not just have all the boats going at all times (assuming there is a line)?

 _average Magic Kingdom visitor has had time for only nine rides - out of more than 40 ... In the last few months, however, the operations center has managed to make enough nips and tucks to lift that average to 10._

Maybe it's just me but raising that average by only 1 ride doesn't seem like a very significant improvement for all that effort.

If they just allowed a fewer number of people into the park on any given day, would the customers be more likely to return again? I wonder if more people would spend money while inside the park if it was less crowded?

<comment><USER7> _Why not just have all the boats going at all times (assuming there is a line)?_

If there are too many boats, then the people on the ride will have to wait longer after finishing the ride to get off.

<comment><USER8> Parent is correct - it's a matter of staffing - you need extra people to load & unload all of those boats.

</comment></comment></comment><comment><USER9> This is outstanding.

Just In Time Entertainment

</comment><comment><USER10> Man I love Disney world but is this crowd control or manipulation?

"Control is Disney's middle name, so they have always been on the cutting edge of this kind of thing"

<comment><USER11> Smart crowd control and deft manipulation. While the overarching goal is to make more money, the route to that is by giving visitors what they want from the park: faster fun and preoccupation.

"Control" is only a bad thing when there are nefarious motives, negative consequences or a lack of options for those being controlled. People willingly submitting to the Disney bear pit lap it up (as I have in the past).</comment></comment>


It's hard to troll the Haskell community - <AUTHOR> https://gist.github.com/quchen/5280339

<comment><USER2> Poor Haskell trolling. Mentioning silly languages like javascript which are so far beneath the attention of a true Haskell functional programmer that they would be more annoyed by an errant ant.

Quality Haskell Trolling: Arguing Monomorphism restriction is a good idea.

</comment><comment><USER3> No, I think you are just awful at trolling.</comment>


Opening up some details of OpenSolaris under Oracle - <AUTHOR> http://ptribble.blogspot.com/2010/02/opening-up-some-details-of-opensolaris.html

<comment><USER2> I know I'm probably one of like 5 HNers who gives a shit about OpenSolaris, but it looked pretty dicey there for a bit, and I'm glad Peter Tribble posted this and that there seems to be some movement and support from Oracle.</comment>


Let's make a Teeny Tiny compiler - <AUTHOR> http://web.eecs.utk.edu/~azh/blog/teenytinycompiler1.html <comment><USER3> If you want to dive deeper into this topic, I also recommend the wonderful book Crafting Interpreters by Bob Nystrom. It can even be read for free online: [http://craftinginterpreters.com/](http://craftinginterpreters.com/)

I'm not affiliated with it, but I devoured it recently and thought it was amazing.

<comment><USER4> Author of Teeny Tiny here! I really like Crafting Interpreters too (I link to it at the bottom). Also highly recommend the book Writing an Interpreter in Go.

<comment><USER5> Link to _Writing an Interpreter in Go_ website:

[https://interpreterbook.com/](https://interpreterbook.com/)

</comment></comment></comment><comment><USER6> I've got a bunch of links about compilers in a GitHub repo:

[https://github.com/melling/ComputerLanguages/blob/master/com...](https://github.com/melling/ComputerLanguages/blob/master/compilers.md)

<comment><USER7> Nice! I have been collecting a list as well :) [https://gist.github.com/cellularmitosis/1f55f9679f064bcff029...](https://gist.github.com/cellularmitosis/1f55f9679f064bcff02905acb44ca510#simple- compiler-codebases-to-study)

</comment></comment><comment><USER8> What I always admired about the ZX-Spectrum's Basic was that it skipped the entire idea of a lexer, because, well, the keyboard let you input tokens directly.

<comment><USER9> I think it was closer to the other way around. The keyboard let you input tokens because it didn't have a lexer.

I suspect this is more due to the memory cost of storing a literal line of code more than the ROM or CPU cost of a lexer. Going back to the ZX-80 storing even the current line being typed as characters was probably a burden.

<comment><USER10> AFAIK the keyboard was also just very cheap and a pain to type on.

<comment><USER11> I don't remember complaining about keyboard. The only issue was loosing memory because the memory expansion (16ko) had bad contacts.

<comment><USER12> Ha, my dad tells me we had a strict rule of no running in the house while he was working on the Spectrum for this exact reason.

</comment></comment></comment></comment></comment><comment><USER13> I wonder if he left out the

        LET nums = nums - <USER2>

on purpose.

</comment><comment><USER14> Unfortunately this is not yet a compiler; it's a lexer and a parser. Traditionally these are the first things you present in a compilers course, but from my point of view, that's kind of dumb, for two reasons.

First, a parser isn't a compiler, so this means you get through the whole first part of the course without having a compiler. By contrast, a code generator _is_ a compiler, at least if there's _some_ way to invoke it.

Second, although the theory of formal languages and parsers is complex, well- developed, and fascinating, it's not clear that it's _important_ to building a compiler. People have written large systems in FORTH. MUMPS famously ran a number of hospital systems without being able to break a statement across lines. And a complete scannerless BNF grammar for S-expressions (without readmacros) is something like this:

        <sexp> ::= <idchar>+ " "* | "(" " "* <sexp>* ")" " "*

And _many, many_ huge systems have been written in Lisps whose grammars amount to little more than that.

My favorite grammars are PEGs, which accommodate scannerless parsing rather better than LL(1) and LALR(1) parsers, because PEGs have infinite lookahead with worst-case linear-time parsing (at the expense, it must be admitted, of being a huge memory hog). PEGs are also composable in a way that LALR and LL grammars aren't. I wrote a one-page PEG parser generator targeting JS at [https://github.com/kragen/peg- bootstrap/blob/master/peg.md](https://github.com/kragen/peg- bootstrap/blob/master/peg.md) a few years back.

But I think an excessive focus on the _syntax_ of a programming language really detracts from what's really revolutionary about programming languages (and compilers), which is their _semantics_. We have much better theories of semantics now than we had in the 1970s when the traditional compilers course was being laid out. Books like _Essentials of Programming Languages_ can be wonderful introductions to the fuzzier ones, and there's a lot of work in things like Coq and Idris to come up with tractable formalizations. But you don't need much of a theory of semantics to get a simple compiler up and running!

But I haven't ever actually taught a compilers course, so maybe my ideas are miscalibrated about what students would enjoy and find motivating (having a working compiler for a simple language after doing the first problem set) and what students will find difficult out of proportion to any rewards it might bring (getting recursive-descent parsers for complex grammars working, debugging precedence rules, refactoring grammars to eliminate left recursion, encountering unexpected exponential-time parse failures, etc.).

<comment><USER15> CMU's Compilers course (15-411)[1] does a lot of what you want. Students write code generation code in the very first assignment. A particular delight of this approach is that the first assignment is for compiling straight line code while one of the later ones is for optimization. If you implement SSA form for the optimization assignment, all of the test cases from the first assignment compile down to effectively one precomputed result. Very clear marker for how far you've progressed!

[1] [https://www.cs.cmu.edu/~janh/courses/411/16/](https://www.cs.cmu.edu/~janh/courses/411/16/)

<comment><USER14> Thanks! This looks really cool! There are a number of courses coming out with this kind of philosophy. I really like what I've seen of the nanopass framework, for example.

</comment></comment></comment><comment><USER16> Thankful that is a dialect of BASIC! The other great references mentioned here parse C-like languages. Although I can try figuring out, I'm interested to see a good tutorial that does parse BASIC syntax. Also interested to see how it is done in Python (whereas many use C/C++ or Java which have many features that make things a little easier). Looking forward to seeing this series finished.

</comment><comment><USER17> I really like this.

Python is the first language I learned. So it's like this is being written in my native tongue.

I've read crafting interpreters, numerous times both before and after learning some Java basics, but seeing it in Python made it click.

Also love the way you used classes. That helped clarify some confusion I had with classes in Python.

<comment><USER18> I'm working through Crafting Interpreters right now, converting the Java to Python as I go. Most things are fairly straight forward to convert, but there are definitely some topics that I've had to learn about in Java (not a language I know very well) so I could figure out how to do it in Python. Really great book and great learning project.

</comment></comment><comment><USER19> REPEAT seems superfluous as only ENDWHILE is needed to end the loop. And, oh yes who forgot to decrement nums?

Edit: s/N/nums

</comment><comment><USER20> Python!? Anyway wait for part 2 and 3.

<comment><USER4> I released Part 2 yesterday! (I had forgot to update the link, which is now fixed.)

[http://web.eecs.utk.edu/~azh/blog/teenytinycompiler2.html](http://web.eecs.utk.edu/~azh/blog/teenytinycompiler2.html)

</comment></comment><comment><USER21> Not a fan of people sneaking referral links here. You could have easily recommended the book without the referral link and if you were going to link it, be open about it being a referral link.

<comment><USER4> Didn't mean to, sorry. I just copied and pasted it from the blog post (which is labeled). I've removed it.

<comment><USER22> You don't need to apologize. Their comment is uncalled for and just seems mean-spirited. I thoroughly enjoyed your article and am looking forward to future posts. I hope you post them here when they're up! Cheers.

<comment><USER21> It wasn't mean spirited and it was justified. If people are using link shorteners to hide the fact that their link is a referral, then it invites everyone to sneak referral links in their comments here. Do you really want that?

He removed that link from his comment and he apologized because it was the right thing to do. Also, virtue signaling to encourage bad behavior isn't right, no matter how good or superior you think it makes you feel. Especially considering you weren't smart enough to realize that I wasn't criticizing the referrals in his article ( valid ), I was criticizing the shortened link in his comment which was a referral.

<comment><USER22> Yeah, no. In civil discourse you give people the benefit of the doubt that they weren't doing something for nefarious purposes but that they maybe made an honest mistake. In this case it was simply a copy paste error which they pointed out. They apologized because they were being civil and polite not out of some admission of guilt. Somehow you were the one that missed all of this. I think you can see what others thought of your tone as well. Both of your comments here come across as very angry.

<comment><USER21> > In this case it was simply a copy paste error which they pointed out.

Right and life went on before you decided to play "hero".

> They apologized because they were being civil and polite not out of some > admission of guilt.

But you told him not to apologize. So that means you told him not to be civil? Also, it's not polite to speak for others as it isn't part of civil discourse.

> I think you can see what others thought of your tone as well.

Others? Just you. And it's rather childish to "appeal to downvotes".

> Both of your comments here come across as very angry.

"Yeah, no."

Listen, the only one causing drama here is you. I made one innocuous and helpful comment. The guy responded and everything was settled. The conversation had nothing to do with you and yet here you are.

</comment></comment></comment></comment></comment></comment><comment><USER23> There seems to have been an explosion of such articles within the past few years, despite things like Crenshaw's tutorial existing for several decades; I wonder why a large number of people have suddenly started thinking "I understand this, I should write an article about it".

My favourite demonstration of a "teeny tiny compiler" is still C4: [https://news.ycombinator.com/item?id=8558822](https://news.ycombinator.com/item?id=8558822) Perhaps it inspired all these compiler articles?

<comment><USER24> <I deleted this because it wasn't nice>

<comment><USER4> Actually, my students were having trouble following other tutorials so I wrote this for them. (I also just love talking about compilers!)

I'd summarize my tutorial as a shorter version of Crenshaw's.

I love seeing more and more compiler tutorials. They all have different goals and perspectives.

<comment><USER24> Sorry, my comment wasn't in the HN spirit.</comment></comment></comment></comment>


Cayley – An open-source graph database - <AUTHOR> http://cayley.io <comment><USER2> For people here experienced with graph databases, do you typically use the graph db as your primary data store or do you use it in combination with something like postgresql? If you're using both, can you talk about how that works and if it's been successful for you?

I'm curious because I've had a couple situations where I thought using neo4j (or some graph db) would be a natural fit for something I wanted to do, but otherwise I thought most of my other data fit into postgresql just fine. My instinct is that if I'm doing this in a web app then querying from two different databases is going to slow down my responses a lot.

<comment><USER3> I've got a lot of background in RDF graph stores. It depends a lot on your usage, but I think for your typical web app, you'd be better off using a Postgres install, and making use of fancier features like WITH RECURSIVE as necessary. Graph stores often miss out on features like guaranteed relational integrity and guaranteed constraints, which I find invaluable for safe application development in the face of concurrent updates.

Graph stores are typically much slower for repetitive data that fits cleanly into a relational model. This isn't to say they're not useful - for more irregular data they're a fantastic fit - it's just that very irregularly structured data isn't the common case.

Of course, you can always use two different stores - much like many sites do with a separate lucene/elasticsearch index for text search - but your graphing needs must be relatively componentised for that to work well.

<comment><USER4> Curious: What RDF triple stores have you used, and in what kind of application?

I was looking into using Stardog for a metadata repository I was building, but we ended up (probably unwisely) bastardizing Postgres into a bunch of self- join heirarchies.

<comment><USER3> The ones I've spent most time with were Jena/TDB, Virtuoso, 3store, along with a couple of proprietary engines. BigOWLIM is also a strong contender in the space. I've used them in the context of both object storage and semantic web data storage.

My experience is that if you don't need constraints/enforced relational integrity, RDF stores make for really simple/easy object storage. There's definitely a performance tradeoff, though - depends on what you need, really!

</comment></comment></comment></comment><comment><USER5> Interesting 'triple' they use :)

        // Our triple struct, used throughout.
        type Triple struct {
            Sub        string `json:"subject"`
            Pred       string `json:"predicate"`
            Obj        string `json:"object"`
            Provenance string `json:"provenance,omitempty"`
        }

<comment><USER3> This is weirdly ubiquitous in the RDF store world as well. I eventually gave up talking about 'triple stores' and called them 'RDF stores' instead :-)

<comment><USER6> It is basically required for SPARQL 1.1. (Named) graph support. Often people call them quad stores.

</comment></comment></comment><comment><USER7> I can't get over the logo being a 3-colored version of a 2-colorable graph.

<comment><USER8> That's intentional. It represents robustness and scalability: you can add an edge between a red and yellow node, without having to re-color.

(actually I've just made that up)

</comment></comment><comment><USER9> I've been using a graph db as my primary database with my last project(neo4j) and it has been a pleasure. I wish a good graph database was hooked in with the new Google Cloud stuff so it could be queried/visualized/performance analyzed in a similar fashion to the BigTable demo earlier

<comment><USER10> are you using it for production purposes or for your small projects?

if it is for production, how is your read/write performance?

<comment><USER11> Neo4j wants everything in memory, so the bottlenecks would come after your data-set size outstrips the memory available.

<comment><USER12> Fast disks are also important for write performance since Neo4j syncs every change - big RAID arrays of SSDs help.

<comment><USER13> This is one place where Log-Structured-Merge systems can really prove themselves. There is rarely a need to sync on every change as most of them are independent. You can usually gain lots of write-throughput by syncing at the speed the hardware is optimized for and squeezing as many append-only changes in to those logs. At Orly we've spent quite some time looking at ways to deal with these bottle-necks.

</comment></comment></comment></comment></comment><comment><USER14> One question: I'm curious what your motivation was for providing a Gremlin style query language? As opposed to something like Cypher? Was it a case of expressiveness, personal preference etc....?

<comment><USER15> I wanted something easy to pick up -- Javascript seemed natural. I also wanted to be as agnostic as possible, because graph query languages are interesting and worth experimenting with. That's why it has submodules per-language and it's (relatively) straight-forward to write another.

Cypher's not bad either, but it's not "just Javascript". But I'm totally taking commits if someone wants to port it :)

</comment></comment><comment><USER16> Here is a brief introduction

[http://google-opensource.blogspot.hk/2014/06/cayley- graphs-i...](http://google-opensource.blogspot.hk/2014/06/cayley-graphs-in- go.html)

</comment><comment><USER17> Almost all graph databases use gremlin as querying language but I really love orient db's approach of using sql[1] for querying graphs. It feels more natural in my opinion plus it lowers the barrier to entry for people who already know about sql.

Some of the things I like about cayley

1\. Switchable backends(I wonder if I can configure it to use couchdb as a store)

2\. Documentation get right to the point. When I first tried my hand at graph databases I could not understand where to start but cayley's approach is pretty straight forward and it wins plus points from me for including a big dataset :)

A question: I see no mention in the docs about running it on multiple nodes (where does it stand with regards to CAP etc)

[1]([https://github.com/orientechnologies/orientdb/wiki/SQL](https://github.com/orientechnologies/orientdb/wiki/SQL))

</comment><comment><USER18> Has anybody tried out Orly? [https://github.com/orlyatomics/orly](https://github.com/orlyatomics/orly)

<comment><USER19> I have. I'm on the team that's been developing it for the past four years. It's nice to see graph databases getting some popular traction at last. (I was into them before they were cool, of course.) I've only just started looking at Cayley but it looks like there are some significant differences between the projects. Orly is designed for high-speed, high-volume applications that need large-scale storage and consistent transactions. We're more OLTP than OLAP, which seems to be the way Cayley leans. Most graph systems tend toward analytic applications.

<comment><USER18> Could Cayley use Orly for a storage engine?

<comment><USER19> Maybe so. Orly has a somewhat leveldb-like component called a Repo which might slot in well. A Repo is a log-structured merge storage system that also provides indexing, access to previous values, and, most importantly, consistent reads and writes, even across multiple Repos. It also makes good use of resources (RAM, SSD, HDD) to optimize performance and cost. (Also working on letting it run on GPUs, for insanely high performance for people with the power and air conditioning budgets.)

<comment><USER20> I've seen a couple of mentions of graph dbs on GPUs in this thread, and it does seem like a (somewhat) obvious fit. Anyone aware of any projects that make (good) use of that right now? Not necessarily a stand-alone service, but also things like an embedded graph db ("berkley db for graphs") or something like that?

<comment><USER6> BigData by systap is working on this combination see this blog post ([http://blog.bigdata.com/?p=658](http://blog.bigdata.com/?p=658))

</comment></comment></comment></comment></comment></comment><comment><USER14> Awesome - all my work is with graph data and graph databases any additions to the space are great news.

</comment><comment><USER21> Can anyone provide a working example for the visualization feature? The docs say that you can use the Tag functionality to label source/target nodes for sigma.js rendering, but bridging the gap between that suggestion and the actual query does not seem trivial.

</comment><comment><USER22> Sad to see no SPARQL support as of yet, it looks like it's on their longer term goals though as they are query language agnostic.

Interesting to see more products entering this space.

</comment><comment><USER23> Has anyone tried out Tinkerpop?

[http://www.tinkerpop.com](http://www.tinkerpop.com)

I played with it, and it was kinda fun.

</comment><comment><USER24> Demo version somewhere?

<comment><USER15> [http://cayley-graph.appspot.com](http://cayley-graph.appspot.com) is a live demo on App Engine.

</comment></comment><comment><USER25>

</comment><comment><USER26> zxcv

</comment><comment><USER27> > Not a Google project

<comment><USER28> and obviously, not "google's new graph database".

<comment><USER29> It looks like a Googler's 20% project.

However, I'll point out that most of the actually-used open-source projects coming out of Google aren't actually "Google projects", they are "projects by Googlers released under the OSPO process". LevelDB (Jeff Dean & Sanjay Ghemawat), Protocol Buffers (Kenton Varda), Guice (Bob Lee, Jesse Wilson, and Kevin Bourillion), Gumbo (myself), and angular.js (a team within DoubleClick) all started out as small internal projects built to scratch an individual's itch that were then released externally because hey, why not. The "corporate" open-source projects have been things like Android, Chrome, GWT, Closure, Polymer, etc.

<comment><USER15> Exactly this. And I'm the Googler. Hi!

<comment><USER30> Hi. Former googler who does work that Graph Databases would be useful for. If you don't mind I'd like to ask:

Does it have bulk import and if so what is it's speed for bulk import rougly speaking?

<comment><USER15> It does have bulk import; I've been loading largish subsets of the Freebase dumps.

Load speed is pretty good (into persistent storage, I assume) and can be improved with some of the database parameters. A rough estimate is that a million triples or so takes about 5 minutes, but that slows down as it gets bigger. 134m triples took me 6-8hrs, so I slept on it.

<comment><USER31> Since no one's mentioned it yet, another alternative to Neo4J is AllegroGraph (though you need to pay for it; the free version supports 5 million tuples).

It _does_ support bulk loading, with over 500K triples per second. According to [http://franz.com/agraph/allegrograph/agraph_benchmarks.lhtml](http://franz.com/agraph/allegrograph/agraph_benchmarks.lhtml), given enough RAM, it can load over a billion tuples in just over half an hour.

<comment><USER6> Virtuoso 7.1. and OWLIM 5.5 have similar loading speeds. In this case the decompression algorithm is often the bottleneck needing multiple files to be read in parallel to go faster. Oracle 12c Semantic Network and Yarcdata uRiKA can also go faster in loading if correctly set up.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER32> Woo, this is probably the coolest project from Google in the last while. Is there anybody using a graph database here? What is your use case? Would you mind sharing?

<comment><USER33> At my company, we're using graph-based models for most of our NLP stuff (mainly entity extraction ATM) and our ANNs (mainly object classifiers).

\- Jonathan

<comment><USER32> Thanks Jonathan. I am not terribly familiar with NLP would you mind resolving the 3 letter acronyms (ATM, ANN)?

</comment></comment></comment><comment><USER34>
      OS X:  Homebrew is the preferred method.

Over my dead body. Homebrew messes up my /usr/local, leaving its heaps of crap everywhere. I don't find that acceptable. MacPorts at least has the decency to put itself into /opt/local, which isn't normally used by anything else.</comment>


Who will win the presidency? (2016 Election forecast) - <AUTHOR> http://projects.fivethirtyeight.com/2016-election-forecast/ <comment><USER2> "Trump has a better chance of cameoing in another 'Home Alone' movie with Macaulay Culkin — or playing in the NBA Finals — than winning the Republican nomination." [0]

\- Senior analyst and political writer for FiveThirtyEight

[0] [https://fivethirtyeight.com/datalab/why-donald-trump- isnt-a-...](https://fivethirtyeight.com/datalab/why-donald-trump-isnt-a-real- candidate-in-one-chart/)</comment>


Ask HN:How would I promote a tea drink? - <AUTHOR> http://www.hippydirt.com I have a KAVA tea mix that some people told me was really good so I threw together a website  - and will sell it shortly. But I really have no idea how the hell to promote it. Thought I would ask. :) <comment><USER2> Your landing page screams for A/B testing, but not just of different permutations of this page but of entirely different product names going for different market segments.

If you wanted to market to this particular segment, you could more explicitly make mention of how well kava goes with cannabis.

<comment><AUTHOR> I was thinking about being more polite and just calling it "awesome kava tea" or something. But then I just said "fuck it" and decided to see what a flat out "MAD magazine" or "Cracked" approach would land it. It's kinda fun.I'll se what happens for a while and then possibly change it.

</comment></comment><comment><AUTHOR> EDIT:

I have a KAVA tea mix that some people told me was really good so I threw together a website - and will sell it shortly. But I really have no idea how the hell to promote it. Thought I would ask. :)

</comment><comment><USER3> If the tea is mostly caffeine: maybe sponsor some hacker event?

<comment><AUTHOR> It's mostly KAVA.

It does the opposite of what caffeine does.

<http://www.hippydirt.com></comment></comment>


Data Structures and Algorithms Actually I Used Working at Tech Companies - <AUTHOR> https://blog.pragmaticengineer.com/data-structures-and-algorithms-i-actually-used-day-to-day/ <comment><USER2> Before grokking this article my initial thought was "everyone today seems to use hash tables or dictionaries". Dicts are everywhere in Python and Objects are the hash table used within JavaScript.

I read the whole Algorithm Design Manual[1] and it can be a bit dry so I'm actually very excited to read _Grokking Algorithms_ to see if it will indeed be helpful for professional developers to ace their ds/algo exams.

[1] [https://www.adamconrad.dev/tag/algorithms/](https://www.adamconrad.dev/tag/algorithms/)

</comment><comment><USER3> > "I've never had to use these data structures, and even if I did, I would > look them up again."

Exactly.

Also, notice these companies are the top largest, tech-focused companies that require this low-level manipulation. I can't imagine you need to re-implement an algorithm at another job.

Simpler algorithms sure, but at that point it's just basic programming.</comment>


NodeJS is easy, just ask her out - <AUTHOR> http://vincentwoo.com/2011/06/10/nodejs-is-easy-just-ask-her-out/

<comment><USER2> This is possibly the stupidest metaphor I've ever heard, I didn't make it more than a paragraph in because I couldn't tell what was meant by it.

<comment><USER3> You're better for not. I read through it and truly hope it's is a troll, but you know, Poe's law and all.</comment></comment>


Germany's military missing over 60k rounds of ammunition - <AUTHOR> https://m.dw.com/en/germany-military-ammunition/a-54214817 <comment><USER3> 60,000 artillery shells would be surprising, but 60k rounds of rifle or pistol ammunition is not much.

That is one pallet, at a cost of maybe $20,000 at bulk retail in the USA.

<comment><USER4> US army fired on average 250k rounds to kill one enemy combatant in Iraq.

[https://m.belfasttelegraph.co.uk/news/world-news/us- forced-t...](https://m.belfasttelegraph.co.uk/news/world-news/us-forced-to- import-bullets-from-israel-as-troops-use-250000-for-every-rebel- killed-28580666.html)

<comment><USER5> Another way the movie Starship Troopers would predict the Iraq War.

<comment><USER6> Sorry, I miss the reference. Would you be kind and expand on it a bit?

</comment></comment></comment></comment><comment><USER7> I wanted to know if 60k was a lot. Assuming we're talking 5.56/.223 rounds, I found a listing for 500 rounds for $220 USD. (Out of stock, though, lots of people buying guns and ammo right now.) That works out to $26.4k total. Also, 60k rounds would fill 2,000 30-round magazines.

That amount doesn't strike me as large if spread across the entirety of the Bundeswehr, which has some 200k personnel and a budget of $50 billion according to Wikipedia. However, the article mentions 48k more rounds missing from the KSK, a unit of only 1,100 men that's apparently had issues with some members holding extremist attitudes. 48k rounds missing seems somewhat significant at that scale.

[https://www.midsouthshooterssupply.com/dept/ammunition/rifle...](https://www.midsouthshooterssupply.com/dept/ammunition/rifle/5-point-56-nato)

<comment><USER8> As you said, we have a little bubble on guns & ammo in the US right now.

Basic NATO 5.56 - ie, cheap enough for practice or poorly equipped grunts - <USER2> probably ~$0.30/round. However, it doesn't specify the caliber or load.

Loads designed for combat and not practice - like armor piercing, barrier penetration, soft target performance, precision, short barrel optimized, etc. - could be ~2-7x more expensive, and more indicative of a serious organizational problem.

Small arms calibers could include .50BMG, which is also a much larger cost & problem.

</comment></comment><comment><USER9> That can sound like a lot of ammunition. In many respects it is. But 60k rounds of small arms munitions can be expended in a few afternoons of practice by a single unit.

<comment><USER10> One of my fondest memories during my time in the Canadian army was on the C6 gpmg range where I did my first live fire on that gun. We were expected to be at the mess line for dinner very soon, so the word of command by the time I got on it was "...in 200 round bursts".

It was quite the display of talking guns (more like constant scream lol) with tracers at sunset

<comment><USER11> USSR/Russia back then, probably today too - at the end of the quarter, all unexpended ammo which had been budgeted for the quarter had to be expended, otherwise the ammo budget for the next quarter may be cut. So, load up the guns and the ammo and off to the range...

</comment></comment></comment><comment><USER12> As four other top level comments say, that's not a lot. In the US it would be unthinkable to track inventory to that level of detail, and one person could plausibly own the whole lot. Anyone ask how many pencils the US Department of Education is missing over that period?

I'd add that with a group of 100 people, you could buy this much ammunition in a week without raising eyebrows. Much more if you can travel across the border to Switzerland. Or you could have pocketed one round per person per week over the ten year period the report refers to.

</comment><comment><USER13> This is a silly article. I'm a sport shooter and hunter in Canada, and I can personally expend 500-1000 rounds in one trip to the range. 60,000 rounds would only be newsworthy in a country with some very puritanical notions about guns.

</comment><comment><USER14> This is considered newsworthy because, prior to world war 2, (elected) far right extremists were stockpiling massive amounts of munitions via various coverup schemes. It was part of a secret government plan to prepare for world war 2 in spite of treaties forbidding these actions. It makes for some interesting historical reading, and is probably why the government will be so eager to show it's investigating and preventing it in the future.

That said, 60k bullets is not a lot. It would be only really be newsworthy if they actually found evidence of theft. In 1 year there will be some report about sloppy accounting during training exercises for that particular unit

</comment><comment><USER15> Little bit of extra info...

I served mandatory military service in the Bundeswehr back in the day.

Every single bullet was accounted for: All bullets were numbered, and when we would go to the shooting range we'd get bullets from a batch. We made sure that all bullets handed out were actually used, and all of our names were recorded with that batch of bullets - if any bullet of that batch ever turned up anywhere else, they would know who to check.

With that in mind 60k bullets is large number of bullets to be lost.

Edit: Grammar and spelling. Edit: Back then these were 7.62mm rounds for the G3, and (I think) 5mm rounds for the uzi (or uzi-like).

</comment><comment><USER16> Hold up. I could've sworn that I heard the other day that the German government was concerned about a militia like group that may have former military members involved. This headlines definitely made my ears jump.

</comment><comment><USER17> The sequel to the $2B missing wirecard cash. What's next to complete the trilogy of missing things in germany?

<comment><USER18> n quarantined persons missing?

</comment></comment><comment><USER19> In modern warfare that's enough to kill approximately 1 person.

</comment><comment><USER20> !!!

<comment> Tuna-Fish This is not nearly as scandalous as it sounds.

It's over a period of 10 years, which means it's ~0.03 rounds per active duty soldier per year. No-one's bookkeeping is that good.</comment></comment>


Use Nextly to browse Hacker News - <AUTHOR> http://nextly.com/hackernews/

<comment><AUTHOR> This is really slick. Like a next-gen Stumble Upon. Check out how much faster it makes reading TechCrunch: <http://nextly.com/techcrunch/>

</comment><comment><USER2> WTF, this is way faster than browsing directly. Suddenly I feel like I'm getting value for money on my internet bill. Other webmasters should curl up and die in shame.</comment>


Passivhaus Detailing and Design - <AUTHOR> https://architizer.com/blog/practice/details/passivhaus-complete-guide/ <comment><USER2> I remember seeing a very different approach with a very similar goal in Vietnam.

In Hanoi, many houses have a small greenhouse-like glass structure on the roof. The greenhouse has a chimney. When the sun is shining, it gets hot in the greenhouse and the hot air escapes through the chimney. A hatch through the roof into the greenhouse draws new air from below, essentially creating a passive, sun-powere air-flow through the whole house, bottom-to-top. Usually some windows on ground level are left open to let air in.

<comment><USER3> FYI this is called a "solar chimney"

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

</comment></comment><comment><USER4> People tend to confuse the passivhaus idea with other energy efficient methods. The passivhaus idea is that if the building has sufficient insulation and is air tight, you can use the air from the heat recovery ventilation system to do any required heating cooling. This simplifies the mechanical part of the system.

As a result, such houses are very well ventilated when it is cold outside. Mould is not a problem. The potential problem is instead excess dryness in places where it gets very cold.

<comment><USER5> The dryness problem normally only occurs if the air change rate is higher than the recommended 0.3. In large buildings this requires rather sophisticated ventilation systems. There are also heat exchangers that recover humidity.

<comment><USER6> In fact I found that it seems ERV (recovers heat & humidity) is more common than HRV (recovers only heat) these days. Possibly for the simple reason that ERV suffers less from the exhaust icing up.

</comment></comment></comment><comment><USER7> There's a countermovement, the "Pretty Good House" idea ( [https://www.greenbuildingadvisor.com/article/pretty-good- hou...](https://www.greenbuildingadvisor.com/article/pretty-good-house-2-0) .) It has the goals like "simplicity" and "avoiding diminshing returns" (the 80-20 rule: 20% of the work gets you 80% of the improvements, in this case.) It avoids certification and excessive rigor. (One article about it mentioned the split between Passivhaus and Passive House. As I recall it was over the amount of shading from one southern tree.)

My point, if any, is that it's not "Passivhaus or nothing."

<comment><USER8> Oh thank god. This is the approach I had when I built my house. This is IMO the most desirable territory: Just try to maximize the easy assets of wind and light using traditional methods, and add in modern insulation.

Few(???) architects and zero builders seem to understand light/wind/circulation like people apparently intuitively did 200 years ago. You might be better off with the average curious engineer designing a house after reading a couple books than the average architect. Everyone is astonishingly lazy, even mansions around here have terrible light/circulation problems. But if you care, you can totally design a good one yourself that has very low operating costs (our electric bills are 50-80 a month in a 2200sqft house. We use maybe 3 cords of wood a year, but that's very approximate).

It does not take a lot of work to design a house, especially if you want to build an efficient Colonial style. My goals were simple: Build something that appears traditional, maximizes light and airflow and wood burning heat. Think about ventilation passageways as the windows and doors, and think of the wind as coming and going. Since heating is easier than cooling (we built in no AC system and zero ducting), make your ceilings taller.

A little wood stove (Vermont Castings Encore) heats the whole thing. Spray foam insulation in the walls (plus fiberglass), tall ceilings, and modern windows (lots of them) is all you need.

Some pics of what I built, with design sketches: [https://twitter.com/simonsarris/status/1183143604925190144](https://twitter.com/simonsarris/status/1183143604925190144)

<comment><USER9> > Few(???) architects and zero builders seem to understand > light/wind/circulation like people apparently intuitively did 200 years ago. > You might be better off with the average curious engineer designing a house > after reading a couple books than the average architect.

Any book recommendations, especially around wind/circulation?

<comment><USER8> None of that specifically but read: [https://en.wikipedia.org/wiki/Windcatcher](https://en.wikipedia.org/wiki/Windcatcher)

I realized that the cupola on my 1840's house growing up, this was it's function. Wind pulls air through, which pulls air up into the attic, which cools the first and second floors.

Then read _The Timeless Way of Building_ and perhaps _A Pattern Language_

Then _Get Your House Right_ , or a condensed (...in a way) version is _Drawing for Architecture_ by Krier.

Hmm there are probably others I cannot recall right now, but those are a great start.

</comment></comment></comment></comment><comment><USER10> Just bought a brand new house here in the UK and the house has a SAP designed footprint of 85kw/m2/a compared to the Passivhaus standard of 15kw/m2/a.

Unfortunately I have no choice. Unlike in Germany I don't get to buy the land and pick the builder. The two come bundled in the UK. And will do until we get political change that breaks up the building oligopoly.

<comment><USER11> Here in NL the two are also usually inseparable (you buy a house from a large project, typically 100+ homes/apartments, sometimes even 1000+). But, just looking around our two countries, it just seems requirements in the UK must be lower. The average house just seems less well built.

<comment><USER12> There were some improvements on the way but when the current Conservative government came in they scrapped them at the behest of the big builders.

</comment></comment></comment><comment><USER13> Sadly it looks like that idea is not that sustainable. A Passivhaus (well, every current Niedrigenergiehaus, actually) is a very complicated matter and comes with some intrinsic problems:

> Airtight design resulting in draught free construction

That airtight design leads to problems with mold if you have any cold spots. These spots can occur due to construction faults, material faults, or any kind of acquired damage. For instance, you might not even notice that your windows do not shut exactly as they were supposed to after a few years.

In the end, the repair of such a complicated design is again very complicated (especially after a decade or two have passed and technology has again advanced), expensive, and error-prone.

So for me, I'd rather prefer to take an existing, robust and dry building, insulate it somewhat (especially roof and windows) and put in a regenerative heat source (wood, electric) but not to focus too much on the actual energy needed.

<comment><USER14> The mechanical ventilation with heat recovery deals with the humidity problem.

<comment><USER15> What if I don't want to live in a plastic box?

<comment><USER14> What plastic box would that be?

<comment><USER15> All the closed cell plastic foam needed to meat passive house requirements.

A point. All the energy savings disappear the moment you open a window.

<comment><USER14> I think this has already been addressed by the sibling comment to my question. Insulation does not have to impermeable. Its purpose to prevent the loss of air carrying heat with it, not the transfer of moisture/humidity.

<comment><USER15> If it's permeable then water will condense inside it and it will develop mold and deteriorate. That is the fate of all of these passive houses.

<comment><USER16> Not necessarily. Mold grows in certain conditions: food availability, right temperature, water/moisture.

Ideally you would want your insulation outside of vapour barrier:

* [https://www.buildingscience.com/documents/insights/bsi-001-t...](https://www.buildingscience.com/documents/insights/bsi-001-the-perfect-wall)

* [https://www.youtube.com/watch?v=rkfAcWpOYAA&t=22m58s](https://www.youtube.com/watch?v=rkfAcWpOYAA&t=22m58s)

* [https://www.youtube.com/watch?v=hTwq-qUnr9I](https://www.youtube.com/watch?v=hTwq-qUnr9I)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> I don't understand why we don't mandate stricter energy efficiency for new buildings. Why is it still legal to rely on fossil fuels for heating for example?

<comment><USER18> The obvious answer is cost. How long do you want young people to live with their parents to save up for the efficiency improvements you propose? How much longer should their mortgage be? How many people become unable to afford one at all and have to live on the street?

I have a friend who is a building a house by himself. I think that's really cool. If you set standards too high that wont be possible.

Finally bureaucracy sucks. Even an "obvious" regulation that all houses follows like "your house has to have a roof" has the potential to become seriously annoying if you have to get an inspector who is only available in a month and only on Mondays 9-10, to take a look and write a statement that your house indeed does have a roof.

<comment><USER6> The sad thing is the cost is recouped in energy savings very quickly, and there's never a better time to add inexpensive subslab insulation than right before you pour the slab.

<comment><USER18> Don't get me wrong, I agree there are a lot of arguments in favor of building efficient houses!

</comment></comment></comment></comment><comment><USER19> Interesting that this comes up now in 2019. I'd say, while a Passivhaus is not the standard in Germany yet, you can simply go and buy one, like you can choose a special version of a car and simply order it. Passivhaus is still cool, but nothing extraordinary from the future.

<comment><USER20> It comes with several disadvantages. Like no air circulation (except air condition, what is probably a must in such a house), mold problems etc. ...

<comment><USER5> That is simply wrong. The passive house standard requires ventilation systems with highly efficient heat exchangers. This makes for good air quality. The massive thermal insulation ensures that no condensation occurs in the interior, i.e. no mold problems. A common problem, however (esp. if inexperienced planners design the house) is too dry indoor climate in winter. This happens if air change rates are too high and no humidity is recovered.

<comment><USER21> The regulations for Passivhäuser (or houses with the respective efficiency rating) in fact require a ventilation system with heat recovery (since the otherwise necessary open-the-windows-like-a-savage-system wastes too much energy).

These nowadays come typically with moisture recovery (which arguably not always works well enough, depends on how much you still need to heat).

</comment></comment></comment></comment><comment><USER22> > The Passivhaus has a continuous airtight barrier [...]

Theoretically that could work with a reliable air conditioner. In practice, I know quite a few passive houses that have problems with mold.

And seriously, no air conditioner is superior to opening windows, don't kid yourself.

A "normal" house with a good insulation (don't overdo it) would be my preference.

<comment><USER23> Apologies for the tangent, but I'm interested; Are there problems with over- doing insulation?

<comment><USER24> There's nothing wrong with over-insulating (although at a certain point it is no longer economical), but you need to ensure the house is ventilated to prevent mold.

You also need to ensure you choose the correct building materials, so they can ventilate themselves. Modern building science says there should be a continuous airtight wrap around a house with insulation either side. The interior insulation ventilates to the inside, and the exterior ventilates to the outside. What you don't want is multiple airtight layers as that could cause it to become moldy inside the layers.

Passivhaus houses will almost always have a heat-recovery ventilation system. These will bring in fresh air and take out stale air - like a bathroom fan. But they also exchange heat from the outgoing to income air in the process. Typically 80%+ of the heat is recovered (you can get systems that are 95% efficient). They run at a low speed so consume minimal electricity (typically under 100W for small houses) and don't provide a noticeable draft like air conditioning or forced-air heating. They have filters to prevent pollen and other contaminants from entering your house, so for allergy suffers they are a big plus.

I live in a cold climate in an apartment built in 2015, which is well insulated and has this system. Even though it has been below freezing (currently 8c) outside, we haven't yet needed to turn on our heating because of how well the building is insulated. We do actually have a typical vented bathroom fan, but everything else (kitchen hood and dryer) are unvented, so we keep all that heat inside.

<comment><USER25> Where did you learn about modern building best-practices? I just bought my first single-family home and am excited to slowly transform it into a comfortable-and-efficient modern building. But I'm finding it a little difficult to penetrate this new-to-me space and would love to find some more- complete resources.

My random web-crawling has certainly been moderately productive, but it's slow and I can't help but feel that I'm not being adequately exposed to a reasonable breadth of topics.

<comment><USER16> > _Where did you learn about modern building best-practices?_

Do searches on "building science":

* [https://en.wikipedia.org/wiki/Building_science](https://en.wikipedia.org/wiki/Building_science)

A consulting company specifically started around the concept because the founder, Joe Lstiburek, got tired of seeing the same problems over and over:

* [https://www.buildingscience.com](https://www.buildingscience.com)

* [https://en.wikipedia.org/wiki/Joseph_Lstiburek](https://en.wikipedia.org/wiki/Joseph_Lstiburek)

This contractor based in Austin, TX, has a lot of good content:

* [https://www.youtube.com/user/MattRisinger/videos](https://www.youtube.com/user/MattRisinger/videos)

</comment></comment></comment></comment></comment><comment><USER26> In 2016, I moved from California to Rhode Island to build a Passive House. It was completed and certified by PHIUS, the American PH standards organization, in 2017.

[https://www.corememory.io/this-new-house](https://www.corememory.io/this-new- house)

</comment><comment><USER27> There are even two subsequent standards: the Nullenergiehaus (zero energy building) and the Plusenergiehaus, which is better by having the ability to generate more electric energy than it needs.

However, those buildings are not as amazing as they might look. The "better" the standard, the greater the effort. What people didn't really took into account was the energy needed to actually _build_ the house is becoming very large. At this point it takes the same amount of energy (embodied energy, called _grey energy_ in Germany) to erect a Passivhaus as it will need operating over the next 50 years.

<comment><USER28> > energy needed to actually build the house is becoming very large

Why is it becoming larger? I would have assumed that we would use less energy rather than more to build buildings nowadays given the advances in technology.

<comment><USER29> Because you need all sorts of technology, and lots of materials that need high energy inputs to be manufactured.

<comment><USER30> Do you have a source on that?

<comment><USER31> You need permanent ventilation, better heat insulation, better doors and windows etc. for this to work. You still have to plan for some way of heating so you cannot just leave that out. This in all takes more energy to build and maintain.

That said, I live in a passive house and we turn on the heating only when one of us is sick or when it gets really cold.

<comment><USER28> > You need permanent ventilation, better heat insulation, better doors and > windows etc. for this to work.

For many houses the better heat insulation is mineral wool and or styrofoam. Transporting either of these must be significantly more energy efficient than brick. If I look at how some old buildings are built here I have to assume that was not energy efficient during construction just from how much more material was used.

Do you have a source that better insulation requires more energy? Especially the extra windows must be more energy efficient during production as well if you look at how they are manufactured. They only extra material is a third glass pane but for that you save on a lot of extra fittings compared to old windows.

I would really like a source on why you think there is more energy used for building the house. It's very counter intuitive.

</comment></comment></comment></comment></comment></comment><comment><USER32> Air tightness can easily be a problem. Something gets wet and can never dry out. There is mold. The only solution is to dismantle the structure.

One problem with complex buildings is the limited average skill of the builders and variable quality control in the business. Building technology should take that into account.

Probably one reason is the volatile nature of the business - you have to hire anyone you can get because everyone else is building too at the same time.

So I guess if one were to "disrupt" construction, one would have to start from the financing...

<comment><USER33> It sounds like you are confusing air-tight (draught free) and breathable (vapour permeable). These are the passivhaus definitions.

<comment><USER32> I guess I am.

</comment></comment></comment><comment><USER34> A more general learning we can take from Passivhaus building techniques is that habitable buildings should be designed to work in conjunction with the natural environment they inhabit, like they used to be before the era of cheap fossil fuels. But such site and solar-orientation aware design isn't today part of the practice of building mass produced homes, and absent forces that push that industry that way, things aren't likely to change.

</comment><comment><USER35> Is this kind of design fit for non-german climates?

<comment><USER36> The new Austrian embassy in Jakarta is Passivhaus certified, a first for that climate.

[http://www.passivhaustrust.org.uk/news/detail/?nId=527](http://www.passivhaustrust.org.uk/news/detail/?nId=527)

</comment></comment><comment><USER5> Given that we should be carbon neutral in 30 years from now (2050) in order to have a shot at the 1.5° C target and given that average building lifetime is >30 years, it would be irresponsible to build anything else than a passive house or a zero energy building today.

</comment><comment><USER37> I know it is a fringe case relative to the lifetime but I am curious how well the designs handle power extended power outages and say high ambient temperatures compared to other house types.

<comment><USER5> Thermal insulation helps to decouple indoor climate from the outdoor climate. It depends a bit on what kind of heat period you consider. When high ambient temperatures occur it will remain cool for longer indoor and night ventilation can be used to cool the house. The cold produced by the AC is also better trapped inside, ie used more effectively. There has been a case of extended power outage in Germany due to heavy snowfall. I saw a report that showed how the indoor temperature remained almost constant for the first two days of the outage.

</comment></comment><comment><USER38> While not entirely "passive", houses built to the KfW 40 Plus standard in Germany are pretty close (without some of the inconveniences of a real Passivhaus)

<comment><USER39> What are the inconveniences of Passivehaus?

</comment></comment><comment><USER40> How does a passivhaus maintain airtightness in the face of e.g. rodent incursions?</comment>


Twenty Advanced CSS Tutorials - <AUTHOR> http://designfestival.com/twenty-top-advanced-css-tutorials/

<comment><USER2> Please take care in submitting "roundup" posts such as this - or altering the submission title in the future. It's generally frowned upon to do the whole "{number} Ways to Do {design/dev topic}". As mentioned in the guidelines:

> If the original title begins with a number or number + gratuitous adjective, > we'd appreciate it if you'd crop it. E.g. translate "10 Ways To Do X" to > "How To Do X," and "14 Amazing Ys" to "Ys." Exception: when the number is > meaningful, e.g. "The 5 Platonic Solids."</comment>


How often do scientists fabricate data? - <AUTHOR> http://www.thenation.com/article/165313/disgrace-marc-hauser?page=full

<comment><USER2> Depends on what you define as "fabrication". Most scientists tweak things around to suit theories to look like facts, rather than deriving theories from facts. _Winning the Games Scientists Play_ is a nice book [1] delves into this issue in some detail.

[1] [http://www.amazon.com/Winning-Games-Scientists-Play- Sinderma...](http://www.amazon.com/Winning-Games-Scientists-Play- Sindermann/dp/0738204250/)

<comment><USER3> Perhaps an example of such tweaking is the "discovery" of black holes reported to the public, when the definition of a black hole precludes definitively observing them. What actually happens is that astronomers plug values for observations above a suspected black hole (e.g. the orbital speed of stars) into Einstein's theory of gravity, and let the theory tell them whether they "discovered" a black hole. Then they let the media report the black hole as a confirmation of Einstein's theory.

</comment></comment><comment><USER4> Am I so far away from reality or are these people? I can't believe these numbers are so small. I don't have strong evidence, but the situation at my university looks more like 99% of students cheated on a regular basis (actually students who don't cheat are considered stupid). Like students of one semester copy the exam questions and hand them to the next year's candidates. Or papers are copied & pasted from Wikipedia and the likes and data used is pretty much all made up by the writer. I never did or know anybody who did it, but I think it is also common practice to pay others to do your university work.

And the same with teachers. It is quite normal (meaning it happens everyday and everybody does it, not in a sense of "it should be like that" normal) that university government uses their funds to help their friends abroad (there are even news articles about it, but nobody does anything against it), that teaching professors use their funds to pay students to produce software and other products to sell in the teacher's private companies and then hide that work as "science". 99% teachers and students don't do real science.

I can believe that the numbers are lower in other schools, that I somehow managed to get in one of the worst, most fucked up schools on this planet. But even then the difference can't be that big. If you really believe, there are less then 2 out of 3 people being involved in day to day cheating and corruption, then I believe you must be blind. It's human nature, we are talking about.

From my point of view it is so common, that you are really stupid to just follow the artificial rules you read in rule & ethics books. Maybe science in it's purest is about discovering truth. But human daily life is pretty much not about it. It's about the relations you have and the "public face" you can (artificially) create.

(Yes, I once was one of the fighters of true good. But if the whole world around you is "cheating" you can't get anywhere. You know, teachers even fail your exams, if they want to. And if you fight for the "good", nobody comes to give you a high five. They just think you are stupid for not following the real rules or just not being able to graduate normally.)

</comment><comment><USER5> ~2% of scientists admit to have fabricated, falsified or modified data or results at least once.

[http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjourna...](http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0005738)</comment>


Ask HN: Does anyone remember the idea reviewing site? - <AUTHOR> I'm trying to use Google advanced search but I can't remember any keywords. Does anyone remember the name of the site where you share your idea and people rate it? <comment><USER2> Halfbakery?

"Halfbakery [1] is a community-based ideas bank used by people who wish to propose and develop half-baked inventions. It has distinguished itself by minimalism, irreverence, and a cast of regulars whose takes on suggested inventions are often funnier than the original submission."

[1] [http://www.halfbakery.com/](http://www.halfbakery.com/)

<comment><AUTHOR> The problem is I didn't actually visit the site but that might be it. Thanks for answering.

</comment></comment><comment><USER3> Quirky?

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

<comment><USER4> thought this failed?

[https://blog.bolt.io/the-real-reason-why-quirky- failed-c362b...](https://blog.bolt.io/the-real-reason-why-quirky- failed-c362b3a3abd7#.w6ump1bx2)

</comment></comment><comment><USER4> Funny I was just suggesting something like that. Except it would be for any questions(opinion based) or anything you wanted feedback on.</comment>


A chat with the creator of the Stanford Prison Experiment - <AUTHOR> http://nautil.us/issue/45/power/the-man-who-played-with-absolute-power <comment><USER2> This used to be one of my favorite studies and now I see it as basically a trash study. Not something we can replicate, mechanisms are poor, yet the implications were huge. We really should be more careful with things like this. With all the replication and quality issues in social and psych studies right now, I think the tide is turning and maybe we can go back to philosophy.

<comment><USER3> Yeah, the Milgram experiment had similar implications, was clearly better designed, and variations of it have been replicated several times [0].

Interesting that Milgram and Zimbardo were in the same high school class

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

</comment></comment><comment><USER4> I wonder if any student that actually participated in this experiment has a different take on things?

<comment><USER5> Yep; John Mark, a guard. [https://www.reddit.com/r/IAmA/comments/2y5sbt/iwasa_guard_in...](https://www.reddit.com/r/IAmA/comments/2y5sbt/iwasa_guard_in_the_1971_stanford_prison/)

> I personally think Zimbardo is a self-promoting sensationalists more than a > serious academic researcher and I think he was aware that this had the > potential to make his career.

The aforementioned chat is a bunch of softballs. I do think this study warrants much more scrutiny.

<comment><USER6> In the original link, Zimbardo misrepresents things a little bit by saying that he was ultimately the one who intervened when, in reality, it was another researcher (who was romantically involved with him and who later became his wife):

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

[http://news.stanford.edu/pr/97/970108prisonexp.html](http://news.stanford.edu/pr/97/970108prisonexp.html)</comment></comment></comment>


Show HN: A console-based editor with Lua support, based on antirez's project - <AUTHOR> https://github.com/skx/kilo/ <comment><USER2> Some of the comments here are really missing the point.

antirez's original text editor was a _full featured_ text editor -- meaning fully customizable (and fast!) syntax highlighting, and a very intuitive search feature -- written in pure C, with no dependencies, not even ncurses, and written in less than 1,000 lines of C code. And he wrote all this in _a matter of hours._

This showed that fundamentally, a terminal-based text editor is trivial to build. Keep in mind, the text-editor market space is currently _very_ sparse, with only a few real choices: Nano, Vim, Emacs, Notepad, TextMate, Sublime Text, and lately Atom, are the big players. antirez's work shows that, honestly, there's no real reason for the sparsity of choices. Writing a usable text editor is just _not that hard._

And stevekemp's fork shows that it's _still_ pretty trivial to add the kind of editor customization previously only thought possible in projects like Vim and Emacs. Think about it. Emacs came out in 1976! 40 years ago! But when people want an editor that's fully customizable, they go to that. Or to Vim, which, again, came out in 1991, 24 years ago! And trust me, setting up your environment so that it's actually _usable_ , takes days to weeks.

Ironically, stevekemp and antirez's work, combined, shows that it actually takes _less_ time to make an editor from scratch, than to customize Emacs or Vim to your liking! Granted, that's kind of a stretch, since most of us won't want to dive into implementing the concept of buffers.

More to the point than that, though, is that the top players in the terminal- based text editor slash IDE space, were written so many years ago, that the Internet was barely a thing at the time, that there wasn't yet a standardization on keyboards or terminals or even operating systems.

Things have changed. A LOT. It's time our terminal-based text editors caught up. But that doesn't inherently mean we have to start building everything on top of Electron. Terminals still work, and they're fast & efficient as hell.

<comment><USER3> The point you miss is: there are thousands of packages for Emacs and Vim already. Emacs has all sorts of useful programs that you can run, a list too long to even summarize. There is an emacs version in common lisp, I guess it was called Hemlock. MIT Scheme has it's own Emacs version. But you don't have Gnus, elfeed, EMMS, flycheck, Org-mode, etc., on them, and you don't have the time to write them all from scratch.

<comment><USER4> Those programs exist because people wrote them. And many are rewritten every day to replace those. Emacs does _not_ have 40 years worth of plugins available. If one single person rewrote the ones you use on a daily basis, it wouldn't take very long. Divide that up by the number of people willing to do it, even shorter.

Don't believe me? Look no further than Atom. That's _exactly_ what they did.

<comment><USER5> Atom did this with the backing of a very well-financed company, and it still doesn't fare all that well with niche languages.

I agree with the general gist of your first post, but I think it's important to recognize that unless you can build on some portable standard method for defining editor support for programming languages, there is going to be a cost to living in the niche; it is going to make you more hesitant to experiment with new languages. (This is speaking as someone who has also implemented their own Lua-based text editor.)

<comment><USER4> Oh hey Phil. Didn't see you there.

Sure, Atom has Github paying for it, and they still don't have CIDER.

But you know what? Emacs users came up with CIDER _from scratch_. It barely builds on top of any existing Emacs plugins. That _exact_ same thing could have been done in an editor like kilo if it had the right scriptable foundation.

<comment><USER3> But why did they not build CIDER on Hemlock with Common Lisp available instead of Emacs Lisp? Because you need more than possibilites to get working without wasting time. Apart from plugins, Emacs has the core environment to build such a thing, and then there are many libraries that pile up in creating the plugins, that others wrote, so that you don't need to implement a networking library and a string processing library and a syntax definition library and subprocess management library and whatnot in order to build sth. like CIDER. Not that that's impossible, but certainly a waste of time when the tech and the community is already there. It's of course on one's self to choose whether to spend that time or not, and it's not bad or stupid to choose to create one's own editor, but it's undebatable that some time that instead could've been used productively for something else is spent duplicating others' effort, if a brand new idea is not being implemented.

</comment></comment></comment></comment></comment></comment><comment><USER6> Interesting. You should look into adopting Lpeg to do your syntax parsing and coloring, rather than defining all languages yourself.

[http://www.inf.puc-rio.br/~roberto/lpeg/](http://www.inf.puc- rio.br/~roberto/lpeg/)

[http://peterodding.com/code/lua/lxsh](http://peterodding.com/code/lua/lxsh)

[http://foicica.com/scintillua/](http://foicica.com/scintillua/)

[http://leafo.net/guides/parsing-expression- grammars.html](http://leafo.net/guides/parsing-expression-grammars.html)

<comment><AUTHOR> Belated update, but thanks for the tip.

In the end I did indeed add syntax-highlighting via the use of the LPEG library.

</comment></comment><comment><USER7> A screenshot would have been so nice.

<comment><USER8> With something this small a binary would be nice. Really nice.

</comment></comment><comment><USER9> Another interesting editor I found recently previously mentioned on HN is howl editor - [http://howl.io/](http://howl.io/) . Lua, lpeg lexing, fast.

Another one is textadept - [http://foicica.com/textadept/](http://foicica.com/textadept/) . Also Lua

</comment><comment><USER10> I like this. Take something useful like antirez's tiny editor, decide that it needs to have the ability to customize it, add Lua as a scripting support and off it goes. Two small things working together to make a slightly bigger, but much cooler software package. Very nice work!

</comment><comment><USER11> Just like the original kilo.c, I liked reading this. Thanks!

<comment><AUTHOR> Thanks.

</comment></comment><comment><USER12> So why this, instead of Vim with Lua scripting? Is this meant to be embeddable in the same sense Lua is meant to be?

<comment><USER13> The point seems to be size and minimalism (under 1k lines), not to compete with vim.

<comment><USER12> This would make it a good candidate for embedding.

<comment><USER3> If you need vi for embedding, there are the ex-vi and the nvi projects, BTW. The latter with nex "are intended as bug-for-bug compatible replacements for the original Fourth Berkeley Software Distribution (4BSD) ex and vi programs." On my FreeBSD 10.3 it weighs in at 448K.

<comment><USER12> I could see an advantage in a Lua embedded implementation. If Lua is going to be embedded anyway, there could be considerable memory savings. Also, many features/packages could be left out and loaded dynamically only as needed.

I'm not sure how it works for Lua, but scripting languages on VMs often compile down to very compact bytecode. An entire Squeak Smalltalk image has been pruned down to 384k. I'd expect an entire vi clone in Lua to wind up only a small fraction of that.</comment></comment></comment></comment></comment>