$5.5 Trillion in Government Bonds Now Have Negative Yields - <AUTHOR> http://www.ft.com/fastft/2016/01/29/record-5-5tn-in-govt-bonds-trade-at-negative-yields/ <comment><USER2> Going via Google circumvents the paywall:

[https://www.google.com/search?num=30&safe=off&q=%245.5+Trill...](https://www.google.com/search?num=30&safe=off&q=%245.5+Trillion+in+Government+Bonds+Now+Have+Negative+Yields+site%3Aft.com&oq=%245.5+Trillion+in+Government+Bonds+Now+Have+Negative+Yields+site%3Aft.com&gs_l=serp.3...3777.4967.0.5022.12.10.0.0.0.0.173.652.0j5.5.0....0...1.1.64.serp..7.0.0.-klpEkWqIes)

<comment><USER3> Click on the "web" link above and then click on the FT.com result. (You may also need to load that link in an Incognito tab.)

</comment></comment><comment><USER4> In case anyone wonders who would buy these and why, the government has made it mandatory for banks to buy these themselves if they have deposits or loan. So this is effectively a tax on banks.

<comment><USER5> It can also be a deflation hedge. Let's assume your bond has a -1% yield and we hit -5% inflation. At maturity you have more effective capital.

<comment><USER4> If we hit -5% inflation you will have counter party risk for the US government to take into account. Not that I think it'll destroy the US govt, but it would make them declare your treasury bond invalid (and many others) rather than cutting spending even more.

</comment></comment></comment><comment><USER6> Behind a paywall

<comment><USER7> Can pay wall sights be tagged so that... i don't click on those links?</comment></comment>


Vivint's Game of Codes week long programming challenge ($20k in prizes) - <AUTHOR> https://goc.vivint.com/?no-login <comment><USER2> Super excited for this, the last one (hackthe.computer) was really well done!</comment>


Humble Double Fine Bundle is available now - <AUTHOR> https://www.humblebundle.com/ <comment><USER2> All these bundled game packages are turning games into something like trading cards rather than games.

People I've heard from say that they never get around to playing the games, but they buy them in bundles like this because they can get a bunch of games cheap, and maybe someday they'll have a chance to sit down and play them.

Like a Baseball card. You buy them up when you have some extra money, or got them as a gift, and you store them away, maybe someday they'll have value. Right now, their only value is that they are in your collection at all. (Pokemon/Magic/Whatever)

I'm an indie game developer myself, and it's interesting to me because it seems like people have become accustom to buying games because they heard about them instead of because they want to PLAY them. I'm totally guilt of this myself. I've spent many bucks myself on iOS titles just because of the hype, play them once, and that's it. Most times I feel like a real sucker for falling for it. Rarely do I get a gem.

I'm usually the edge-case for stuff like this, don't really expect anyone to agree :)

<comment><USER3> That's a pretty common argument especially when Steam sales come around. People will buy everything at a steal then possibly never play them. I think the idea behind it is, what's the risk/reward? If I buy it and never play it, I'm out $5. If I don't buy it and it haunts me so much that I buy it after the sale, I'm out $35. How much is $5 worth to you? It might be the difference between impulse buy or putting some thought into it.

I know I buy into Humble Bundles if there's even one game I like (or have heard I will like) that's packaged into it. It's worth the price of admission. Having the other games is a safety net of sorts. If they're in my collection, I can play them anytime I want (even if that day may never come).

Helping indie devs is just a side effect ;)

<comment><USER4> When Steam for Linux came out, I actually ended up playing one of the games from the very first Humble Bundle I'd never even really looked at at the time and enjoying it, so it's certainly not totally pointless to have extra games lying around.

</comment></comment></comment><comment><USER5> As a side note, if you've never read this interview with Tim Schafer about the release of Psychonauts you owe it to yourself to do so, it is epic: [http://v2.razputin.net/index.html@page=razputin%252Ffeatures...](http://v2.razputin.net/index.html@page=razputin%252Ffeatures%252Ftimwords.html)

</comment><comment><USER6> Any comments from the HN crowd on Brutal Legend (the beat-the-average bonus)?

<comment><USER7> Played through it on Xbox 360 when it first came and I had a lot of fun with it. A lot of people criticized double fine for throwing in RTS elements that weren't present in the demo, but I thought it was pretty fun all around.

</comment></comment><comment><USER8> I really hope they finally fix the MD5 signatures on the Psychonauts FLAC soundtracks. The game and soundtracks were already included in the HIB4 with mismatching signatures and they haven't fixed it yet :(

</comment><comment><USER9> Note that they've just released a new patch for Psychonauts on Linux, if you have it from a previous bundle or buy it now. It's dated 2013-05-06. I'm downloading now so I haven't tested it yet.

</comment><comment><USER10> I'm hesitant to even spend $1 because the Linux versions are probably poorly ported and barely functional, as was the case before with UE3 based games featured in the HIB.

<comment><USER11> Psychonauts runs great on my distro, Linux Mint 14. I'm even using a 4 year old Nvidia card. I'd trust them.

<comment><USER12> It doesn't work at all in my depressingly inadequate onboard Intel, although the Windows version runs (with low resolution graphics) relatively well.

</comment></comment></comment><comment><USER13> Two firsts here that I can see: physical goods and relatively high reward tiers.

<comment><USER14> It's quite smart to have the t-shirt level. I suspect the $70 fixed order price not only includes a healthy profit but also pushes up the average purchase price, yielding greater revenue for the "beat the average" tier.

</comment></comment><comment><USER15> Man, I could watch Tim Schafer videos all day. That guy cracks me up. I was pretty much sold by the video alone.

<comment><USER16> Totally! I didn't back Double Fine Adventure, but I go watch the Kickstarter video every few months because it is hilarious.

"Oh, sorry. I didn't see you there. You caught me indulging in one of my many impressive hobbies...I'm a man of many passions. Drumming. Skydiving. Like, charity or something?"</comment></comment>


Ask HN: Do You Prefer REST or RPC Style APIs? - <AUTHOR> Personally I prefer to expose REST APIs for the external (Internet) facing services for simplicity. For internal APIs I prefer gRPC for performance reasons.
The real question is that if there are no technical limitations (HTTP 1.1 vs 2 etc, bi-directional and communication etc), which style of API would you prefer and why? <comment><USER2> For internal APIs I'd recommend RPC and REST/GraphQL to create an API consumed by third parties.

Wildcard's readme elaborates more on RPC vs REST: [https://github.com/reframejs/wildcard- api](https://github.com/reframejs/wildcard-api)

(Wildcard is RPC implementation for Node.js and the browser.)

</comment><comment><USER3> I prefer REST especially for public/external APIs. It's more empathetic towards third party developers who may not be as intimate with your API as your internal team. For example, much easier to reason a few well-understood entities like items, users, and orders if I was building an e-commerce API then a list of RPC operations. I would add GraphQL can also be easier to understand as long as the entity relations make sense. Lot's of exciting stuff happening in the GraphQL world but it does have disadvantages also.

</comment><comment><USER4> That depends, do you consider SOAP to fall into the latter category?

If so, no.</comment>


Woolwich machete attack leaves man dead - <AUTHOR> http://www.bbc.co.uk/news/uk-22630303

<comment><USER2> "Bystander effect?" 20 minutes to get police on the scene? Jihadist attacks on public streets?</comment>


High-performance, exactly-once, failure-oblivious distributed programming (2018) - <AUTHOR> http://christophermeiklejohn.com/pl/2018/12/15/ambrosia.html <comment><USER2> Exactly once processing is not possible in distributed systems. Anyone that tries to sell that snake oil is dishonest and anyone who buys it should not be making purchasing decisions. The definition and requirement of idempotent processing means systems must be able to handle messages delivered more than once, which irrefutably proves there is no such thing as exactly once.

Even within centralized, monolithic systems with no outside interaction, laws of physics and reality still apply - a pull on the cord, an earthquake, a flooding or a myriad of other things may interrupt message processing resulting in either exactly zero or more times a message will be processed even if the message were being processed within the confines of an embedded micro-controller using hand crafted assembler code.

<comment><USER3> There is no literal exactly once of course, because it's not physically possible, but "exactly-once" semantics are possible in distributed systems. Data can be resynchronized, processes can be restarted with the side effects removed, etc.

<comment><USER4> "Data can be resynchronized" \- yeah, that means you send it again. Not exactly once.

"Exactly once semantics" is semantics. It's at least once with idempotency, which may or may not be able to be guaranteed on the part of the system depending on actual implementation details which the marketing fluff will invariably leave out if they're saying "exactly once". And that's a major problem when relying on such 'semantics'.

<comment><USER5> > "Data can be resynchronized" \- yeah, that means you send it again. Not > exactly once.

"Send it again" doesn't mean "processed again". Isn't exactly-once built on at-least-once just binding the result to a future? Then any subsequent accesses or attempts to update will simply return the bound result, which was processed exactly once.

<comment><USER4> Which is what you -do- to handle 'at least once' delivery. The system can try and hide that complexity from you,but there are still tradeoffs in any implementation. How long in between does that guarantee hold? Does it guarantee that if you fire the same message a year from now it will still recall that it's a dupe (i.e., persist all message identifiers for an infinite amount of time)? Probably not. Does that matter to you? Maybe!

Even if it does persist, does it persist the identifier on receipt of the message, or on sending it to you for processing? If the former you run the risk of crash and never having handled it; you really have no guarantee of delivery to your processor. If the latter, what happens if the receiver crashes before it hands it off to be processed? If simultaneous, is 'processing' atomic? Probably not; what happens if you crash midway through processing the thing? Etc.

That's my point; you need more details to make the system robust. You don't get "exactly once delivery" out of the box; you get a system that attempts it by deduplicating, but there be gremlins, and the fact you're not saying "it's at least once delivery with (details)" means I'm not hearing a technical pitch, but a marketing one.

<comment><USER5> Futures have well-defined semantics as logic variables. The only question of actual interest that you raise is the lifetime. This is dictated either by the system or the dependent objects, although obviously "unbounded lifetime" handles all possible cases. So lifetime is not "undefined" but "contextual".

</comment></comment></comment></comment></comment></comment><comment><USER6> Kafka exactly-once semantics addresses the main issue of the article I think.

It's now relatively simple for a developer to implement a system with exactly once guarantee as long as you take care of the world that is not inside a Kafka transaction (integrations with third parties and such), which is still not super easy sometimes, but less so then the distributed transaction that will happen inside Kafka.

Kafka hides the complexity really well from my use of it so far is very reliable with the "new" semantics.

<comment><USER7> I'm getting mighty tired of the "exactly-once" thing.

Everybody and their uncles seem to have picked up on this trend of advertising at-least-once systems as exactly-once, then burying somewhere in the docs that you're expected to guarantee idempotency yourself to get the appearance of exactly-once. That was the state of the art decades years ago, it's the state of the art now, and it's pretty damn dishonest to sell quality-of-life improvements as a fundamental shift in the guarantees/properties of these systems.

<comment><USER8> > at-least-once systems with idempotency to get the appearance of exactly-once

What baffles me even more is why the above is apparently not generally considered good-enough, elegant-enough --- and as a bonus, not violating the laws of physics either? Both sides of the coin are quite tameable and implementable. And together deliver what was wanted in the first place, and effectively. Curious in any subtle edge-cases I might have missed here!

<comment><USER7> The problem is that there is an audience for whom exactly-once sounds like it makes their non-specialist lives much simpler compared to an at-least-once system because they can offload the necessary distributed systems expertise to somebody else.

People insist on this messaging precisely because that crowd is somewhat vulnerable to this sort of shenanigans.

</comment></comment></comment></comment><comment><USER9> I've been recently reading the papers coming out of the Berkley Disroderly Lab -- Bloom(L) languages, lattices, composing eventually-consistent, coordination-free systems. It's interesting to read this article with that lens. There are some properties that are similar, but this one looks like it is designed to let people continue programming the way they are at the cost of increased coordination with other systems.

The idea of a replayable log seems to be able to convert a disordered sequence of events into something that is ordered. Whereas, the Bloom(L) stuff constructs algorithms that only requires partial order. An event stream can be disordered because the functions being used are monotonic, and the compositions of the data structure uses operators that are commutative, associative, and idempotent. (Thus, there is no requirement for exactly-once guarantee, or an ordered event stream).

</comment><comment><USER10> > Many cloud service designs today rely on durable queues, such as Event Hub > or Kafka.

AFAIK nowhere in the Kafka documentation does it use the term "queue", and unless you only have one consumer per consumer group it's impossible to guarantee FIFO behavior. Maybe call me a nitpicker but I've seen this "queue" language lead to completely wrong assumptions about kafka.

<comment><USER11> I googled "kafka documention", went to [https://kafka.apache.org/documentation/](https://kafka.apache.org/documentation/), searched for "queue" and found 29 matches.</comment></comment>


The Art of Conducting - <AUTHOR> https://www.commentarymagazine.com/articles/the-art-of-conducting/ <comment><USER2> I think this is the take-away point: "Beyond stopping and starting a given piece, it is the job of a conductor to decide how it will be interpreted. How loud should the middle section of the first movement be—and ought the violins to be playing a bit softer so as not to drown out the flutes? Someone must answer questions such as these if a performance is not to sound indecisive or chaotic, and it is far easier for one person to do so than for 100 people to vote on each decision."

If you've ever worked with a conductor, even in high school band, the whole mystery disappears right away. In classical music, "conductor" usually refers to what would be called "musical director" in other situations: they oversee all of the big and little artistic decisions you need to make good music. Standing up there waving the baton around is a pretty small part of the job. When you explain to people this way, it's almost obvious: just like any big project, you want to have a manager with some kind of vision to give things direction. It's pretty hard to run the whole thing as a commune.

<comment><USER3> This mostly makes sense to me. A conductor for music is the equivalent of a director for a play.

Except with a play the director doesn't stand on stage pointing at each actor to cue their lines. The actors rehearse and learn their own cues. The director coaches them on timing, volume, expression, etc, but then mostly relies on each individual actor to take that direction on board and follow it themselves on the night.

Why is it different for a conductor?

[ Edit: Reading the rest of this thread has actually largely answered my question now. taco_emoji's post was particularly helpful [https://news.ycombinator.com/item?id=15983052](https://news.ycombinator.com/item?id=15983052) ]

<comment><USER4> The most basic function of a director in a concert is to dictate the tempo. You can make do without a director in a small group of people by just looking at each other in tricky moments, but when the people involved become dozens or hundreds it is impossible to stay in tempo without a director.

You could take the director out and people would still be able to play, but it would most likely result in a much worse performance.

<comment><USER5> Also many bands have a drummer and/or bass player who will set the rhythm, just by nature of their instruments cutting through the others, which generally obviates the need for a conductor.

</comment></comment></comment></comment><comment><USER6> I appreciate this article's focus on rehearsal. A lot of people not familiar with classical music see someone waving their hands around on stage and wonder why they're needed.

The answer is that they're not really needed _for the performance_. A conductor who leads effective rehearsals and gives clear interpretation instructions could probably not show up to the performance and the orchestra would still know what to do.

But leading effective rehearsals and knowing the music well enough to communicate interpretations details is _really hard_.

<comment><USER5> I disagree somewhat--the conductor may not strictly be _needed_ for the performance (with enough rehearsal, of course), but it's likely to be much _better_ with them than without. For one, keeping a steady tempo by consensus is pretty hard when you're trying to listen for it from your fellow musicians while simultaneously attending to your own pitch & timbre. (Not to mention _accelerando_ and _ritardando_ \--changing tempo in sync is nigh impossible without a benevolent dictator in front of you!)

Also it's very easy for an individual musician to forget that oh, this is the THIRD repetition of this really loud phrase, and this time we're supposed to move on to the really quiet part, and seeing the wildly gesticulating figure in your periphery suddenly shrink down smaller is a good reminder that things are changing to the quiet part.

And as a former percussion player who had to wait for sometimes hundreds of measures of rest before coming in precisely on time with, say, an extremely important bass drum hit, it's extremely reassuring to get eye contact and a finger-point from the conductor to verify that you're not about to ruin the entire performance by coming in four measures early just because you lost count and were therefore trying to base your entrance on the repetitive phrasing of the piece. Not that this ever happened to me...

<comment><USER7> Thanks for the insightful comment. I've often wondered how the triangle player can sit for a hundred measures and still hit that one note right on time. And the other stuff as well, but that one stood out.

<comment><USER5> I don't want to downplay the need for rehearsal. It's nearly impossible to simply count for that long, so percussion players REALLY need to know the shape of the piece (perhaps more than the rest of the ensemble, in my biased opinion) to get their cues right. A nod from the conductor is reassuring, but she also has literally a dozen things happening simultaneously that she must attend to, so you can't depend on it.

</comment></comment></comment></comment><comment><USER8> I dabble in music. Long time ago for a couple of years I studied arrangement and composition as something interesting to do outside my day job. Included some study on conducting. I did a few arrangements for big band orchestras and it is quite a buzz to listen to musicians play sheet music you just handed them live without any rehearsal. Yet the idea of conducting is completely intimidating. I practised a bit but was never good enough and was relieved I never had to do it for real when my teacher would step in conduct instead. I found it to be a strange beast; quite the opposite of arranging which is very mathematical and precise. If I ever decide to get back into that side of music I'll have to make a point on working on that skill.

</comment><comment><USER9> If you enjoy this article, you'd love this book:

Absolutely on Music: Conversations (Haruki Murakami and Seiji Ozawa)

[https://www.amazon.com/Absolutely-Music-Conversations- Haruki...](https://www.amazon.com/Absolutely-Music-Conversations-Haruki- Murakami/dp/0385354347)

<comment><USER10> +1, This was such an excellent read.

There are a large number of pages where they talk about Mahler that I particularly enjoyed

</comment></comment><comment><USER11> > _Someone_ must answer questions such as these if a performance is not to > sound indecisive or chaotic, and it is far easier for one person to do so > than for 100 people to vote on each decision.

It strikes me that this is a bit akin to the role of a good CEO, or an active monarch in a democratic monarchy: not to direct, but to roll with the flow, and influence things just a bit — like a harmonic knocker, giving just the right impulse at just the right moment.

<comment><USER12> Except in rehearsal the conductor has imposed his vision of how things will flow in later performances. Different versions of the same piece from different conductors can sound _extremely_ different, although the sheet music is the same - different tempos, different changes in tempo, different dynamics, phrasing, relative volume of instruments, timbre (quality of sound), different lengths of notes and accents and attack on notes, etc etc, and each composer has their own idiosyncratic ideas and preferences, both about what the composer wanted and what they want the piece to sound like. Sometimes different numbers of players are used. Also the particular way the conductor speaks to the orchestra about the music and the players, and other things, what they say and how they say it, can have a huge effect.

"To influence things a bit" is nothing like it. A performance may give that impression, but the nature of the performance in all those details and more has been thought out by the conductor and rehearsed beforehand. The orchestra has been taught and trained in exactly how the conductor likes it, and that's what you hear.

</comment></comment><comment><USER13> For any that want an entertaining and somewhat informative "behind the scenes" take on conducting, Amazon's "Mozart in the Jungle" series[1] is pretty good. Not sure how accurate it is, but still a fun look at something most people don't get to see behind the scenes of.

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

</comment><comment><USER14> Agree 100% with the functional points. One additional responsibility that arises from time to time is to handle disturbances during performances. Having someone able to speak eloquently to the audience in such circumstances (a/v issues, noisy individuals, etc) can be the difference between an otherwise great performance and a very awkward musical experience.

</comment><comment><USER15> A few years ago, the bbc ran a celebrity reality show where the contestants learned to become conductors. It made for very good television whilst explaining the role well: [http://www.bbc.co.uk/musictv/maestro/](http://www.bbc.co.uk/musictv/maestro/)

</comment><comment><USER16> In college I had a wind symphony conductor who was phenomenal. Playing for him was so much fun. Someone once told me that the better we played the more he danced, and the more he danced the better we played. I think this concisely captures one of the big functions of the conductor.

</comment><comment><USER17> Most interesting. Thank you for posting this.

</comment><comment><USER18> When I think of a conductor, Bugs Bunny flashes into my mind. Must have been burned in as a child.

[https://youtu.be/BX1ljYx3g3k](https://youtu.be/BX1ljYx3g3k)

</comment><comment><USER19> What is with the recapcha alert that pops up when the page loads?

<comment><USER20> I can't figure it out, either. I'm only getting the first paragraph of the article.

Okay, I figured out a workaround. Click the print button at the bottom of the page and print to pdf. You'll get the whole article that way.

It was a really good article. Worth the effort.

</comment></comment><comment><USER21> I thought this will be about electrical conductors.</comment>


Elon Musk, A.I and Nuclear Weapons - <AUTHOR> https://medium.com/dialogue-and-discourse/elon-musk-a-i-and-nuclear-weapons-7546e1c34152 <comment><USER2> I was intrigued by how the author was able to make his/her hatred of Elon Musk so palpable that I could taste it while reading the article - so much so I think it detracted from the article itself.</comment>


Land of Lisp sample chapter available - <AUTHOR> http://nostarch.com/download/Lisp08.pdf

<comment><AUTHOR> Read about the book and check out the TOC here: <http://nostarch.com/lisp.htm>

</comment><comment><USER2> I actually played Hunt the Wumpus on my dads Kaypro2 when I was a kid. Grand Theft Wumpus might be the funniest thing I read this week. With Lisp + Graphs? Solid. I wonder if more of No Starch's offerings are this cool.

</comment><comment><USER3> Interesting - I wrote pretty much exactly the same code for chapter 2 of Hello Python, except I build a tree first (by adding each cave in sequence at a random point) and then add some random two-way connections, rather than trying to find islands later.

<http://manning.com/briggs/> if you're interested in checking it out. I follow a similar route - teach programming by jumping in on something cool (eg. a game) and explain things as you go.

</comment><comment><USER4> Awesome, I was beginning to wonder if this book would really come out or not. It's back on my Amazon wish list!

</comment><comment><USER5> The "what you've learned" at the end of this chapter made me chuckle :) It says you learnt about `loop`, `intersection`, `set-difference` and `remove- duplicates`.

(PS: It'll be nice if HN formats back-ticks as code.)</comment>


Web 2.0 is a bubble for 3 reasons - <AUTHOR> http://online.wsj.com/public/article/SB116679843912957776-fF7CtrdMDTE4n1h5Ju5pv0HKhgM_20071227.html <comment><USER2> OK everyone, so what is Web 3.0 (or Enterprise 2.0 or whatever)? My bet is on xulrunner type highly responsive local apps with persistent connections to the server (which is possible with something like yaws, not really with apache). Kind of a client-server model where the server is Internet based (though, of course, no one will dare say the words client-server).

<comment><USER3> Do you really have to think about the Web in discreet chunks to talk about the future? Besides if you really want to define "web 2.0" (which always maybes me shudder) its more about the average person contributing content; it's not about the technology that enabled it.</comment></comment>


Ask HN: Build a product with no revenue? - <AUTHOR> Hey guys, currently I am prototyping an education app and have signed up every high school in our city with full support from the principal and select teachers. Interest seems amazing for something yet to be built, we are using proto.io to showcase how the app will work.
The only problem is that I can't figure out a way to monetize it. Schools don't have money, neither do teachers and students will never pay.
Should I continue to work on it when I have no clear way to make money? Granted the costs are minimal but it just doesn't seem like a great way to pitch investors later down the line with no monetization plan. <comment><USER2> Are you doing this to get maximally rich? Or because you want to make something useful? If the latter, there are ways to make enough money to have a sustainable business.

Monetization gets easier when you're big. If you have most of the schools in a state, you can find something they'll pay for.

Both YC and Imagine K-12 have a lot of experience helping startups with a popular product monetize it. But solve the hard problem first.

</comment><comment><USER3> Selling to schools is possible, but takes a long time and is full of politics. It looks more like an "enterprise" sales ultimately.

Many teachers are very excited to try anything that is free, since allocating budget is an arduous process. Do not take that to mean that they will pay for your product.

This does not mean there's not value, but it may not have a paid monetization path in the short term.

</comment><comment><USER4> If you're interested in a business, rather than a non-profit concept, then finance it for them.

What do I mean by that? Do not give it away for free.

The app comes with a one or two year introductory period (whatever you can stomach), in which the schools can use it at no cost. After that, it's $x per month per student (or $$$ flat for the whole school per year). Hook them, get them dependent on it, and then charge them for your useful product. Keep it inexpensive, so that if it is in fact useful, they will find the money for it when the time comes rather than have to abandon their solution.

Constantly stay in touch with the schools and the board of education. You have to sell your way into their budget planning and you have to do it far ahead of time. The no cost introductory period exists solely to provide you time to sell your way into their budget plans, because that can take a lot of time and effort. That is as much a political navigation process as it is business. Constantly solicit feedback, they have to feel like you're part of their education system to justify expenditures.

So it goes like this.

1) Free for a year or two. Get your product adopted and embedded into the system.

2) Solicit constant feedback. Get to know everyone involved in determining the budgets.

3) With enough lead time, sell your way into their budgeting plans. Keep your product inexpensive.

4) Scale it.

</comment><comment><USER5> I was in a similar boat, I developed something for PTA/educators, it was unexpectedly very popular, people were telling me I should make a product out of it.

After a lot of thinking, I realized that there was demand, but there just wasn't a market there. PTAs and schools just don't have the money to support it. However, I identified some other similar markets (corporate trainings, private classes and workshops, etc) where I could adapt the product to and it think make a viable startup if I wanted to.

I don't know if I'm right, like any startup it would be a ton of work, and I have other things I want to spend my time on, but my advice is to use the education audience as a testing ground to see what works and define features, and then find a similar market to make a product.

Also, be aware the the response to a prototype can be pretty misleading. People are often super excited by a prototype but then strangely disinterested once you've built the actual thing. Use the high school markets to actually prove the concept and make sure that it works.

</comment><comment><USER6> Schools have and spend money, in the US several thousand dollars per pupil per year. It's the way they have and spend is just not in the way that people and small businesses do. Their money comes out of budgets allocations and their spending via procurement processes.

This means that schools tend to live "paycheck to paycheck" and thus their culture is of necessity based on trying to get stuff for free when their aren't bespoke funds. And the people giving the money, be it the Central District Office or the PTA will tend to earmark funds for what they [the school board or PTA] have been sold over what the teachers and principals have been sold.

That said, if costs are minimal then showing growth and high levels of engagement will count for something with investors...and limit or eliminate the need for investors substantially [keeping in mind that investors are a means to an end, not a goal in and of itself].

Good luck.

</comment><comment><USER7> I'm doing the same thing in the post-secondary market. In fact, feel free to drop me a line (email in profile); I'd love to hear about what you're working on.

The answer to your question depends upon a few things. I think the most important are: how sticky is your product, what are your opportunity costs, and are you motivated to see this through over the next 2 years.

Schools won't want to let your product go if it's sticky. For example, you could offer the product free for a year or two with the expectation that you'll charge for it later. This helps you avoid the red tape, iterate upon feedback quicker, and grow faster.

If you can spare the time and this product excites you, go for it! What's the worst that can happen? Even if you fail, you have an amazing story and portfolio piece about a product that you built and brought to market. It shouldn't be hard for you to land a great job after that.

</comment><comment><USER8> Schools probably have at least some money, but it is hard to get at (probably easier if you have success-stories you can show at your first few schools). Schools potentially can make students pay, but that is understandably a sure way to get attacked and scrutinized.

General ad-based models probably don't go over very well in education, local "sponsorships" (which also are ads, but packaged differently) might work if there is enough visibility and it fits the product.

In all cases: expect a lot of politics.

</comment><comment><USER9> _Should I continue to work on it when I have no clear way to make money?_

Is it just me or shouldn't the answer to this be self-evident? In what other industry would you ask this question?

<comment><USER10> I'm with you, but depending on how cynical I am on a given day:

\- maybe the monetization path isn't obvious yet, but you've got a project that is getting traction. Figure out the monetization later! (positive)

\- Software is special, and eyeballs have value (neutral)

\- Snapchat is worth billions, despite losing hundreds of millions/year and having almost no revenue let alone profit. Maybe my personal money plan can be to get outside investment. (negative)

</comment></comment><comment><USER11> I'm from Germany and in our country education is ultimately free. But in the US the people are used to paying for education. So is it maybe possible to create a model where the parents pay a monthly fee for their children so that they can use your software in order get an advantage? Or is it differently percepted for schools and colleges to pay for education?

<comment><USER4> Most people do not pay for K-12 education in the US (it's paid for via taxation as in Germany), they go to public schools. The OP is talking about typical public high schools from what I can tell. Definitely a different context from college.

<comment><USER11> But do you think it is in any way possible to collect money from parents in order to be able to provide an improvement in education? ... I have to say I as a parent wouldn't like it, but if the schools are simply not able to do it who else is left?

</comment></comment></comment><comment><USER12> You should continue. In any startup, user engagement is important. If you have schools and students on your app then why are you worried about monetizing? You can put some advertisements who sell products to students or you can sell directly like stationary, books, and games. Initially you may be requiring some investment to build user base but keep continue.

</comment><comment><USER13> Is this your first side project?

If it is I believe it is ok to do something that do not have a huge potential, because then it is easier to fuck up and fail without it having a great mental cost.

Then you can take all you have learned and use it on a new problem that can be monetized later on.

</comment><comment><USER14> Maybe try to "sell" it to a donor, that is, apply for a grant to do it as a public good.</comment>


Ask HN: How did Lulzsec inject the Javascript redirect? - <AUTHOR>

After noticing that the page loads first then redirects to the Lulzsec Twitter, then after after disabling javascript the redirect stopped... I was certain it was some sort of Javascript injection.
Then after looking at some comments from the the following HN story (http://news.ycombinator.com/item?id=2778422) I saw that someone had posted the link to the injection script on pastebin here: http://pastebin.com/pWQtngDc
After reading through, I am still a little unclear on how it all works.
I may be a little thick, but I would love to have someone explain how the injection worked!
Thanks,
Wesley <comment><USER2> ](http://www.new-times.co.uk/sun/;</script>);

That is the only important part of what you posted. It just changes the location of the main page.

As to how they managed to get it there, no one knows. I'd imagine there is some unescaped input somewhere in the web page that let them do it. A lot of the Lulzsec releases seemed to start with SQL injection and go from there.</comment>


Atomic Clocks Make for Longer-Lasting Qubits - <AUTHOR> https://spectrum.ieee.org/computing/hardware/quantum-computing-atomic-clocks-make-for-longerlasting-qubits <comment><USER2> Not sure this makes sense. But I wonder if there is a way to make a quantum computer that doesn't rely on collapsing wave functions. Maybe higher up on the interaction level, like quasiparticles maybe.

<comment><USER3> The physical implementation of a QC is more or less independent of the abstract theory that underlies it, just as is the case for regular computers. It just so happens that for regular computers, transistors make a much better implementation medium than anything else. But you can, in principle, build a classical computer out of relays, or legos, or wood. Likewise, in the abstract, anything that you can build a qbit and a quantum gate out of can be used to make a QC, so you might be able to make one out of quasiparticles, but it's unlikely to be better than what is being done now (if it were to turn out to be better that would be a major breakthrough). But no matter what you build it out of, the only way to get an answer out of it is to make a measurement on it.</comment></comment>


An Open Source Alternative to Mailchimp - <AUTHOR> https://www.mautic.org/blog/marketer/email-marketing-level-one

<comment><AUTHOR> Marketing automation can be a complex system. Sometimes starting with just the email marketing is a great first step. Then, when you're ready to do more Mautic is waiting.</comment>


Bottlerocket, an open source Linux distribution built to run containers - <AUTHOR> https://aws.amazon.com/blogs/opensource/announcing-the-general-availability-of-bottlerocket-an-open-source-linux-distribution-purpose-built-to-run-containers/ <comment><USER2> I'm confused about how the documentation recommends using a Kubernetes operator to manage OS updates. That seems weird and backwards to me. I would rather see an immutable OS AMI in an auto-scaled group, and just replace the node instance whenever there is an update.

I can see a place for managing OS updates on an instance, but that seems more like "pets" than "cattle"... and I've always treated Kubernetes nodes like cattle, not pets. Isn't that the most common approach anyway?

<comment><USER3> This is how OpenShift 4 does things. I too thought it was strange at first but now with some experience it's quite pleasant.

Can be a beast to debug though if you haven't done it before.

<comment><USER4> I can assure you that OpenShift doesn't take this path because it is "better". It does so because bare-metal is a significant part of their market and there isn't a better option to automate the process currently.

I once worked on a competing product (before the OS update operator was available) and the update-in-place model was always a disaster. Various problems like dns, service discovery, timeouts, breaking changes to dependency pkgs, etc make for a problematic process. Combine that with the frantic pace of k8s develeopment, short node compatibility window (2-3 minor k8s releases) and various CVEs - you end up debugging a lot of machines in unknown states that fail to rejoin clusters after reboots.

<comment><USER5> This has definitely not been my experience running many hundreds of Red Hat CoreOS nodes in production.

So far, aside from a few small flakey issues, having the cluster nodes _and_ the OpenShift cluster update in lock step has been dramatically simpler to manage.

</comment></comment></comment></comment><comment><USER6> As strong as the engineering behind Bottlerocket seems to be, I'm not entirely sure who they built it for, except as a foundational component for AWS's managed offerings.

If you, as an AWS customer, decide to fully embrace AWS lock-in, then why would you run this yourself on an EC2 instance instead of running ECS or EKS? If you're trying to avoid AWS lock-in, why would you choose an OS that's locking you into AWS Systems Manager and Amazon Linux 2 for debugging needs?

<comment><USER7> Hi I'm a developer advocate in the container engineering org at AWS. I think there are a few misunderstandings here that I may be able to explain better.

First Bottlerocket is not Amazon Linux 2, it is its own minimal operating system, with most components built from the ground up in Rust. This is totally different than the Amazon Linux 2 you may be familiar with (and most other operating systems for that matter). Bottlerocket is optimized for running containers with high security isolation. The host OS is extremely minimal, it does not come with bash, an interpreter, ssh, or anything beyond the system basics needed to run containers. In fact it uses an immutable root filesystem. You aren't intended to run or install things directly on the host at all.

Everything that is installed and runs on Bottlerocket runs as containers, which are kept isolated from each other and the host with best practice security features such as SELinux. For example you can connect to a container on the host via AWS Systems Manager, or you can optionally enable a container that lets you connect to it via SSH. Once again the thing you are connecting to is the container on the host though, not directly to the host.

For this initial release of Bottlerocket we are focusing on providing image variants that are prepackaged with the requirements to serve as underlying container hosts for an ECS or EKS cluster. However we also intend Bottlerocket to eventually be something that anyone can use, anywhere, even outside of AWS, if they wanted to benefit from the secure by default, container first design of Bottlerocket.

You can read more about the security features of Bottlerocket here: [https://github.com/bottlerocket- os/bottlerocket/blob/develop...](https://github.com/bottlerocket- os/bottlerocket/blob/develop/SECURITY_FEATURES.md)

And you can find a bit more of the charter / goals for the project here: [https://github.com/bottlerocket- os/bottlerocket/blob/develop...](https://github.com/bottlerocket- os/bottlerocket/blob/develop/CHARTER.md)

<comment><USER8> I just installed Proxmox on a home server, and I'm using its CT containers (LXC) to run various services. Could I use this as a replacement for Proxmox?

<comment><USER9> Nope. Proxmox is mostly just an administrative UI, containers are a Linux feature. You don't need Proxmox for anything, you can just run containers "natively" in Linux or VMs with KVM + QEMU. The linked above is mostly just a Linux distro geared towards a pretty specific set of use-cases.

</comment></comment></comment></comment><comment><USER10> Little-known fact: like Google Fuchsia, Bottlerocket uses The Update Framework (TUF)[1][2] to securely update itself!

[1] [https://theupdateframework.io/](https://theupdateframework.io/)

[2] [https://github.com/awslabs/tough](https://github.com/awslabs/tough)

<comment><USER11> tough is one of the actual oss gems behind bottle rocket thats reusable in non aws contexts.. bottle rocket probably can be but likely that will always be a second class citizen, and afaics completely undocumented for usage outside of aws atm.

<comment><USER12> Really glad you like our tough (TUF) library!

As far as running in non-AWS contexts, we haven't had time to head down that path yet, but as I mentioned in an earlier post, we've tried to build Bottlerocket in a way that it can be extended to work outside of AWS either as VMs or even bare metal. In fact, a few of the engineers on the team have been playing with getting it running on their RaspberryPi's at home :)

</comment></comment></comment><comment><USER13> Firecracker, Bottlerocket, starting to see a trend here

[https://aws.amazon.com/blogs/aws/firecracker-lightweight- vir...](https://aws.amazon.com/blogs/aws/firecracker-lightweight- virtualization-for-serverless-computing/)

<comment><USER14> Both are written in Rust. Looks like Amazon is investing in the language quite a bit.

</comment></comment><comment><USER15> So difference between this and Firecracker would be that the latter is boot- speed and overhead optimized, and this one is a bit heavier but more capable?

If choosing between this and say Kata Containers plus Firecracker, the latter would be more secure because of VM isolation but this would be more efficient because multiple pods could go in a single VM?

Is Bottlerocket secure enough to host multi-tenant workloads within the same VM?

<comment><USER16> Firecracker and Kata containers are ways to run containers inside lightweight VMs that boot directly into the Kernel, they are not Linux distros in themselves. You are trying to compare apples to oranges. You could run Firecracker or Kata containers on top of something like Bottlerocket, however Bottlerocket is geared more towards the container-sandbox and isolation crowd while Kata/Firecracker is for those who think you can only get isolation using VMs.

</comment></comment><comment><USER17> For a project similar to bottlerocket, checkout [https://github.com/talos- systems/talos](https://github.com/talos-systems/talos). It is geared for cloud, VMware, and bare metal users. We have integrations with Cluster API for each, with the bare metal provider being our implementation: [https://github.com/talos-systems/sidero](https://github.com/talos- systems/sidero). Full disclosure, I am the CTO of Talos Systems.

</comment><comment><USER18> I haven't dug into the engineering behind this yet, but my main concern with any custom Linux distribution is it often ends up as a waste of engineering.

It's pretty easy to write your own Distro and pair it down to the essentials, and pairing it down that way allows you to strip out complexity, making it easier and more reliable to patch it. But that then means you are now maintaining this custom thing forever. If you're Amazon, that might be fine, but I suspect that this will be dropped when it is no longer profitable or a competing project supplants it - meaning in 5 years this thing might be gone. (A common theme of custom Linux distributions)

And then there's troubleshooting. With a stripped-down distro, you will eventually need more tools to debug the thing, meaning you have to build and maintain packages to do that. Bottlerocket's answer to this is "run them in containers and use our API!", but I'm not sold on this. Have you ever tried to do debugging between host and container, or container to container? There's a lot of b.s. you have to hop through, and most Unix tools were not written with it in mind. I highly doubt that it will magically work for everything. If that's the case, then this "don't worry, because _magic_ " idea is not really saving you work over maintaining a traditional OS.

Moreover, you don't need a custom distro to do live patching. There are simple tricks you can use to juggle files and processes during a live patch, to say nothing of "checkpoint process && 'mv old_file new_file' && thaw process", etc. Kernels support live patching too. So if the argument is "well it's easier to patch", i'm not sure you're not trading away "easy" in one place for "pain in the ass" in another (see above). All of this also argues that it's just as effective to treat live-patched systems as you treat immutable infrastructure, and I'm not convinced of that argument either. The former is just more complex, and complexity attracts failures.

Ultimately I think what you'll find is Bottlerocket will get a niche following, but also some people will get annoyed by it and go back to regular distros which already have well defined methods.

</comment><comment><USER19> Cluster API does both! The operator rolls out immutable machine images that make up clusters. It's badass.

</comment><comment><USER20> So, is this available as an ISO? I currently run an Ubuntu VM in bhyve on my FreeNAS home-server to host various containers for experiments, etc... could I run this instead or is it tied to AWS?

<comment><USER12> It isn't today, but we've built Bottlerocket in a way that it can be extended to work on bare metal or other places outside of AWS. There are a few issues on our github[1][2] that are similar that you're welcome to watch or contribute use cases to.

[1] [https://github.com/bottlerocket- os/bottlerocket/issues/841](https://github.com/bottlerocket- os/bottlerocket/issues/841) [2] [https://github.com/bottlerocket- os/bottlerocket/issues/1097](https://github.com/bottlerocket- os/bottlerocket/issues/1097)

</comment></comment><comment><USER21> At my previous company we discarded the AWS-Linux distro and used rancherOS for container hosting because the version of yum they used was too flaky. They were unwilling to move to DNF to try and fix it. We've long badgered them for something like this (rancher style AWS-Linux dsitro) and they seem to have finally listened. Too bad, I moved to a different company and a different role to benefit from this. At least my old colleagues will be happy

</comment><comment><USER22> Wasn't Amazon Linux 2 something similar? Or I'm mixing it up [https://aws.amazon.com/amazon-linux-2/](https://aws.amazon.com/amazon- linux-2/)

<comment><USER23> Amazon Linux 2 is an AWS-optimized Linux distribution but it's a full distribution you're used to — RPM-based, generally compatible with RHEL/Centos, etc. — and that has the usual benefits and costs. You can customize it as much as any other Linux distribution but you're taking on the corresponding level of effort to secure and operate it. If all you run are containers, that's overhead for things you're not really using and it also means that you're going to be slower to update things like the kernel and system libraries since there's more to test and backwards compatibility is a big concern.

</comment></comment><comment><USER24> Can anyone at AWS comment on how this fits into the Fargate roadmap and Compute pricing? Presumably, a slimmer OS for things like EKS nodes could translate into some sort of Compute discount.

</comment><comment><USER25> So, I'm a little confused; is this not what NixOS is all about, or is there a difference? (as my question probably suggests, im not all that knowledgeable about nix)

</comment><comment><USER26> I wish the push to containerise everything would just die.

I need the pieces of my system to work together, not against one another, not contend for files and permissions.

</comment><comment><USER27> Free project idea: A Qubes OS alternative built on Bottlerocket.

<comment><USER16> Why Bottlerocket? Why not just use Alpine, Void, NixOS, Arch, etc instead?

<comment><USER28> I've fallen in love with Alpine. I'm using it on my bare bone servers running from a ram disk (USB drive) hosting Docker containers and even qemu VMs. All on encrypted zfs volumes. Totally love it

<comment><USER29> Can you recommend any tutorials or blog posts on some of this? Really interested in it. Otherwise I'll search for it, thanks for the information.

<comment><USER16> Here are some links for you that I think would be useful for a related setup, however I can't speak for the user that posted that. The headless installation should follow the same principles of using a RAMDisk though.

[https://wiki.alpinelinux.org/wiki/Raspberry_Pi_- _Headless_In...](https://wiki.alpinelinux.org/wiki/Raspberry_Pi_- _Headless_Installation)

[https://wiki.alpinelinux.org/wiki/Alpine_Linux_with_root_on_...](https://wiki.alpinelinux.org/wiki/Alpine_Linux_with_root_on_ZFS_with_native_encryption)

[https://wiki.alpinelinux.org/wiki/Docker](https://wiki.alpinelinux.org/wiki/Docker)

[https://wiki.alpinelinux.org/wiki/Install_Alpine_in_Qemu](https://wiki.alpinelinux.org/wiki/Install_Alpine_in_Qemu)

<comment><USER29> that's great, thank you!

</comment></comment></comment></comment></comment></comment><comment><USER30> How exactly would they make a proprietary Linux distro?

</comment><comment><USER5> So basically Amazon CoreOS.

</comment><comment><USER31> This reminds of CoreOS

</comment><comment><USER32> Look out Rancher!

<comment><USER16> Rancher has been around a long time and isn't cloud-specific. Until this distro can prove itself useful outside of the AWS ecosystem, then Rancher will still dominate.

<comment><USER33> Bottlerocket seems more like a competitor to RancherOS, which is abandonware. ([https://github.com/rancher/os/issues/3000](https://github.com/rancher/os/issues/3000))

I liked RancherOS's very few moving parts approach (even your shell is a Docker container). Hope Bottlerocket will be somewhat similar.

<comment><USER16> I don't see any confirmation based on that link that it is abandoned. There was an update in June.

<comment><USER34> > RancherOS 1.x is currently in a maintain-only-as-essential mode. That is to > say, it is no longer being actively maintained at a code level other than > addressing critical or security fixes.

quoting support.rancher.com, taken from the 4th comment down in the linked Github issue

<comment><USER16> It looks like that link is broken and I can't find anywhere on their website that states this anymore

</comment></comment></comment></comment></comment></comment><comment><USER35> I remember reading last week linux plumber conference agreed to allow rust in linux kernel .

but these guys have built an OS in rust.

<comment><USER16> Did you even read the blog post? This is running Linux, and only the AWS software-components running on it are largely written in Rust. It is still Linux and the OS is not written in Rust, nor the container daemon and probably none of the non-AWS software packages.

<comment><USER36> Most available userspace seems to be a mix of Rust and Go, except for existing stuff written in C like LinuxSE.

<comment><USER16> What userspace do you see written in Rust?

<comment><USER36> From this thread [https://news.ycombinator.com/item?id=24346300](https://news.ycombinator.com/item?id=24346300)

<comment><USER16> That honestly sounds terrible, and apparently only works on ECS. What a shame. I was thinking that AWS was actually going to provide something useful to the open source community.</comment></comment></comment></comment></comment></comment>


All about lambda functions in RethinkDB queries - <AUTHOR> http://rethinkdb.com/blog/lambda-functions/

<comment><USER2> So if my understanding is correct, the RethinkDB driver translates a Python function object into its "abstract interpretation" by invoking the function on a proxy object x that defines operators such that (simplifying) x.__op__() returns Op(x). Recursively, this yields the computation tree of the function. This looks very similar to what is done in C++ metaprogramming through "expression templates", a technique that is taken to its extremes in libraries such as Boost.Proto. C# solves this more cleanly by having in the language an explicit concept of "expression trees" that are given as arguments of LINQ queries.

I wonder if this imposes any limitations on the functions that can be written. For example, how are if, for statements handled? What happens if I do "lambda x: y + x" where "y" is an object that defines __add__? If these cases are not handled, is a well-defined exception raised?

<comment><USER3> This is tricky and there are certainly limitations. For example, you can't translate an if statement, so instead we implement our own branch command (<http://rethinkdb.com/api/#rb:control_structures-branch>)

We overload operators when we can (unfortunately no operator overloading for Javascript folks) and it works really well.

You don't always get a great exception, but most of the time this turns out to be fine. Novices don't need to worry about this too much, and we found that as people get more into ReQL, they pick everything up extremely quickly, and they rarely confuse things or make mistakes.

<comment><USER4> There are two alternatives to what RethinkDB does: parsing the function's associated source file (yucky and breaky when multiple lambdas per line) or disassembling its func_code..

I've looked at this problem before (and ran away screaming every time), but the approach I tended towards was func_code disassembly, pretty much for the reasons you mention. Was this ever considered?

<comment><USER3> We did look into disassembly, but decided that it's far too much work because it is not portable across languages and drivers, and would require an enormous engineering effort (both for ourselves and for community driver maintainers).

From a purely theoretical POV, I do like the idea of disassembly better, but unfortunately we couldn't make this work and remain pragmatic.

</comment></comment></comment></comment><comment><USER5> Well this is just lovely! It's so similar and such a good fit for what we're doing in Delver (we build very similar abstract queries out of natural language, but for compilation into SQL etc) that it makes me want to force everyone to use RethinkDB. Our lives are maybe a little easier cos we do it in Clojure so it's s-expressions in, s-expressions out.

Can't see much evidence of a clojure driver yet? Is there an existing project we could contribute to?

<comment><AUTHOR> I'd love to see a project bring RethinkDB to the Clojure community-- we haven't seen one emerge yet. If you'd like to contribute (or better yet, start the project!) shoot me an email at mike [at] rethinkdb.com.

We've done a lot of work to make building a client driver for RethinkDB easier: we use Protobufs, have built some testing tools (e.g. <https://github.com/neumino/rethinkdb-driver-development>), have a Google group for driver developers ([https://groups.google.com/forum/?fromgroups#!forum/rethinkdb...](https://groups.google.com/forum/?fromgroups#!forum/rethinkdb- dev) ), and our engineers love helping people build new drivers.

</comment></comment><comment><USER6> and thus we learn that RethinkDB is an elaborate scheme to get programmers to learn Higher Order Abstract Syntax techniques, not just have a neat db :)

Hoas, and its sibling PHOAS, are great ways of embedding a mini language inside another language, they're especially powerful in language like Haskell, Scala, Idris, and the like.

</comment><comment><USER7> This will help in the Scala driver I've been developing

<comment><USER8> I don't know. I have been working on a Java/Scala driver too and thinking how you could translate a scala lambda to this kind of representation It would be really cool to do

        db("tablename").filter( x => x.name == "foo" )

and be able to translate that to the relevant query, but I can't really think of a way without using Macros or reflection.

<comment><USER7> I was thinking maybe a path type syntax, yeah you have to use strings for your field names but this way you can wrap it in a 'get' node .. Seems to have worked well with Play! json classes

</comment></comment></comment><comment><USER9> That is genius.

I have to wonder though, how they plan to do it in less dynamic languages? Just spell out the s-expr and forget about using the language's own syntax?

<comment><USER10> This looks a lot like LINQ. C# is probably one of those "less dynamic languages" but has had this for years. It powers a lot of ORMs and other frameworks that need a queryable expression language. It supports writing custom 'providers' so that you can write LINQ against almost anything.

<http://msdn.microsoft.com/en-us/library/bb397933.aspx>

<comment><USER11> I'm the author of a .NET RethinkDB client (<https://github.com/mfenniak/rethinkdb-net>), and I can add that RethinkDB's lambda functions were very easy to implement in .NET by using C#'s expression tree feature (<http://msdn.microsoft.com/en-us/library/bb397951.aspx>). With that feature, a lambda can automatically be converted to an AST by creating a function that takes an Expression<Func<...>> parameter, which can easily be traversed and converted into RethinkDB's expression tree.

Expression trees were introduced at the same time as LINQ, to support LINQ.

</comment></comment></comment><comment><USER12> Deeply painful for the novice developer, good for the computer scientist.

<comment><USER3> To be fair, this is an advanced article written by a computer scientist that designed the innards of the drivers for other computer scientists that want to understand how the drivers work.

Novices can do most things without having to understand any of these issues, and even very advanced users don't ever have to learn this if they don't want to.

Disclaimer: I'm one of the people responsible for designing ReQL.

<comment><USER12> Maybe it needs to be more clear that there is a simple and a hard way to work with ReThinkDB, and whenever someone finds themself in the "hard way" documentation, that you provide clear instructions that this is the hard way and the documentation for the easy way is somewhere else. The assumption for the novice developer is that "here is the documentation, there's often just one way to do it, so I'd better read this and learn it". It's not clear that "this is the hard way, you should avert your eyes".

Maybe try renaming "ReQL" to ThinkSimpleQuery and the other one to ThinkBigQuery. Something more self explanatory.

<comment><USER3> Well, the second paragraph says the following:

      This post covers all aspects of lambda functions in ReQL from
      concept to implementation and is meant for third party driver
      developers and those interested in functional programming and
      programming language design. For a more practical guide to using
      ReQL please see our docs where you can find FAQs, screencasts, an
      API reference, as well as various tutorials and examples.</comment></comment></comment></comment>


First brain image of a dream created - <AUTHOR> http://www.sciencenews.org/view/generic/id/335866/title/First_brain_image_of_a_dream_created

<comment><USER2> So by "brain image" it means they observed some activity in the brain related to actions performed in the dream. Pretty cool, but that title is seriously linkbait.

<comment><USER3> Not to mention that this general technique has been around for decades (developed at Stanford), and using an fMRI is the only novel part of this new study: <http://www.lucidity.com/SleepAndCognition.html>

Though using an fMRI like this _is_ pretty cool.

</comment></comment><comment><USER4> What kind of lifehack would it be if we could fully understand lucid dreaming to the point we could teach everyone to do it on command. What would the benefits be for entertainment, education, and psychological health?

If you were getting your entertainment during sleep, what kind of productivity boost would that have? Spend more time sleeping and more of your waking hours working.

<comment><USER5> We'd never wake up I imagine. What'd be the point? I have heard true lucid dreaming described as being like the holodeck. Suddenly Nozick's Experience Machine becomes an alarming possibility which must be considered seriously. <http://en.wikipedia.org/wiki/Experience_machine>

<comment><USER6> This is more true than you realize. Many days I will awake from a lucid dream and go back to sleep for several more hours to discover/continue. "Waking up" from that is like being pulled out of an RPG game right in the middle of an exciting action sequence. Also, sometimes when I'm feeling bored or a little depressed, I'll go to sleep for the excitement/entertainment factor (it's a letdown if I don't end up in a lucid dream, but you can't always have everything in life :)

<comment><USER7> Happens for me too :) .. Some days I seed what I want to dream about before sleeping (usually by watching a related genre movie).. I can go back to the same dream if interrupted for a few minutes (5-10).. not hours though... Once in the dream and after realizing that it is a dream - I can control most of the things (environment, flying, running on four legs etc) - though I keep moving in/out of that realization...sort of like inception... :)

<comment><USER8> Be wary of trying to further "lucidate" the lucid dream into another lucid state. I've woken up going a few tiers into such very dissasociative from reality for several (4+ hours) over weekends :) EG: building in my dream a "jump pad" standing upon such, to "jump" to an even deeper reality, etc.

It sounds wonky, but, throwing it out there. <http://en.wikipedia.org/wiki/Dissociative_disorder> Subset: _Depersonalization disorder: periods of detachment from self or surrounding which may be experienced as "unreal" (lacking in control of or "outside of" self) while retaining awareness that this is only a feeling and not a reality._

</comment></comment></comment></comment></comment><comment><USER9> > Lucid dreaming is the rare ability to...

Is lucid dreaming really all that rare? I've been able to have lucid dreams about once a week ever since the age of 14.

<comment><USER10> If you compare it to the number of dreams people have around the world each night, it probably is rare. But then, it's not that difficult to learn and you also find quite a lot of people whose dreams are usually lucid without really being aware of the difference.

</comment></comment><comment><USER11> There was an interesting talk at the wesolveforx conference dealing with imaging the mind's eye (<http://www.youtube.com/watch?v=SjbSEjOJL3U>). These researchers are having their subjects watch hundreds of hours of youtube videos and recording their brain activity. They would then show them another brand new video while again observing their brain activity and pull up and juxtapose videos that the subject has seen previously and that activated the same parts of the brain as the new video. The similarity between the two video feeds is astounding. I wonder if a similar technique could be used for imaging dreams.

</comment><comment><USER10> Similar studies have been conducted by LaBerge and others for decades now. I did a brief search and found two examples: One that measured EEG for clenching hands (in 1986!) and one that measured cardio-vascular activity for performing squats. So the novelty here is probably the use of fMRI. This is probably difficult because sleeping in these things is not exactly comfortable.

</comment><comment><USER12> [ ] Picture of actual dream in post

</comment><comment><USER13> Title is misleading. How much of the rest of the story is exaggerated?

</comment><comment><USER7> Such a lofty title.. felt let down at the end of it..

</comment><comment><USER14> So much letdown in title.

</comment><comment><USER15> pics or didn't happen

</comment><comment><USER16> Misleading title. Or I'm too optimistic and read/watched too much scifi.</comment>


Show HN: Box Line Text – A simple whiteboarding tool for screencasts - <AUTHOR> https://github.com/jncraton/box-line-text <comment><USER3> Looks pretty great but IMHO whiteboarding without arrows is not super ideal. While I'd still prefer Excalidraw for screencasts, its nice to see how much can be done in a few lines of JS[1]

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

[1] [https://github.com/jncraton/box-line- text/blob/master/src/in...](https://github.com/jncraton/box-line- text/blob/master/src/index.html#L34-L85)

<comment><USER4> Excalidraw is super smooth! Thanks for sharing.

</comment></comment><comment><USER5> This is a cool start. There is quite a lot you can express with boxes and arrows that doesn't really lend itself nearly as well to any other format.

That said, in real-world video calls I've found that having the whiteboard be collaborative is essential. Being able to see a colleague's mouse cursor as they're asking a question out loud, or someone else being able to draw a little alternate part of the diagram right there -- this stuff can make technical planning discussions way more productive.

We started with [https://miro.com](https://miro.com), and then moved to [https://beta.plectica.com](https://beta.plectica.com) for our diagrams / whiteboarding. Both are pretty great...

<comment><USER6> Do you remember why you moved away from Miro? (I am developing a whiteboard software)

<comment><USER5> We found that we were often essentially making lists inside of top-level boxes.

With Miro you basically just get bulleted text lists, which is fine but only gets you so far.

With Plectica you can nest cards inside of cards, which means you can drag drop to re-order, give nested cards their own tags, etc.

So for things like modeling a db schema (lists of columns in tables, each column with its own attributes) or planning user stories (lists of tasks to support use cases, each task with its own parameters etc), Plectica is just really flexible / extensible.

</comment></comment></comment><comment><USER7> This is amazing - it is sort-of the OneNote notetaking metaphor but simple. This will be excellent as a simple shared note taking tool for meetings.....Im going to use this today (I only have 7 zoom session on my calendar - <USER2> love Mondays!) to take notes instead of writing pen and paper. What i like the most is it doesnt required 13,000 files and a front-end framework that makes the Titanic look like a sailing dinghy.

<comment><AUTHOR> Thanks! I enjoyed the challenge of keeping this lean. It's fun to build a web app where the favicon is the bulk of the bytes on the wire. :)

</comment></comment><comment><USER8> I realize the point of this is to be simple, but I can't see myself using it unless there is some way to delete elements after they have been created (maybe dragging a diagonal line with right click should delete anything in the box defined).

I know you can use Ctrl-Z but if I want to change a box I made early on then this doesn't work because I'd have to basically start over from scratch.

<comment><AUTHOR> Deleting is definitely the feature I'd most like to have.

I don't generally love the idea of taking over right click behavior, but I've pushed out a patch to allow removing elements using right click. This is an admittedly poor solution (especially for lines, as they are very small click targets). Hopefully I'll have a chance to develop a more robust way to delete elements such as the box method that you described.

<comment><USER8> Awesome! Another option if you don't want to take over right-click behavior could be shift-click (holding shift and clicking), or similar.

<comment><AUTHOR> I like that idea. I've changed to using shift for deletion. I've also enabled deleting on both mouse clicks and movement, so you can hold down shift and wiggle the mouse around like an eraser. This makes it much easier to delete lines.

<comment><USER8> Thanks! I like that you can delete on mouse movement -- I think it's actually better and more intuitive than my original suggestion.

</comment></comment></comment></comment></comment><comment><USER9> Good starter project to flex your JS muscle. But other than that - Zoom's built-in whiteboard is pretty feature-rich and meets my use-cases perfectly. My use-cases -: brainstorming with colleagues, interviews.

</comment><comment><USER10> > It doesn't provide touch or pen support. There are much better tools > available for that type of interface.

Anyone have any suggestions?

</comment><comment><USER11> It would be cool to be able to click on the end of a line one drawn and toggle through some arrow ends.

</comment><comment><USER12> Love it! Simple and to the point.</comment>


MoviePass is changing the value of the movie theater experience - rising-sky https://www.theverge.com/2017/12/15/16781208/moviepass-hollywood-film-subscription-service-amc-terrified <comment><AUTHOR> I don't understand why theaters would have a problem with this... I was under the impression that theaters made most of their money from concessions since they get almost no margin on the box office.

So a service that gave people a reason to go the theater more often while encouraging them to spend more on on high-margin concessions (which the author admits is what he does) seems like a win for theaters.

Perhaps I'm missing something, one thing that drives me crazy nowadays is the sentence that hints at something buried in some link:

> And theater chains, particularly AMC, are [absolutely not on board](link to > different article on same site that supports this claim, I assume).

Definitely couldn't have simply mentioned an AMC lawsuit against MoviePass, but why add more supporting facts when that might mean cutting anecdotes about what movies the author is now willing to sit through?

I agree with another commenter, this reads more like an ad, sounds more like MoviePass trying to get people to relate to this guy and become "terrifying" subscribers, just like him!

<comment><USER2> Theaters don't have a problem with it. This is an advertisement for MoviePass disguised as an article.

[http://www.paulgraham.com/submarine.html](http://www.paulgraham.com/submarine.html)

<comment><USER3> I thought you need to legally disclose it in the article if you're paying for the exposure.

<comment><USER4> You don't always pay for these articles. Lots of the time press outlets are looking for stories, and PR firms know this. They send a few emails, maybe even give "press releases" that are super close to being an already finished article. The press outlets are cool with this because it helps them get more stories and thus more advertising dollars.

</comment></comment></comment></comment><comment><USER5> Most theatres are not at all scared of MoviePass, they're getting paid the full admission price. In fact many chains and independent operators love it, and are looking at implementing their own version.

> because theaters have all decided on a ticket price customers must pay for > the premium of that big screen and sound system.

Not really, no. Studios are the ones driving up movie prices since they keep demanding a bigger and bigger cut. The new Star Wars film for example has the highest royalty of any movie ever released.

<comment><USER6> That is not true. Star wars is an exception and the cut percentage increased by 1%. The real reason is the dropping viewership. Number of tickets sold peaked in 2012. Beyond that the number of movie tickets sold dropped, however number of locations is up and salaries have gone up. To compensate for it, movie ticket prices need to go up.

<comment><USER5> Yes, it increased by 1% from 'The Force Awakens', which was last year (edit: 2 years ago, time flies) and also obscenely high. Don't say my statement is 'not true' then confirm it in the next sentence.

</comment></comment></comment><comment><USER7> This reads like an advert to me. "Cinemas are terrified of this!" is a good sales pitch.

</comment><comment><USER8> Studios take the bulk of the ticket price, and MoviePass is paying the full price of the ticket. Theater chains make the bulk of their profit on refreshments, so I don't think they're all that terrified.

MoviePass has to grow large enough to be able to negotiate deals with studios, like Disney, or raise rates significantly to cover the true cost of the service. If they raise rates too much, they could start hemorrhaging to the individual theater chain programs.

It's a cool service, but it can't last like it is.

<comment><USER9> I'm glad you mentioned theater revenue. When I worked in a theater, my manager would tell me they saw less than 5 cents per ticket on most movies, maybe a little more for independent films.

The $2.85 small bag of popcorn cost less than a penny in raw material to make. We made minimum wage with no overtime (theaters got a tax loophole back then; not sure if they still do) so even factoring in labor and electricity, it's still a huge profit margin.

Theaters chain execs love it I'm sure. Still even if/when MoviePass goes under, the studios will probably take a small hit for a while, but I'm sure they'll recover.

</comment></comment><comment><USER10> MoviePass is run by an ex-Netflix executive, and it seems to have the same Lando Calrissian business model: they're going to have to keep altering the deal, and it gets worse every time. Netflix started off offering a library so large (and so filled with recent hits) that it put Blockbuster out of business for a monthly fee. Now it's basically HBO. MoviePass is likely going to end up doing the same thing: offering less and charging more as soon as they have enough people on the hook.

</comment><comment><USER11> Movie pass wont work for me. For $10 a month, I can watch 10 99¢ movie rentals on iTunes. For the cost of two people on movie pass, that can be 4 to 20 movies on iTunes/Amazon in a month.

I think moviepass is targeted at singles who go to movies less than 12 times a year and it helps bring that demography to the theaters, and probably spend more on concessions.

I dont understand why Theater chains are "terrified"

<comment><USER12> The big thing you're missing is that the theater shows new movies. Also, iTunes rentals are usually more than that.

</comment></comment><comment><USER13> It would be interesting to know what fraction of seating is going empty in movie theaters these days. I would guess it is around 70%, maybe higher. Only opening weekend for some blockbusters fill them up. I would guess if they survive they will have two tiers, with a much more expensive one for opening weekend tickets. If they get people to go on off times, the theaters will be loving it.

<comment><USER14> A few years ago I had a subscription card for a cinema chain in the UK, it worked out to be the cost of around 1.5 tickets a month, but I ended up going around once a week.

Anyway, at the time there was no way to book tickets online, you just had to show up and if there was space you'd get a ticket. As such I'd usually go on Saturday early afternoon when it was usually pretty quiet.

</comment></comment><comment><USER15> Mitch Lowe, CEO, was interviewed a few months ago about the price drop and how MoviePass plans to make money.

[https://www.forbes.com/sites/robcain/2017/09/17/ceo-mitch- lo...](https://www.forbes.com/sites/robcain/2017/09/17/ceo-mitch-lowe- explains-how-the-moviepass-rollout-fell-short-and-what-hes-doing-to-fix-it/)

[https://www.forbes.com/sites/robcain/2017/09/18/ceo-mitch- lo...](https://www.forbes.com/sites/robcain/2017/09/18/ceo-mitch-lowe-pulls- back-the-curtain-on-moviepass-and-explains-its-economics/)

</comment><comment><USER16> Sounds like a great service. If I lived in the US I would probably sign up and go to a lot more movies. I am down to going to the theater once or twice a year now, and I really like movies, but the prices are dumb.

<comment><USER17> Where I live it would cost us $45 for tickets alone, probably $65 including food and drinks for a family of 3. I can buy a movie on iTunes for less than half that and watch it as many times as I want whenever I want.

<comment><USER18> Do you have a 20-ft screen at home?

</comment></comment></comment><comment><USER19> I don't see how the MoviePass model could be sustainable today. The name of the game appears to be "lose money on every ticket today to control the market tomorrow."

But if they're successful at controlling ticket sales I'm just not sure they have enough leverage to keep theaters and studios on board... idk just left scratching my head.

</comment><comment><USER20> How many people have successfully used MoviePass? I signed up the day the dropped the price and received no confirmation at all. I tried again a few weeks later--no confirmation once again.

I still haven't gotten a card from them, and I can't login to the system.

<comment><USER21> My girlfriend and I both have MoviePass, I don't have my phone on me but we've seen 8-10 movies already. It's fun, we just run to the movies now. No more buying tickets a day in advance and then making sure we get there early enough.

We used to see movies exclusively on Saturdays or Wednesdays, when it's cheaper, and only went to certain theaters. Now when we decide to see a movie we go whenever we feel like it, wherever we feel like it. We usually bring our own snacks/water too..

We decided to see The Last Jedi at 1:05 AM without any forethought and saw it on a massive screen with Dolby sound.

I can't get a VC to return my cold calls/emails, but hey, at least a VC is paying for our movies.

<comment><USER22> I thought moviepass was just a free ticket. You make it sound as though they guarantee seating or something, too?

<comment><USER21> It is a free ticket, but it's a free ticket without any kind of commitment. The showing you want to see is full? You're really late? Skip it, go to the next one. Even if it's not at the same theater.

The movie you want to see is $19 at the theater down the street vs $9 on the other side of town. Go to the theater down the street with the reclining seats.

We see 3-4 movies a month, MoviePass completely changed the way we think about and scheduled going to the movies. No stress.

</comment></comment></comment></comment><comment><USER23> Their website looked pretty poor. There were no clear terms or explanation of the deal. Are movies free or what price are they? Maybe they don't need to care because they already get so many signups?

<comment><USER15> They have an app you use to checkin at a theater, you need to be near the theater when you checkin. The amount of the movie is added to your MoviePass MasterCard, you then pay for the movie using the MasterCard. Expensive movies like IMAX 3D or special showings are not covered.

</comment></comment><comment><USER24> > The average movie in San Francisco costs about $12, nearly 50 percent higher > than the national average.

the average is $8? seems hard to believe...

<comment><USER18> Half of America lives in places like Monroe, Iowa.

<comment><USER24> I just checked for a general admission ticket in Monroe, Iowa and it was $10.60 ... I guess if you include morning, kid and senior prices, the average is probably pretty low.

<comment><USER25> I am willing to bet that theater has a monopoly with no substitute goods.

Rural != Cheap

The lowest prices are probably in suburban areas where there are many competing theaters in a populated area with easy access.

<comment><USER26> My suburban hometown still has $4-5 tickets everyday. ~200k population with quite a few theaters around.

</comment></comment></comment></comment></comment><comment><USER27> How do startups built upon subsidizing customers pull an Uber- get to a state where their unsustainable pricing practices are offset by wealth foreign investors with virtually unlimited money to burn?</comment>


Bill Clementson's Blog: Modal (Continuation-based) Web Server Framework example - <AUTHOR> http://bc.tech.coop/blog/040404.html <comment><USER2> It's typical of commercial enterprises (and some academics) to write about technology without citing references and prior work--perhaps plagiarism is more profitable than citation.

(Richard Fateman's old review of Mathematica documents this tendency in the case of Mathematica. I could give examples in academia.)

For those interested in the literature on continuation-based web servers, here's a paper by Shiram Krishnamurthy and others. <http://www.cs.brown.edu/~sk/Publications/Papers/Published/khmgpf-impl-use- plt-web-server-journal/>

Gilad Bracha, who wrote a blog at Sun entitled Computational Theology, attributed the first continuation-based web server to Paul Graham: <http://blogs.sun.com/gbracha/date/200605>

</comment><comment><USER3> Nice... but how would that work if you need to scale out?</comment>


Facebook and Skype readying deep integration Partnership - <AUTHOR> http://kara.allthingsd.com/20100929/exclusive-facebook-and-skype-readying-wide-ranging-integration-partnership/

<comment><USER2> this makes a lot of sense for both, but something is not clear to me: what will happen to the FB chat system, are they going to integrate that too somehow? Wasn't FB chat slated to become a "normal" jabber service?</comment>


The Gray Gender Gap: Older Women Are Likelier to Go It Alone - <AUTHOR> http://www.nytimes.com/2016/10/11/health/marital-status-elderly-health.html?rref=collection%2Fsectioncollection%2Fhealth&action=click&contentCollection=health&region=rank&module=package&version=highlights&contentPlacement=5&pgtype=sectionfront <comment><USER2> Another example of how the gender pay gap has repercussions long into a woman's life as she ages. Especially for women who choose to stay home with children for many years or women who choose to never marry.</comment>


Apple loses $34.9 billion in market cap - <AUTHOR> http://thenextweb.com/apple/2012/12/05/apples-terrible-horrible-no-good-very-bad-recent-time-in-the-public-market-appears-to-be/

<comment><USER2> Apple's share price has not had any correlation to its fundamentals for the last few years. If you were to compare its P/E ratio to that of other tech companies out there (Amazon's is 3628) it would technically be undervalued even at its current price.

That said, most of the volatility comes from all the prop trading firms trying to turn a profit. AAPL is considered a bullish stock amongst fund managers and is often used to hedge against other riskier positions in the market. Often times big dips in Apples stock can be attributed to profit taking (especially around this time as we finish up for the year and get nearer to the end of an American financial quarter – gotta look good on the books to the get Christmas bonus) and margin calls on bad trading days. You'll notice a dip in the afternoon of any bad trading day as prop firms start getting margin calls on their failing positions and have to sell to cover their losses.

<comment><USER3> But it's also not reasonable to compare Apple's P/E with Amazon's. There's more to valuation that industry; Apple and Amazon are both "tech companies", but they have wildly differing business models. In particular, Amazon is aggressively buying market share and the market is financing that. The market says Amazon could radically more lucrative in the future, in a way Apple won't (it's already absurdly profitable).

<comment><USER4> I understand this point of view, but it doesn't seem likely to me that the expected future profits of Amazon can be realistically expected to be 283x the expected future profits of Apple. I just don't see any way to support such a big multiplier.

<comment><USER3> Without getting into the specifics, we can think of the P/E both as a measure of how speculative the future earnings are (Amazon, which is consistently and deliberately barely profitable, reflects little of its upside in its earnings; Apple, on the other hand, is milking its cash cows for all they're worth); another way to think about it is, Amazon is plowing more of their earnings back into efforts to buy market share, where Apple is extracting them into cash reserves right now.

Remember, Apple's market cap is still much larger than that of Amazon. Even though Amazon has what over the long term might end up being a much more lucrative model, in that it is poised to more or less control retail and retail logistics everywhere.

They're both great companies, but the P/E of each company tells a different story about their business (neither story is bad).

</comment></comment></comment></comment><comment><USER5> This renewed focus on market capitalization (and "valuation") has gotten a bit absurd. Market capitalization is an _approximate_ measure of _implied_ whole- company value. Approximate because we don't really know the number of shares outstanding, and whether you should use shares outstanding or fully-diluted equity, or heck, fully-diluted equity net of cash, depends on the application. It's also approximate because the share price only reflects the last trade or the inside quote. But that is only the price that _somebody_ (the most aggressive buyer or seller) was willing to pay/accept; if you wanted to buy or sell lots of shares (e.g. a whole company) obviously you wouldn't get the inside quote for all of it.

Most fundamentally, from a corporate perspective it's not like the company "loses" anything on its balance sheet when its shares change hands at a particular price. The share price does affect the company's cost of capital, but not so simply and not directly. Apple in particular is not going to need cash any time soon.

The more relevant measures of corporate health are the traditional revenue, net income, free cash flow, etc. It's true we don't get updates to those quantities every microsecond but they are still more important.

To the extent a 6% drop might reflect somebody somewhere with groundbreaking secret information that casts Apple's future income in doubt who has decided to place a big bet, yeah, it's possible, but it's too soon to tell and we don't really know what it means. (As Steve Jobs said, "Stocks go up and down.")

</comment><comment><USER6> The key risk for Apple is what its future earnings will be. Given that its current earnings dwarf anyone else, one must believe they will be able to be maintained which is equivalent to a bet that the iPhone will continue to be sold in high quantities with high margins.

In the last year Apple generated $55B in pre-tax earnings. They had $80B in revenue from the iPhone at a margin of >60% or $48B. They sell the iPhone for an average of $642 while the Nexus 4 retails at $299. If the iPhone dropped to a wholesale price of $399 ($100 pricing advantage), it would reduce pre-tax earnings by $30B (55%). If iPhone sales double that would offset about 60% of that decline.

Another way to ask this question is what total mobile phone profits will be in mature market. If there are 7B phones replaced every 4 years, that implies 1.75B phones sold. Cost will likely fall so revenue could be 437.5B. If Apple can capture 30% of that with margins more similar to the Mac (~30%), this suggests even if Apple continues to make better products and can maintain significant market share, they'll earn 20% less from the iPhone than they do today.

Of course Apple has an extraordinarily successful iPad business but its margins are much lower than the iPhone and as an unsubsidized device will likely face greater pressure.

The questions to ask is evaluating Apple are: When will their earnings peak and by how much do will they fall before they reach an equilibrium. While this may be anathema to some and I admire what Apple has achieved, large economic profits cannot exist in the long run in a competitive market. Why is a longer discussion but I challenge the reader to pose a counterexample.

<comment><USER4> The Nexus 4 sells so cheaply because Google subsidizes its price heavily. Google is losing money on every single one that is sold, which is why it sells in such low volumes. It is a competitor to the iPhone in concept only.

A better comparison would be a recent 4G smartphone like the Samsung Galaxy Note 2. It lists for $699 and is available with a 2-year contract for $299 from Verizon--$100 more than the iPhone 5. Or the HTC Droid DNA, which lists for $599, available on contract for $199. Like Apple, Samsung and HTC are actual competitors in the market and need to make money on each phone they sell.

The flaw I see in your analysis is that it presupposes that competitors to Apple are going to be able to significantly undercut Apple on price. Apart from subsidized Nexus phones, I don't see much evidence that is true.

</comment></comment><comment><USER7> Were there any rumors/news/anything today that triggered the movement? AAPL is behaving more like a penny stock than the $500-billion behemoth it is.

It's also interesting to see how its P/E is lower than Microsoft's now. Given the generally lukewarm reception towards Windows 8 / Surface, you'd think more investors would be fleeing from MSFT. I sold my MSFT shares and went short last month after buying (and returning) the Surface RT.

<comment><USER8> > _"Were there any rumors/news/anything today that triggered the movement?"_

There was an obscure clearing house that upped its margin requirement for APPL holdings that made the news this afternoon. Now why _that_ triggered a sell off, I couldn't tell you. I'm no Apple bull, but this was sort of odd. Can't really trust anything happening in the markets the past few months.

</comment></comment><comment><USER9> Taxes on the wealthy and their capital gains are going up! Between now and the end of the year I believe you will see a LOT of selling from people and institutions holding large positions. Regardless of whether or not we go over the 'Cliff', capital gains tax rates will be going up and lots of selling will occur that drives down stock prices.

</comment><comment><USER10> Investors are selling Apple stock in anticipation of changes in U.S. capital gains and other taxes.

Pretty much everyone who made it to the $700 valuation did so on an early, lucrative buy. It's all taxes.

</comment><comment><USER11> The apple selloff is all fiscal cliff hedging:

[http://taxfoundation.org/blog/fiscal-cliff-capital-gains- and...](http://taxfoundation.org/blog/fiscal-cliff-capital-gains-and-dividend- tax-increases-pose-greatest-threat-economy)

</comment><comment><USER12> This would never have happened if Steve Jobs was alive.

<comment><USER13> Steve Jobs was an exceptional marketing guy, but even manipulating stock prices would have been out of his reach. I seriously doubt that Steve being alive or dead would have changed much.

<comment><USER14> I'm pretty sure assharif was being funny and/or a deliberate troll. But I'm not completely sure.

</comment></comment></comment><comment><USER15> This is an interesting headline given the main argument of the article.</comment>


Show HN: Yupp, yet another C preprocessor - <AUTHOR> https://github.com/in4lio/yupp <comment><USER2> I've always thought it's a shame there isn't a better C (and C++) preprocessor -- people go to heroic lengths to do things with the terrible pre-processor they have by default (the lack of recursion, and dodgy comma handling are particularly painful).

<comment><AUTHOR> Oh, yes, I agree. And when I was tired of writing macros like this: [https://gist.github.com/in4lio/9102547](https://gist.github.com/in4lio/9102547), I wrote yupp)

</comment></comment><comment><USER3> Technically, this is not a C preprocessor, more like a general-purpose macro processor, since you're using it as a third layer (second being C macros, first being C itself) instead of replacing C macros.

Although it gives me an idea, a converter that takes a valid C program (with macros) and replaces the C macros with some other macros (in this case yupp macros) that perform the same task. e.g.,

replacing

#include <stdio.h>

with something like:

($include "stdio.h")

<comment><USER4> My first thought as well. Why restrict to C? It could be useful for many other languages.

<comment><AUTHOR> Just because C is my primary tool) and I have created yupp, to do things like X Macros simpler.

yupp can even be used with Python, as it allows to make the right indentation, e.g. [https://github.com/in4lio/yupp/blob/master/eg/dict.yu- py](https://github.com/in4lio/yupp/blob/master/eg/dict.yu-py)

</comment></comment></comment><comment><USER5>
        yupp allows to generate a readable, well-formatted text. Special
        attention is paid to providing complete diagnostic information and
        navigational capabilities.

so generate proper markdown for the github page...

<comment><AUTHOR> This is a matter of taste, in this case, IMHO. Thanks for advice)

<comment><USER6> Reminds me of old textfiles and scene releases. More of the Internet needs to be text/plain.</comment></comment></comment>