Release of Mithril 1.0 - <AUTHOR> http://mithril.js.org/ <comment><USER2> I used Mithril for a prototype app a couple years ago, and it was one of those projects that is awesome to get into: the documentation is short but complete, and you can basically learn it and produce a usable app in an afternoon.

One of the things I really liked is there's really no sense of 'magic': as I was learning it, it just clicked and I could basically picture how the framework had been implemented. So many times when I'm learning another framework/library it gets to the point where I just think "Whatever, I don't understand why I have to do this particular boilerplate and though it seems dumb to me, I'll just do it because that's the way it works".

Ultimately we ended up building with Vue (team decision, and I don't remember the precise reasons now) which is similar in many ways, but I did really enjoy Mithril. With 1.0 out I'm going to have to find an excuse to give it a shot again.

\----

The changelog [1] is a great example of why the Mithril docs are so great. Each entry shows a code example of old and new usage.

[1] [http://mithril.js.org/change-log.html](http://mithril.js.org/change- log.html)

<comment><USER3> > One of the things I really liked is there's really no sense of 'magic'

Absolutely! And besides making it feel much less 'magic', Mithril's simplicity also reflects on the tooling, bundle sizes, and general code complexity needed to get things going.

I did a small-to-medium-sized project using Mithril last year, and felt like the learning curve was super smooth; no hard bumps at all. The development progress felt quite steady during the project, and the bundle sizes and speed of the app were always fine; it felt very snappy.

Recently i worked on a different project with a React+Redux (+react-router, +Glamor, +Babel, +Webpack, +whatnot) stack, and i don't know if it was the project itself that required so much more complexity, or that we made the wrong decisions regarding architecture, but everything felt bloated. Bundle sizes nearing the 1MB mark; "build" times of dozens of seconds on beefy development machines; and a level of boilerplate code that reminded me of my Java EE days (but with none of the type safety... besides React's verbose PropTypes).

I can't say i feel too hot about the current trends of front-end development :/

I hope that simpler libraries like Mithril get more traction :)

</comment></comment><comment><USER4> Thank you so much for making "What is Mithril?" the very first thing on your website!

> Mithril is a modern client-side Javascript framework for building Single > Page Applications.

</comment><comment><USER5> Shameful plug: For interested ClojureScripters there's my adapter: [https://github.com/jussiarpalahti/mathom](https://github.com/jussiarpalahti/mathom)

I was looking at upgrading it to Mithril 1.0 this past weekend, but new Cljs release's new JS support landed just then. So, now I'm trying to deduce how to get my upgraded build configuration working again...

I believe you can pretty much write Mithril with Lisp/Clojure flawor:

        (nm "div"
          [(nm "h1" "Mithril app with data persistence")
           (nm "div" username)
           (nm "div" [(text "username" username 40 #(update :username %))
                      (nm "button.pure-button" {:onclick #(persist)} "Persist")])
           (nm "div" [(nm "textarea" {"rows" 10 "cols" 40} (get-item "data"))]))

Router and XHR/Ajax also work. I haven't yet used Mithril's components, but with 1.0 those too seem more straightforward.

</comment><comment><USER6> This is a pretty cool library, for the people coming from React, the context switch for creating components needs not be so great:

For a stateless component which is implemented as a pure function, where you would normally write:

      myPText(myText) {
        return <p>{myText}</p>
      }

In mithril you would write:

      myPText(myText) {
        return m("p", myText)
      }

So the same vein of thinking can take you pretty far, but the benefit is that everything is Javascript so there is less context switching between framework and language!

EDIT: code snippet

<comment><USER7> Furthermore, you can easily use JSX in Mithril the way you do in React, and in React you can also use the JavaScript syntax instead of JSX (e.g. React.DOM.div).

Reference: [http://mithril.js.org/jsx.html](http://mithril.js.org/jsx.html)

</comment></comment><comment><USER8> A few month ago I was looking for a JS library for a SPA project. After days of WTF moments with those hip JS libraries and their insane tooling I was lucky to find Mithril. I was productive since day one with it. Thank you for providing this ray of hope in JS land.

</comment><comment><USER9> Does Mithril implement something akin to Redux? Otherwise, I'd argue that those graphs related to size aren't quite correct.

Also, fetch isn't required for either React or Vue.js, could certainly just use the built XHR API to get down even further.

<comment><USER10> > Does Mithril implement something akin to Redux

Depends on what you mean by "akin". The core of Redux is just a few lines of code with a set of very opinionated conventions surrounding it, plus a bunch of utilities that people may or may not use. Angular's services serve a similar purpose to redux, but the approach is quite different. Mithril's idiomatic approach is similar to Redux in the sense that it's largely convention-based, but it doesn't actually require any specialized code. We could talk about non-idiomatic options, but from my observations, Redux is the most popular state management convention/library set for React and vuex is to Vue what Redux is to React.

In any case, were talking about a 2kb difference, so it's not like it makes that much of a difference.

Fetch is not _required_ by any library, but a) realistically nobody uses the XHR API directly and b) projects typically do require XHR capabilities. If we're going to be removing things, note that Mithril and Angular are modular and can also be trimmed down if the comparison criteria involves removing things like XHR. Also, if "using the built-in XHR API" means re-inventing basic things like querystring parsing, then a library starts to look a lot more appealing again, and at that point, we're back to the point that Mithril's XHR utilities are smaller than most others that have comparable feature sets (e.g. Axios, superagent).

<comment><USER9> I'm not expecting there to be a huge difference, but it looks silly to include non-standard features for both React and Vue.

As for performance, do you have a setup that we could see that shows how those are generated? Just genuinely curious.

<comment><USER11> Is redux considered "standard" in react land? I thought a lot of projects don't make use of it.

<comment><USER12> Redux is an opinionated implementation of the SAM pattern for React. The same pattern can be seen in the Elm Architecture.

• [http://sam.js.org](http://sam.js.org)

Now, I don't know how old this pattern is, or whether it was already commonplace 15 years ago. I was introduced to these ideas first through Redux, then learned Elm, the found SAM.

<comment><USER13> I am the author of the SAM pattern. It is based on the semantics of the work of Dr. Leslie Lamport who got a Turing award for it (TLA+ - Temporal Logic of Actions). TLA+ was popularized by Amazon as a tool to help fix complex defects in AWS.

SAM fixes three approximations that we have been using in Software Engineering for Decades:

\- actions can manipulate application state

\- assignments are equivalent to mutation

\- there is no need to define precisely what is a programming step (for instance when you write a = b + c, is that a step or is it 3 steps: read b,c, compute b+c, mutate the value of a)

To a certain degree, Redux and Elm are trying to address these three approximations as well, but they do it from a FP point of view, not from a TLA+ point of view.

Their definition of action aligns with the one of event and their approach to mutation is immutability. The main difference between SAM and Redux/Elm is the way side-effects are treated. SAM embraces side-effects (in particular asynch calls) while Redux/Elm don't know how to deal with them. Redux for instance breaks its principle #1 (single state tree) by introducing Sagas.

SAM is a factoring of your code that fits in one line of code: V = State(Model.present(Action(event))).then(nextAction)

No need for a nebula of libraries or inventing a whole new language.

<comment><USER14> Redux-thunk makes it async aware without breaking the convention.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> How does Mithril play with TypeScript? I am tempted to give it a shot...

<comment><USER16> There are unofficial typings, which will likely be merged at some point. The v0.2 branch had typings, but v1 is a rewite from scratch and those don't apply anymore.</comment></comment>


Novell and Xamarin Partnership around Mono - <AUTHOR> http://tirania.org/blog/archive/2011/Jul-18.html

<comment><USER2> Looks to me like everybody wins.

Xamarin gets IP -- meaning they don't have to do a clean-room, source- compatible reimplementation of MonoTouch and Mono for Android, and all the risks that go with that -- in exchange for taking on the support of Novell's existing customers. Customers they probably want anyway.

Novell/SUSE gets to get out of the Mono business altogether, which is probably good for them seeing as they laid off the entire engineering staff.

The Mono community gets some clarification about the stewardship of the project. Novell contributed a lot of resources (bug tracker, mailing list and wiki hosting, etc.) and now Xamarin is on the hook for that stuff. It helps clarify the future of the project.

<comment><USER3> I'm not feeling as good about it. What I see is Novell washing their hands of Mono and giving it to a company that has existed for a few months. Now more than ever Mono exists as long as Miguel de Icaza wants to keep working on it. At least with Novell there was some cushion from that.

<comment><USER2> I disagree, and I think Mono is stronger now with a startup behind it. With Novell you only had the perception of some cushion. Novell laid off the entire engineering staff behind Mono, including Miguel. If he had simply walked away from the project after that, do you think it would have continued regardless of whether Novell held onto it?

With Xamarin the Mono folks have some skin in the game beyond a paycheck and their own passion. Even if Miguel were to walk away -- something I find unlikely -- there is a business now that depends upon its success and not some neglected division within a rudderless company.

</comment></comment></comment><comment><USER4> This article could have been titled; "Novell gets rid of Mono Customers" or "Xamarin now Mono-alone" but instead it's spun as "Novell/Xamarin Partnership around Mono". Don't you love good PR?

Surely both "partners" are supposed to do something? I don't see Novell lifting a finger here except to abandon their existing Mono customers, get rid of all Mono IP (Mono has IP?) and in every way shape and form wash their hands of the whole thing.

That's good for Xamarin I guess - and kudo's to them if they can make it all work. I'm not sure this is a "win" for Mono - but I guess it's the best of a bad situation.

<comment><USER5> Some of the best people that worked on Mono are now working for Xamarin, including Miguel de Icaza who started it all. Getting support from Xamarin is the best kind of support you can get on Mono, MonoTouch and MonoDroid.

        Mono has IP?

Yes it has. Just because a project is open-source that doesn't mean it isn't protected by IP laws.

In Mono's case only Novell/Attachmate were able to dual license the runtime libraries, otherwise licensed under LGPL, making it unsuitable for the demands of companies wanting to embed Mono in games (just an example).

Also, MonoTouch and MonoDroid are commercial products and Xamarin had no right to distribute or use in any way any source code or binaries from those projects; meaning they had to start from scratch in producing alternatives which would have been in a gray area, not to mention waisted effort.

<comment><USER6> > In Mono's case only Novell/Attachmate were able to dual license the runtime > libraries, otherwise licensed under LGPL, making it unsuitable for the > demands of companies wanting to embed Mono in games (just an example).

You _can_ mix LGPL and proprietary code. I see no reason LGPL libraries would prevent embedding Mono.

<comment><USER5> Off the top of my head, here's a few reasons why someone may dislike the LGPL:

         - proprietary extensions are not possible
         - dynamic linking is mandatory
         - the whole hassle of including any tools or data
           for recompiling said LGPL library and
           reproducing the executable
         - the patents grant is implicit rather than explicit

Just because you can do something, it doesn't mean you want to.

<comment><USER6> > proprietary extensions are not possible

Create a second library that links to the LGPL one and extends its behavior.

> dynamic linking is mandatory

It's also good practice most of the time.

> the whole hassle of including any tools or data for recompiling said LGPL > library and

Only if you change it. If you didn't change it, you can just redistribute the tarball you used.

> the patents grant is implicit rather than explicit

It's still there.

> Just because you can do something, it doesn't mean you want to.

I get it you don't want it, but, just because you don't want it doesn't mean you can't

</comment></comment></comment></comment></comment><comment><AUTHOR> This is really great. The future of Mono was not assured there for a while, but things are really looking up now. I guess the conspiracy theories about Microsoft trying to crush Mono by proxy through Attachmate were way off base.

<comment><USER7> Why would _anyone_ think that MS wants to crush Mono? Not only does it not make sense in general, but MS and Mono have worked together for years. Hell, the lead dev of F# is speaking at Monospace this weekend: <http://monospace.us/>

<comment> wes-exp Indeed. If I were in Microsoft's shoes I would be inclined to think Mono is actually beneficial to MS. Mono's existence allows Windows developers to imagine (solely in their minds) that their stuff runs on Linux. It's "cross- platform". Of course, if they actually try to do that in a serious way, they will discover that Mono is inferior to "real" .Net. And, no offense to Icaza, but by nature of their position, Mono will always be #2 in some sense as it has to play catch-up with MS.

<comment><USER8> This is a rather unfair description.

No "srs bsns" enterprise .NET developers care about Mono. But the vast, vast majority of their stuff would, if necessary, run on Linux via Mono without much trouble--because most people just don't use the complex stuff that Mono doesn't support.

I use Mono for my current project (a cross-platform game library) because it, unlike everything else aside from C/C++, is capable of effectively targeting OS X, Linux, Android, and iOS. .NET gives me Windows, Xbox 360, and WP7.

<comment> wes-exp As a former C# developer who did try to run some stuff on Mono, I don't think it's an unfair description at all. First, some personal anecdotes:

\- Wrote a brief (4 hours perhaps) Windows Forms app that did some math. Ran it on Mono. To Mono's credit, it did run. But to my horror, it actually computed incorrect results.

\- I used a popular UI widget library for .Net. Turns out though most of it was written in C#, it had a number of Windows-only DLL imports, and could not run on Mono.

\- At the time, ASP.net support was barely functional, if it existed _at all_. To be fair, I'm not sure if this is still the case or not.

Further, I will offer this additional argument. It is widely known that Java's promise of "write once, run anywhere" is a joke. Not that cross-platform Java can't be done (in fact it can), but it does take deliberate effort to ensure cross-platform support. And this is Java, which has official support for Linux (i.e., the JVM code on Linux is basically the same JVM code on Windows).

Contrast the Java situation with MS .Net, which does not have official support for Linux, but does have the option of Mono on Linux. MS .Net and Mono are two totally separate environments built out of separate code-bases. In this situation you are almost guaranteed to run into major migration headaches, if not outright barriers.

Now perhaps you are running from Mono from the start; well of course that is going to work. My original point isn't that Mono doesn't work when running code actually targeted to it; that may well be the case. My point is that Mono gives traditional .Net developers the false belief that they can run their Windows-targeted .Net code on Linux easily. For most, or at least many, that is simply not the case.

<comment><USER6> > Not that cross-platform Java can't be done (in fact it can), but it does > take deliberate effort to ensure cross-platform support

To be fair, at least for desktop apps, we are down to three platforms now. If it runs on Linux, Mac and Windows, you are about 100% covered. The days of having dozens of vendor-specific Java runtimes around are pretty much over. And as much as I like my IBM RS/6000 workstation, I wouldn't try to run Eclipse on it.

</comment></comment></comment></comment></comment></comment><comment><USER9> A picture of a kitten doesn't exactly scream "enterprise support" to me

<comment><USER10> I fixed that for you:

<http://tirania.org/tmp/enterprise-cat.jpg>

<comment><USER9> Much better, thanks. That one has five nines written all over it.

Or was it nine lives? Ah, nevermind.</comment></comment></comment>


Sedtris: Tetris in sed - <AUTHOR> http://uuner.doslash.org/forfun/ <comment><AUTHOR> For learning about sed, this is the best resource that I've seen so far:

<http://www.grymoire.com/Unix/Sed.html>

<comment><USER2> Programming patterns in sed: [http://tech.bluesmoon.info/2008/09/programming- patterns-in-s...](http://tech.bluesmoon.info/2008/09/programming-patterns-in- sed.html)

</comment></comment><comment><USER2> Weird, I posted this exact same link with the same title a month ago: <http://news.ycombinator.com/item?id=2303109>

Does HN use the URL as a primary key or something else?

<comment><USER3> IIRC* , posts get rejected if the same URL is in the part of the history in memory. HN loads its data off disk on-demand, and it gets restarted every once in a while. Dupes can get submitted more easily after a recent restart, if nobody else has caused that comment thread to load. This means there isn't an explicit time-out for reposts, just a non-deterministic cut-off. I'd guess it's roughly 6-9 months.

* Please correct me if I'm wrong!

Also, it's all too easy for a good post to get buried by a bunch of lame submissions, then fall off the new page before getting enough upvotes. It'd probably be worth making submissions cost a few points karma; the current system blindly rewards submitting anything others are likely to post.

</comment></comment><comment><USER4> If you want to learn sed, I once wrote a multi-part article explaining various sed one-liners:

[http://www.catonmat.net/blog/sed-one-liners-explained- part-o...](http://www.catonmat.net/blog/sed-one-liners-explained-part-one)

Personally one of my favorite article series that I have written.

</comment><comment><USER5> Bash one-liner to play sedtris:

wget <http://uuner.doslash.org/forfun/sedtris.sed> && curl <http://uuner.doslash.org/forfun/sedtris.sh> | bash

<comment><USER6> You should be piping that into bash instead of sh.

With sh, it infinitely prints out

        [: 48: unexpected operator
        read: 48: Illegal option -s

<comment><USER5> Haha, I take it you're on Ubuntu? Ubuntu uses dash[0] as its default shell to speed things up. Funny thing is I've run into this same issue before in another context with sh vs bash on Ubuntu. In any case, updated.

0: [https://secure.wikimedia.org/wikipedia/en/wiki/Debian_Almqui...](https://secure.wikimedia.org/wikipedia/en/wiki/Debian_Almquist_shell)

<comment><USER7> _Ubuntu uses dash as its default shell to speed things up._

Actually it is (sadly) the major reason, but not the only one:

 _The Debian policy manual has long mandated that "shell scripts specifying '/bin/sh' as interpreter must only use POSIX features"; in fact, this requirement has been in place since well before the inception of the Ubuntu project. Furthermore, any shell scripts that expected to be portable to other Unix systems, such as the BSDs or Solaris, already honoured this requirement. Thus, we felt that the compatibility impact of this change would be minimal._ [1]

Personally I think that assuming nothing but POSIX is a more compelling reason than efficiency.

[1] <https://wiki.ubuntu.com/DashAsBinSh>

</comment></comment></comment></comment><comment><USER8> I downloaded and played it. It didn't disappoint!

I was left wondering whether the game speeds up, though, and if so, how it works. Anyone know?

<comment><USER9> It doesn't speed up. The sed program will wait forever for input, so it has no set speed.

The helper bash script gives it input once a second.

It uses the "read" command to check for input from you, and it will wait 1 second. If it gets no input it sends the sed program an enter.

Unfortunately "read" can not have timeouts less than a second (it doesn't support fractions of a second).

If you want, you could replace "read" with a different program that accepts shorter timeouts. And presumably you could have the bash script slowly decrease the timeout.

</comment></comment><comment><USER10> Sokoban in sed: <http://aurelio.net/soft/sedsokoban/></comment>


Hacking Facebook's Legacy API, Part 1: Making Calls on Behalf of Any User - <AUTHOR> http://stephensclafani.com/2014/07/08/hacking-facebooks-legacy-api-part-1-making-calls-on-behalf-of-any-user <comment><USER2> As a security researcher, the most impressive part of this is the response timeline from Facebook's security team. 3~ hours from first report to temporary patch! That's insane.

<comment><USER3> We also have a system for patching vulnerabilities which does not require a full code push. It has been useful on a number of occasions. (source: I patched this one)

<comment><USER4> Does Facebook usually respond to exploit reports so quickly, or does the fact that the discoverer (Stephen Sclafani) helped Facebook find bugs in previous years mean that his emails were automatically flagged as high-priority?

<comment><USER3> We try to respond to any exploit of this severity immediately, and will often disable a feature temporarily while working on a fix rather than letting the exploit remain open. It helps a lot when the repro steps are as clear as they were in this one.

</comment></comment></comment></comment><comment><USER5> I'm not a huge fan of Facebook but that is one impressive bug bounty and turn around time. Nice job to both parties.

<comment><USER6> whats wrong with fb?

<comment><USER7> In the spirit of [https://xkcd.com/1053/](https://xkcd.com/1053/), I'll assume you haven't heard about the privacy violations, misleading or hard to find control panels, and constant changes to visibility settings leading uninformed users to unwittingly post sensitive information with public visibility.

Facebook (the web app) has its uses and reasons to like it, but there are also lots of reasons not to like it.

</comment></comment></comment><comment><USER8> Pretty slick way to earn 20 grand...nice work

<comment><USER4> Taking the following into consideration:

\- The severity of the exploit, which may be nearly the maximum theoretical possibility on a site like Facebook, aside from SQL injection or remote code execution

\- The multiple months worth of unpaid sleepless nights Stephen Sclafani likely spent exploring countless dead-ends before finding this

\- The fact that he beat black hats to the punch by discovering it first and thus saved Facebook and its users from millions, perhaps billions, of dollars worth of damages stemming from vague and mysterious causes over an indefinite period of time

\- The billions of dollars Facebook regularly uninhibitedly spends to acquire a given startup

I feel that $20,000 is a bit low.

<comment><USER9> "Insultingly low."

Really? 20K is about two months of salary for a Facebook engineer. So even if he _did_ spend months on this like you speculate (he didn't) it's still an industry-leading salary.

<comment><USER10> Holy crap, I'm working for the wrong company.

</comment></comment></comment></comment><comment><USER11> Reminds me of the whole SnapChat thing. People just aren't securing the internal APIs their mobile apps use.</comment>


Czechoslovakia's Velvet Revolution, 1989 – In Pictures - <AUTHOR> https://www.theguardian.com/world/gallery/2019/nov/16/czechoslovakias-velvet-revolution-1989-in-pictures <comment><USER2> I once asked a Romainian colleague how the revolution went for him. The main thing he talked about was just how chaotic the post-revolution power struggle was. Having to argue an angry mob out of attacking the foreign students at his university. Two nearby Army units deciding that the other was a rebel faction and getting into a street battle with anti-tank guns. Widespread theft of basically everything from the collapsing state-owned industries - this had always been a problem, but suddenly there was nobody to even try to stop it.

Never imagine that a revolution ends when the corrupt leader is overthrown and taken out and shot. In Hollywood that's when the credits roll. In real life that's when the hard work is only just beginning.

<comment><USER3> Romania was the only country where the leader (dictator) didn't step down when he was asked to by Moscow.

The leader was also obsessed that Romania would be invaded by Russia, like Czech was in 1968, so he had specialized guerilla army units to fight back. This can explain why the army was fighting itself, and why it took so long for the shooting to stop.

<comment><USER4> None of eastern bloc leaders was "asked to by Moscow" to step down - or do you have any sources for that claim?

Gorbachev merely assured everyone that USSR won't intervene like it did in 1956 or 1968, that everyone is on their own. He also encouraged (not enforced) reforms "perestroika" and transparency "glasnost".

<comment><USER3> > _Visiting Berlin in early October, Gorbachev cautioned the East German > leadership of the need to reform, and confided in his advisors that East > German leader Erich Honecker had to be replaced. Two weeks later, Honecker > was forced to resign, while hundreds of thousands marched in protest > throughout major East German cities_

[https://history.state.gov/milestones/1989-1992/fall-of- commu...](https://history.state.gov/milestones/1989-1992/fall-of-communism)

<comment><USER4> Nowhere I could find he was directly forced to resign by Moscow. Some sources say it was Stasi, others that it was his own party because of general political situation (there was mass exodus to West Germany underway).

I am from Czechoslovakia, communists there similarly refused any reforms but I don't know of any initiative from Moscow to replace them.

<comment><USER3> I'm from Romania, there was a lot of talk that Gorbachev asked Ceausescu to resign, and offered him asylum in Russia, but I can't find a source for that.

But look here, a soviet source says that Moscow would have intervened militarily to prevent Ceausescu's return:

> "This victory will be a hundred times more valuable if it is won by the > Romanian people themselves," a senior Soviet official said. "We would > definitely act to prevent Ceausescu's return--by now, that has been made > clear to all--but the victory belongs to the Romanian people and must be > protected and developed by them. In this, they can count on our firmest > support, but let the actions be theirs."

[https://www.latimes.com/archives/la- xpm-1989-12-24-mn-2156-s...](https://www.latimes.com/archives/la- xpm-1989-12-24-mn-2156-story.html)

> _In reality, it may have been a carefully planned coup aided by the Soviet > Union -- Mikhail Gorbachev 's way of eliminating the troublesome despot > Nicolae Ceausescu._

> _Through our sources cultivated in Bucharest and access to highly classified > Central Intelligence Agency reports, we have learned that Moscow had a much > more direct hand than previously revealed in the creation of the ruling > Romanian party to replace the Ceausescu government, the National Salvation > Front._

[https://www.washingtonpost.com/archive/opinions/1991/09/22/s...](https://www.washingtonpost.com/archive/opinions/1991/09/22/soviet- hand-in-bucharest/b306c11f-df27-4c05-a63d-b6b37b00ea72/)

<comment><USER5> It's quite possible that USSR made overthrowing Ceausescu more probable (by clandestine negotiations rather), because after all in spite of being fellow socialists, Romanian regime had unfriendly relations with Kremlin in 80s. It however doesn't support the idea about Gorbi asking anybody to step down.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I was seven when velvet revolution happened. I remember few days later when my father come home from work, I went to the door to greet him. He stepped in, put his suitcase on the floor, looked at me and said: "Well, from now on they will not call me comrade but mister". That was revolution for me.

I was as grumpy kid as I am now adult, but I had quite reasonable parents. They would always asked me if I wanted to join some club activities or hobbies. Teacher thought I have musical ear so they asked me if I want to play saxophone. I said no. They asked me if I wanted to be a pioneer (state run scouts, every kid was member). I said no. And to my surprise my parents accepted it. I was the only one in my class who wasn't pioneer. But then people probably started to telling my parents that I could have problems later on if I don't became pioneer so parents started asking me to join. After a long while I finally agreed and started preparing for the pioneer entry exams. Then the revolution came and it all fell down. "What do you mean I cannot be pioneer?! I want to be a pioneer." I could understand when they told me that they no longer exists. I even refused to call teacher Mrs and kept calling her comrade but after a while kids started making fun of me so I eventually stopped. And I never became pioneer.

<comment><USER7> _" Well, from now on they will not call me comrade but mister". That was revolution for me._

I was a bit older than you (and not Czech) but I also found this striking then. All over Eastern Europe the phraseology of communism simply melted away, down to everyday forms of address. And there were at least two generations of adults around who had never used anything else.

I lived in Vienna at the time of the Velvet Revolution and soon after the city was full of visiting Slovaks and Czechs, many arriving in rickety buses. As prone to high-faultin flights of fancy as any teenager, this seemed especially symbolic to me - the old imperial capital, all lit up for the holidays, welcoming what was once its biggest minority. As if saying we could, yet, erase the murderous divisions and follies of most of the 20th century. Not exactly how things worked out!

</comment></comment><comment><USER8> [https://www.youtube.com/watch?v=sjoWmDxVEog](https://www.youtube.com/watch?v=sjoWmDxVEog)

This was in 1987(!) in the then Latvian Soviet republic. Complete punk. Openly mocking the entire Soviet way of life. Whoever well-informed could see the USSR was falling apart very rapidly at that moment.

</comment><comment><USER9> On the 16th there were big protests again, as lots of people are generally unhappy with the state of affairs here in Czechia. Even Czechs no longer living here joined the protests in 63 cities around the world. CNN did a nice short article on it [1], if you'd like to read more about it.

[1]: [https://edition.cnn.com/2019/11/16/europe/prague-velvet- revo...](https://edition.cnn.com/2019/11/16/europe/prague-velvet-revolution- anniversary-protests-intl/index.html?no- st=1573926654&fbclid=IwAR0i7fcAVfAmbxW52wKibQy1yNX9IKpaB4GDwbweJ39OHGKkXFvr7gJHpWc)

</comment><comment><USER10> There's a documentary called _Meeting Gorbachev_ that's worth watching for anyone interested in learning more about the collapse of the USSR. Gorbachev was the leader of the USSR prior to its collapse.

While some saw the downfall of the USSR as the end of communism and a triumph for the west, others might say it was just another round of the revolving door of dictators and corrupt politicians that has plagued eastern Europe for decades (maybe centuries?).</comment>


Being bilingual may delay Alzheimer's and boost brain power - <AUTHOR> http://www.guardian.co.uk/science/2011/feb/18/bilingual-alzheimers-brain-power-multitasking <comment><USER2> I wonder if this applies to computer languages.</comment>


Classic text adventures online - <AUTHOR> http://www.web-adventures.org <comment><USER2> It's full of ad popups, even clicking the scroll bars. Also you can support the interactive fiction community (including the classic text adventures authors) if you go directly to the interactive fiction database [http://ifdb.tads.org/](http://ifdb.tads.org/), you can find there how to play the games and how to play it in the browser too.

</comment><comment><USER3> It's not a dead medium if people are producing new works -- and they do.

Check out the Interactive Fiction Competition, [http://ifcomp.org](http://ifcomp.org)

<comment><USER4> I definitely agree but where I see difficulty is our lack of patience not being compatible with these and older style games. I used to love text based and prompt based adventures, like the old Sierra games, but with recent replays I become impatient and not able to follow through.

I blame being an adult with less free time but also the more modern modes of play such as battle royales. Games like PubG/Fortnite are addicting, fast paced, and have enough complexity to make each run seem unique. But the problem is I played both so much I hardly remember those unique, glorious moments when my team does well. What also contributes to the addiction is the team aspect where I'd have a group asking be to play Fortnite and another to play PubG. It's hard to turn down these interactions as well since the friends on the other side are hard to get ahold of in real life.

There's also an over abundance of games so you have to pick and choose which to spend your time on. I sometimes long for the day where income and game availability limited my range as I was able to concentrate on what I had rather than quickly finishing a game and moving on to the next or being trapped in a battle royale.

Still, there are great gems being pumped out by AAA and indie. All genres, including IF, are being filled because the tools to make games are so easily accessible. I feel we live in a great time considering the trend of games is moving toward multiplatform and affordability. We, or at least I, just need to find the patience to not hurry through and fully enjoy the medium.

<comment><USER5> I find the text adventures take more patience at first but then the immersion kicks in. I had a great time with Anchorhead recently.

</comment></comment></comment><comment><USER6> Lot of really useful links in here. I built my own interactive fiction[1], but half-way through, the mixture of building the tools to present the narrative, and writing the story itself got pretty conflated. Afterwards, I was recommended some pre-existing tools[2] for a similar endeavour. (still, rolling my own system for telling a story with code was pretty satisfying.)

\- [1] - [https://github.com/teesloane/railcar](https://github.com/teesloane/railcar)

\- [2] - [http://twinery.org/](http://twinery.org/)

</comment><comment><USER7> There are still a bunch of old MUDs (which are like multi-player text adventures) online.[1] A good list of the top 10 or 20 MUDs can be found here: [2], and a much bigger list can be found here: [3]

[1] - [https://tmcchat.discoursehosting.net/t/old-muds-still- open/5...](https://tmcchat.discoursehosting.net/t/old-muds-still-open/52)

[2] - [http://www.mudconnect.com/#top10](http://www.mudconnect.com/#top10)

[3] - [http://www.mudconnect.com/cgi- bin/search.cgi?mode=tmc_biglis...](http://www.mudconnect.com/cgi- bin/search.cgi?mode=tmc_biglist)

<comment><USER8> The one I played for years and years is now offline. Makes me sad.

</comment></comment><comment><USER9> If the web is an unnecessary part of the text adventure experience, then other options include frotz, a simple command-line adventure interpreter, and Son of Hunky Punk, a nice android app that includes some of the classics.

</comment><comment><USER10> Podcast: Eaten by a Grue.

Very highly recommended if you are looking to get in the text adventure mood.

</comment><comment><USER11> No "Pick Up The Phone Booth and Die"?

[http://ifdb.tads.org/viewgame?id=4gb36vjo20qpvxty](http://ifdb.tads.org/viewgame?id=4gb36vjo20qpvxty)

That site has a bunch of IF games that you can play online as well.

<comment><USER12> I once enjoyed a much better spinoff called something like "Pick Up The Pumpkin And Die" by one of the more prolific IF authors wherein you do just that, but become the headless horseman and run around terrorizing a highschool.

</comment></comment><comment><USER13> For a more modern take, I wrote a zork-inspired text adventure you can play inside FB Messenger: [https://fb.me/amessengeradventure](https://fb.me/amessengeradventure)

</comment><comment><USER14> For the 30th anniversary, the BBC put online the Hitchhiker's Guide to the Galaxy text adventure: www.bbc.co.uk/h2g2game

</comment><comment><USER15> I assume this site is being hammered, because it would otherwise be the worst UX ever. I chose Zork - a classic. The loading icon spins....and spins and spins and spins. Each line of text is actually a POST to the server, and the response is taking upwards of 80 seconds.

This is a time where a SPA would have been the perfect choice.

</comment><comment><USER16> For those interested, I cannot recommend enough the Infocom collection on the iPad, if I remember correctly for less than 10 bucks you get 30+ adventures, including manuals, all conveniently packaged and accessible.

<comment><USER17> Unfortunately I believe this is no longer being updated and is not available.

<comment><USER18> Yes, I bought it, and since the iOS 11 update, it no longer works, which is really disappointing.

</comment></comment></comment><comment><USER19> I'm not a huge fan of the web interface, but I do like the ability to pick up where you left off even when I leave the page and come back. Offering optional save states might be nice too.

</comment><comment><USER20> I recommend Zork on that list. Recently played it for the first time and it's a great experience. Your mind fills in so much more than virtual images or sounds could create.

</comment><comment><USER21> I rmbr how proud I was when I registered for the BBS I ran in Texas for Red Dragon (LORD) in High School, saving a dollar here and there.

</comment><comment><USER22> The website has an expired security certificate. It expired 30 august 2018 09:30:03

</comment><comment><USER23> Does anyone here play hellMOO?</comment>


text bomb: crashing iOS and macOS with a single text message - <AUTHOR> https://www.grahamcluley.com/chaios-bug-crash-ios-macos-messages/ <comment><AUTHOR> looks that the original article hosted on github revealing the actual content of this exploit has been taken down for the time being, possibly out of the fear that it may cause some actual problems to people's apple systems -- as this issue has not been fixed by Apple yet...

but for those who are nerd-sniped and intrigued to find out how this bug works -- for fun and for curiosity, the archive.org still hosts some copies of the code:

      view-source:https://web.archive.org/web/20180117063656/https://iabem97.github.io/chaiOS/

google chrome browser seems to have disabled the display of the content but other browsers may still be fine with it...

Last but not least, we are nice and gentle hackers and not those ignoble script kiddies, right? So don't use it to do harm to others...</comment>


What is the best length for short stories? (2016) - <AUTHOR> https://thejohnfox.com/2016/09/how-long-is-a-short-story/ <comment><USER2> I'm pretty skeptical of this methodology for determining the "ideal" story length. In particular, note that _none_ of the stories examined hits this supposed sweet spot. This is kind of like surveying people's personal transportation preferences and landing on "three wheels" as the ideal.

A much more valuable tactic is to look at what various markets are accepting. For flash fiction, that's typically under 1,000 words (though for some, it extends to 1,200 or 1,500). For short stories, the sweet spot seems to be between 3,000 and 4,000 words with a hard cutoff in most markets at 6,000. Anything longer and you might as well push through into novella length.

<comment><USER3> I thought flash fiction was crazy but found I really enjoy the challenge of keeping a short story to 1K words or less. It meshes nicely with the idea that you can throw out half of what you've written and still tell the story well. It took me a while to understand that but it makes sense - at first blush you're like "but I REALLY need two thousand words to make this story work" and then if you step back and get ruthless with your red marker you're like "Holy S—t, I can actually do this with half the words."

<comment><USER4> Try taking a look at #vss365 (very short stories, daily prompt) and other hashtag writing prompts on twitter. Owner gives a word and you construct a story Or other snippet or poem in 280 characters.

Often I try to do it with a line from my WIP (kids Sci-Fi novel). And it's a real challenge to squeeze in a snippet and make it fit. But plot does force one to consider the essentials of your snippet. Challenging but fun.

</comment></comment></comment><comment><USER5> Was it not Hemingway who wrote the two sentence tragedy ? "For sale: newborn shoes. Never worn"

<comment><USER6> [https://quoteinvestigator.com/2013/01/28/baby- shoes/](https://quoteinvestigator.com/2013/01/28/baby-shoes/)

<comment><USER5> Myth Busted! Still.. left hand edge of the short story bell curve is there or close by (I liked Borges and Bradbury on the list. PKD short stories fit the mould too)

</comment></comment></comment><comment><USER7> I really enjoyed _100 great science fiction short short stories_ , 1-3 pages long. At that length, they're like jokes, almost entirely twist.

[https://books.google.com.au/books/about/100_Great_Science_Fi...](https://books.google.com.au/books/about/100_Great_Science_Fiction_Short_Short_St.html?id=mpUOAQAAMAAJ&source=kp_book_description&redir_esc=y)

</comment><comment><USER8> What is the best length of a blog post that recounts a story. According to my analytics, it depends entirely on the story.

According to a rough analysis of HN comments, if readers relate to the first and second paragraph, they'll read it it through.

</comment><comment><USER9> One of my favorite extremely short stories, Bug-Getter: [http://www.bretnor.com/BugGetter.html](http://www.bretnor.com/BugGetter.html)

<comment><USER10> That's great!

</comment></comment><comment><USER11> Personally? I think the best length is "short."

More seriously, this study is selecting on the dependent variable. No good.

</comment><comment><USER12> I've almost entirely stopped reading books because I got sick of putting up with filler. Whatever you do, please, don't fill your story with unnecessary content, just to conform to some imagined standard. The purpose of writing is to deliver information, not fill time (or space).

</comment><comment><USER13> me, reading this: wait, Munroe is at the higher end of the range because she's not writing short stories with wordcounts like that, she's writing novellas, are _any_ of the stories he's listing for her short enough to be shorts?

john fox: concludes the article with a nice infographic that lays out the standard wordcounts from every story size from "microfiction" to "Russian novel"; one of Munroe's stories is at the bottom end of the gap between "short story" and "novelette" with the rest well into "novelette" or "novella"

</comment><comment><USER14> Such an impetuous analysis have little credibility without controlling for genre, language, market and time period.

It doesn't help that the author uses lots of strong words and categorical statements.

</comment><comment><USER15> " ... it had to be something readable in a single sitting

As I recall it I read vol. 1 of Lord of the Rings in a single sitting

</comment><comment><USER16> How long is a piece of string?

<comment><USER17> Find the average string length by statistical sampling of the string population, model the distribution, and you'll have a useful estimate of the probability that your string is of any specific length.

If you discover length clustering you may need to apply a separate classifier.</comment></comment>


Why Washing Machines Suck - <AUTHOR> http://astartupaday.com/2009/11/24/why-washing-machines-suck/

<comment><USER2> You know what sucks, commuting. I need go go out of the house into the cold, heat up my car, drive through traffic, find a place to park. This is obviously bad for the environment, and heck, it's almost 2010! Why are we still living with a broken 1930's solution?

So, despite the issues involved with bringing a total new commuting paradigm to market, let's look at what a perfect commuting workflow would like like. First, I'd have a box in my house that I'd step in. Then, using a combination of specialized nanobots and nuclear energy, I'd be transported directly to a compartment in my office.

Of course you could poke a hundred different holes in this plan, but if some random nobody like me can crank out an idea like that in a few minutes, just imagine what kind of real progress we could make if some of the world's smartest engineers and entrepreneurs got to work on this?

<comment><USER3> People have been working on teleportation (admittedly not macroscopic teleportation) just as they have been working on washing machines.

He could have at least mentioned some advances, eg <http://www.washerhelp.co.uk/reviews/dyson-CR01-review.html> or [http://www.google.com/patents?q=%22washing%20machine%22&...](http://www.google.com/patents?q=%22washing%20machine%22&scoring=1)

<comment><AUTHOR> Thanks for the link on the washing machine patents, I'm going to add that to the post. And I was actually going to mention the Dyson, until I saw that they had been discontinued due to lack of profitability.

From that review: "Unfortunately, although Dyson announced plans to bring another Dyson washing machine out, for the moment, the Dyson washing machine is no longer being made in the UK (although you will still be able to get them repaired)"

</comment></comment></comment><comment><USER4> I didn't read the article, but some of you might like this: [http://beprepared.com/product.asp_Q_pn_E_MC%20W050_A_name_E_...](http://beprepared.com/product.asp_Q_pn_E_MC%20W050_A_name_E_Mobile%20Washer%20\(Hand%20Operated%20Washing%20Machine\)) .

It is what I use to wash my clothes instead of commuting.

<comment><AUTHOR> I didn't click on your link, but that looks like a good alternative to using a standard washing machine.

<comment><USER4> Sorry. Saying that I didn't read the article was unnecessary.

I had it open, and was planning on reading it. So I just finish it. Pretty good. My first thought was that he was going to say we're too obsessed with clean clothes.</comment></comment></comment>


Jim Cramer goes nuts (in a good way) about Square Cash and Bitcoin - <AUTHOR> https://finance.yahoo.com/video/people-feel-better-bitcoin-jim-142200922.html <comment><USER2> He runs an entertainment show with a horrible prediction record. This is not relevant.

<comment><USER3> Is there anyone out there who does not associate Jim Cramer with "Bear Sterns is just fine"?

<comment><USER4> Is this a one-off? Or most of his predictions bad. Has anyone tracked his recommendations. Speaking of which, is there anyway I can get ratings on predictions for all (popular) analysts?

<comment><USER5> I haven't tracked his predictions, but he has proven to be a shill for Wall Street (see aforementioned Jon Stewart interview). If he's going to throw out the occasional Bear Sternes, knowing full well what the story is, I don't care what his success rate is.

</comment></comment></comment></comment><comment><USER6> This is right up there with Tom Cruise going nuts with Katie Holmes (in a good way).

</comment><comment><USER7> Jim Cramer has credibility?

</comment><comment><USER8> As Bitcoin fans are starting losing faith in Amazon adopting their hopes for getting instant millionaires, so, now their hopes are in Square, which will be another disappointment. One thing I give to Bitcoin fans - man, that pest is resilient and stubborn beyond reason! They are like cockroaches that can survive even a Nuclear Winter! They are the rare kind that can break the wall after years of banging on it! Regardless, Bitcoin today is still useless, and outdated technology, so, they should instead channel their energy into something with real future!

<comment><USER9> _> so, they should instead channel their energy into something with real future!_

Such as?

<comment><USER10> Lisk, Monero, Iota, and Factom. To be exact.</comment></comment></comment>


Carbon: high level programming language that compiles to plain C - <AUTHOR> http://home.kpn.nl/pt.kleinhaneveld/carbon/about.html <comment><USER2> I wish projects like this wouldn't force you to install their libraries in order to play with them.

Sure, it's just /usr/local, but @#$#@$@# it's annoying when you have to make install on the dependent library before the core application will install.

Use scons. or a makefile. or cmake. Or build a static binary. I don't care; but look at the go source archive for an example of how to do this right.

This isn't a good first touch of a project:

./configure: line 12296: syntax error near unexpected token `CO2,' ./configure: line 12296: `PKG_CHECK_MODULES(CO2, libco2-1.0 >= 0.1.2,,as_fn_error $? "required module missing" "$LINENO" 5)'

hint: you'll notice autoconf isn't in the list above. :P

<comment><USER3> It's is one of life's small pleasures when programs (useful programs) compile fast and with relative simpicity.

If you want to experience this, try www.sigala.it/sandro/ and cutils. There's a links to it on the OP's page. Programs as UNIX filters, written with flex and bison. Beautiful.

I like this OP because he includes a grammar file. If every programmer that tries making his own language did this, the world would be a better place. Did he also include the .l file in the src? I'm too lazy to look. I think they should include those too. It makes the whole thing easier to understand (and modify).

I too get annoyed with having to install the author's own libs. Sometimes these libs are better than the standard ones (e.g. everyone knows C's stdio sucks). If the special libs are fixing something that needs fixing, I'm OK with using them. But nine times out of ten, that's not the case.

For this sort of thing, i.e. C code generation, I still like the LISP's that generate C.

</comment></comment><comment><USER4> Reminds me of <https://live.gnome.org/Vala>

</comment><comment><USER5> When the first thing I read about a language it on it's description page is "compiles to X" or "runs on Y", this is definitely a sign that the language ha NOTHING INTERESTING TO OFFER whatsoever. Adding insult to injury, underneath is a bulletted list of language features that any language worth it's salt has them! And please... "Named constructors"... WTF?!

(If someone wants to be mean, he could simply compare this feature-wise with one of the Scheme dialects that compile to C...)

<comment><USER6> Not every language needs to be one of those that changes the way we think about programming. It is perfectly fine to experiment on mundane languages by adding mundane features. Incremental improvement is a good thing and it is too early to just write off this because it seems to be un-interesting.

I'm sure this project was extremely interesting to the author - maybe from a different perspective than yours.

> (If someone wants to be mean, he could simply compare this feature-wise with > one of the Scheme dialects that compile to C...)

I'm not being mean here, but if someone really wanted to be..

<comment><USER7> > not every languages needs to change ... way we think about programming. > > I'm sure this project was extremely interesting to the author

No, but neither does(should) every new language be posted and upvoted to HN.

<comment><USER8> If it's upvoted, then the HN crowd finds the language interesting. If not, then it will fade away like every other article that doesn't get votes does.

</comment></comment></comment></comment><comment><USER9> The Example link contains, I think, only two things that aren't valid C++. "self." (could be replaced by this-> or simply nothing in C++) and the ["stdio.h"] int printf... syntax for including just one thing.

Two and a half things I guess: the methods of MyObject are accessed by main but not declared public (C++ is private by default)

I don't know if that's good or bad, but it's not very compelling to me.

</comment><comment><USER10> Without a source-level debugger, I see little advantage relative to COS, which _is_ C, but has a more advanced object and type system than Carbon. <http://news.ycombinator.com/item?id=1192791> <https://github.com/CObjectSystem/COS>

<comment><USER11> There's less typing for the programmer than in COS as far as I can tell. And productivity is an important improvement.

</comment></comment><comment><USER12> This is going to need better documentation than a Yacc description if it is going to catch on.

<comment><USER13> There's example code here, <http://home.kpn.nl/pt.kleinhaneveld/carbon/example.html>, for what it's worth. Pretty pedestrian, from my perspective.

</comment></comment><comment><USER14> It's odd to see compilation to C as a main selling point.

<comment><USER15> Some of us rather like C...

<comment><USER16> Yeah, which is why traditionally a LOT of languages, particularly early in their careers, have compiled down to C. Really aside from JVM targeted languages, it still tends to be the trend.

So it is pretty weird for that to be highlighted as the big distinctive feature.

<comment><USER17> > Yeah, which is why traditionally a LOT of languages, particularly early in > their careers, have compiled down to C. Really aside from JVM targeted > languages, it still tends to be the trend.

What about .net/mono targeted languages, javasvcript targeted languages? And custom interpreters jit(frequently but not always written in c)

<comment><USER16> CLR targeted languages are few and far between, as are JavaScript targeted languages, so I didn't consider them a big enough factor to impact the "trend".

People focused on entirely new languages tend not to target JITs first for the same reason they tend to not target direct machine code first: it just adds complexity to getting a proof of concept out the door. LLVM, the JVM, and yes, the CLR are starting to change this, but aside from the JVM, there are still only a handful of languages going that route.

</comment></comment></comment></comment></comment><comment><USER18> While not discouraging the original author, Vala from Gnome has taken this thinking a lot further. Vala is actually quite fun to use even for non-GUI projects. And it doesn't have to depend on GTK libraries to produce working programs.

<https://live.gnome.org/Vala/Documentation>

</comment><comment><USER19> This is going to be rather confusing, I actually thought someone accidentally reinvented Carbon, <https://developer.apple.com/carbon/>.

I realise Apple's Carbon doesn't compile to C but my brain's transderivational search just ignored that fact.

<comment><USER20> Writing Carbon that calls Carbon. Let's call this act Magnesium because ... fusion.

</comment></comment><comment><USER21> Compiling to C puts some significant constraints on your language. For example, C doesn't have COMDAT support, thread local storage, exception handling is limited to setjmp/longjmp, static uplevel function links are a problem, symbolic debug info is going to all look like C, etc.

<comment><USER22> I'm not sure I understand how C's lack of high-level exceptions makes a difference for a high-level language that compiles down to C. The high-level language can provide exception support, just like large-scale C packages sometimes do using longjmp.

Similarly, are you really suggesting that C programs can't have thread-local storage?

<comment><USER21> setjmp/longjmp tends to be pretty primitive, compared to decent eh support.

Standard C does not have thread local storage.

<comment><USER22> Are you missing the fact that we're talking about using C as a substrate for a higher-level language?</comment></comment></comment></comment>


Ask HN: As an app developer, do you care if an SDK is open source? - <AUTHOR> When integrating a third-party SDK, via Cocoapods/Carthage/Gradle/etc., do you look up the SDK to determine if it is open source before using it?
Does your company have strict requirements around this type of thing?
Does the decision change if it's for iOS vs. Android?
In short, if you were to build a new SDK today, how hard would you fight to make the SDK open source from day 1? <comment><USER2> Integrating with a closed source iOS SDK is such a hassle, and it's even worse if there's any Swift code involved.

Integrating with an open-source SDK is one line in Cartfile and a little dragging.

Maintaining one also seems like a hassle, currently all I have to do is tag a release and it just works.</comment>


Owning 15 things: 7 months in - <AUTHOR> http://andrewhy.de/owning-15-things-7-months-in/ <comment><USER2> Here's a photo of all of his belongings:

<http://www.flickr.com/photos/bouldair/5122960153/></comment>


$vau: the ultimate abstraction (2010) [pdf] - <AUTHOR> https://web.wpi.edu/Pubs/ETD/Available/etd-090110-124904/unrestricted/jshutt.pdf <comment><USER2> There's a bit of subtext in the title that may be worth drawing attention to. (I dunno, maybe it's all obvious to everyone interested enough in this stuff to be reading the dissertation. But perhaps not, so here goes.)

In the 1970s, after their paper introducing Scheme, Sussman and Steele published a series of papers showing how to implement a bunch of things "on top of" a functional-programming substrate, many of them having titles or subtitles of the form "Lambda: the ultimate X". (The first one was "Lambda: the ultimate imperative", the second "Lambda: the ultimate declarative", others "Lambda: the ultimate GOTO" and "Lambda: the ultimate opcode".)

The idea of these papers wasn't merely "look, you can implement X in Lisp", but something more like "You might be inclined to think of X as simple and primitive and cheap, and Lisp as sophisticated and complicated and expensive -- but that's mostly prejudice, an accident of the particular hardware we happen to have built first, and using something like Lisp as your lower level and implementing these things on top is _better_ than doing it the other way around".

So writing something -- especially something about a Lisp implementation -- with a subtitle of the form "X: the ultimate Y" where X is _not_ lambda -- is pointedly one-upping that.

Especially as the thing that $vau is allegedly providing the new best way to do is ... function abstraction, which is exactly what lambda is for.

</comment><comment><USER3> I've implemented something like this in a non-LISP syntax language. See:

[https://github.com/jhallen/joes- sandbox/tree/master/lang/ivy](https://github.com/jhallen/joes- sandbox/tree/master/lang/ivy)

The idea is that in a function call, the arguments are normally evaluated before the call as usual. But if a formal argument in the function's declaration is prefixed with ampersand then during a function call, that argument is not evaluated, but is instead packaged up as a zero-argument lambda function. The argument can be called later using the normal function call syntax, but also there is semantic sugar: the * operator calls a zero- argument function.

Further, when a variable is evaluated, you get both its value and a reference to it. This allows variables to be evaluated before being assigned to in assignments. This sounds weird, but it works with the above. You can make a "set" function which does the same thing as assignment:

        # Define set function
        fn set(&left, right) {
            *left = right
        }

        # Set x to 10
        set x 10

Here is how you could define switch using primitives (if the last argument is prefixed with ampersand, then any extra arguments are treated the same, but can only be accessed via argv):

        fn switch(&val) {
                var rtn, x, v = *val
                x = 1
                while x < len(argv) - 1 {
                        if *argv(x) == v {
                                return *argv(x + 1)
                        }
                        x += 2
                }
                if x < len(argv) {
                        return *argv(x)
                }
                return void
        }

Example use (8 arguments passed to switch- each set of braces is an argument):

        switch 2 1 {
            print "one"
        } 2 {
            print "two"
        } 3 {
            print "three"
        } {
            print "default"
        }

"two" is printed in this case.

Right now the delayed arguments are evaluated in the closure of the function call (so they are lexically scoped). The wrap/unwrap concept from this paper gives me ideas on how to make this more versatile...

<comment><USER4> Perhaps a stupid question, but why not introduce an explicit "evaluate" operator, and keep the rest of the language lazy?

That would prevent treating function calls as special.

<comment><USER3> Well the language is not LISP, meaning that the source is immediately compiled (to byte code in this case), and provides no access to an AST that can be manipulated.

It's interesting to see how far you can get without eval.

</comment></comment></comment><comment><USER5> I would like to see a mature language using fexprs. They are what I first thought about when I heard the word homoiconicity. Macros seem inelegant in comparison (since there is a separate layer of code that operates on code, and also you don't get self-modifying code, just compile-time transformations).

<comment><USER6> Rebol family of languages (including Red) uses near equivalents of fexprs.

Here's a self-modifying function ;^)

      >> foo: has [x][append body-of context? 'x [+ 1] 1]
      == func [/local x][append body-of context? 'x [+ 1] 1]
      >> loop 3 [probe foo]
      1
      2
      3
      == 3
      >> ?? foo
      foo: func [/local x][append body-of context? 'x [+ 1] 1 + 1 + 1 + 1]

</comment></comment><comment><USER7> There's a partial list of Kernel implementations (the lisp described in the paper) that I'm aware of:

[https://axisofeval.blogspot.com/2011/09/kernel- underground.h...](https://axisofeval.blogspot.com/2011/09/kernel- underground.html)

</comment><comment><USER8> I read maybe a dozen pages, might read more but I'm curious if someone can tell me the type of $vau?

<comment><USER9> According to Racket, the type is 'ultimate-abstraction':

      $ racket -I swindle
      Welcome to Racket v6.12.
      > (class-of 42)
      #<primitive-class:exact-integer>
      > (class-of $vau)
      #<primitive-class:ultimate-abstraction>

I guess the paper wasn't lying.

<comment><USER10> dchaney@sagan:/~$ racket -I swindle

Welcome to Racket v6.7.

> (class-of 42)

#<primitive-class:exact-integer>

> (class-of $vau)

; $vau: undefined;

; cannot reference undefined identifier

; [,bt for context]

>

What did I do wrong? Or did the joke go over my head?

<comment><USER9> $vau was introduced in Racket v6.11. You'll need to upgrade.

<comment><USER11> What? No it wasn't.

</comment></comment></comment></comment></comment><comment><USER12> Alt title: "Fexprs as the basis of Lisp function application"

</comment><comment><USER11> What are interesting uses of this?

</comment><comment><USER9> If anyone wants to implement this, I believe you can do so in Lumen Lisp: [https://docs.ycombinator.lol/](https://docs.ycombinator.lol/)

In particular, macros like [https://imgur.com/C4NL0OB](https://imgur.com/C4NL0OB) are pretty effortless to write.</comment>


A Tale of Persistence:  Finding a Needle in a Haystack - <AUTHOR> http://trendguardian.blogspot.com/p/tg-blog.html

<comment><USER2> It was intelligent persistence. Persistence with a method.

<comment><AUTHOR> Yes I agree, otherwise I could have never found it by randomly looking for it.</comment></comment>


Try the Google HipHop Turntable.  Just, Do It - <AUTHOR> http://www.google.com <comment><USER2> Talk about a great UI. Also, those samples all sound amazing. My only complaint is the sound stopping when changing to another tab.

<comment><USER3> I actually like the sound stopping when you change tabs. I guess they should have given the user the option.</comment></comment>


YouTube Music - <AUTHOR> http://www.theverge.com/2015/11/12/9723496/youtube-music-app-offline-background <comment><USER2> This seems to be an advertorial. Even when it talks about what's missing it shrugs it off like an unrealistic demand:

> The one feature I really find lacking in Music is the ability to make > playlists, but I know that when it comes to music services I'm hungry for > power features that don't necessarily appeal to the masses

This article is an ad, not a review or analysis of the service.

<comment><USER3> The opposite take: "YouTube Music is Breathtakingly Pointless"

[http://gizmodo.com/youtube-music-is-breathtakingly- pointless...](http://gizmodo.com/youtube-music-is-breathtakingly- pointless-1742244361)

<comment><USER4> It really seems pointless when I've been using Google All Music Access for over a year and have access to all the music I know and love, all cached on my phone for offline use.

</comment></comment></comment><comment><USER5> > This app is incompatible with all of your devices.

I have 4 different android devices, which all fully meet youtube's version requirements. This is baffling. I guess it doesn't like that i'm in germany?

Edit: Yep, after installing the APK, the app complains my account is not american. So it's just a very lazy way of region-locking with misleading error messages.

<comment><USER6> I'm in the UK at the moment, but have a US region Play Account via a Gmail account (a trick I learned to be able to install OpenTable for US reservations when it kept offering me UK restaurants).

The key is to use a VPN to surface from a US IP address, they are limiting install to GeoIP.

After you have installed it, you can open the app and choose a different Google Account (a non-US one) to use with the app. But it will always do a GeoIP check on opening the app, so you have to keep using the VPN. This allows you to access your existing Google Music and YouTube accounts even though you just installed under a different account.

As for the app, works really well. I like the audio vs video toggle at the top, and that it's picked up on the things I've listened to or watched within Google Music. The auto-advance onto the next video feels more intuitive than the Google Music "Start Radio..." button, and the recommendations are good.

It's also really really nice to have the music play in the background, screen off... and then to make it foreground and at that point it resumes the video, sync'd perfectly. They do seem to be playing optimised audio tracks from videos, not audio tracks.

This is just a better interface for music than Google Play Music which feels too cold and sanitised for something so emotive as music. This stands back a bit, let's the music and video step to the front.

The only catch. I can't pay for it using my UK account. So it looks like I have a couple of weeks to choose whether I want to shift my Google Play Music subscription over to my US Play Account or not. Right now... I'm thinking not, and to wait. But who knows how long the wait will be.

For the curious about bandwidth requirements for HD video over VPN: [https://goo.gl/photos/BG7JeTxe8UNbWMGL9](https://goo.gl/photos/BG7JeTxe8UNbWMGL9)

<comment> ju-st All I want is a Youtube app that does this:

> It's also really really nice to have the music play in the background

Apparently this works on the IPhone but not on Android...

<comment><USER7> No, it works on Android too but only for songs that are marked as allowing it. I know because I have used it on my Moto X 2014.

</comment></comment></comment></comment><comment><USER8> Honestly, I am liking this more than other music streaming services .

I like a small band called annenmaykantereit from Germany . I cant find their stuff anywhere(Apple,Spotify...) other than YouTube.

<comment><USER9> Their latest LP was added to Spotify a month ago, FWIW.

<comment><USER8> Sadly, I uninstalled Spotify days ago. I cant pay for their service from where I live, but I can pay for Google . Thanks anyway.

</comment></comment></comment><comment><USER10> As a former Dj I can say that youtube is an invaluable tool to find rare out of print vinyls. Spotify and the like only have popular music. Apart from youtube the only other option is to download illegal mp3s.

</comment><comment><USER11> This ad lost me at "Dave Matthews Band".

</comment><comment><USER12> Luckily this ad has no affect on me. I'll just make my play list using Youtube and the free music people upload on the site ;)

</comment><comment><USER13> [https://github.com/rg3/youtube-dl](https://github.com/rg3/youtube-dl)

</comment><comment><USER14> How can Pandora be so popular if it's an US-only (+maybe two more) service?

<comment><USER15> I strongly suspect the quoted statistics are for the US only. Hulu is similarly not available in a lot of non-US regions.</comment></comment>


Show HN: Randall, a micro-shortner for personal use - <AUTHOR> https://github.com/justinlilly/randall

<comment><USER2> I get really nervous running something with sudo that writes to my hosts file.

This is a really nice idea and I'd love to see it in another implementation.

<comment><AUTHOR> Totally understood. I started out writing a DNS server. Turns out, DNS is flipping complicated. I do make backups to the hosts file before every write. For me, I don't have anything complex in my hosts file, except the stuff Randall adds. The rest is just the default 4 lines.

<comment><USER2> Perhaps this is where I get nervous, I put quite a bit in my hosts file for local development.

I'm a shortcut junkie though so I completely love the idea of a personalised DNS server that learns what I commonly resolve and allows me to make shortcuts.

Have you ran into any issues with it hosing your /etc/hosts file at all?

<comment><AUTHOR> I've not. It seems to "just work". This with the caveat that I have about 10 things that I actually want to use it for (so far), so I'm not doing a tons of writes. My current mappings are:

m -> mail.google.com m1,m2 -> mail.google.com/mail/1,2/ (1 or 2, not both) cr -> github.com/sprintly/sprint.ly/pulls (cr = code review) docs -> docs.google.com c -> google.com/calendar

We had this system when I worked at Google (it was probably DNS as my hosts file wasn't altered) so I got really used to going to c/ when I wanted calendars. :)</comment></comment></comment></comment>


The Balanced Ternary Machines of Soviet Russia - <AUTHOR> https://dev.to/buntine/the-balanced-ternary-machines-of-soviet-russia <comment><USER2> That is really fascinating. I wasn't immediately able to track down a Setun simulator, which is a shame.</comment>


Single server systems can tackle big data - <AUTHOR> http://strata.oreilly.com/2013/04/single-server-systems-can-tackle-big-data.html <comment><USER2> At one time I worked for a company that, as a side development effort, built some pretty cool data processing software. It was built as a side effort to support the desktop software we were selling as the main line of business.

Since we were running on a single desktop, it never occurred to us to think about large server clusters cranking away on data day and night. We just had to make it work on a regular 'ol single machine. Since user experience is paramount in user-facing desktop software, it meant clever algorithms and performant code to get it to process the data in a timely fashion.

One day, one of our customers found themselves incredibly dissatisfied with the money and manpower that was being poured into a "big-data" data processing solution on another project, 3 FTEs and a half-dozen very expensive servers.

On a lark he asked us if our data processing tool could do what their big-data system was doing. As it turned out, functionality-wise, we were about 80% there. With a couple months worth of work we were 95% there. The big question was performance.

The customer setup a single instance of our single desktop data processing software and kicked it off. A few days later it had finished. "It's not fast enough" he said. So we spent a few months making it faster and getting rid of bottlenecks. We got it down to just a few hours. "It's not fast enough!" he said again.

So we halved the time...but that was it, it was pretty much all the performance we were ever going to get out of our code-base. We asked "how long does your big data system take to do what we're doing in a morning?", fully expecting that their multi-million dollar solution was cranking through the same data in a ten minutes to a half hour or so.

He responded, "two and a half weeks".

A year later, the other solutions provider called us up and asked us if we were interested in purchasing their big-data processing division. We politely declined.

The point is that sometimes the giant software stacks and interconnected clustering systems we build to tackle "big data" sometimes introduce _so_ much overhead into the system that a single system, running some smart software _can_ outperform the larger systems. We engineers sometimes get incredibly lost in the details of making cool things work to stop and ask ourselves if what we're doing is actually the best approach in the end.

</comment><comment><USER3> > _for workloads that are processing multi-gigabytes rather than terabyte+ > scale, a big-memory server may well provide better performance per dollar > than a cluster._

Does the "performance per dollar" take into account the devastating damage that a single, very powerful server would cause if it ever went down?

With 1 server that can process terabytes of data, you're either processing terabytes of data or zero bytes of data. Redundancy would be difficult to achieve, not only because the hardware is expensive, but also because your software was designed to work best on a single server.

With 1000 servers that can process gigabytes of data each, you're always processing terabytes of data even if a few servers go down from time to time. Redundancy is already built in.

If you put all your hard drives in RAID 10, you need twice the hard drives as your storage needs. If you put them all in RAID 5/6 instead, you only fewer hard drives but you'll get a similar level of overall reliability. With hard drives, of course, there would be a significant difference in performance. With CPU cores, on the other hand, the difference would be smaller.

<comment><USER4> I think you're conflating throughput with availability. They are distinct non- functional requirements and they should be considered and architected for distinctly.

<comment><USER3> Throughput is different from availability, and I'm not conflating them. But they are not completely unrelated, either.

All I'm saying is that it might turn out to be more expensive to design high- availability architectures using a small number of high-throughput servers than it is to design one using a large number of low-throughput servers. Sometimes this doesn't matter because you only need to crunch data a few times a week. Other times, you need 99.99% uptime.

</comment></comment></comment><comment><USER5> Recently a big engineering firm (let's not harm them by revealing their name :) ), called on me. A query on our system takes 7 days they said, when it succeeds... These guys deal with up to 4Tb a day. With proper multi-core map- reduce and open source search, I brought this down to 3 sec on a single 48 core machine.

They used this without revealing it to their (big) customers (who pay a lot for the crappy system). Then they've got a new version of their original system, relying on hadoop. Still, it was slower than the single machine design.

Sometimes the bottleneck isn't in the hardware resources... Distributed computing has many advantages, but I personally use it as a last resort (or I prepare the architecture for scalability, trying to never hit the two machines and beyond case!).

</comment><comment><USER6> This is a fairly uninteresting insight--if your data fits on one machine, use one machine to process it!

But in many cases, your data does _not_ fit on one machine, even one with gobs of ram and SSDs. In my work, we receive hundreds megs of data per second and our jobs run from hundreds of terabytes to petabytes of input data. That is the scale where "big data" ceases to be a meaningless buzz word and becomes a serious technical challenge, requiring distributed storage and processing over hundreds of machines.

Really, this is about the devaluation of "big data" to mean anything over a few gigabytes, which is a drastically simpler problem than peta-scale computing.

</comment><comment><USER4> I was under the impression that "Big Data" is a moving line of "too big for single systems". As system density increases, the Big Data threshold moves too.

I don't see this ever being resolved for all time; but right now SSDs are the one technology that's put disk-using designs back into the hunt.

Where single-systems really shine is simplicity. Distributed systems push a lot of complexity up into the solution space and experience seems to suggest that it cannot be safely abstracted away.

</comment><comment><USER7> The scarcest resource in big data is analyst grey matter, not CPU cycles. Distributed computing can be a bad choice for data analysis because it transfers work from computers to humans: analysts have to spend time explicitly thinking about how to express their queries in a form that could be efficiently parallelized. The fact that every big data vendor advertises its product as doing this work for you is a good sign that it's a pain point.</comment>


Webhost "Peachy Dandy" disappears... with my sites - <AUTHOR>

Peachy Dandy [peachydandy.com], the web hosting service for two of my domains, ceased to be sometime on Sunday 2011-02-13. Nameserver domains unregistered, control panels inaccessible. No warnings, no email notifications, no refunds of prepaid [quarterly/annual] account balances. Sales and support contacts unresponsive. Owner refuses to acknowledge that he was ever affiliated with the company.
Note that they appeared perfectly legitimate: reselling on behalf of a reputable firm [Hawk Host], offering a normal range of hosting plans from a few dollars a month to $80 or so. They had hosted these two domains for 18 months without any significant downtime, and had responded quickly to my (few) support tickets over that time period.
Neither domain hosted mission-critical services, just a company blog and web-facing marketing material. The MX records pointed to another mailserver provider. Therefore I had no automated monitoring pointed at either domain, and did not immediately realize that the servers had gone down. (My focus was elsewhere; I first found out when I casually attempted to login to Wordpress later in the week.) As a consequence, I lost these web presences for days, and undoubtedly lost company email [as senders could not retrieve the MX records from the nonexistent nameservers].
tl;dr moral: Monitor EVERYTHING. What happens if one of YOUR hosting vendors silently evaporates while YOU'RE focusing elsewhere? Write out the entire chain of dependencies for your email domains, web domains, DNS redirects, IP forwarding, etc. Do this again every few months. If a host/service really isn't mission-critical and you therefore don't want to pay for third-party monitoring, at least setup cron jobs such that your hosts/domains cross-check each other at regular intervals. Remember: Your 1337 skill set is useless if you are not aware of priority issues. Don't let what should be just an hour or two of email/www downtime balloon into a serious impact on your brand. <comment><USER2> I work at Hawk Host - we restored a lot of the Peachy Dandy accounts so you might want to submit a ticket to our support department (<https://support.hawkhost.com>) and we'll see if we can get you your stuff.

<comment><AUTHOR> You restored my data for me earlier this evening, Cody. Thanks for that.

I'd like to again emphasize: Hawk Host is not at fault. Even so, they're restoring Peachy Dandy customers' data (for free). I actually intend to move these domains over to Hawk for hosting.

</comment></comment><comment><USER3> For monitoring, Pingdom has a basic free account with uptime/response time monitoring and email notifications. If you host your nameservers and email (Google Apps?) elsewhere, losing a web host isn't _quite_ so bad. I also unfortunately just went through this with my personal VPS a few days ago, with Hazenet disappearing off the face of the planet.

</comment><comment><USER4> Thank you for sharing - sorry that happened :(</comment>


Privacy Analyzer – See what data is exposed from the browser - <AUTHOR> https://privacy.net/analyzer/ <comment><USER2> Anyone who has read my recent HN posts would know that I proudly disable JavaScript in my browsers and have done so for several decades.

Now _Privacy Analyzer_ has given me yet another excellent reason to continue doing so. Without JavaScript running _Privacy Analyzer_ WON'T EVEN START let alone give you any useful information! These tests were done on both a PC and on an android smartphone with security plug-ins/add-ons disabled and the results (given the differences in technology) were essentially the same. Note: several browsers had no plug-ins installed, only JS disabled.

As I've been saying for years, the first line in defence of your privacy is to turn JavaScript off, all other protection measures, whilst useful, are of secondary importance.

Moreover, _Privacy Analyzer_ is essentially useless even with JavaScript turned on. With just one add-on _(Secret Agent)_ running, it successfully spoofed my location (randomly put me on the other side of the world), put me on another—now incorrect—IP address, randomly changed my User Agent to nothing like the one I was using, and _Privacy Analyzer_ didn't know my PC's processor (among other things that it had also gotten incorrect).

I know I sound like a repeating scratched record about JavaScript—but don't take my word for it, just do the tests and prove what I'm saying for yourselves.

 _BTW, if you want to do these security /privacy tests both with and without JavaScript enabled then I'd suggest you use Steve Gibson's 'ShieldsUP!' — GRC (Gibson Research Corporation) [https://www.grc.com/shieldsup](https://www.grc.com/shieldsup). It's been around for years and works well._</comment>


Moore's law gives way to Bezos's law - <AUTHOR> http://gigaom.com/2014/04/19/moores-law-gives-way-to-bezoss-law/

<comment><USER2> Quote from the article:

      "the only conclusion is that most enterprises should dump
       their data centers and move to the public cloud"

What a fucking asinine statement. I stopped reading there.

Why did I stop reading there? Because there's more to gain from controlling your own computing environment than simply money.

In the moment I read that sentence, I knew I was reading propaganda, and I realized I was yet again trapped in the media's Cloud Computing Echo Chamber, where industry shills try to brainwash us into acquiescing unto the inevitable One Data Center To Rule Them All.

</comment><comment><USER3> Rather than costing a "unit of computer power", which seems quite difficult to evaluate, why not cost the price of a floating point instruction in the cloud (or 1 million fpi if that's better) plus the price of storing the result of that instruction.

Seems like a more concrete thing to evaluate ( closer to what moore law is : not a "processing power" law, but rather something physical and concrete)</comment>


The last post (2011) - <AUTHOR> http://webcache.googleusercontent.com/search?q=cache%3Ahttp%3A%2F%2Fwww.penmachine.com%2F2011%2F05%2Fthe-last-post&hl=en&strip=1 <comment><AUTHOR> Every now and then I think it's important to get reminded of other important things in life. I read this post every year on the anniversary of his death, which was yesterday.</comment>


Website creation what to start with - <AUTHOR>

Hi, I want to creat a website and include sql server which I have downloaded - would I be better off to start learning Ruby - I have seen a site similar to what I want to creat and have been told that it uses sql server - for your info the site is -Angloinfo.com - I like the set up for the business i have in mind but before I waste my time learning the wrong programming It is quicker to ask you lot - so please what's the first code I need to learn before sql server and the best place for a domain name apart from wix.com etc Can I use my computer as a server to get started? I'm not stupid to have high hopes!
thank for your replies. <comment><AUTHOR> I did a bit of programming a few years back on HtMl but with all the new stuff out now should I really go back to re-learning Html - I have to start learning before I start hacking - I have created 2 freebie websites - but I didn't need my own code - ok so I copied some radio station free code and put it on my crappy site - but now I want to write it all myself just the best way to start?

<comment><USER2> (OT: You've been hellbanned. I suggest creating a new account.)</comment></comment>


Amazon NYC Deal blow-up shows the dangers of Ocasio-Cortez's economic illiteracy - <AUTHOR> https://www.mercurynews.com/2019/02/22/thiessen-amazon-blow-up-shows-ocasio-cortezs-dangerous-economic-illiteracy/ <comment><USER2> To this, I ask, "Does Amazon really need the $3 billion tax break?" I get it. It is in a company's interest to get the best deal given what they can bring to a city but this idea of "let's get what we can" is increasing the perception of a greedy company that gets what it wants at any cost. Ocasio- Cortez was elected because of the growing perception that big companies only want to get all they can while leaving the common man in the poor house.

Ocasio-Cortez might have been wrong but Amazon and the politicians are just as guilty for not properly informing the people that would be affected on the benefits that Amazon would bring.

I expect this kind of result as long as big companies and politicians treat their constituents as if they know better and their constituents should accept the results.</comment>


"W" is for Facebook (in Google's Instant Search) - <AUTHOR> http://www.alfajango.com/blog/w-is-for-facebook-in-googles-instant-search/ <comment><USER2> For me it just shows the local weather...

<comment><USER3> Try "ww".</comment></comment>


The Lean Publishing Manifesto - <AUTHOR> http://leanpub.com/manifesto <comment><USER2> It's a very provocative piece, and it seems to dovetail quite nicely with the release of works-in-progress on such sites as Kickstarter.

That said, this model presently works a lot better for nonfiction than it does for fiction. Unless we're talking about a return to the serialized novel. And that may not necessarily be a bad thing. If certain app developers release their games in "chapters," I see no reason why authors couldn't do the same. In fact, that may even be a better way to make a living as a fiction writer than by releasing whole books every year (so long as the installments are substantial enough to warrant the price tag). And, in the interest of seeing this thought experiment through to its conclusion: who's to say that a la carte book sales are the final word on pricing? Will we eventually see authors selling subscriptions to serialized works?

</comment><comment><USER3> This is somewhat unrelated, but if I may pick your brain for a moment, what are your thoughts on this article:

[http://www.guardian.co.uk/books/2012/jan/30/self-e- publishin...](http://www.guardian.co.uk/books/2012/jan/30/self-e-publishing- bubble-ewan-morrison)

</comment><comment><USER4> I've contributed an edited, shortened version of this manifesto to <http://leanpub.com/uncensored>, a benefit book for the EFF that Hunter Walk and Eric Ries edited and Leanpub created.

</comment><comment><AUTHOR> I found their discussion of the place for self-published e-books , blogs, and print books in the context of the "Technology Adoption Lifecycle" interesting.

I suspect that many HN readers who write blogs will find the manifesto interesting even if they don't want to publish a book, don't want to try what they call "lean publishing," or don't intend to use their particular service.</comment>


I was bored, so made this real-time geo-location boredom scanner using node.js - <AUTHOR> http://iambored.wreally.com

<comment><AUTHOR> A friend and I built this over the weekend while we were playing around with node.js. Would be fun if lots of people actually stumbled on it at the same time and pressed the "I am bored" button, so thought I could ask you guys for some help with that and in the process, see who else is bored around the world! :)

<comment><AUTHOR> Oh and you can zoom in/out with your scroll wheel.</comment></comment>


The Next Internet? Marijuana Delivered as Easy as Pizza - <AUTHOR> http://www.nytimes.com/2015/11/12/technology/marijuana-start-ups-see-an-industry-on-the-cusp-of-a-breakthrough.html?ref=technology&_r=0 <comment><USER2> Recently visited Washington state for the first time and want to experience a legal marijuana purchase. While searching for a place to go, I was shocked to find so many vendors offering delivery. The first and only delivery service I contacted told me they could only deliver to medical card holders, so I opted to visit a shop with a physical presence. For a long-time recreational user, it was surreal.</comment>


What do investors talk about after you leave the room?  - <AUTHOR> http://geektime.com/2013/05/26/what-do-investors-talk-about-after-you-leave-the-room-a-visit-with-new-york-angels/ <comment><USER2> They talk about your attitude when you were talking to them. Are they convinced by your eye contact and shoes? If you don't take care of your appearance, you won't meticulously consider the niceties required to face customers and leading on gently around your products.

</comment><comment><USER3> so why not leave a bug in the room? i imagine it would be very easy to leave a bug in the trash that would be thrown out later. and i bet no vc is checking for that.

(this might seem crazy, but 20 years ago a fellow postdoc did exactly this to listen in on a meeting. he was an electrical engineer and built the bug himself, but i am sure you can buy things these days) (yeah he was kinda sleazy).

(obviously one "why" is that it's ethically questionable. but from another pov it's very much a hack solution. i see posts here urging founders to think outside the box, never give up, go to extremes etc etc...)

<comment><USER4> I don't actually advocate doing any of this, but I bought a book on "Spy Techniques for the Office" (or something like that) a long time ago (I think it was on the bargain rack at Barnes & Noble)... anyway, one of the techniques they mention for spying on a meeting when you're not in the room goes like this:

Go to the meeting, and put your phone on the table. Have the phone set for no ring, and auto-answer. Excuse yourself to go to the restroom. Then, using another phone, call the phone laying on the table. Listen to what is being said in your absence.

In this case (listening after the meeting has adjourned) you'd need to find a way to "forget" your phone, so it couldn't just be lying right on the table top. I suppose you could pitch it in the bin, ala Cypher in The Matrix, if you could do it without being noticed. Could be awkward if somebody found it though.

You could probably also build a very small, easy to conceal audio recorder using one of the voice recorder ICs meant for something like an answering machine. Leave it in your jacket pocket, and then "forget" your jacket when you leave the meeting. But the risk is that somebody notices the jacket and decides to be nice and chases you down to bring it to you.

Hmm... looking at one example of such a recorder IC setup, this one can only do 64 seconds of voice. Maybe not very useful. But you could probably use an rPi and an SD card and build something that could record significantly more. Or use an Arduino and a cellular shield and build something you can dial into...

Oh, wait, looking here[1], it looks like you can get voice recorder ICs that go up to 16 minutes. Not sure, offhand, how much supporting circuitry and power it would take for one of these things, though, so not sure how small it could be built.

Anyway, like I said, I don't recommend actually doing this. Just food for thought.

[1]: [http://www.digikey.com/product-search/en/integrated- circuits...](http://www.digikey.com/product-search/en/integrated-circuits- ics/interface-voice-record-and- playback/2556441?ColumnSort=-402&fid=0&pageSize=25)

</comment></comment><comment><USER5> They likely talk about the things you'd think they'd talk about. Ultimately, if they think they can get their money back and then some by investing.

</comment><comment><USER6> This site is terrible on smaller screens.</comment>


Ask HN: Hosting a website - <AUTHOR> Hello everyone. What do you recommend is the best option for creating and hosting a SaaS website (mostly static except for user registrations and payment gateway integration)?
Should I go for a website builder like SquareSpace, Wix etc.
Or should I go for AWS S3 + Lambda to host the site (my SaaS is deployed on AWS stack anyway) and do payment gateway integration myself.
Or are there any other options that I haven't considered? My priority is to make the site look professional and also try to keep the prices down. <comment><USER2> A $50 Wordpress template will give you a good start. Just search for 'saas template wordpress'.

There's also specialized Wordpress hosters like [https://getflywheel.com/pricing/](https://getflywheel.com/pricing/) who take care of daily backups, CDN, security updates. Of course there are plenty of tutorials to install Wordpress yourself as well.</comment>