Compilers for Free - <AUTHOR> https://codon.com/compilers-for-free <comment><USER2> Why is it that 35 years after the Futamura projections were first described, when we want to produce a new compiler, we don't write an interpreter and pass it through a high quality, general partial evaluator?

Whenever the Futamura projections are described, it's always at a conceptual level, in general terms. Reading a blog post like this one, I'm always left to wonder (a) why does this not end with a link to a github implementation of a general partial evaluator and (b) why is it the case that none of the compilers I use were produced with these techniques?

There must be some set of tradeoffs preventing this approach from living up to the "compilers for free" promise, but I haven't found anyone with a real explanation. Either there must be hard challenges which make implementing a general partial evaluator very difficult, or the results that we'd get from using such a partial evaluator are poorer than what we get through other means right?

Perhaps the greatest success in this direction is PyPy. At some level the RPython toolchain is general enough that people have used it to produce JITted versions of ruby, php and a few other languages. But these are a handful of alternative implementations to existing languages, where the predominant implementation doesn't use this toolset. And PyPy's own docs note that the JIT compiler needs some amount of hinting from the interpreter; you can't just throw any interpreter (written in RPython) at it.

<comment><USER3> > Why is it that [...] when we want to produce a new compiler, we don't write > an interpreter and pass it through a high quality, general partial > evaluator?

As far as I know, it has been tried numerous times and has been an area of active research in the past, but results turned out unsuccessful. Mainly because error reporting and performance, both compile-time and run-time, is hard to achieve.

It's a little bit like pure functional programming. Super elegant in principle, hard to get right and usable in practice.

<comment><USER4> > As far as I know, it has been tried numerous times and has been an area of > active research in the past, but results turned out unsuccessful.

TruffleRuby is a Ruby implementation that works exactly by writing an interpreting and passing it through a general partial evaluator. It's successful enough to pass almost all the Ruby spec and to run real Ruby applications including their C extensions.

[https://github.com/oracle/truffleruby](https://github.com/oracle/truffleruby)

</comment></comment></comment><comment><USER5> The more I learn about interpreters and compilers, the more everything looks the same.

Snigl [0] is designed as a VM interpreter. But it has a separate compile stage where code may be evaluated using the same interpreter and the results reused at runtime.

And it traces code before running it, evaluating as much as possible statically.

Finally, it supports emitting C code for an interpreter preloaded with the current, traced program. Which is where compile time evaluation really shines, as the results are embedded in the executable.

[0] [https://gitlab.com/sifoo/snigl](https://gitlab.com/sifoo/snigl)

<comment><USER6> I have written far more compilers/interpreters in my career than I probably should have, and I reached the same conclusion. For most of them, I probably couldn't even tell you weather or not what I had involved a compiler. At this point, my working distinction is that a compiler produces a serialized representation. If you feed the AST directly into the runtime, then you just have an interperater. I don't see any practical benifit to this distinction, but it seems to match up with what people consider a "compiler".

As an asside, I had a simmilar insight when I built a computer from logic gates [0]. Essentially, the control unit had an EEPROM of microcode, and the logic to execute an actual instruction was to use the upper 4 bits of the instruction as an index into a lookup table, then write the result to the microcode program counter.

Eg:

       switch(OP & 0xf0):

       case 1: jmp &add
       case 2: jmp &sub
       ...

Which looks a lot like an interperator.

It wouldn't suprise me if modern CPUs actually added an additional step, where they first translate (compile?) the input stream into some internal instruction set, and then have microcode that acts as an interperator for that.

[0] Also EEPROM, and various composite circuits.

<comment><USER7> All modern x86 CPUs do this to some extent. The details changed over the decades, but the basic principle these days is that the CPUs decode the x86 instruction set into a secret, internal only, more orthogonal sequence of instructions. My understanding is that these sequences can be quite long for the more involved CISC operations. And according to the manuals written by Agner Fox, some instructions even have special cases based on their operands to do something equivalent, but much faster. One particular example that I remember is xor ax,ax which is often used to set ax to zero and is a one byte instruction. Modern CPUs don't compute the xor in the ALU, but just rename ax to a register that is set to 0.

<comment><USER8> So in practice, nobody uses actual x86 assembly anymore, but everybody uses it as a target for compilation. It's just like _The Birth & Death of JavaScript_¹, but non-fictional, and on a lower level – a _Birth & Death of x86 assembly_, if you will.

1\. [https://www.destroyallsoftware.com/talks/the-birth-and- death...](https://www.destroyallsoftware.com/talks/the-birth-and-death-of- javascript)

<comment><USER9> >nobody uses actual x86 assembly anymore,

well almost.

</comment></comment></comment></comment></comment><comment><USER10> The description immediately reminded me of a book called "Understanding Computation." Scrolling down I see the video is by Tom Stuart, the author of that book. I'd really recommend it (the book) for anyone interested in learning about "big step" (operational) and "small step" (structural) semantics.

</comment><comment><USER11> Tom Stuart, the author of the post, also has written an interesting article called "Programming with Nothing" in which he demonstrates how to use first- class functions in Ruby to explain the Lambda Calculus.[0]

[0] [https://codon.com/programming-with- nothing](https://codon.com/programming-with-nothing)

</comment><comment><USER12> I have implemented the method of parsing an expression into objects with an evaluation method in the scripting language that I build into an editor for performing complex manipulations of images. See [http://www.iwriteiam.nl/MySample.html](http://www.iwriteiam.nl/MySample.html)

</comment><comment><USER13> Nothing to see here, peaked my interest since "who would pay for a compiler??" In the modern age of open source.

Post has a missleading title, and is just rambles about ruby and compilers.

<comment><USER14> It depends on what you want. If I wrote aerospace code I'd probably buy adacore's ada and spark compilers and tools.

Since I mostly do scripting work, I usually stick to Python, Bash, & Powershell though.

Some commercial compilers are very affordable with extremely sane licenses. One that has interested me lately is called 8th and is $250 for a professional license which lasts forever and can create encrypted binary executables on Linux, Mac, Windows, raspberry pi, iPhone, android, or embedded all with a cross-compiler, builtin graphics, sound, database support, full REPL, good support...etc. There is also a free version that just has some features missing (not a dumb temporary trial) and a $50 hobby license with many of the features. The Enterprise license would be expensive for me, but fairly cheap for most companies and includes priority support and the source code, so that is neat. I'm all for open-source, but if we're honest, some commercial tools are great and don't abuse users. It is not an only option situation.

I will say closed source can really stink too. I once had to use a product that all of the vendor's customers had to use, but it wasn't officially supported (although it was critical for infrastructure) and I was running into a bug they couldn't figure out or didn't care to look into. The terminal would tell me the problem was in line x of the encrypted script, but wouldn't let me know what line x did so I could get the app working.

<comment><USER15> >One that has interested me lately is called 8th

Link, please? Did not find a page about the makers of 8th, though I googled and saw some other related pages I'm reading.

<comment><USER16> It's probably this one:

[https://8th-dev.com/](https://8th-dev.com/)

<comment><USER14> Yea it's this one. The main developer wrote an open source Forth called Reva- Forth awhile back. I think he does a lot of paid development a across various fields from phone app development to embedded work, and machine learning stuff. When he was trying to do phone apps he realized (like most of us) that it is a pain to need to know Java for Android (+ API) and Objective C or Swift for iOS and then there is WinForms or Gtk or WxWidjets for desktop development, so you have to learn a lot of different technologies if you want to write software to run on all major platforms and 8th helps solve most of that problem. 8th is also a Forth, but he has added some features like using JSON as a generic data structure (not generally done in Forth), bundled the C++ JUCE GUI framework and associated licenses, added ODBC/SQLITE/MYSQL support, sound, cross-compilation to many platforms...etc.

Most of my coding needs fall into either general scripting (Python, Powershell, Bash, Perl...etc) or numerical work (Python + Numpy or Julia). 8th seems to be pretty speedy, but Forths in general usually aren't lightning fast due to their stack usage and emphasis and you need really fast code for numeric work. He has made it a priority to work on performance though and continuously adds scientific features like adjacency graphs, so he is on the right track and I'll keep my eyes on it. For general scripting work and utility apps it should work pretty nicely for my needs and distributing a tiny .exe to users with a GUI is nice. I'm not sure how good the file I/O & filesystem support is though (need to look at the doc), because I use those common features a lot. I also need to check if he wrote functions (called words in Forth speech) for web scraping as there is a project I'd like to do where 8th would be ideal.

If you've never seen Forth before, try to keep an open mind with the syntax as it can look alien at first. There are a lot of 8th examples on Rosetta Code and although they are short, it might look like gobblygook if you're not used to thinking about the stack where parameters are popped off and used in functions which then return data to the stack so functions can be chained (kind of like Unix pipes). Leo Brodie's books on Forth (classics and free online) are called "Learning Forth" and "Thinking Forth" and are recommended on HN sometimes.

<comment><USER17> Thanks a lot for the detailed answer.

I did try out Forth a little, much earlier, and had read some of the Starting Forth book - had bought the hardcover edition, it looked really good, including the cover - dark brown, either was leather or had a leather effect (more likely the latter). And I liked Leo's writing. Will check out 8th at some time. The cross-platform GUI thing with tiny EXE's is a pro (Rebol and Red are similar, except not sure if Rebol supported EXEs, except maybe via 3rd-party tools), although not having good I/O and filesystem support is a con, since a lot of the stuff I do involves file I/O.

Still, it may be worth trying 8th out.

<comment><USER14> I was going to mention that it is a lot like Rebol and Red in philosophy, but you beat me to it.

Rebol was mostly built by one person (Carl Sassenrath) but has to package the entire interpreter (I think maybe 5 MB) to make an .exe if you have the paid version. Red can already make executables and has made fantastic progress, but it is a larger effort. I check up on Red once a month and think 1.0 will be amazing.

<comment><USER17> >I was going to mention that it is a lot like Rebol and Red in philosophy, but you beat me to it.

I agree, the philosophies are similar. Minimalism, relying more on your own code than libraries, not generalizing your code for a lot of cases that might not happen, etc.

One thing that puzzles me about Forth, though:

I did read a few books about it (much earlier, and I'm not a language designer, so what I say next could be wrong). Some of them talked a bit about Forth's internal design. I understood from that, that when multiple words (Forth subroutines) are defined, they are "threaded", from which I understood that they are added to a linked list of word definitions. Wondered why it needed to be a linked list. If it was a lookup table of some kind, like a Python dict or a Ruby hash (basically an associative array), looking up word definitions to run them would be faster than in a linked list, which is linear, I'd think.

Edit: I did just have an idea of what the reason for that may be, but will wait a bit to see if anyone replies with their explanation. Hint about my idea: it may have to do with Charles Moore's Forth philosophy - just a guess on my part.

<comment><USER14> I'm very much a noob when it comes to Forth and I've asked myself the same question before. I think threaded is generic enough to not necessarily dictate the data structure. It more or less means that a word (if it isn't being defined and added to the dictionary (not dictionary as in Python dictionary, but what they call the list of words in Forth)) it will read from the stack, modify the stack, and then call the next word.

Someone on here or on the Forth subreddit should be able to answer though.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Goldman Scraps On-Campus Interviews for Undergraduates - <AUTHOR> http://www.bloomberg.com/news/articles/2016-06-23/goldman-sachs-scraps-on-campus-interviews-for-robo-recruiting <comment><USER2> For what it's worth, I was the beneficiary of such "blind hiring". I ended up working for an incredible trading department for too short a time and I am told that I beat out 70 or so other applicants who actually had degrees, let alone PhDs and Masters degrees. As far as I'm aware, I was not shafted on the salary though it might have been 20 or 30K less than I would have received otherwise. I don't think this was because of my lack of credentials: my salary + bonus beat most of Google/Facebook any day.

But there is another side of it. People like me (kicked out of the house at a young age, a couple of stretches of jail time) who didn't get a degree, didn't get it for a reason. We have life situations that tend to follow us around. Unfortunately, I was not able to shed my background in a good way and that was my biggest failure in the situation. I'm still working on it.

It seems that GS are trying to detect such situations as they should.

All in all, a good move.

<comment><USER3> Maybe you can tell us something about their coding practices. A friend of mine who work at GS told me they have an absolutely massive ball of spaghetti that takes 7 hours to compile. That's for their trading systems.

Naturally, it's not something that attracts me to working there, and he basically told me not to come.

There must be other divisions where people have different experiences?

<comment><USER4> > Maybe you can tell us something about their coding practices. A friend of > mine who work at GS told me they have an absolutely massive ball of > spaghetti that takes 7 hours to compile. That's for their trading systems.

In case no one with actual experience responds to you, you might want to check out Flash Boys[0], which spends a little time talking about GS's code. From what I've read in that book and in other places, what you heard seems to be the correct.

[0] [https://www.amazon.com/Flash-Boys-Wall-Street- Revolt/dp/0393...](https://www.amazon.com/Flash-Boys-Wall-Street- Revolt/dp/0393351599)

<comment><USER5> It depends on what system you're talking about.

If you're talking about the core risk management system, yeah, seven hours sounds about right. But the risk management system is a _platform_ that you can use to build other systems that can be iterated upon very, very quickly: we regularly made changes, reviewed them and made them production visible globally in under two minutes).

Flash Boys' technical discussion is, frankly, crap. The larger point about GS' treatment of Aleynikov (sp?) is, however, correct and relevant.

Source: Worked there for 8 years, still suffering from withdrawal.

<comment><USER2> Withdrawal meaning you want to go back? Hard to find a similar environment anywhere else?

That's me in a nutshell, if not you.

<comment><USER5> The amount of irritation GS abstracts away from the programmer is amazing -- and I do miss it very much. I'd like to go back, but circumstances appears to be taking me elsewhere.

It was a good run, and unlike OP's friend, I'd recommend it wholeheartedly.

<comment><USER2> My experience as well.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> > Robo-Recruiting

In my opinion, unless the new hires are going to work with robots, this is not going to work as they expect. And, this seems more like a cost-cutting solution than becoming "school agnostic".</comment>


Effectively Using Matplotlib (2017) - <AUTHOR> https://pbpython.com/effective-matplotlib.html <comment><USER2> Matplotlib belongs to the worst category of software: very powerful and very awful. Nothing makes any sense and it's so profoundly unintuitive it almost feels like I'm being pranked. But, of course, use it I must.

Pandas also comes off as an unintuitive joke, but my displeasure with it has _mostly_ worn off. Matplotlib however makes me feel angry pretty much everyday.

<comment><USER3> What data-analysis package do you prefer over pandas? I've used pandas since circa 2015, and lately have been trying to become fluent in R and the Tidyverse, but it's been hard so far to unlearn the deeply ingrained python/pandas patterns.

<comment><USER4> Start with R for data science (book by Hadley, available online for free)

Tidy verse assumes tidy data. If you are not working with tidy data, it is unlikely to be a big help. Most data can probably be thought of as tidy.

Remember that any and every operation on a data frame returns a data frame, so unlike chaining in Pandas, you never have to worry if a method you want to use belongs to a series or a data frame, or if your method is returning a series or a data frame.

Select() selects columns, filter() selects rows. This never changes unlike the [] which means different thing depending on if it is used on a data frame (which you are not guaranteed to be served after calling a method on data frame in pandas!) on a series or using the .loc or .iloc methods.

There is no index, instead you just filter on rows.

Pandas comes with a ton of build in utilities which the tidyverse doesn't, mostly because R is already full of functions you can easily apply across columns.

But particularly pandas date handling functions are really cool

<comment><USER3> That's reassuring: I'm (slowly) working through Hadley Wickam's r4ds online book, which is just fantastic. Thanks for the tidyverse tips!

</comment></comment></comment></comment><comment><USER5> Matplotlib is verbose, and has had an inconsistent API in the past (v3 has improved this a lot), but if you need to produce publication-quality figures using Python, taking the time to get comfortable with it pays off. I've been using it to produce maps and data visualisations for years – when I finally figure out how to make something look good, I put the notebook on Github, both for my own reference, and for others: [https://github.com/urschrei/Geopython](https://github.com/urschrei/Geopython)

</comment><comment><USER6> This post is great---even just explaining the difference between figure and axis, and the multiple systems (and the wise recommendation to use the OO system), and all the rest is gold---that stuff took me days of beating my head against the wall and searching through the matplotlib documentation to sort out.

Honestly, for 99% of uses Seaborn is great, so long as you remember to use the latest version---for some reason, a lot of people seem to have 0.8.0 installed, and the api changed with 0.9.0.

For uses beyond what Seaborn can do, I think that the best strategy is just to figure out a personal plotting language and then wrap that up into a personal library so you never have to think about that again. That's kind what I've done: I threw together a library to produce some basic figures that are suitable for printing,[1] and now I never have to think about those figures again.

[1] [https://github.com/paultopia/plottyprint](https://github.com/paultopia/plottyprint)

</comment><comment><USER7> Matplotlib is one of the most user-unfriendly libraries I've had the displeasure to use. The most effective thing to do is to not use it at all.

If you can get away with it use pandas' plot, seaborn, altair, etc.

<comment><USER8> Everyone I know at $big_research_lab uses it and hates it. But what are the alternatives really? Altair plots are larger than you dataset, plotnine has totally unusable docs and _insane_ behaviour in some places (look up what plotnine's gg.ylims does; I'd bet it's caused more than one peer-reviewed error.), and further seems to have basic operations like drawing a vline scale in slowness with the size of your data. Plotly is commercial, raw d3 is inconvenient from python. The situation is deeply unfortunate.

<comment><USER9> what is wrong with plotnine's ylim?

<comment><USER8> Clips your data, changing the behaviour of smoothers etc, iirc gg.cartesian(ylim=...) is the thing that people usually want.

</comment></comment></comment></comment><comment><USER10> I agree with the basic premise: matplotlib is sort of lousy to use, and annoying to learn, but it works and does everything you might need. There's something to say about software that solves a problem

<comment><USER11> I'd say the premise a bit differently: matplotlib is tricky to learn but once you figure out how it works it's not bad.

I just went through this process myself ([http://kachess.k2company.com](http://kachess.k2company.com)) and this outline would have been SO helpful. I learned these points the slow, hard way.

(And while it doesn't suck, it's certainly not fun and intuitive.)

</comment></comment><comment><USER12> I'm a long term Matlab user and I've been using Matplotlib more and more recently. This is partially out of frustration with recent changes to Matlab graphics and also a desire to use more open source tools.

Matlab plotting is extremely powerful and versatile. Sometimes the output could be nicer but the interactive figure hierarchy is great. Matplotlib on the other hand is, at least to me, a lot more clunky to work with. But it gets the job done and the output often looks nicer and solves my gripes with Matlab.

<comment><USER13> I'm in a similar boat. I actually like Matlab's plotting a lot more than Matplotlib, but I use python for everything these days. So for me I use Matplotlib for really quick visualizations (usually just plt.plot()), and if I want to do anything more fancy I'll dump my data into Matlab.

</comment></comment><comment><USER14> What is the state of the art in Python data visualisation compared to ggplot2 in R? Over the last few years I have gone exclusively with ggplot2 because it seems so intuitive and customisable.

<comment><USER15> Altair is getting pretty good. It's a bit like ggplot in that it's declarative, though I wouldn't suggest dropping R for this any time soon.

[https://altair-viz.github.io/](https://altair-viz.github.io/)

<comment><USER16> Another option is to use plotnine, which is intended to be a ggplot2 clone. It uses matplotlib under the hood, so if something isn't right you can tweak it. That was the main drawback I found with Altair: your declarative code is almost literally dumped to a json file and then rendered by a process external to Python, so good luck tweaking your plot.

[https://github.com/has2k1/plotnine](https://github.com/has2k1/plotnine)

</comment></comment></comment><comment><USER17> Another crucial tip if you do a lot of custom drawing, is to use collections instead of calling draw functions per object. This radically speeds up drawing. For example using PolyCollection to draw a big bunch of polygons, then LineCollection, EllipseCollection etc.

</comment><comment><USER18> I've learned to love matplotlib and its OO interface.

I just wish that its documentation examples would consistently provide the OO interface version of how to achieve each example, at least alongside the state-machine version.

It's always frustrating to see an example image that shows exactly what I want to achieve, and then click on the code for it and it's using the other interface, and I have to try to guess the equivalent OO commands. Which are always slightly different, like set_ylabel instead of ylabel...

</comment><comment><USER19> Isn't Seaborn famous for this very reason? matplotlib is a bit difficult to write code in but seaborn makes it easy.

<comment><USER20> Seaborn is nice for making "standard" plots. but if you need to customize your graphics somewhat, you'll find yourself needing to use MPL in addition to Seaborn anyway.

</comment></comment><comment><USER21> I don't mind matplotlib but I highly recommend trying to use seaborn over it for anything.

Specifically seaborn's catplot (for categorical), lmplot, swarmplot, pairgrid, and facetgrid.

The seaborne gallery really has an extra level of expressiveness that you might not have considered as an amateur visualizer and you can make some very nice things.

Matplot lib runs underneath it so you'll need to learn all of the adjustment functions: lim, figsize, ticks, etc. but I think it's fine overall.

Charts are hard because there's more depth than people realize and if the library wasn't deep you'd be unable to express that depth.</comment>


Japanese volcano erupts - <AUTHOR> http://www.timeslive.co.za/world/article965229.ece/Japanese-volcano-erupts

<comment><USER2> This is starting to look like a really difficult game of Sim City.

</comment><comment><USER3> So correlation != causation but...

Shinmoedake erupted recently (Feb 1), was quiet since March 1st and has now erupted again. Interestingly it has been showing increasing activity the last couple of years (eruptions in 1716, 1717, 1771, 1822, 1959, 1991, 2008, and 2009). One could perhaps draw some arbitrary links between these dates and significant earthquake activity, but that would probably be taking it too far.

An Indonesian volcano (Karangetang) also erupted following the recent earthquakes (Hawaii had smaller unrelated quakes as well which I wasn't aware of).

Russian volcanoes also erupted following the quakes (accompanied by smaller quakes).

<comment><USER4> Correlation with what? The earthquake? The supermoon correlation is quite intriguing.

<http://www.businessinsider.com/extreme-supermoon-2011-3>

<comment><USER3> Yeah I heard about that but thought it might be a bit far-fetched. Yeah I meant correlation with the earthquake (the articles I read strongly mentioned that the volcanoes are coincidental, not necessarily related causally).

</comment></comment></comment><comment><USER5> Now only Godzilla is missing.

<comment><USER6> That and a zombie epidemic...

<comment><USER7> You forgot the alien invasion!

<comment><USER6> Don't forget the meteor shower...

</comment></comment></comment></comment><comment><USER8> Isn't the Icelandic volcano called Eyafjallajokull? Did he misspell it that bad?

<comment><USER9> Apparently, the name Eyafjöll (which is used in the article with the ö changed to oe) refers to part of the site of the famous Icelandic volcano. From Wikipedia: "The name Eyjafjöll describes the southern side of the volcanic massif together with the small mountains which form the foot of the volcano".</comment></comment>


J-expressions (2012) - <AUTHOR> http://sriku.org/blog/2012/04/15/j-expressions/ <comment><USER2> See [https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule](https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule)

That 'half of Common Lisp' thing keeps popping everywhere, unless explicitly planned.

<comment><USER3> Ironically, I think common lisp is itself 'an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp'.

<comment><USER4> That is in fact Morris's Corollary to Greenspun's Tenth Rule.

</comment></comment></comment><comment><USER5> It's JSON as AST!

Two things that bother me:

First, the insistence on changing the way keys are written so as to break compatibility with JSON.

Second, the assumption on the ordering of keys in an object--it's my understanding that the standard _does not_ require the order of keys to be preserved. Even if everyone does it, that's not a good thing to force on people if they are otherwise following the official standard.

<comment><USER6> Without assuming order, you'd be forced to use something that explicitly provided order, such as an array. I suppose you could use

        { "jexpr":
            [ "function",
              "and",
              "its",
              [ "arguments",
                "may be",
                "arbitrarily complex"] ] }

<comment><USER7> Or better yet, how about something like:

       [ "jexpr",
          [ "function",
                "arg1",
                "arg2",
                ["Complex", "argument"]]]

Which wouldn't break the spec either. It also happens to pretty closely match an S-Expression.

<comment><USER8> If you made simple strings atoms and a "'triple quoted'" strings (or substrings) a string then you could implement a simple Lisp in it by replacing the parse() function in [https://www.hackerschool.com/blog/21-little-lisp- interpreter](https://www.hackerschool.com/blog/21-little-lisp-interpreter).

Might be an interesting way to expose an api.

</comment></comment></comment></comment><comment><USER9> getting a 404 on the linked article about dsl's and linked expressions.

Edit: I believe this is the proper link: [http://sriku.org/blog/2012/04/14/creating-dsls-in- javascript...](http://sriku.org/blog/2012/04/14/creating-dsls-in-javascript- using-j-expressions/)

Definitely interesting though - json as a DSL with implementation in many languages could be useful for lots of message bus applications.

<comment><AUTHOR> Yep, that's the proper link.

Disclaimer: I made the post in HN but (unfortunately) I'm not the blog author.

</comment></comment><comment><USER10> Just use s-expressions, already.

<comment><USER11> Especially if you're not even using real JSON.

An actual JSON compliant expression spec would be somewhat interesting, to capitalize on existing parsers and tooling. It would be even more interesting if it had a 1-1 mapping to scheme or some other Lisp. This accomplishes none of that.

</comment></comment><comment><USER12> The value of mobile code isn't exactly a new thing. I didn't even think it was a new thing for the JavaScript world.</comment>


Sparrow for Windows - Mailbird - <AUTHOR> http://www.kickstarter.com/projects/1798647582/mailbird-needs-its-wings <comment><USER2> Looks really nice! Long time Sparrow fan and it'd be sweet to have a familiar experience on my Windows box too. Seems like they're developing a bunch of stuff on top of what Sparrow has too which opens up new possibilities of an email-orientated app store. Worth supporting on Kickstarter to help make it happen, plus get a license back which you'll end up buying anyway if this interests you.

</comment><comment><USER3> Looks pretty good. They should team up with the Sparrow guys :)

<comment><USER4> Unfortunately since Sparrow was acquired by Google [1] they are no longer working on Sparrow.

I still use Sparrow and have zero problems with it, though for some reason I still keep my eye out for new apps to replace it.. I think I just enjoy playing with new features, heh.

There's also the similarly named MailPilot.[2] They're apparently planning on making native apps for every platform. There's currently a public beta for their web app, though there is no free trial; you have to pre-order a year's service (at $60) to gain access, which is a little steep in my opinion!

[1] <http://sprw.me/> [2] <http://www.mailpilot.co/>

</comment></comment><comment><USER5> I am really looking forward this clean desktop email software! this current one available for windows are so boring and time consuming! Hope Mailbird will change that!

</comment><comment><USER6> I haven't seen something like this for Windows.. Looking forward for it's release :)

<comment><USER7> Seven days ago you said it was "looking good".[1] did you forget about it? Or did you get a little sloppy with your astroturfing?

[1] <http://news.ycombinator.com/item?id=4696795>

</comment></comment><comment><USER8> the design looks clean than the other desktop email client in windows.. I wonder how it feels to have sparrow in my windows.

</comment><comment><USER9> Cool! Love to see a Windows version of Sparrow. Looks really nice, and excited to see what apps will be available. Has my support!</comment>


Circle Emerges From Stealth To Bring Bitcoin To The Masses - <AUTHOR> http://techcrunch.com/2014/05/15/circle-emerges-from-stealth-to-bring-bitcoin-to-the-masses/ <comment><USER3> Every time I read an headline about "bringing bitcoin to the masses" I'm reminded of the saying that you can lead a horse to water, but you can't make it drink.

> "We don't think consumers should be charged for using their own money."

Where I live (UK), I can't think of anything bitcoin services like Circle offer that is definitively better than my existing bank setup.

I'm not charged for using my own money. I don't pay a monthly fee for my bank account. I don't pay anything to send money to other people in the UK, which covers 98% of all the people I send money to. If I do send money to people in the UK, it's usually virtually instant, because of Faster Payments. I can withdraw money from nearly all ATMs in the UK free of charge -- the only exception are rare independent ones in places like nightclubs and out-of-the- way convenience stores, and I honestly can't ever remember using one. I can check my bank balance on my phone -- by app or by SMS. In lots of outlets I can pay for small value transactions, anything up to £20, just by waving my bank card.

I understand the banking system in the USA is ... different. (Some would say behind the times.) But in the UK at least, promoting a bitcoin-based service based around the concept of better retail banking is a hard sell.

<comment><USER4> The bank you use is in actual control of your money. They let you access your money on their terms. They reserve the right to revoke access to your money in many circumstances. You don't get to opt out of having a bank account in modern society. You get to choose from multiple banks that act almost identically. All of them record every thing you pay for. All of them store your data and make it available to thousands of employees and any two-bit hacker that ever breaches their security.

A massive increase in personal freedom and personal privacy is all it took to convince me. I doubt it's an American thing, but maybe it's an easier sell here.

<comment><USER5> I am not aware of many " _two-bit hackers_ " compromising bank security.

Bank security systems are designed and administered by people of the same calibre who design and administer many startups, including crypto-currency products.

Do you think that an elite _hacker cadre_ exists and those working in corporate environments suddenly are less effective?

Nonsense.

<comment><USER6> >Bank security systems are designed and administered by people of the same calibre who design and administer many startups, including crypto-currency products.

Then why is it that I have frequently run across banks requiring a maximum 6- or 8-character password, and have _never_ run across a startup -- Bitcoin or not -- with such poor security requirements?

<comment><USER5> Which banks specifically secure online data _only_ using a 6 character password?

Most banks, if not all, have BSI ISO27001 security certification and are accredited and administered by the pinnacle companies of the security industry.

For comparison; HN has a multitude of threads listing the outrageous security practices of many crypto-currency related companies, some beyond start-up.

You seem to think banking security is simply a bunch of guys in suits simply having a crack with a copy of ZoneAlarm and Kaspersky. Classic _them v us_ ideas with a touch of Dunning-Kruger thrown in.

<comment><USER7> Yes and no; while the banks have avoided widespread compromise they often have weird password requirements or ham-fisted attempts to secure user's PCs with crapware like Trusteer Rapport: [http://www.pcpro.co.uk/realworld/359617/is- hsbcs-security-so...](http://www.pcpro.co.uk/realworld/359617/is-hsbcs- security-software-more-trouble-than-its-worth)

For a while Santander's login system redirected my wife's account to a page with an expired HTTPS certificate.

Then there's fun things like playing tetris or MITM attacks on the Chip and Pin terminals: [http://www.saardrimer.com/sd410/pres/showandtell08.pdf](http://www.saardrimer.com/sd410/pres/showandtell08.pdf)

(Obviously mtgox is worse, but my point is that banks tend to a proceduralist cargo-culty approach to security).

<comment><USER5> That is a nice link to the chip and pin compromise although APACS did cover it

>> _We believe that the risk remains very low. [This attack] is significantly difficult to industrialise to the numbers of devices that would gain criminals the return they would expect and, therefore, not economically viable to criminals._

I am not saying banks are perfect, no organisation is, but they are certainly not just old men in conference rooms wondering what the little 1's and 0's mean. Some bank security consultants are the best penetration testers in the world.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Reading the entire article, their business model is not at all obvious. They claim to not charge fees; they can't make money on their customers' money; where _do_ they see a business opportunity here? Conversion fees would be the obvious, if the lack of fees just referred to transmit/receive, but that doesn't seem true based on the article.

<comment><USER9> Keep in mind that if they're paying the network fees for the user they also lose ~0.0001BTC or more per transaction it's users make. They've got to make that up from somewhere.

<comment><USER10> The fee was reduced to 0.00001 BTC (1/10th) recently: [https://github.com/bitcoin/bitcoin/pull/3305](https://github.com/bitcoin/bitcoin/pull/3305)

EDIT: It seems I misunderstood the change. M4v3R is right.

<comment><USER11> That change only reduces RELAY fee, which means that nodes will now by default relay transactions with such fees to other nodes. The default minimal miner fee, which is what miners require to include transactions in blocks is unchanged.

<comment><USER10> Yeah, it seems I misunderstood the change.

</comment></comment></comment></comment></comment><comment><USER12> Circle's demo video at [https://www.circle.com/2014/05/16/circle- update/](https://www.circle.com/2014/05/16/circle-update/) is perhaps the only I've seen best watched with a calculator.

$10.00 + $0.01 that comes out of nowhere + $200.00 - $23.65 = Uhhh... $187.27? Plus or minus 91 cents? What?

Yes the Bitcoin exchange rate fluctuates a lot, but their ledger does not seem to reflect that. That's problem number 1.

Problem number 2 is Bitcoin itself.

Problem number 3 is that the comments are about "insurance" are completely disingenuous. What insurance? Circle is not FDIC or NCUA insured and the company has an obligation to make that clear. Allaire and his investors should know better.

<comment><USER13> While Jeremy is talking in terms of dollars in the presentation, the software is actually keeping balances in terms of bitcoins. You can see on the screen below the two green add/withdraw funds buttons a bitcoin price ticker, e.g. 1 BTC = $446.87 at the start of the video. As he is talking and doing transactions this exchange rate is being updated, maybe as often as every 30 seconds. And you can see even when he's not doing anything his dollar balance is fluctuating to reflect the changes (it goes from $10.00 to $10.05 to $10.01 at the start of the video without him doing anything). But the number of bitcoins remains constant.

So that's a fault of the video I think, that he doesn't explain this clearly and talks too much in terms of dollars rather than bitcoins. They'll need to present this more clearly for their actual user video.

<comment><USER14> So why does the BTC amount for the socks that he is buying change, then? 0.05264624 suddenly becomes 0.05265041 despite 'zero fees'.

</comment></comment></comment><comment><AUTHOR> [http://circle.com](http://circle.com) \- That must have been an expensive domain!

<comment><USER15> $26MM in venture funding will get you far. Iirc, color.com was purchased for $200,000. This was probably in that ballpark.

</comment></comment><comment><USER16> Circle has been in "stealth mode" for like a year, and still hasn't published anything else than press releases. It is annoying how much press you can get without actually delivering anything concrete.

</comment><comment><USER5> Essentially, for the benefits of anonymous transactions I need to -

[1]Change Fiat Money into Fiat CryptoCurrency

      >> incurring a fee and absorbing risk

[2]Use a Third Party Application to Purchase Something

      >> incurring a fee

[3]Change Fiat CryptoCurrency back to Fiat Money

      >> incurring a fee and absorbing risk

> >

[4]Hope that Steps 1 and 2 become so popular I no longer need 3.

[5]Wait on employers and clients paying me in volatile crpytocurrencies

</comment><comment><USER17> Jeremy Allair and his brother invented the Coldfusion programming language, later bought by Adobe. Bright dudes!

</comment><comment><USER18> > "I'm not charged for using my own money" You are, you just don't know it > because it isn't apparent. In fact, they want to make it appear that you're > making money for spending money! Ultimately, it doesn't matter who bears the > additional cost of using credit/debit cards, it results in higher prices for > everyone and since credit card agencies prohibit differential pricing, it > punishes people who pay cash.

Bitcoin still has a long long way to go and won't replace the existing system anytime soon, but definitely watch out for retailers who already provide a steep discount for using Bitcoin. That will be a good first step.

<comment><USER19> Can you expand on this a bit? I put money in the bank, no fees are ever charged. I spend money on the card for that account, no fees. I have a credit card, pay it off in full every month, no fees. I have direct debits to pay my bills, no fees. I don't see anywhere I'm charged anything by my bank. I think I'd have to pay 50p if I wanted paper bills actually.

If your argument is everything is priced higher because I'm not using bitcoin, the banks aren't getting that money so I'm not sure I understand - <USER2> everyone have to lower prices when everyone accepts bitcoin? I mean that sounds great but I'm not sure why a capitalist market would indefinitely reward you for using another currency - when there's nothing to gain marketing wise we'll see I guess.

</comment></comment><comment><USER20> Is the name a jab at Square?

<comment><USER21> There seem to be a lot of these things. Circle, Square, Stripe. I'm expecting to see a Triangle enter the fray soon.

<comment><USER22> Pyramid is a more likely candidate.

</comment></comment></comment><comment><USER23> Hmmm, a service that charges _nothing_ for things that almost certainly cost money (BTC-USD conversion, "insurance"), marketed at "non-technical" users, lots of promises about "nobody will steal your BTC, not like all the other places"...

Remember the old line that if you don't know who the sucker is at the poker table, it's YOU?

</comment><comment><USER24> In a business where information security is so important, it's discomforting to see mishandled HTML escaping on their own News page:

> Bloomberg TV – Circle CEO Jeremy Allaire Interview on > Bloomberg’s “In the Loop”

</comment><comment><USER25> > "At Circle we are very focused on creaing a product that allows us to move > from early adopter to early majority,"

Always surprised when typos get through, especially for founder/CEO quotes.

<comment><USER26> What does that sentence even mean? It's such an empty statement.

<comment><USER27> [http://en.wikipedia.org/wiki/Diffusion_of_innovations](http://en.wikipedia.org/wiki/Diffusion_of_innovations)</comment></comment></comment>


Declines in Sexual Frequency Among American Adults, 1989–2014 - <AUTHOR> https://link.springer.com/article/10.1007%2Fs10508-017-0953-1 <comment><USER2> I know a lot of you guys/gals here are very successful and have your "shit" together. Do you ever ask yourself what a man or a woman of your interest has to offer to you when you seemingly have everything? I started doing this after a number of failed relationships started taking a significant toll on my well- being and the answer to this question has kept me single for a few years now (some of the happiest years too) because outside of consistent sex there is all too often nothing else. We don't even know how to "relationship" anymore. Ambitions and trying to one-up each other are taking precedence over everything else. It's really sad and reminds me of the society described in the book called "Brave New World" by Aldous Huxley.

<comment><USER3> There's also a trend of men 'going their own way'. There doesn't seem to be a female equivalent yet. I wonder why this is not studied in more detail. And it seems the latest generations have a very pragmatic/utilitarian view of sexual relationships - to the point where it loses its magic. From a cost/benefit viewpoint, can't blame them.

<comment><USER4> Female here! I "went my own way" about three years ago...and it's awesome! I'm not a cat lady either...can't stand the things.

I won't deny radical Libertarianism had a lot to do with this decision, but it's basically this: if you find someone you adore, spend time with them. Have sex with them if you feel like it. If you guys don't make each other happy at some point, do some solo traveling. Spend time contemplating alone. Hang out with different people. Then, come back together.

It's incredible how much new, interesting shit you'll have to talk about when you live this way. You may fall in love with each other all over again.

I don't know if it's true that we "don't know how to relationship" anymore, rather, we're relationship-ing in a way that doesn't serve modern society/reality/whatever-you-want-to-call-it.

Cheers!

<comment><USER5> Average life expectancy a couple of hundred years ago was 40. Marriage kind of made sense. Now it's double that and soon we might end up tripling it.

My grandmother and her great grand daughter are both alive.

When humans live that long, having the liberty to change partners is refreshing. Like having another sub-life.

<comment><USER6> Yes, average life expectancy was dramatically lower than now but that's because of childhood diseases. Generally, if you made it to your 20s you'd make it to your 60's. But boy did all those children dying wreck the average life expectancy calculation!

<comment><USER7> Sapians talks a bit about how bad it was. King Edward I of England who would have had access to the best care of the time had 11 out of his 20 kids die in childhood.

</comment></comment></comment></comment></comment></comment><comment><USER8> I'm glad statistics proved what I was already painfully aware of.

<comment><USER9> The article only says that people have been having sex 9 fewer times per year in 2010 vs 1990. That's an awfully small change to notice.

<comment><USER10> An absolute number doesn't say anything about whether a change is "awfully small to notice".

If the average adult had sex 18 times per year in 1990 and does it "9 fewer times" in 2010, that's a 50% reduction for example.

<comment><USER9> The answer is right in the abstract. They cite that the majority of sex is had between married couples, and that number is 80 times per year for couples in their 20s (down to 20x for couples in their 60s). Maybe the parent poster has carefully polled his married friends to determine this trend, but I suspect they're merely uncritically accepting information that aligns with their existing beliefs like we all do.

<comment><USER10> 9 less from 20 is quite a decrease. So would be 9 less from 30 or 40 etc. And it could be way more per group.

9 is the average decrease, not one that just applies to the 80x population.

<comment><USER9> You're not wrong but I wish you backed your evidence with numbers from the paper instead of hypotheticals.

<comment><USER10> The paper is behind a paywall though.

Besides the original comment just gave the number "9 less" without any other number from the paper as context so that we can evaluate the importance of the change.

<comment><USER9> My bad, I assumed everyone else had access. Someone else posted a link in the comments section.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> From the article: "The results suggest that Americans are having sex less frequently due to two primary factors: An increasing number of individuals without a steady or marital partner and a decline in sexual frequency among those with partners."

In other words:

\- Americans without partners are having sex less frequently because they increasingly have no partner to have sex with.

\- Americans with partners are having sex less frequently because they are having sex less frequently.

Not a very enlightening conclusion.

<comment><USER9> Not enlightening, but also safe and soundly supported by evidence. The unsupported theories popping up in the comments section here would make any clickbait science journalism site happy.

</comment></comment><comment><USER12> While the article is interesting, I think some of the more curious part of HN crowd might find it also worthwhile to look at the actual dataset available here: [http://www.gss.norc.org/](http://www.gss.norc.org/) . Looking at the codebook, some of the relevant variables for analysis of this kind would be PARTNERS, SEXFREQ, NUMWOMEN, NUMMEN, PARTNRS5 (starting at p.2586).

The codebook includes nice summary tables that might alone answer some the questions you are thinking about (like here [https://news.ycombinator.com/item?id=13823544](https://news.ycombinator.com/item?id=13823544) ; I myself didn't download the data yet but could write that comment).

</comment><comment><USER13> I would like to know the effect Tinder has had on sexual frequency.

<comment><USER9> The authors mention Tinder in their paper, stating that it could increase the frequency, but it wasn't enough to make up for the other factors.

</comment></comment><comment><USER14> _> Age had a strong effect on sexual frequency: Americans in their 20s had sex an average of about 80 times per year..._

This seems too low to be true. Only three times per fortnight?

<comment> trey-jones Are you basing this comment on personal experience? If so, congratulations! As for me, a married man who had my first child at 26, I would say 80 times a year during my late twenties is probably close to accurate. Maybe slightly low. As for the sexual activity of my peers, I have no idea! Do you?

There are probably also legions of 20-something Americans out there that simply have no prospects for sex on a regular basis.

Could this be more or less true in rural areas than urban? I have no idea. We just don't talk about it enough.

</comment></comment><comment> d--b I'm curious about the correlation with alcohol consumption?

<comment><USER15> >With age and time period controlled, those born in the 1930s (Silent generation) had sex the most often, whereas those born in the 1990s (Millennials and iGen) had sex the least often.

smartphones and social networks.

<comment><USER16> Long commutes, economic uncertainty, mismatched job shifts, not having any free time or energy...

My partner's workday ends at 10:30-11:30 pm. I can't get any work done if I don't get up and head to work at ~6:00 am. She works Tuesday -> Sunday. I work Monday -> Friday.

But no, surely it's the fault of smartphones and smooth jazz music.

<comment><USER17> From the abstract: "The decline was not linked to longer working hours".

<comment><USER18> That says nothing of the _mismatched_ working hours that the parent was speaking to.

</comment></comment></comment></comment></comment><comment><USER19> Sounds interesting. Anybody have a link to the full article?

<comment><USER3> [http://sci-hub.cc/https://link.springer.com/article/10.1007%...](http://sci- hub.cc/https://link.springer.com/article/10.1007%2Fs10508-017-0953-1)

</comment></comment><comment><USER20> Internet...

</comment><comment><USER21> what is driving lack of intimacy? My theory is pretty controversial but it's because women are working more as well as men. Less parent time, less attachment, less intimacy. For men without a strong male figure it's even more impactful.

p.s. crazy theory I came up with after reading [http://parenthood.library.wisc.edu/Hoffman/Hoffman.html](http://parenthood.library.wisc.edu/Hoffman/Hoffman.html)

<comment><USER22> I think the divorce rate of previous generations has a lot to do with it. My parents divorced when I was young. It took me a long time to be able to even develop the emotional maturity to have an intimate relationship, and longer still to develop any real skill at it. I had no real role models, and the survival lesson I learn was "never be vulnerable." But vulnerability is key to intimacy. It was not until I went through a divorce of my own that I really even "got it".

And now... I'm having trouble finding a partner capable of that level of intimacy. My most recent ex-girlfriend was a brick wall; no vulnerability, no expression of deeper emotion. Just a willingness to fight and a quickness to get angry. She's convinced she's not worth loving, and so, of course, she pushed me away, questioned _everything_ , and didn't trust me when I said, "I know you think I feel Y, but I actually feel X." She, too, is the product of divorced parents.

<comment><USER21> This really hits home. I pondered whether I should write the following string of text because they are deeply personal but I've worked up the courage to put them in writing because it's been driving me nuts and I'm sick of having to protect my parent's failures.

The earliest memory I have of my father is raging and suffocating my mother with a blanket. The whole movie is spotty. It's like my mind was trying to protect my 7 year old brain by "deleting" traumatic moments. This is the tip of the iceberg. All I can say is I've never felt safe. My biggest fear at the end of school was walking home in fear _every single day_ that my dad might try to kill my mom.

My lifelong desire was to provide financially for my mom and younger sister so she wouldn't have to depend on my father. I've failed here but I'm still in this software game, hoping that I can finally provide the life my mom and sister is owed-my father being the world's poorest and financially irresponsible dentist.

Even as I'm writing this I'm starting to get uneasy and it's hard for me to continue. Everytime I revisit these scenes, it starts to trigger anxiety and panic.

While I think divorce is traumatic, the aftermath of toxic adults who have deep hatred for each other is even more harmful to a child.

I really wish my parents had divorced earlier. I wish I hadn't seen, experienced early childhood, teens to adulthood.

I am utterly broken. I'm 100% certain that I will remain the way I am. Unable to marry, unable to have meaningful intimate relationships. I'm 30 but I do not feel like my emotional maturity is remotely close.

But all that I can bear. As long as there's a single breath of life in me, it will go towards creating products that will solve challenging problems and get paid for it so I can find peace for my family and myself.

Happy Wednesday, dear reader.

<comment><USER22> Hey, thanks for sharing that. I hope it was as helpful to you sharing it as it was for me reading it.

I really relate to your need to support your mom and sister. Whether I wanted it or not, I was the 'man of the house' very early on. It's extremely unfair and affected every relationship I had up until I got divorced.

I also relate to your missing/foggy memories. For a long time I couldn't remember the _happy_ parts of my childhood. It was like life began for me when my parents divorced; and life was hell.

If you haven't, consider therapy. I can't really describe how it helped me move past the emotions of my childhood, but it did. I have no issues remembering the happier times, and I can remember the miserable times without really feeling that black dread spreading across my stomach anymore. If you're still feeling it, you're stuck, and it's okay to get help with it.

Trust me when I say you are not utterly broken. You've been tenacious in your pursuit of peace, be tenacious in your pursuit of a whole self.

</comment></comment></comment></comment><comment><USER23> I don't know how much it's true in America, but here in Europe I see men moving to high paying jobs in already expensive cities (and making the cities even more expensive for women to move to) and women moving to cheaper cities (where they are able to get job for themselves) as the biggest factor in not having sex.

Internet also helped the explosion of long-distance relationships where people are having sex for a weekend in a month even if they are in monogam relationships.

</comment><comment><USER24> > _There 's also a trend of men 'going their own way'._

Are those idiots a statistically significant percentage of the population?

<comment><USER25> Would you please not comment like this here?

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

We detached this subthread from [https://news.ycombinator.com/item?id=13823356](https://news.ycombinator.com/item?id=13823356) and marked it off-topic.

<comment><USER24> Sorry; I shouldn't have let my personal opinions color my comments like that.</comment></comment></comment>


Magnetic Explosions Observed on Sun – Unlike Anything Seen Before [video] - <AUTHOR> https://scitechdaily.com/magnetic-explosions-observed-on-sun-unlike-anything-seen-before-video/ <comment><USER2> Solar physicists are the most bad-ass of all astrophysicists.

They are not afraid of unconstrained plasma fluid dynamics, which sends practically all other physicists and cosmologists fleeing in terror. It is considered extremely rude, even "career-limiting" to even mention plasma dynamics at a regular astrophysics conference.

Most physicists who do anything with plasma try desperately to stay within the stable envelope where the maths remain tractable. With good reason.</comment>


Decentralized DNS with the Handshake Naming System - <AUTHOR> https://www.privateinternetaccess.com/blog/2019/08/private-internet-access-users-can-now-resolve-internet-names-with-the-handshake-naming-system-hns/ <comment><USER2> The article and Namebase faq go into some details, but just so I understand, what are the practical effects of this beyond decentralization?

\- If I buy a TLD, will I own it in perpetuity, even after I die?

\- If we're encouraging people to register their own TLDs, won't we run into the same limited-name/squatter problems as normal domains? I get that names are being released at a trickle, but that seems like it would just put off the problem a bit.

\- Is this going to have the same environmental problems as Bitcoin, or will having fewer transactions mean that's less of an issue?

\- Is Brave the only browser looking into this, or are we also seeing buy-in from browsers like Firefox and Chrome?

I'll read through whitepaper and learn the details, but if possible I'd like to know if it's worth my time to do so.

I'm not necessarily feeling great about the idea of having separate TLDs for every site, but I'll admit there is something attractive about being able to register 1 TLD as a namespace, one time, and then using subdomains for every other site I ever make. It's just not clear to me how that system would scale.

<comment><USER3> I work at Namebase.The other comments address most of your questions, but just to add on: the 52 week rollout will help significantly with preventing squatters. Handshake has designed some other mechanisms that prevent squatting. The first is that the Alexa top 100k domains have been pre- registered (only facebook.com can register .facebook on Handshake). This ensures that existing domain stakeholders can transition to Handshake without worrying about their name being squatted on.

Second, Handshake is airdropping 70% of the mainnet coins to open-source developers. If you have over 15 followers on GitHub, you can claim around $400-800 of Handshake coins (HNS) with no strings attached. Not only will this give developers an incentive to check Handshake out, but also this ensures that the bidding power is spread out at launch. Without this mechanism, a whale could spend $10mm on HNS at launch and outbid everyone.

<comment><USER4> > If you have over 15 followers on GitHub, you can claim around $400-800 of > Handshake coins (HNS) with no strings attached.

How will one go about this? I'm interested, if only for the purpose of claiming a few domains that I have a personal interest in.

<comment><USER3> You can use [https://github.com/handshake-org/hs- airdrop](https://github.com/handshake-org/hs-airdrop) to claim your coins on the testnet. You'll have to repeat the process once the mainnet launches.

If you want an easier way to claim and use your coins I can also add you to our private beta for Namebase.io. Just ping me at tieshun at namebase.io.

<comment><USER5> There was a post on HN about a year ago announcing Handshake, with an option to signup for the airdrop with your github account, irc account, etc.

Do you know if these users will still receive the tokens they signed up for? Should these tokens show up on testnet?

<comment><USER3> You should have received a seed phrase as part of that airdrop. You'll be able to use that seed phrase to claim your tokens on the testnet and mainnet. Ping me at tieshun at namebase.io if you want to try things out on testnet — I'm happy to walk you through it.

</comment></comment></comment></comment></comment></comment><comment><USER6> Yeah, because I want to have to mine a token every time I update my DNS settings. -_-

I get the "global, transparent, append only log" appeal, but for the reality of most people, I don't want to rely on a blockchain converging, or processing my update in a certain amount of time.

And that doesn't even cover companies (I don't agree with this, but it is a reality), that consider DNS entries private, and don't want to expose an easily scannable list of DNS entries .

<comment><USER7> If this gains traction, you will be able to pay a service provider a fee to update DNS entries for you. This is like the current system used by registrars. You don't need to care if it is powered by a blockchain in the background if you don't want to.

I think it is great to have an alternative DNS system that is more censorship resistant.

<comment><USER6> > you will be able to pay a service provider a fee to update DNS entries for > you.

So every time I add a new LB, or cycle out an environment I have to pay someone? And then wait for them to process the chain to publish the result?

Remind me, what did etherium get to for transactons to clear? 20 something hours? That is not something I want when I am trying to redirect traffic from either a set of NS records that are broken, or if I host the full zone in the chain, a broken AWS / Azure region.

Combine the time to wait for caches to refresh on the internets (better these days, but still longer than people would like), with waiting for a blockchain to publish my new records, and you have ops people in pain.

DNS is already one of the largest fault tolerant, eventually consistent, cachable, federated, and globally distributed key value databases ever to exist - we don't need to add blockchain to the mix.

<comment><USER8> Handshake is for top level domains. You can do quick updates using traditional DNS infrastructure at a domain underneath a Handshake top level domain. The benefit is that you have a cryptographic asset representing the top level domain, the root of trust comes from you, value can accrue in the asset itself, its tradable with non interactive atomic swaps and is censorship resistant.

</comment></comment></comment></comment><comment><USER9> This is another Handshake protocol FAQ targeted at technical folks [https://github.com/handshake-org/handshake- org.github.io/blo...](https://github.com/handshake-org/handshake- org.github.io/blob/0a3659f574d618295ecef4bab590419fbb99da49/src/guides/protocol.md) (FYI this is a file currently staged in a pull request to the handshake docs repo on github)

</comment><comment><USER3> As an FYI for HN, many of y'all are probably eligible for $400-800 of Handshake coins (HNS). Handshake is airdropping coins to open-source developers to incentivize them to check out the project. If you have over 15 followers on GitHub you can use this tool to claim coins. This is a no- strings-attached giveaway so if you want to you can also sell your coins but it'd be worth it to bid on your name before you do. You can also reach out to me at tieshun at namebase.io if you have questions about the airdrop or Handshake itself.

[https://github.com/handshake-org/hs-airdrop](https://github.com/handshake- org/hs-airdrop)

<comment><USER10> Where do I get this bech32 address?

<comment><USER3> You can generate one with a Handshake client. If you'd like help with the process and an easy way to use your coins ping me at Tieshun at Namebase.io

[https://github.com/handshake-org/hsd](https://github.com/handshake-org/hsd)

</comment></comment></comment><comment><USER11> Kind of unrelated, but if there was ever a viable use case for blockchain beyond anarchist payment systems, it seems like it would be DNS.

<comment><USER12> The closest thing there is right now would be ENS - the E stands for Ethereum.

ENS domain names can mainly be used for payment for now, so I'd be sending crypto to [domain].eth where the advantage is having a readable address instead of a random-looking string.

You can also host web pages on it (which I believe is helped by their IPFS) but that has seen limited use as of yet.

<comment><USER3> I work at Namebase. Handshake is compatible with ENS actually because Handshake has reserved .eth for ENS names. Since Handshake decentralizes the top-level namespace, Handshake can serve as a gateway to other naming systems like ENS and Namecoin.

<comment><USER13> Um, please tell me more :)

It can do that or it does do that? Also, ENS doesn't typically resolve to an IP but instead a swarm hash or a block address, what would end up resolving in those cases?

<comment><USER8> The way the the ENS integration would work is the DNS request for vitalik.eth would end up at a Handshake Authoritative Name Server and then there are certain blacklisted top level domains (.onion, .tor, .i2p, .bit and a few others) where a client for that protocol is instantiated and then a request is sent out to the appropriate system and then the response would be formatted into a DNS query by the Handshake Name Server and sent back to the client.

Not implemented yet, but this is where one would implement it [https://github.com/handshake- org/hsd/blob/master/lib/dns/ser...](https://github.com/handshake- org/hsd/blob/master/lib/dns/server.js#L52) [https://github.com/handshake- org/hnsd/blob/master/src/ns.c#L...](https://github.com/handshake- org/hnsd/blob/master/src/ns.c#L323)

</comment></comment></comment></comment></comment><comment><USER14> If something is worth stealing, then it would be. The majority of code isn't infrastructure quality (equivalent to setting cement and leaving it there for a hundred years with minor maintenance). Until then, the technical flaws must be balanced with collective governance.

(Incidentally, cement with such long lifespans were widely used during the Roman Empire)

</comment><comment><USER15> The title is a bit misleading. This is not an alteration to the DNS system, but rather a brand new naming system.

<comment><AUTHOR> > This is not an alteration to the DNS system, but rather a brand new naming > system.

The existing TLDs will continue to be held by the existing TLD holders. So, as an example, news.ycombinator.com will still work!

This is truly a drop-in replacement of the DNS ROOT giving power back to the people.

</comment></comment><comment><USER16> This all looks and sounds really great but I have one big question. If this requires a proof of work chain, why not just build it on top of Bitcoin?

Then you wouldn't have to convince people to spin up a new node for a separate chain. This seems like an obvious choice to take advantage of Bitcoin's network effects and inherent chain security.

You could even lock up some bitcoin and issue bitcoin-backed Handshake tokens and continue operations as normal.

</comment><comment><USER17> Namecoin seemed like an interesting idea for decentralized registration, has it gone anywhere in the years I haven't been following it?

<comment><USER18> Not really. One problem is most of the good names got taken by squatters right out of the gate, like hundreds of thousands of them - irl trademarks, all the nouns in the dictionary bought by one guy, etc. Mainstream business will never adopt it for that reason, so its growth is inherently capped and most crypto natives ignore it.

<comment><USER3> I work at Namebase, which is a domain registrar and on-ramp for Handshake. That's what makes Handshake so compelling imo. There are a lot of mechanisms that prevent squatting: bids are locked up until auctions finish, so squatters need to pick and choose where they allocate coins. Furthermore, names are rolled out over a 52 week period (hash of the name mod 52), which means that there will still be a lot of good names available 6 months into launch. And the Alexa top 100k domains have been pre-registered, in addition to the blacklisted ICANN TLDs, so that only facebook.com can register .facebook. Finally, 70% of the coins are being airdropped to developers so the bidding power will be evenly distributed from the start — it'll be difficult for a whale to buy up $10mm of Handshake coins and outbid everyone.

</comment></comment></comment><comment><USER13> Thats cool.

Also ENS (Ethereum Name Service) on the ethereum block chain is really cool, though its more for resolving to swarm hashes or block addresses... which are for decentralized documents and apps.

[https://manager.ens.domains/](https://manager.ens.domains/)

</comment><comment><USER19> DNS has always been decentralized. I mean, first sentence on wikipedia:

> The Domain Name System (DNS) is a hierarchical and decentralized naming > system for computers, services, or other resources connected to the Internet > or a private network.

<comment><USER7> From the article:

> While DNS is already fairly decentralized, the centralization exists because > of ICANN's gatekeeper control .... ICANN ultimately has control over what > internet names are acceptable – and serves as a singular point of failure.

<comment> jude- Nothing stops you or anyone from running your own DNS root. The "hard part" of making a global DNS deployment operational isn't developing the technology; it's getting everyone to agree on all the particulars of the deployment.

<comment> concert-gilled > Nothing stops you or anyone from running your own DNS root

That is what this is doing.

> Handshake is a decentralized, permissionless naming protocol compatible with > DNS where every peer is validating and in charge of managing the root zone > with the goal of creating an alternative to existing Certificate > Authorities. Its purpose is not to replace the DNS protocol, but to replace > the root zone file and the root servers with a public commons.

\- [https://handshake.org/](https://handshake.org/)

</comment></comment></comment></comment><comment><USER20> Related from last year: [https://news.ycombinator.com/item?id=17673922](https://news.ycombinator.com/item?id=17673922)

</comment><comment><USER21> Sounds like BitTorrent DHT, but for DNS. Is that the right take?

<comment><USER22> Not really, the DNS data is stored in a new data structure called an "Urkel Tree" that offers small proofs and fast lookup times. Full nodes (that archive and process the entire blockchain) can serve these proofs to light clients that use the data to recursively resolve DNS.</comment></comment>


The Story of Self-Repairing Control Systems [pdf] - <AUTHOR> https://www.nasa.gov/centers/dryden/pdf/88798main_srfcs.pdf <comment><USER2> I am reading through this PDF, and I should say its very very interesting to see such interesting developments in aircraft control. Controlling an entire airplane using purely neural networks and software is a remarkable feat, one that will act as a catalyst for future technological advancements.</comment>


Ask HN: Best blogging platform for multiple blogs on one site? - <AUTHOR>

I would like the option to add blogs based on themes and project that have nothing to do with a my personal blog.  It would be nice to have all those blog feed into one blog and be able to have specific themed blogs at different location.  For example,  If I create a community site for my town it would be nice to have that blog on that community web site as well as listed on my personal blog?  I guess similar to what techcrunch does. <comment><USER2> WordPress 3.0, hands-down. Easy to install multiple blogs in one platform, each entirely independent of the others (including themes).

Domain mapping: <http://ocaoimh.ie/?p=89495930>

Getting started with 3.0 multi-site: [http://weblogtoolscollection.com/archives/2010/06/02/wordpre...](http://weblogtoolscollection.com/archives/2010/06/02/wordpress-3-multisite/)

Another multi-site tutorial, perhaps slightly out of date: [http://ottopress.com/2010/wordpress-3-0-multisite-domain- map...](http://ottopress.com/2010/wordpress-3-0-multisite-domain-mapping- tutorial/)

It's easier these days thanks to 3.0's built-in multi-site support.

Hope this is helpful.

</comment><comment><USER3> I'd have to go with Posterous. There's a menu on the side of the front page where you can easily alternate among your blogs. Easily editable settings, no need for tuts to figure anything out.</comment>


Show HN: Using Parsing Expression Grammars to rewrite source code - <AUTHOR> https://github.com/sebcat/move-literals <comment><USER2> Parsing expression grammars are my favorite way to parse text.

I also use Lua and LPeg. Here's a tutorial I wrote on them: [http://leafo.net/guides/parsing-expression- grammars.html](http://leafo.net/guides/parsing-expression-grammars.html)

Additionally, I've written an entire programming language with them: [http://moonscript.org/](http://moonscript.org/)

Here's the grammar:

[https://github.com/leafo/moonscript/blob/master/moonscript/p...](https://github.com/leafo/moonscript/blob/master/moonscript/parse.moon#L106)

My favorite part is that you express the grammar in code, not some simplified language designed to write parsers. So you get all the nice things a programming language normally gives you. (eg. you can use functions instead of having support for macros)

I've also started experimenting with compiling LPeg style grammars to C, for even more speed. This uses the peg library: [https://github.com/leafo/moonparse](https://github.com/leafo/moonparse)

You can see how the grammar looks here: [https://github.com/leafo/moonparse/blob/master/parse.peg.moo...](https://github.com/leafo/moonparse/blob/master/parse.peg.moon#L115)

<comment> david-given Last time I used Lpeg for a big project I ran into difficulties with error detection and recovery --- writing the parser for correct input was beautifully easy, but writing a parser that would gracefully handle incorrect input was very hard. (I'm reminded of the apocryphal Prolog compiler which, if you gave it a program with a syntax error, would just reply 'No.'.)

When I asked about the best way to handle errors it was suggested to me that I should add alternatives to my rules that would catch errors and return an error token from there; but of course, that short circuits any alternatives further up the grammar tree, so it wasn't very satisfactory. A quick look at your grammar doesn't show anything like this --- how are you dealing with errors?

<comment><USER3> >> (I'm reminded of the apocryphal Prolog compiler which, if you gave it a program with a syntax error, would just reply 'No.'.)

I don't believe you remember this correctly.

The Prolog _interpreter_ will raise an error for syntax errors. If you misspel something but don't cause a syntax error then you may get an unexpected "no" (or "false") but a syntax error causes compilation to fail, in Prolog as in any language.

In any case, a "no" ("false") is the proof procedure failing to prove your query true (or, more accurately, finding a way to prove it false). It's not an error and it's not a failure of the interpreter.

<comment> david-given The expanded version of the saying, which I think I got from my Prolog lecturer at university, is:

Writing an optimising compiler in Prolog (note, _in_ Prolog, not _for_ Prolog) which will accept valid programs is trivially easy. Writing an optimising compiler in Prolog which will say anything other than 'No.' for invalid programs is intractably hard.

<comment><USER3> Ah, I see- you meant a compiler written in Prolog, not a Prolog compiler.

Who was your lecturer? I haven't heard of that problem with optimising compilers in Prolog. I don't know why it should be harder to do in Prolog than in any other language.

</comment></comment></comment></comment></comment><comment><USER4> Minor technical nitpick for the README: You're not moving up the Chomsky hierarchy but rather moving sideways ;). PEGs are non-Chomskyan parsing formalisms, in the sense that the family of languages describable by PEGs are not to be found in the Chomsky hierarchy.

For example, they are not regular, as they can match patterns such as a^n b^n. On the other hand, they are also not context-free, as they can also match non- context-free patterns such as a^n b^n c^n. Finally, since PEG can be parsed in linear time, there must also be some CFG which cannot be recognized by any PEG - this follows due to a result by Lee [1].

[1] L. Lee. Fast Context Free Grammar Parsing Requires Fast Boolean Matrix Multiplication. [http://arxiv.org/pdf/cs/0112018.pdf](http://arxiv.org/pdf/cs/0112018.pdf)

<comment><USER5> Interesting. I see that the Wikipedia PEG article still states that the existence of CFG- but not PEG-parsable languages is an open problem.

<comment><USER4> It is! It is surprisingly difficult to come up with a grammar and a proof that it cannot be recognized by a PEG. Part of the reason is probably that PEGs and CFGs are quite different: A CFG is a set of generative rules which specify a set of strings, whereas a PEG is actually more like a recursive program.

There's an open question on Stack Exchange for anyone who feel like taking a stab at the problem: [http://cstheory.stackexchange.com/questions/34792/does- peg-c...](http://cstheory.stackexchange.com/questions/34792/does-peg-contain- cfg)

<comment><USER5> OK. I thought you meant that a non-constructive proof existed that there is such a CFG. That's how I interpreted "Finally, since PEG can be parsed in linear time, there must also be some CFG which cannot be recognized by any PEG". But I see that on cstheory you wrote instead (being more precise?) "most probably ... PEG does not contain CFG".

<comment><USER4> Ah, yes, that's because the non-linear complexity of binary matrix multiplication (which CFG parsing can be reduced to) is _strongly_ suspected to be a lower bound, but I don't think that there is a formal proof of it (I am not an expert in complexity theory, so I am just basing this on what some authors seem to suggest). So, the non-constructive argument is a "proof" in the same sense that some results can be proved by first assuming that P /= NP.

</comment></comment></comment></comment></comment><comment><USER6> I really wish the expressions were better documented/explained in the source. They're dense, similarly to regexps, and regexps also benefit immensely from explanation when used as a demo/teaching tool.

<comment><AUTHOR> Good point. I added a new branch where I broke the "literal" rule into multiple rules and added some comments where I try to explain what's going on in English. I also added an achor to it in the master README.md.

I find it a bit hard to accurately describe the operations with words though, if there's any ambiguities in the wording, let me know!

[https://github.com/sebcat/move- literals/blob/commented_expre...](https://github.com/sebcat/move- literals/blob/commented_expressions/move-literals.lua#L17)

<comment><USER6> Awesome, thanks! It's the first time I've seen example PEGs explained so nicely. I've let myself add a few small comments with some additional suggestions.

Some additional comments I didn't know how to add on github:

\- in load_data(), you should most probably use `local` on l.99 and 103;

\- in load_data() l.99, you could consider using the idiom:

        local f = assert(io.open(file, "rb"))

though arguably it's clearer as it is now.

Other than that, it would be even cooler if you could also add some examples in the repo of how to deal with parsing errors, as you showed in another comment!

<comment><AUTHOR> Thank you for the feedback. The commented_expressions branch looks a lot better than master now, I'll probably merge it. I added the code from the comment to README.md.

</comment></comment></comment></comment><comment><USER7> I viewed this on my phone and it was annoying and difficult to read due to the typing effect in the header which caused the content below to move up and down.

<comment><USER8> It is a readme on guthub. What typing effect are you talking about?

<comment><USER7> Wrong tab. Comment was meant for [https://news.ycombinator.com/item?id=12498976](https://news.ycombinator.com/item?id=12498976)

</comment></comment></comment><comment><USER9> A while back I made a PEG parser in Python in ~400 LOC, that can parse itself. It's actually quite straightforward: [https://gist.github.com/orlp/e880287287985ccd9288def8f6741b4...](https://gist.github.com/orlp/e880287287985ccd9288def8f6741b47).

I've also added a 'skipper' feature, that makes handling whitespace a breeze.</comment>


How to get a job in programming languages - <AUTHOR> https://waleedkhan.name/blog/getting-a-job-in-pl/ <comment><USER2> The best programming professor I ever had was a part-time adjunct Masters- level guy who worked on government projects as one of his day jobs (I think the guy had several jobs). He had a ton of real-world experience and knew how to make abstract concepts digestible. The purely academic profs in comparison had no clue what they were doing.</comment>


Show HN: I spent two years building my first game. No background in programming - <AUTHOR> http://www.cubemetrywars.com/ <comment><USER2> The game itself looks pretty nice actually, but there's a whole lot of visual clutter going on on the website - my eyes are immediately drawn to the coloured blocks in the background, which are visually distracting (even though they're practically the 'protagonists' of your game).

I'll have to download it to know if it's fun, but it's visually appealing enough for me to give it a try.

And hey, the app doesn't need any special permissions, big plus!</comment>


What do non-US hackers listen to when hacking? (radio) - <AUTHOR>

I'm not in the US so turntable.fm isn't an option.  By the way, if you haven't heard of turntable.fm, you should check it out so they get more users and are able to expand sooner. <comment><USER2> I found <http://di.fm> really good but I'm using <http://grooveshark.com> more these days at the recommendation of a colleague. Grooveshark has both radio stations and the ability to pick 'n choose the music.</comment>


Ask HN: Review my startup - posttoself.com - <AUTHOR>

Post messages to your private archive.
Then send them to yourself through scheduled email and text reminders.<p>The MVP is built and I am seeking beta testers to give me feedback.  Getting feedback on what works is nice, but I'm very interested to hear what doesn't make sense, why you think it won't work and what you think is missing. I have more features in mind, but they aren't worth building if they aren't inline with user needs and expectations. Thanks in advance! <comment><AUTHOR> Thanks for the feedback sixQuarks and rumberg.

I like the idea of letting people post notes before asking them to sign up. Until I get that setup I may just have a demo account that anyone can use that gets wiped clean each night. Thoughts either way?

The extra space in the sign-in field is for twitter and facebook sign-in icons once I get them working, which is hopefully in the next week.

rumberg: I agree with you on the design. Thanks for the tip on Open Sans & PT Sans. I hate to have the design follow, but I have to prove the need for the product before too much time and effort are put in on that front.

Great input! Keep it coming...

</comment><comment><USER2> Why don't you just add this scheduled email/text reminder functionality on top of Evernote using their API? <http://dev.evernote.com/documentation/cloud/>

That way you don't need to bother with user registration, you don't need to worry about people trusting you with their sensitive information (signing-up, posting notes etc), people are already using Evernote in their regular workflows to take notes and add reminders, and if it becomes a success then an Evernote acquisition is an obvious play.

</comment><comment><USER3> sixQuarks made a good point. Here are some things I asked myself when I first visited the page:

\- Where do I write myself messages? Just on the website? Why should I use this website instead of just writing myself an Email, use Simplenote or the Notes App? What are the benefits?

I would make these points more clear and emphasize the main benefit in a bold and big headline. I also really like sixQuarks idea. Why not put a note-field on the first screen and show them how easy it is to use your service.

Another thought: Don't give so much space to the sign-in-field. Most people who ll visit your website won't have an account (yet), so my advice would be: Place a big sign-up-field there instead – or an input field where people can send themselves messages already – and move the sign-in to the navigation bar.

As somebody who loves good design: You should work on the design. Use Typekit (Open Sans, PT Sans are very popular these days and make a big difference compared to all the Helvetica websites) and use a larger font-size in general.

</comment><comment><USER4> My advice is to make the sign up process more inviting.

Start with an input box where the user actually fills out what they want to remind themselves about. Next step (after they submit their reminder) should be their email and contact info.

Basically, allow them to do what they want to do first, then once they have committed, they will be more likely to fill out the boring stuff.

</comment><comment><USER5> I like the site. Suggestion under Manage Post you may want to include what time the reminders are scheduled. That would help individuals with a large list of reminders know what time their reminders will activate and avoid have two reminders at the same time.

<comment><AUTHOR> Good idea! This is definitely a feature I'll be adding in. The more I use it the more I see a need for the reminders to be displayed in an easy to read list. Either under Manage Posts or a separate page or both. Thanks for the comment.</comment></comment>


Amazon ECHO - <AUTHOR> http://www.amazon.com/gp/product/B00X4WHP5E/ref=s9_pop_gw_g451_i2?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=desktop-7&pf_rd_r=1NA8YZ60W55V0MXKEWM7&pf_rd_t=36701&pf_rd_p=2090151022&tag=facebookoffer15-20&pf_rd_i=desktop <comment><USER2> Confused, why is this trending. What's the new news about the Echo?

<comment><USER3> Maybe it got cheaper? $179 is less than the beta price I think...

<comment><USER4> beta price was $100

seems like spam to me</comment></comment></comment>


Why I'm Moving on to Web Components and Not Looking Back - <AUTHOR> https://hackernoon.com/why-im-moving-on-to-web-components-and-not-looking-back-aa8028c99c83 <comment><USER2> Is it really that simple though?

These Web Components are still Objects in the sense that you may have 1000 classes or 1000 web components.

Composition doesn't magically exist. I am expecting a "Web Components Framework" soon.

If I have misunderstood, then how?

Edit - I mean that, if you talk about the declarative nature of markup, you are going to end up with 14 layers, layer 0 is going to have some piece of data which layer 11 needs or some choice here, level 6 needs. Like a real application, it isn't often trivial, multiply this 1000 times. How are you going to deal with that? JavaScript?

I see what Angular solved, and dependency injection alone, if you have to deal with that personally, it gets really difficult. I also see where Web Components naturally fit such as:

1\. I had a widget quiz which was an iframe and it was brittle. Perfect <my- quiz> component.

2\. I had an IFrame inside of an Application but that required data sent over the boundary and back. It was outrageous and again, those IFrames could have been ideally web components.

There are other cases like this that I understand, but "Component all the things" doesn't seem like a particularly helpful pattern.

Again, I almost certainly misunderstand but I am investing in Polymer and I don't get it :/</comment>


People Who Read a Lot of Books Are Way Nicer, Kinder and Empathetic - <AUTHOR> https://www.peacequarters.com/bookworms-make-better-more-empathetic-friends-according-to-research-alexa/ <comment><USER2> Knowledge broadens the mind... but I'm curious if listening to audiobooks at 1.5x speed or greater leads to generalized impatience with people who speak at normal speeds.

(Maybe it's just me...)

<comment><USER3> I think we have to constantly remind ourselves in conversation, that we are a minority that does this.

Other than that, yes, I have realized this too.

But I've also noticed, that I far often need to speed up media from 20 years ago than with modern media. Is it likely, that the general train of thought nowadays has sped up?</comment></comment>


New filament allows printing metal on any 3D printer - <AUTHOR> http://3dprintingindustry.com/news/now-can-print-metal-3d-printer-85255/ <comment><AUTHOR> Between that news and news of groups like Ability 3D ([http://www.ability3d.com/](http://www.ability3d.com/)) seen at the National Maker Faire in DC ([https://makerfaire.com/maker/entry/57383/](https://makerfaire.com/maker/entry/57383/)) looking to exploit the expiration of a 3D metal printing patent in December 2016, the very near future looks bright... and shiny. ;-)</comment>


Google Is Giving Away Assassin's Creed Odyssey for Free at Project Stream - <AUTHOR> https://www.theverge.com/2018/12/18/18146914/google-project-stream-assassins-creed-odyssey-free-copy-ubisoft <comment><USER2> I'm probably overly paranoid, but these days Google has lost so much goodwill over the past few years that my gut reaction to this is closer to what I'd imagine an old coot yelling at kids to get off his lawn to say :

I don't trust 'em, there's no such thing as a free lunch and they have serious ulterior motives here...trying to make it where all video games are streamed rather than owned. I'll keep my games local and OWNED BY ME thank you very much. Just because you happen to give me one free local copy now so you can perfect your service long-term, first hit is free and so on, I ain't having it _waves stick_.

But I'm probably just needing to go find where the industry moved the cheese.</comment>


Uber cab driver in India arrested after suspected rape - <AUTHOR> http://www.reuters.com/article/2014/12/07/us-india-rape-uber-arrest-idUSKBN0JL0IK20141207 <comment><USER2> This story is constantly getting resubmitted, gets some votes, some discussion and then flag-killed. See dang's comment about it all here:

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

No doubt there will be more to come, and some of missed, but here are some of the submissions, most of which will be dead already:

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

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

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

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

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

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

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

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

[https://news.ycombinator.com/item?id=8712326](https://news.ycombinator.com/item?id=8712326)</comment>


Show HN: Semi-realtime Slack Avatars (Inspired By Sqwiggle) – Sqwack - <AUTHOR> https://github.com/heyupdate/Sqwack

<comment><AUTHOR> Have your Slack avatar update with a webcam shot every few minutes. Add some more fun to Slack! :)</comment>


Saudi Arabia beheads man for sending messages about protests when aged 16 - <AUTHOR> https://www.thesun.co.uk/news/8926874/saudi-arabia-teenager-16-beheaded-protests-whatsapp/ <comment><USER2> I thank you for posting this. Not all the people read or know what's going on in the world! I met a guy from Arabia, when I asked him do you agree with what the King/prince is doing?! The answer was shocking, he reminded me that it's a monarchy, and they have no voting system! They have no right to protest. Whatever the king says is the law. If they stand against king the will die...

Those people are stuck there, just because they born in a wrong location.

Beside discussing the death penalty, think about how you can help those youth that want to protest.

This guy died because he wanted to make a movement, please don't let this happen again anywhere else in the world. Be their voice, think about other people who are still alive and are in pain.

Arabia is just an example, many countries have the same situation. What killed this guy was WhatsApp! If any hacker pass by this post. Please, they need an app which doesn't kill.

Messaging in an anonymous mode, Non-interceptive even by God. But protects the users from malicious ones. Free, robust, unbreakable. Easy to use. Never ask for phone number which most national telcos has power over it.

I'm sure there are some small unnoticed git projects that needs you to contribute. You might don't need to start from zero.

<comment><USER3> Well, Pavel Durov once said that WhatsApp sucks. That's why Telegram was invented.

</comment></comment><comment><USER4> Looks like the article says that he was 16 when he sent the messages, not when he was executed. He was executed at 21. Still unconscionable but sensationalizing doesn't help anything.

<comment><USER5> He was beheaded. Maybe stating he was "executed" is actually the opposite of sensationalism?

<comment><USER6> Depending on the manner of beheading it's not the worst type of execution. A quick slice on a guillotine is preferable to an electric chair for example...

<comment><USER5> Are you telling me this so I can make the right choice when the time comes? Or, because the victim's family will be pleased to know that? Does this "fact" change the concern expressed in the article, do you think?

<comment><USER6> I don't disagree, I'm against all executions. I'm just saying that if it was a quick beheading then I would say "execution" wouldn't be an euphemism like you've been saying.

</comment></comment></comment></comment></comment><comment><USER7> But you won't see Saudi Arabia bombed or invaded because of human rights violations...

<comment><USER8> At this point even some sanctions and trade boycotts is a pipe dream. The West has completely given up on any pretence of caring about human rights in the Middle East.

<comment><USER9> The US never cared. It was all a sham to get the public to support various interventionst measures.

</comment></comment></comment><comment><USER10> Saudi Arabia sends message to subjects by terrorizing people.

</comment><comment><USER11> Fuck man. This stuff doesn't belong on a tech site like this.

<comment><USER12> I see some relevance for the online methods being used to organize protests. I wish it was framed more as a cry for better encrypted communication methods, or anything that would help prevent this. Just reading the facts of them dying is unpleasant.</comment></comment>


The world's most prolific musical instrument inventor - <AUTHOR> https://guitarpang.wordpress.com/2015/06/03/the-worlds-most-prolific-musical-instrument-inventor/

<comment><USER2> Like a virtuoso metal bender. That's a rough horse to ride, endless creativity. He just looks a little worn. Maybe his age? Maybe forgetting to eat after working for so many hours.</comment>


Show HN: Tengo lang – A fast script language for Go - <AUTHOR> https://tengolang.com/ <comment><USER2> Very interesting, I would appreciate a bit more docs though. Not really sure how some of the functions are supposed to be used.

I do like this idea though and think I have an application for it.</comment>