Redis VS Memcached (slightly better bench) - <AUTHOR> http://dormando.livejournal.com/525147.html

<comment><USER2> Just tested in practice the N instances approach with Redis: what I get in similar hardware is 100k SET/GET operations per core, so using the same box dormando used for the test we should get 400k operations per second.

Note that you'll see this numbers for both SETs and GETs, as with the single process approach of Redis there is no contention. Instead with memcached you see different numbers for SETs and GETs, I guess this is due to some kind of locking happening. It's a tradeoff, with threads you have more power against a single "object", but at the cost of more complexity and less linear scalability. Anyway it's still possible to run a memcached process per core, I would like to see this results as well.

Currently I don't have access to a box with 8 different cores like the one used in the test so I can't fully replicate the test, so I hope dormando will update the results adding the test that uses four Redis instances.

</comment><comment><USER3> I don't get it, Redis isn't optimized to be a key/val store like Memcached. Redis does a hell of a lot that Memcached doesn't do, so if we added those operations to the chart, Memcached would be flatlined. If I need a fast, key/val cache, Memcached is the obvious choice. If I need something different, like a fast set of in-memory, disk-backed queus, or hash tables, or sets, I'll use Redis. It's like saying, look, this hammer puts nails in the wall faster than banging them in with this multitool.

</comment><comment><USER2> Hello,

I'm not sure why memcached can't saturate all the threads with the async benchmark, but if you want to maximize everything in your test involving multiple processes you should also run four Redis nodes at the same time, and run every redis-benchmark against a different instance.

We tried, and this way you'll get very high numbers for Redis, but this is still wrong as it starts to be very dependent on what core is running the benchmark, and if it is the same as the server. So a better one is to have two boxes, linked with gigabit ethernet, and run the N clients in one box and the N threads of the server (being it a single memcache process and N threads or N Redis processes) on the other box.

<comment><AUTHOR> Running four instances of redis is not the same as running one instance of memcached with four threads.

Four times the number of processes makes for 1/4 the effectiveness of multiget or multiset on average since your keys are now spread across several process boundaries. In good clients, that's the difference between a single packet to a single destination and four packets to four different destinations plus result processing.

Scaling horizontally is great, but scaling vertically is also useful in practice. It's giving the process more memory to handle more requests on fewer connections.

A bit more than a thread per core is faster. This is demonstrated by dormando's run of your test as well as a comparison of the throughput of your test vs. my mc-hammer tool (<http://github.com/dustin/mc-hammer>) I use for memcached. It can push well over twice as many ops on my dual core laptop as it can with a single core (which is in the neighborhood of a single instance of your test app).

It wouldn't take a _lot_ of work to get your benchmark tool natively supporting multiple threads. Kill off the global config and split out one per thread and then allow the connection to find its config. Atomics for recording stats and there should be quite near no cross-thread communication (this is what I did for mc-hammer).

That'd be useful for your own test cases as well as apples-to-apples comparison with memcached.

<comment><USER2> Hello, your reasoning is what resulted in memcached to use a multi thread approach I guess. I don't agree with this design choice for a few reasons: in Redis we saw that multi gets are everything but a very used primitive. You can still group things that are often asked very often together, so that they'll be in the same instance (we have an explicit concept about this, called hash tags). We have hashes for objects that are composed of many fields, and it's a single key, so every kind of hashing algorithm will still lead to the object being stored together.

In contrast see the benefits of a single threaded approach: zero contention, you can manipulate complex data structures without locking, more stability (less bugs) for the same amount of features.

In my opinion it's a no brainer... but it's also a matter of taste / vision / priorities.

About benchmarking with a multi threaded tool, this is something I'm going to investigate today because something is strange here.

Let's assume that a multiplexing benchmark is not enough, why it was still able to saturate Redis better than memcached? I don't have a good answer to this question but I want to understand what's happening.

Also, running multi-thread benchmarks against multi threads servers is going to bring results that are much different than what you'll get in the real world where there is a networking link between: when both the benchmark and the server thread are in the same core I think what happens is that the I/O system calls start to be much faster.

It's a shame I don't have the hardware to perform the two boxes test as this could be really cool for Redis and memcached, a much better indicator of what the limits are currently with this two systems and in general with TCP servers.

</comment></comment></comment><comment><USER4> this is a quite funny response :) seeing one person talk about toilet software and make an oversight when writing a 'better' test :)</comment>


Edward Snowden Interview: 'There Is Still Hope - Even for Me' - <AUTHOR> http://www.spiegel.de/international/europe/edward-snowden-interview-there-is-still-hope-a-1166752.html <comment><USER2> A line I particularly liked (from the second segment):

> "I think it is this new atmosphere of fear and that it won't change until > we, as a public, learn to perform a new kind of alchemy and recognize fear > when it is being presented. We need to learn to eat fear, to convert it into > an energy that can be used to better a society rather than to terrorize and > weaken it."

A huge percentage of the modern news media is fear-based. In the last U.S. presidential election, both candidates were running on largely fear-based platforms (fear of Mexicans on one end, fear of Trump on the other.) Even most political movements emphasize the terrible thing they're afraid of or angry about instead of actual changes that could be made to fix things. This can't be how things keep working.

I'm optimistic that we'll learn this "alchemy," though, for the simple reason that the onslaught of media-terror has become so absurdly intense that people can't help but become jaded. The first time you hear about a murder in your area, it's terrifying; the second time, a bit more expected; what about the tenth? The hundreth? We're being asked to believe in so many terrible things at once that the human mind is just going to give up at some point.

As long as we can lose fear without also losing _concern_ , we'll be alright.

<comment><USER3> Krista Tippett (from the "On Being" podcast) talks about this as one of the most important social tasks at the moment - to help calm fears of those around us so that as a society we're less fearful of each other, and more open to each other. I found it a fascinating call-to-action, as the rise of fear is something I feel like I've been noticing.

Having said that, I'm only 30, so don't know if the local pattern of rising fear is part of a larger story of less fear (compared to cold war days, for example).

<comment><USER4> I am a bit over 40. From how I remember the cold war, most people didn't realise just how bad it was. I mean, risk of happening multiplied by impact.

<comment><USER5> I remember it being there in the background but most people knew they couldn't address it themselves, so just kept on as though the world wasn't going to end. Who would be so crazy?

</comment></comment></comment></comment><comment><USER6> Snowden gives a really solid interview every time. Very polished.

I'm interested that he called out the idea of "deep state." He defines it as political forces that outlast a presidency (by that definition of course it exists i.e. any political party), but perhaps the implied element is a secretive nature and power over a president.

I wonder if there's an objective way to answer this.

<comment><USER7> > The deep state realizes that while it may not elect the president, it can > shape them very quickly

Instead of seeing this as some sort of covert manipulation, maybe this phenomenon is a reflection of just how much people prefer the status quo. IIRC a lot of jurisprudence is based on deferring to status quo. It seems natural that a new president's administration should remind them "hey, listen, we've thought about item Q on your agenda a lot and we can't do it because of X, Y, and Z."

On the other hand, I've shown up on software teams before and asked, "Hey can we try Best Practice X?" \-- only to learn that "Yes, we have all thought long and hard about Best Practice X but it Just Couldn't Possibly Apply Here. Also, Dave doesn't care for it." ;)

<comment><USER8> There's that but there's also just the simple trajectory, and momentum our laws, and law makers have. That is there are multiple actors in society that have self-interests, whether that be getting reelected next election cycle, or getting the shweet government contracts to run your business. The confluence of all those independent actors may act towards similar behaviors, and that produces a sort of illusion of "Deep-state ventriloquists". Think invisible hand. It's just that everyone is essentially forced to make the same kind of logical next step decisions due to environmental constraints, like economy, laws, etc.

</comment></comment></comment><comment><USER9> Snowden seems like a great guy with a good heart. It's a shame that he has been exiled to Moscow for embarrassing the government, but i'm happy he is alive and not in a jail cell.

</comment><comment><USER10> "I think it is this new atmosphere of fear and that it won't change until we, as a public, learn to perform a new kind of alchemy and recognize fear when it is being presented. We need to learn to eat fear, to convert it into an energy that can be used to better a society rather than to terrorize and weaken it."

Very well said. In many ways, Snowden keeps the bar high for what we should aspire to be, and what we can be.

</comment><comment><USER11> He says giving speeches and interviews is out of his comfort zone, but he always comes across as articulate and well-spoken. More than I am for sure.

I'm glad he's doing okay though.

I believe he did the world a great favour and history will look back on what he did with kindness, even if so many do not look on it that way now.

</comment><comment><USER12> My favorite now is how the national debt goes up every time FBI/NSA spends more money. Which of course causes more money to be printed.

</comment><comment><USER13> Is there video of the interview?

</comment><comment><USER14> The juxtaposition on the front page right now is cool.

iPhone X 623 6 hours ago | 1290 comments

Edward Snowden Interview: 'There Is Still Hope - Even for Me' 74 points 4 hours ago | 16 comments

As they move past from their earthly feelings of shame, whenst they stuck their heads in the sand, now they revel in their vice.

<comment><USER15> Yes, there is more to life than the cult of Snowden. No reason to run around with our heads cut off just because the man gave an interview.

<comment><USER4> Apparently the cult of Apple has a much stronger following.</comment></comment></comment>


Meet the Linux Desktop That's More Beautiful Than Windows 10 and MacOS - <AUTHOR> https://www.forbes.com/sites/jasonevangelho/2018/12/10/meet-the-linux-desktop-that-blows-away-windows-10-and-macos/ <comment><USER2> Looks beautiful.

That being said: I never got used to those panels that slide in from the sides, at least on the desktop. On the phone and the tablet they are really practical and I wouldn't want to miss them. My desktop the other hand is a space for my windows, nothing else: no icons (certainly no trash bin), no task bars, no notification or control centers.</comment>


HR is not there to be your friend. It's there to protect the company - <AUTHOR> https://www.marketplace.org/2017/10/30/business/human-resources-protect-employee-employer <comment><USER2> False. The lawyers are there to protect the company.

<comment><USER3> As is HR. One does not preclude the other.

<comment><USER4> Exactly. HR is the company's first line of defense. For example, they do things like presenting educational seminars on such topics as sexual harassment or illegal discrimination, to try to prevent employee behavior from getting to the point where lawyers would actually have to get involved. Or they get rid of employees who might cause liability to the company through their actions.

This sometimes has the side-effect of protecting employees and making sure that employees get everything they're entitled to under federal/state employment laws, but their main goal is to protect the company from civil and criminal liability.</comment></comment></comment>


DragonBox: Algebra beats Angry birds - <AUTHOR> http://www.wired.com/geekdad/2012/06/dragonbox/all/

<comment><USER2> Does anyone have any evidence, anecdotal or otherwise, that gamification is good for teaching STEM ideas in the long term? I am wary of rewarding the brain with in-game loot for memorizing the rules of algebra rather than with the deep satisfaction that comes with understanding. Obviously, this latter type of reward cannot be as consistently provided and requires a certain maturity (maybe), but ultimately I think it's what drives most insightful people.

Here's a good example of what bothers me:

>As the game progresses, you'll start seeing cards that are above and below each other, with a bar in the middle — and you'll learn to cancel these out by dragging one onto the other, which then turns into a one-dot. And you'll learn that a one-dot vanishes when you drag it onto a card it's attached to (with a little grey dot between them). These, of course, are fractions — multiplication and division — but you don't need to know that to play the game, either.

That last sentence is especially telling.

To me, gamification is suited for making necessary but painful tasks fun (e.g. cleaning your desk, tagging media, memorizing facts), but not for deep learning (e.g. algebra, quantum mechanics, object-oriented programming). But maybe, at 26, I'm just not with the times.

EDIT: I think ColinWright is getting at the same worry, and his comment is more fleshed out <http://news.ycombinator.com/item?id=4106567>

<comment><USER3> Brett Victor writes:

 _When most people speak of Math, what they have in mind is more its mechanism than its essence. This "Math" consists of assigning meaning to a set of symbols, blindly shuffling around these symbols according to arcane rules, and then interpreting a meaning from the shuffled result. The process is not unlike casting lots._

 _This mechanism of math evolved for a reason: it was the most efficient means of modeling quantitative systems given the constraints of pencil and paper. Unfortunately, most people are not comfortable with bundling up meaning into abstract symbols and making them dance. Thus, the power of math beyond arithmetic is generally reserved for a clergy of scientists and engineers (many of whom struggle with symbolic abstractions more than they'll actually admit)._

I think gamification is a great way to teach symbol manipulation, and I think (contrary to Bret) that symbol manipulation is a prerequisite for deeper STEM ideas.

I do also believe that harder mathematical problems can also be gamified, but this process is much less well understood, and you'll probably want a few theorem prover experts around if you attempt a system like that.

<comment><USER2> > I think (contrary to Bret) that symbol manipulation is a prerequisite for > deeper STEM ideas.

Can you elaborate on this further? I tend to disagree, but I don't know if I have all that much to say to back it up.

I mean, sure, there's just no good way to understand shear forces without being able to manipulate matrices (so I agree with dbaupp's sibling comment), but that doesn't mean you want to learn the rules of matrix algebra as if they were arbitrary rules enforced by the stick and carrots in a game.

<comment><USER3> In the case of mathematics, there is a fundamental sense in which _the symbols and their manipulations are what you're studying._ Think of it as if you were an archeologist: the symbols are the artifact of study. It's only half of the picture: you must(!) come up with a different way of intuitively understanding it--but at the end of the day if you really want to precisely say what it is you're talking about, it's symbols.

<comment><USER2> OK, I think I see what you're getting at. But we could devise a AltDragonBox game with a completely different set of arbitrary rules. (Possibly even rules that are inconsistent.) And as far as game play goes, AltDragonBox would work just as well. But there's a reason that the rules of algebra are what they are. And if you can't distinguish between DragonBox and AltDragonBox, I don't think you're learning what you need to learn.

Here's another way to look at it: we all know people who could ace their high school math tests because they had memorized the rules of manipulation but _weren't_ good at math--as evidenced by their poor performance in college and failure to succeed in future STEM classes. If "the symbols and their manipulations are what you're studying" (which, I agree, there is some truth to), then what _is_ it exactly that these people were lacking?

<comment><USER4> > there's a reason that the rules of algebra are what they are

But which algebra, and which rules ? There are infinitely many algebras ( eg. Algebra over the field of reals, Banach Algebra, relational algebra, boolean algebra, sigma algebra etc. ) The "rules" are really constructs you decide that apply to the elements of the space that conform to your algebra. So for example the reals are a field that have ordering, so you can talk about less than and greater than, but the complex numbers don't have an imposed order and you'd have to first define a norm to map them onto the reals. The AltDragonBox with its own inconsistent arbitrary rules will still have some algebraic encoding. Whether that's useful to you is debatable. Like in my algebra I could overload plus to mean multiply and square root to mean divide by 7 and add -3 and then try to figure out what exponentiation works out to. It would be interesting...maybe not useful, but its still an algebra. Maybe you won't have closure...the elements may not end up in a field or even in a semigroup...its a nice make-believe algebra.

<comment><USER2> Yes, that's a very impressive display of all the math you must surely know, but its completely misses the point. The rules of elementary algebra really _are_ special, and it has to do with their correspondance to real things in real life. There's a reason mathematicians don't just enumerate all possible algebras and study them one by one.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> I was going to add this as an edit to my earlier comment, but I'm on a crappy connection, and was too late. Let me expand on my comment.

I think this is a brilliant idea, and it seems to be well executed. I don't have the necessary hardware to run it, so I haven't played with it, but it looks to be a wonderful game based on algebraic manipulations. I, along with everyone else, expect and hope that it will engage players and allow them to learn the rules and skills of such manipulations.

And probably that's a good thing. Let me try to explain the underlying reasons for my sense of unease, as best I understand them.

Firstly, I am concerned that this will merely enhance the sense that math is simply arbitrary manipulations with neither meaning nor motivation. Many of the kids I tutor can do the manipulation, but don't get the point, and never connect it with reality.

Next, some of the kids I tutor can't do the manipulations without making stupid errors, and I can't help but feel that even after practising with this, they will still make stupid errors. Link that to the apparent meaninglessness, and there's a recipe for frustration.

Thirdly, this doesn't help to connect the creation of equations with the physical problem to be solved, and it doesn't help interpret any final answer. These are the steps that the kids I deal with simply can't do.

Finally, as someone commented, this isn't intended to be the whole and entire course, and it's supposed to be just one tool to help one stage, and to be built on and leveraged by the teachers. I've lost count of the number of wonderful tools and ideas that I've seen whither and die because the teachers can't make use of them. In some cases the teachers don't really understand them, but I would hope that fate would be avoided by this.

So in summary, I think this is a wonderful tool, and it has the potential to be a fantastic aid to learning. I am deeply uneasy about the further divorcing of algebraic manipluation from any sense of meaning, but I look forward with interest to see if it can be used in a meaningful way.

<comment><USER6> You keep using this word, "meaning". What does it mean? ;)

<comment><USER7> In a programming language, you have syntax and semantics. Syntax tells you what you can write and how; for example what is a valid program. Semantics tells you what a program evaluates to, and maps your programs to another domain.

Here you have the same thing. In math you have syntax, and semantics. The other domain from semantics might be abstract, or it can be purely mechanical, but it can also be connected to reality. If your operations map to nothing that makes sense to you, the operations are just mechanical; you solve equations in some way because you know it's right but you don't understand why. If your operations map to other domains that you understand (also if they are abstract domains in your imagination), you can understand why the operations work like they do, and you know why you have to solve them the way you do it.

Maybe the equations don't have a specific meaning per se; but if they don't have any meaning for you, there is no way you understand what you are doing when you solve them.

<comment><USER6> A programming language semantics is a set of mutually recursive equations describing how a well formed program manipulates values. The equations themselves are as mechanical as the they can possibly be.

<comment><USER7> The recursive equations are the means by which you obtain a mapping from one domain to the other (eg. from the programming symbols to the program values). For equations there are many ways in which you can give meaning to each equation in the same way, such that the mechanical process makes sense.

For example:

a x = b (text) --> x is unknown, it is the right one if f(x) = a x equals f'(x) = b; both functions are programs you can compute and play with

from there you go mechanically to:

x = b/a (text) --> x is unknown, it is the right one if f(x) = x equals f'(x) = b/a

while in the first step it was hard to tell much about x, now we can see that it is trivial to guess which is the right x; x must be b/a

This is the first mapping from the domain of symbols to another domain that I could think of. There must be more natural mappings that can be used like this.

<comment><USER6> Check out abstract interpretation and Galois connections. These require a different kind of mechanical manipulations than simple algebra. I wonder if there is a gamification to be found in this direction.

</comment></comment></comment></comment></comment></comment><comment><USER8> I lack words to describe how awesome this game is, both from a pedagogical perspective and from "It's genuinely fun to play."

My fiancee has just ordered me to take a bath as a clever way to get me away from the iPad _because she wants to do algebra, by herself_.

<comment><USER9> You are the master of the words and if _you_ are failing to find words it means that I HAVE to get this game. Thanks.

</comment></comment><comment><USER10> I have an idea similar to this that would secretly teach circuits:

The game would be a water-tube building game. Voltage would represent the height drop that causes the water to flow, current would be, well... current, resistance could be marked by notches in the tube section, etc. Each scenario would involve building a water maze to reach a specific objective.

Gradually, different tube sections would be replaced by circuit schematics, until at the end of the game, you would be designing straight-up circuits.

Feel free to build this, just let me know when it's available :).

</comment><comment><USER5> I have a deep unease about this. It's brilliant that the kids learn the manipulations (although it's unclear if they'll be able to follow the rules when not enforced by the app) but it's detached. It's unconnected, and there's no sense that it's actually potentially useful.

It will be fascinating to see where it goes, but I'm worried about how it will translate into actual solving of problems, which is what algebra is about. Too many people think algebra is about mindless manipulation, and this seems to reinforce that.

Yet to be seen. Interesting times.

<comment><USER11> I remember you said once that rote practice and drilling of arithmetic helped even higher math. I agree. How is drilling mental math any less mechanical than the unconscious familiarization/ingraining of algebraic concepts of this app? In both cases there is an intangible benefit beyond the process.

For the brain, prior meeting in a simpler guise is useful in reducing friction when incorporating new concepts. I imagine it like starting off with good weights when doing a search with no global.

<comment><USER5>
      * How is drilling mental math any less mechanical
        than the unconscious familiarization/ingraining
        of algebraic concepts of this app?

There is a difference in that with mental arithmetic you have, or can have, a direct connection with an underlying reality. This seems to be entirely divorced from any reality, and the rules can, if you don't already know what's going on, appear completely arbitrary.

I can picture asking an adept "why do you put the same thing on each side?" And getting the answer - "Cos that's just how it works."

<comment><USER12> It -is- how it works. In algebra at least.

<comment><USER5> Yes, it is how it works, but it's not _just_ how it works. There are reasons for the rules, and underlying models for the rules. It's not arbitrary, it has evolved over centuries to have purpose.

It's not "just" how it works. When you have the equals sign between two expressions you are saying that instantiation of the variables must result in quantities that are the same. When you modify one side then you must make the same modification on the other side in order to retain that property. there are _reasons_ for things to be the way they are.

It's not "just" how it works.

</comment></comment></comment></comment></comment><comment><USER13> Very cool. This actually intensely reminds me of Ed Yang's logitext sequent calculus tutorial: [http://logitext.ezyang.scripts.mit.edu/logitext.fcgi/tutoria...](http://logitext.ezyang.scripts.mit.edu/logitext.fcgi/tutorial)

You don't have to know the rules of the sequent calculus, you can just click around, but the theorem prover will ensure that you can't break them. Then, by fucking around and reading through the tutorial, you can pretty much learn how it works.

I think that things like this are the _right_ way to start designing interactive education. Create a play space, enforce the rules, provide lessons that act as hints and tips for understanding how the rules work.

</comment><comment><USER14> This is brilliant. You're teaching the mechanics of algebra but initially ignoring "this is math" which lets players avoid the mental barriers they may have erected about that particular subject.

Being able to "do" first makes explaining the "why" later much easier and more interesting.

</comment><comment><USER15> When I saw the title, I thought "would it not make more sense to use trigonometry to beat Angry Birds?"

<http://news.ycombinator.com/item?id=1043491>

</comment><comment><USER16> Who's trying to prove the Goldbach conjecture before they learn the rules of algebra? Most kids in middle to high school math classes aren't worried about their "mathematical maturity" or about having powerful insight. Rather, this obviously shows that the rules of algebra can be applied to other sets of symbols, and that letters and numbers are simply a subset of a much larger set. How is that not a powerful notion? If you're bothered by this, then go back and read Herstein, or any other intro to group theory. Seriously, this is a great way to get kids actively thinking about the rules of manipulation of symbols.

The seeds of abstraction must be planted before you can play with more lofty ideas. If games aren't a good way to enjoy mathematics, then you have missed the point of a lot of math.

</comment><comment><USER17> Very innovative, I love seeing educational apps that make the player think and solve puzzles instead of just repeatedly showing them rules to memorize.

</comment><comment><USER18> Hi, as the guy behind the game concept, I am thrilled to read all these comments and discussions. For those interested I can explain how I thought of this game and which goals we try to reach with it. First of all, the game is a direct translation of my view of math. Abstract objects, relations between them, and playing around with it. Obviously there is no One mathematics. Each of us we have our own subjective understanding of it. Secondly, I have three kids, and I want the best for them. Mathematics can be used to understand better our world and can give access to better decisions. The earlier, the better. That means I d like them to learn K-12 math as soon as they can get it. And they could get everything now, if we had the right tools. Just to say that I make sure that the games we create transfer to useful knowledge. I am not here to sell another game, I am here to make children learn. Third, first we teach how to solve equations and then, how to set up equations. 4\. Our goal is to make players think and learn. For example, players have to figure out themselves how to solve an equation with x in denominator. I think we are the only ressource that let a kid find out that by herself. School has no time to let kids spend time on high level thinking... 5\. most importantly, this game is about discovery learning. Trial and error. The only reason there are texts, is that parents feel unease with textless discovery games. Children and parents learn completely differently. So imagine what a teacher does to our poor kids (i am myself a teacher, so i try to replace myself...). She cant test her teaching as we tested our game... how can you be better without feedbacks? 6\. no teacher will be able to beat this game. Because of feedbacks, discovery mechanisms, beautiful symbols, tests etc.. players solve 200 equations in 1,5 hours without any prerequisite... and explanations. This game avoid many pitfalls that communication with words create when explaining algebra. Teaching algebra from arithmetic, concrete to abstract is to my mind crazy. It s an unecessary step. This game is the result of a thinking process where I sat as a big hairy goal to teach K-12 math in less than 20 hours. It is obvious that to do that, we have to think very differently. For example none has noticed that the equation is set up in two dimensions. The game seems simple and obvious and it is easy to start discussing the effect of it. It was pretty complex to make it that simple.... Make complex things simple without oversimplifying, that s the point to discuss to progress in learning science. That s what the game is about. And i hope it inspires many to work with it.

</comment><comment><USER10> I just bought this for my 5-year-old daughter. She mastered the first level (or chapter, as the game calls levels) in about an hour, with minimal input for me (I just read the minimal instructions at the beginning).

I am really excited about this game, and others like it.

As someone from the former Soviet Union where we started learning rudimentary algebra in first grade, I remember variables being explained as a box that you have to figure out what is in it by putting everything else on the other side of the equals sign. This game literally takes this concept and gamifies it.

</comment><comment><USER19> I studied pre-Algebra in the 6th grade - about 12 years old. The author's child is learning the same things from Dragon Box at 5 years old. That gives kids nowadays a 7-year jump on the standard American public school curriculum. It's amazing to think of how much more kids will be able to learn and accomplish with their lives with iPad based learning tools.

</comment><comment><USER20> This is awesome, I'm going to buy this for my little brother.

I can imagine expanding upon this concept to get kids to solve word problems. Present a simple word problem, give the player some variables/cards and operators to pick from, and let her arrange them into a suitable equation or three. Award points for reaching states like a fully isolated variable, which is basically the solution.

Maybe specific guided processes could be created for different varieties of problems, e.g. distance-time problems, simultaneous equations, algebra applied to geometry, combinatorics...each type of problem could be broken up into sub- components which the player first arranges into the right combination, and then returns to the original algebraic solving process as the final step.

Hmm. If my current startup idea doesn't work out, I might have to look into venturing into education. I always liked tutoring anyway.

</comment><comment><USER21> I convinced my mother to purchase the iOS version for all her grandchildren ... and then I played it. There was a distinct change in my behavior when there was a distinct change in the cards - they go from colorful bugs with different backgrounds to different symbols in black on white backgrounds. That's when I had to concentrate on what was actually on the screen and think about what moves to make.

I have yet to see what the younger ones do with it, but my 13yo found it somewhat interesting until he had to _think_ \- that made it less of a game for him and he became less interested.

My anecdotal experience with this game suggests that the same people who would excel at math (with a trait for "why is this wrong? let's try something else; let's dig deeper") will also excel at this game. Those that don't want to _think_ are going to give up when the game changes.

<comment><USER22> This is not a solution for those don't want to think. But many who would gladly think if they cared will now find the transition to algebraic symbol manipulation lot less painful. Kids have their own set of "wants"... In most situations they have no clue how math is a path to satisfy such a want.

I once came across a thread on the scratch website where a student was saying he wanted to figure out how to use trig functions because the guys using trig functions wrote much better games. He(she) was complaining that all the explanations on the web made no sense to him(her). These kinds of tools together can ease the path for those who want to think, but never end up paying enough attention to math due to unnecessary hurdles that prevent exposure to deeper ideas. It is not a silver bullet, but definitely a nice tool in the hands of a teacher who wants to stimulate thinking and a student who wants to think.

</comment></comment><comment><USER23> Great idea, look forward to playing this with my daughter.

But, from the article: "the flip side to that in the case of DragonBox is that you don't learn the reasons for the rules. My kids (particularly my five-year- old) have no idea why, when you drag a card below another one, you have to drag it below all the other cards on the screen."

Games like this still have a place, but knowing the reasons and the why of things is still incredibly important.</comment>


Why Twitter's Dying (And What You Can Learn from It) - <AUTHOR> https://medium.com/bad-words/why-twitter-s-dying-and-what-you-can-learn-from-it-9ed233e37974 <comment><USER2> > _Twitter could have been a town square. But now it's more like a drunken, > heaving mosh pit._

Nitpick: every mosh-pit I've ever been to has been a safe and supportive place. If someone falls down, they're picked up. If they get hurt, the mosh pit instantly clears out a space so they can be helped. If someone's being an asshole, they're _kindly escorted_ (cough) out of the pit, and likely out of the venue.

<comment><USER3> I remember the mosh pit in the Fargo Civic Center in the 90's and it sure as heck wasn't that polite or safe.

</comment></comment><comment><USER4> Interesting theory, but for me it does not hold up. The problem isn't people feeling abused in various ways - it is that people don't know what to do with Twitter. So they sign up, have a poor experience and churn. I don't have data on it, but I expect there is an enormous number of people who signed up, sent a single tweet and never came back.

</comment><comment><USER5> Why the fuck is there a 420 kb image on top of the article? I really really hate this kind of modern minimalist webdesign. Just show me that article and don't include any unnecessary images.

<comment><USER3> So, would the author consider this yoodenvranx's comment as abuse or criticism? I tend to believe its the later but think the author would consider it the former.

Why I'm at it, the hyperbole in the article (e.g. school shootings) makes it hard to take any of the rest seriously. The lack of examples is also troubling.

</comment></comment><comment><USER6> > The problem of abuse is the greatest challenge the web faces today. It is > greater than censorship, regulation, or (ugh) monetization. It is a problem > of staggering magnitude and epic scale, and worse still, it is expensive: it > is a problem that can't be fixed with the cheap, simple fixes beloved by > tech: patching up code, pushing out updates.

Abuse = services being used in ways that are not intended, or approved of, or sanctioned by... someone. It is inherently hard to classify behaviour as either abusive or not, and for those who are sure, it's inherently impossible to reach consensus. Furthermore, "patching code", and "pushing out updates" should not be seen as being necessarily cheap and simple (that's kindof a lot of the hard part, on the contrary). The way users use a service stems from how it is designed (although perhaps not always predictably or even deterministically).

</comment><comment><USER7> I'm skeptical that the core issue with twitter is abuse. It is certainly rampant and should be addressed. I'm skeptical an average users with 130 followers(a guess) experiences any abuse.

The on boarding of new users and the echo chamber effect seem like a much bigger issue.

<comment><USER8> There's still a chilling effect of knowing that if you put a foot wrong, a mob of random strangers will do their best to lose you your job, just because that's their idea of fun.

We're not immune from it here either [https://twitter.com/hashtag/hnwatch](https://twitter.com/hashtag/hnwatch)

</comment></comment><comment><USER9> In a nutshell, as these companies grew(number of users), the utility of the community started to decline.

Think about it: what's the main use of Twitter? It might have fostered a great community in the past, but it's become too broad and filled with fake users, shallow communities and users.

Not self-promoting, but I've written about how many companies are facing the same issue as Twitter.

[http://tonomics.xyz/2015/09/28/Stay-for-the- tool.html](http://tonomics.xyz/2015/09/28/Stay-for-the-tool.html)

</comment><comment><USER8> This is what Facebook are tackling with their real names policy. Now I like this policy, and have openly said so. I think anonymity on the Internet was fine back in the day when it was a small community of like-minded people with the unwritten but unbreakable rule "what goes online stays online". But it doesn't scale to the general population. And the most abuse I get on FB is when I say this, usually by friends-of-friends, whom I sort-of know IRL and what they _really_ want is just to keep on using the same "gothic" nickname they had on IRC or LJ... I haven't reported anyone because that's not my style, but I'm getting a bit bored now of being called "transphobic" by someone who goes by a name something like "Prince Darkbat".

<comment><USER10> The problem with the policy is that there's a difference between someone not adapting to the intended purpose of FB with a name of "Prince Darkbat" and someone using, for example, their real first name and an alias last name. That could be because of persecution due to homophobia, transphobia, an abusive ex, religious extremism, or just a person who is only known in their community by a name that isn't their legal name.

I know several individuals who only ever go by a stage name or alias. I assume it isn't their legal name, but every interaction I've had with them or I've witnessed others having with them used their aliases. Is it really less honest to have that be the name on their FB account?

And yes, I also know trans people who have lost access to their FB accounts because of inability to change their legal name to their chosen name.

I don't think it makes you transphobic to hold your view, but I do think it's an overly polarized stance on a very nuanced issue.

<comment><USER8> _I do think it 's an overly polarized stance on a very nuanced issue_

I have thought about this you know, and the issue is, who decides group A get to be anonymous but group B don't, and on what grounds? The only way to operate at scale is to be even-handed and impartial.

</comment></comment></comment><comment><USER11> I flagged this article, since IMO, it's a tired, uninteresting, zero-evidence screed that pushes a discredited and dangerous narrative (i.e. that incivility is a bigger problem than censorship)

<comment><USER12> I agree that the article was a waste of time, but why is that worth a flag?

<comment><USER11> That's pretty much the purpose of the flag if I interpret it right. If you post and upvote things you think are interesting and legitimate, then by converse, you should flag things that are boring and illegitimate.

It's more of a "Knowing what I know of Hacker News, I don't think this fits"

<comment><USER12> Yeah, fare enough. Mine was a stupid question, anyway. I just took a stroll the the HN guidelines, and interestingly it advised not commenting that you've flagged something after actually flagging it.

</comment></comment></comment></comment><comment><USER13> Literally everything about this is without merit. It's a polemic, not a thesis. This evidence free diatribe glorifies a non-specific past where 'abuse' and 'electronic violence' were apparently less prevalent, and raises 'abuse' above censorship on the list of things that threaten the web.

Where to start... Twitter, like all other such public blogging services, offers simple quick block and mute tools. These tools won't prevent brigading, but then luckily 'electronic violence', being imaginary, can't harm you. Smaller communities (such as subreddits) are free to exclude members on whatever basis they like - and hence overly sensitive web users can reside in their digital safe spaces to their hearts content. However, when you reside in the commons, you are open to public criticism.

To participate in the digital commons is to open oneself up to numerous confounding psychocultural narratives. Some of which are vehement to the point of incoherence. But to close oneself off from the possibility of discussion because of 'abuse' is to be so afraid of disagreement as to wilfully cut oneself off from the possibility of learning from disagreement.

Twitter certainly isn't growing at the same rate, but to describe it as 'dying' is ludicrously over the top. Further, to suggest a more virtuous, less 'abusive' past is to engage in a golden age fallacy. Certainly the intellectually and socioeconomically elite users of the early days of the web were more utopian. But to cite 'abuse' as the reason for the authors perceived decline, rather than censorship, balkanisation, advertising, and of course the 'eternal September' is absurd.

The kind of 'abuse' the author seems to be arguing against - i.e.: not threats, but vehement group criticism, can be upsetting. But it is of course 'trivial'. Since it can be escaped entirely by switching ones electronic device off, or simply logging off a given service for a few days. It's quite distinct on the one hand, from the relatively rare and extreme mass public shamming addressed by John Ronson's new book. And genuinely threatening harassment (already illegal everywhere in the West) on the other. The writer's solutions 'humility, gratitude, reality' are phatic, non specific and without direction or meaningful content. As is his critique.

</comment><comment><USER14> Oh shucks. And here I was thinking about trying it. I guess my inertia has saved me from kilohours of wasted time and effort!</comment>


Twitter Deletes Tweet about Censorship on Twitter After Retweet by President - <AUTHOR> https://twitter.com/michellemalkin/status/1261692841136287745 <comment><USER2> There is no good solution to the disemination of harmful information in a free society other than education. America barely has that, and I don't see any signs of this improving.

<comment><USER3> > There is no good solution to the disemination of harmful information in a > free society other than education.

False. Maybe we should ban you from commenting on any of the popular platforms to prevent you from spreading such blatantly harmful misinformation.

... you see how that happens? Party A with access and power doesn't want you to say something, so you get banned. It has nothing to do with misinformation or education.

<comment><USER2> right but im saying that is NOT a good solution, not really a solution at all

</comment></comment></comment><comment><USER4> The President's tweet: "The Radical Left is in total command & control of Facebook, Instagram, Twitter and Google. The Administration is working to remedy this illegal situation."

I don't know of the radical left controlling Facebook, Instagram, etc., but these are all private companies.

1\. Unless Congress enacts some legislation on who can or cannot say what on these websites, what specific power does the Executive branch have?

2\. And if they do have the power, does this mean the next administration (if liberal) could technically censure Rush Limbaugh and Rush Hannity for not being "fair" (whatever that means)?

Edit: I'm genuinely curious why the downvotes. Looks like I'm getting censured for asking a question that maybe isn't so convenient.

<comment><USER5> >what specific power does the Executive branch have?

They could just go after any company that doesn't bow to them for something like antitrust. Hell- make something up. Legal battles cost money and business and Uncle Sam has basically limitless cash to use for this.

<comment><USER6> Or Taxes? Weren't a lot of historical criminals indicted for tax crimes instead of murder, kidnap or other things they committed?

</comment></comment></comment><comment><USER7> Further irony when HN flags a post about censorship describing a social network censoring someone.

It's technical, it's political. I don't see the issue.

</comment><comment><USER8> Let me just sum up the soon to be ensuing argument.

Side a: twitter is a private company, and has the legal right to ban or not ban what ever they want for what ever reason they want.

Side b: but i'm a private person who can bitch or not bitch about twitter's use of that right for what ever reason that i want.

...

Rinse

Repeat.

Profit.

<comment><USER9> Please don't do this here.

</comment></comment><comment><USER10> [https://xkcd.com/1357/](https://xkcd.com/1357/)

</comment><comment><USER7> Is there a way to prove it was flagged or removed by Twitter?

This is the problem with censorship - the very nature of doing it enables the complainers to be victim, even if you didn't actually do it!

Twitter should unabashedly _not_ delete anything unless it is a direct call to violence or an imminent threat to public safety. If they do wish to curtail misinformation, they should label it with their rationale.

"This video makes a series of factually incorrect statements" or "This video is full of bullshit and lies and you're a fool for believing it" or something. Clearly, there is a lot of misinformation/disinformation made to sow division, and Michelle Malkin/the alt-right, Fox News "truthers" are as awful as they come. But the very possibility that Twitter could or would remove a video, not discuss it or list a reason why, is itself fuel for the alt-right's garbage.

There is no easy solution, no easy win against misinformation. I believe, though, that light is usually better than dark with these people.

<comment><USER11> Twitter is a private entity and at liberty to do whatever it pleases with its private property.

That the irony is lost to someone should raise bright red flags.

<comment><USER7> I'm not talking legal, I'm talking moral. Perhaps Twitter does have the right to delete whatever they want for whatever reason. That doesn't make it right.

And perhaps they shouldn't have the right to delete whatever they want for whatever reason. Perhaps we should have legislation that governs the actions of social media platforms, that scales with the size of their userbase, to maintain cohesion and some respect for truth.

Enter all the concerns about "who decides truth and fairness" and all those hazards.

Again, I didn't say it was an easy discussion, or even that there are any answers. But there are increments between "just let Michelle Malkin and her ilk lie and stir people up with literal, provably false untruths and hatred to the detriment of American society" and "blackball everyone who doesn't toe the liberal zeitgeist".

<comment><USER12> > _I 'm not talking legal, I'm talking moral_

Knowingly violating the terms of service you agreed to when you chose to use a free service like Twitter also seems to have some moral implications. I don't see how you can draw some moral equivalence between the two. If one party involved is already acting in bad faith then how is it fair to put the onus of morality in the situation on the other party?

> _And perhaps they shouldn 't have the right to delete whatever they want for > whatever reason._

So you're saying if you owned a website the government should have the authority to force you to host content at your own expense? This would be a clear violation of the Constitution.

<comment><USER7> The Constitution is an amendable law. Perhaps the mega-networks that are defacto utilities should have clearer social contracts with our government.</comment></comment></comment></comment></comment>


Only 30% Use Traditional Boarding Passes. Is It Worth Keeping? - <AUTHOR> https://icons8.com/articles/redesigning-boarding-pass-again/ <comment><USER2> They look quite nice :) And I really like the idea to make the seats numbers more visible and understandable.

</comment><comment><USER3> Love it! Wish they came up with 5 years ago

<comment><USER4> Being more client oriented? Not moneywise.

</comment></comment><comment><USER5> I've never seen colored boarding passes. It seems to me they are black on white usually.</comment>


Key Success Factors For API Adoption - <AUTHOR>

What are the key factors for developers to start adopting your API if you offer one? There are so many things they can do - how and why will they spend the time and effort to integrate your API? Lets brainstorm! <comment><USER2> Good docs with good practical examples of how to call the API. Many docs I've seen talk about the philosophy or background and then just dump the API functions without any real explanation.

In a nutshell: Give real world examples.

</comment><comment><USER3> #1

Give me a sandbox to _try_ the thing first. I bled some good cash testing my twilio stuff, thinking it wouldn't deduct money if I was calling from my registered phone number. Yeah right. I learned the hard way to sign up for a test account to test it when I used it in a second project.</comment>


Why Linux's Systemd Is Still Divisive After All These Years - <AUTHOR> https://www.howtogeek.com/675569/why-linuxs-systemd-is-still-divisive-after-all-these-years/ <comment><USER2> Meh. I hardly hear anyone complaining about it anymore. The only time I see discussions about the subject is when someone is trying to stir up noise.

</comment><comment><USER3> The division has become stark and serious now that homed is about to release. Its not even about the GNU philosophy of "each program must do one thing", its that people have now started wondering how far should the intrusion of init system one allow in a linux system. Is maintaining the security and filesystem of user's home directory init system's work? If yes, then what's next? Desktopd, Browserd or even Emaild? Or why not simply call it Kerneld and let them handle everything on the Kernel!</comment>


Sony suspends Playstation Store in mainland China to upgrade security - <AUTHOR> https://uk.reuters.com/article/us-sony-playstation-china/sony-suspends-playstation-store-in-mainland-china-to-upgrade-security-idUKKBN22N0PD <comment><AUTHOR> Thought this should be on here, was surprised it wasn't already. Many seem to see this as suicide from a business standpoint, I'm genuinely wondering what Sony will do. I would love for them to take a stand, but as always it's the little people who will be hurt by this no matter what.

And to be fair I believe it was always as simple as opening accounts for different regions to play them, but it seems they are actually paying someone to bypass region lock somehow. I feel for the people just trying to play games.

When the Internet was born I had all these crazy ideas about meeting people all over the world and playing with them, becoming friends. I could never have imagined all the bad things that came along with it, much less that one of which was making the world so small.</comment>


Ask HN: What organizations' blogs do you read? - <AUTHOR> It could be with a view to learning what they are up to (e.g. new products or product updates, their thoughts on industry direction, or any other reason). I said organization rather than company, because it does not have to be a for-profit company, could be a non-profit. <comment><AUTHOR> Some other reasons could be: to know if they are hiring in an area you have skills in (although that could also be found from their jobs page), and because they are competitors.</comment>


Tumor-killing virus nearly doubles survival time of brain cancer patients - <AUTHOR> http://arstechnica.com/science/2016/06/tumor-killing-virus-nearly-doubles-survival-time-of-brain-cancer-patients/ <comment><USER2> Paul Davies[1] on FQXi talks about using viruses: [http://traffic.libsyn.com/fqxipodcast/Physics_of_Cancer.mp3](http://traffic.libsyn.com/fqxipodcast/Physics_of_Cancer.mp3)

From: [http://fqxi.org/community/podcast/2014.10.02](http://fqxi.org/community/podcast/2014.10.02) (extended version of this interview available)

[1] [http://cancer-insights.asu.edu/2012/02/is-cancer-an- ancient-...](http://cancer-insights.asu.edu/2012/02/is-cancer-an-ancient- throwback/)

</comment><comment><USER3> So I see this and I wonder if Gord Downie (a beloved musician in Canada with terminal brain cancer) will get access to this treatment. But my cynical self says no. Not to put him above anyone else less famous and fighting brain cancer. Just wondering.</comment>


Heartbleed and RSA private keys - <AUTHOR> http://www.lightbluetouchpaper.org/2014/04/25/heartbleed-and-rsa-private-keys/

<comment><USER2> Original post: [http://www.lightbluetouchpaper.org/2014/04/25/heartbleed- and...](http://www.lightbluetouchpaper.org/2014/04/25/heartbleed-and-rsa- private-keys/)

<comment><USER3> Thanks. Changed from [http://arstechnica.com/security/2014/04/how-i-used- heartblee...](http://arstechnica.com/security/2014/04/how-i-used-heartbleed- to-steal-a-sites-private-crypto-key/).

<comment><USER4> Thank you for including the original URL in a comment. I love the policy of updating the submission to the best URL, but its also nice to know what the original URL was. This is a great solution.</comment></comment></comment>


Plivo (YC S12) announces major price drop - <AUTHOR> https://www.plivo.com/blog/price-drop-with-more-direct-routes-to-carriers/

<comment><USER2> Features link under Voice API is broken</comment>


Best web framework for non-programmer beginners (or kids) - <AUTHOR>

Recently my girlfriend has started expressing an interest in programming.  Just for some hobby projects, simple website ideas to collaborate on with me, etc.
As I'm a programmer, I'd like to gently introduce her to html, css/javascript, and some simple controller/model/db stuff, but as simply/gently as possible.  It'd be a good excuse for me to learn something new, too - I don't think my day-to-day work in java spring would be appropriate - too huge.  She started learning Ruby on codeacademy but I'm concerned that Rails might burn her out since I've heard the initial learning curve on that can be brutal.
What do you think is the best framework to pick if you're trying to introduce web programming to a non-programmer?  We're biased towards a pro language that we can use on Macs, but otherwise agnostic.  Also curious what you'd recommend for a kid's first framework since I have similar questions about my godkids and nieces (all in the 8-14 age range). <comment><USER2> For your gf, I'd recommend Sinatra. Starting with HTTP basics is a pretty good idea and there's not a lot hiding that in there. You can put your whole app in a single file and expand on that later, add models etc. You might not even go there and switch to the JavaScript (CoffeeScript?) branch pretty soon, where Sinatra basically does do the REST backend.

For kids, it's a bit difficult, especially given the wide age bracket (14-year old basically can form their own startups…). I would recommend Python over Ruby there, though. No Starch Press has a good "Python for Kids" book (as far as I can tell), listed as 10+. That seems to do a few small GUIs (tkinter) and games first. Probably more interesting in the beginning.

For teaching web programming, I'd just make a simple super-framework, i.e. just a few pages on top of a "real" framework (flask?), that allows them to do the same stuff some of us did in BASIC way back when. So at first a simple PHP-like inline python (cf. eruby) template page where they can create output dynamically. Then maybe a ready-made form handler that forwards to a "result" page so that they can play with input handling.

One could theoretically do a lot of what the aforementioned book does from within a web page context, i.e. start with canvas-based games. That would really make CoffeeScript preferable, unless one were to look for an even simpler transpiled language.

</comment><comment><USER3> For kids it has to be more "visual" appealing.. Check out Kudos for [http://research.microsoft.com/en- us/projects/kodu/default.as...](http://research.microsoft.com/en- us/projects/kodu/default.aspx) , but that is for programming.

For Web Development, i think you just need intrest and start from zero. I think your girlfriend is old enough to learn how to research things. Help her understand the documentation so she can do it on her own and get to you when she has real trouble. (eg. learn her to Google efficiently :P)

Why don't you create an controller which results things as json, give her a basic responsive template and let her develop something with jquery (eg. a todo list), that should give some basic understanding.</comment>


SSH login without password (authorized_keys) - <AUTHOR> http://diffract.me/2009/07/ssh-login-without-password-authorized_keys/ <comment><USER2> This article is somewhat out of date. Modern OpenSSH distro's include 'ssh- copy-id', a single command to transfer, and append one's key to the remote list ofauthenores keys.

So:

Step 1:

        ssh-genkey

Step 2:

        ssh-copy-id user@host

Done.

<comment><USER3> Actually, step 1 is:

        ssh-keygen

<comment><USER2> You're right. I'm used to verb-noun commands, which are more popular in Unix, and the only option in Powershell.

</comment></comment></comment><comment><USER4> Some more SSH tips

1\. Use SSH connection multiplexing

If you are connecting to same computer multiple times, this saves up quite a bit of time [http://www.revsys.com/writings/quicktips/ssh-faster- connecti...](http://www.revsys.com/writings/quicktips/ssh-faster- connections.html)

2\. Use autossh

For a persistent ssh connection (ex. for reverse tunnels) [http://www.debianadmin.com/autossh-automatically-restart- ssh...](http://www.debianadmin.com/autossh-automatically-restart-ssh-sessions- and-tunnels.html)

</comment><comment><USER5> 1) You should definitely create a passphrase for your private key (you should only be asked to unlock it once due to ssh-agent). Otherwise if someone gets hold of your private key they can login to any machine you have set up an authorized_keys entry on.

2) use ssh-copy-id to install your public key on a remote (and fix up the permissions on ~/.ssh etc. which for me is the #1 case of key based login not working).

<comment><USER6> _and fix up the permissions on ~/.ssh etc. which for me is the #1 case of key based login not working_

DOH! I just spent the past 15 minutes trying to figure out why it wasn't working until I stumbled upon my .ssh directory having worldly permissions. Was just about to come here and post the same thing. chmod 700 is your friend!

<comment><USER7> ssh -vv (with more or fewer vs) is also your friend. IIRC it tells you about the permission error either there or in the sshd log, and you can also find a lot more errors in the -vv output.

You should run ssh -vvv on a normal, working connection at least once to get a sense of what normal output is.

</comment></comment></comment><comment><USER8> He also flubbed using ssh-agent. Usually it is run from the login script once. You then do a ssh-add to add your identity to it. Once that is done you don't need to enter your password for that session anymore. You can even allow ssh on other systems to access your agent so you can ssh to another machine, ssh from that machine to a 3rd which will use your agent for the key info.

Never leave your key without a passphrase!

A good series of articles on ssh bt Brian Hatch can be found here - <http://www.hackinglinuxexposed.com/articles/20021211.html>

</comment><comment><USER9> I connect to remote machines several times in a typical workday, and this helps to save a bit of time. Furthermore, it allows some non-obvious behaviour, like closing the connection as soon as I did what I wanted. This avoids leaving a ssh session open in which you may erroneusly type a command intended for your local machine. An "svn up" on the wrong machine car ruin your day.

</comment><comment><USER10> Isn't that a bit of a security issue? One machine in the network hacked, they are all gone? Then again, hacker's could just install keyloggers if they get hold of one machine. But it would be a bit more effort.

<comment><USER11> Speaking of which:

 _According to the MAN documentation for ssh-keygen, host keys must have an empty passphrase, so just leave it blank._

We're not making a host key here, are we? Shouldn't a passphrase be employed?

</comment></comment><comment><USER12> Obscuring his public key tells me this guy doesn't quite understand what the point of public-private key encryption is.

<comment><AUTHOR> I know the public key is supposed to be public, hence no point in obscuring. I just got carried away ;)

<comment><USER12> My apologies if I offended you; I just wanted to point it out.

<comment><AUTHOR> No worries. I don't take anything personally ;)

</comment></comment></comment></comment><comment><AUTHOR> Thanks for all the tips, everyone :D</comment>


Google Begins Testing Display Ads in Gmail - The Atlantic - <AUTHOR> http://www.theatlantic.com/technology/archive/2011/01/google-begins-testing-display-ads-in-gmail/70355/ <comment><USER2> (imo) Just another sign that Google, like any other big company, is being overrun by incompetent PowerPoint slinging managers with stupid ideas, optimizing for short term results. Or maybe they are just running out of ideas as the company bloats and ages. See the catch-up-to-bing-with-junk-UI-redesign efforts for example.

If this is a success then one more small step and we'll get image ads for search. The same justifications(and PowerPoint Decks) can be reused with minor tweaks.

This does seem like bait and switch, as jacquesm points out. Sad, but IMAP + Adblock should be enough as a short term fix I guess.

I haven't yet used AdBlock on Google ads because they are largely unobtrusive text ads, but if this junk starts showing up in my Inbox I will.

Longer term Google needs some decent competition, especially in the search space. Too dominant a position in any market is fertilizer for hubris.

<comment><USER3> What pushed me into using Adblock is that every so often adds turn out to be security problems. Sure, it is rare and fixed quickly but if they show up in my gmail account, which I use for authentication, I will start looking for another email service.

Anyone know of a great, secure and add free email service?

<comment><USER4> This is a good point. If and as they proceed, they'd better run more than the usual level of due diligence to insure they don't become a vector for something nasty.

Google properties are some of the few I let through without a lot of filtering (Gmail in particular). If it looks like they are becoming a vector, this will lessen their utility for me and I will tighten the hatches on them.

(Of course, I suppose this factor won't apply for 99% of their users. We may be the outliers having no statistical significance. At least, until something big enough and bad enough slips through.)

I have mixed feelings about blocking advertising that provides supporting revenue, but two factors override: Motion (and occasionally, sound), that completely and thoroughly distracts me from the page content and which, over prolonged exposure, leaves me "frazzled" and ineffective; and malware. (Also, when graphics are overwhelmingly "bright" compared to the content, I need to dial them down.)

Nothing that hasn't been said a thousand times before, I suppose.

<comment><USER3> I too fear we are outliers.

But surely there must be a market for people like us who are also more likely to be high earners and tech opinion setters. And surely there must a way for a company to build trust and explain how/when/where advertising will be displayed that is acceptable to people like us, and everyone wins. Market opportunity?

<comment><USER4> I've thought so. Haven't gotten my act together, yet, though, with respect to tackling it.

EDIT: I guess that can sound kind of narcissistic. But, this is a forum with a start up focus. So I feel I have some license to at least think in that direction. :-)

</comment></comment></comment></comment></comment><comment><USER5> I'd love to see the effect that these ads have on the users of Gmail, both from Google's statistical end and also from a customer sentiment angle.

Gmail has touted the clean and simple feel as one of their main features for so long that users may come to expect that of Gmail now. Understandably Google has the right to show these ads considering it's a free service but will their users see it the same way?

Could this open the field back up for new email competitors?

<comment><USER6> On a personal note (and I'm not seeing them at this stage - just checked a few emails), the graphic ad _per se_ won't bother me. I use Gmail personally, in basically the same headspace I use Facebook - I doubt Gmail ads will phase me if they become as graphical and ubiquitous as Facebook ads, and frankly they'll get just as many click-throughs from me (read: zero).

What does concern me is the point you raise about the fact that Gmail "touted the clean and simple feel as one of their main features". In a world of garishly fugly html emails, my inbox is rarely clean and simple, but Google changing their position on this does create a market opportunity. And not everyone will feel as non-impacted as I do.

I also agree with you that Google has the right to do this in their own free service - if they want to, they can go for it, and if that creates a competitor, I look forward to another webmail battle.

</comment></comment><comment><USER7> Bait and switch. At least it took a few years.

This is typical, I remember when gmail was rolled out and the lack of display advertising was touted as one of the big advantages over competitors (the others were a very large amount of storage and a really effective spam filter).

Let's see if the competition uses this as a way to get an edge over google.

<comment><USER8> Yeah damn them for giving the world an awesome free email service and then having the audacity to try and make some revenue from advertising. They should be thoroughly ashamed of themselves. Scratch that, they should be done for fraud.

I want my money back!!! Oh wait...

<comment><USER7> Right. When you launch a service and point at the competition and say 'look, no display ads, come join us' then you will be reminded of that when you change tack later.

That does not diminish the quality of the actual service and does not diminish the right of google to try to make as much revenue as they can.

It's just a good reminder that corporate promises amount to very little.

<comment><USER8> Can you cite a reference there? I never heard GMail being touted as "Like the competition, but no display ads". I was a fairly early user, and never heard it talked of like that. Infact I remember the opposite - they got quite a lot of flack basing the advertising on the content of your emails.

Some references to these "promises" would be cool also.

Personally, I don't use GMail because it doesn't have display ads, I don't care about advertising, sometimes it's useful, sometimes not. I like seeing it, because often it is useful.

I use GMail because it's a fantastic email client. Search is instant, features other email clients only dream of. etc etc. A display ad doesn't take away from that.

There's a line of acceptability with advertising. Display ads is still extremely tame and non intrusive. When they start doing popups, popunders, video ads with sound, the underlining of keywords with popup contextual ads, etc... _then_ I'd be up in arms too.

<comment><USER7> > Can you cite a reference there?

No, this is not an academic paper.

But I distinctly recall the case being made that 'hotmail' and 'yahoo' mail had interfaces that were considered inferior not because of their technical capabilities but because of being loaded up with advertising and that this was one of googles major plus points. The fact that the advertising was based on the contents of your emails was the flipside of that coin at the time so that's what people based their decision on.

> Some references to these "promises" would be cool also.

Another thing that google promised (and that I distinctly remember) was that they wouldn't do 'paid placements' in the results, they broke that promise and weaseled through the cracks by putting a little background colour on the ads.

(for instance: <http://www.google.com/search?q=black+socks> shows an ad for blacksocks.com as the first result for me the first time I hit that search)

> Display ads is still extremely tame and non intrusive. When they start doing > popups, popunders, video ads with sound, the underlining of keywords with > popup contextual ads, etc... then I'd be up in arms too.

Ok, so we'll wait for a while then we simply draw the line in different places.

Youtube now has video overlay ads and leaders on some videos, I don't see anything keeping google from doing the same.

I no longer use gmail, I got a few ads that showed just a bit too much insight in to the contents of the email than what I'm comfortable with. I do still have a gmail account because I use it to log in to a bunch of google services but no more gmail for me, I'll take the bit of extra spam that I get as the price to pay for that decision.

And my email client (thunderbird) does not show any advertising at all, keywords or otherwise.

<comment><USER9> _Another thing that google promised (and that I distinctly remember) was that they wouldn't do 'paid placements' in the results, they broke that promise and weaseled through the cracks by putting a little background colour on the ads._

There's a huge difference between paid placement and ads--labelled "Ads"--that correspond to search results.

<comment><USER7> The google of 2000 would _never_ have polluted their search page like that. Not to mention all the google owned property links in the search results (and those are not labeled 'ad').

<comment><USER8> That's just because in 2000, they were trying to get as much market share as possible. Also they probably didn't need to get more revenue at the time.

It sounds like you're trying to argue that Google has abandoned their core beliefs, or been overrun with profit driven accountants or something.

I'm pretty sure the "get users, then figure out revenue" is a very widely used strategy. Google are just more on the second part than the first...

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> 1\. Install an email client of your choice: Outlook, Evolution, Thunderbird, etc.

2\. Enable IMAP access in GMail settings [https://mail.google.com/mail/?ui=2&shva=1#settings/fwdan...](https://mail.google.com/mail/?ui=2&shva=1#settings/fwdandpop)

3\. Configure your client <https://mail.google.com/support/bin/answer.py?answer=75726>

Done, now I can check my email without ads! I can even (depending on client & configuration) search emails with my platform search tool: Spotlight, Windows Search, etc.

</comment><comment><USER11> From [http://searchengineland.com/google-testing-display-ads-in- gm...](http://searchengineland.com/google-testing-display-ads-in-gmail-62623):

 _We're always trying out new ad formats and placements in Gmail, and we recently started experimenting with image ads on messages with heavy image content._

Interesting. I wonder what 'image-heavy' is; attached images, or embedded images that get blocked anyway...

<comment><USER12> Google wants to target more (and better-converting) display advertisements on daily deal subscription emails (ie. Groupon, LivingSocial), which always feature plenty of images and style and are incredibly lucrative.

</comment></comment><comment><USER13> I only really use gmail as a spam filter anyway, forwarding mail to another account, so I avoid seeing any banner ads or other nonsense.

My advice to any Google people who might be reading is to keep gmail as clean looking as possible, and avoid image based ads (especially animated ones).

</comment><comment><USER14> Remember, folks: A/B testing a feature does not equal large-scale deployment. The question isn't whether this move is right, or wrong, but rather, is a statistically significant proportion of the target demographic going to click through to justify the PR loss?

<comment><USER8> Yes. The CTR and revenue for image ads is way above text ads. This is a good move.

By "PR loss" I assume you mean "geeks moan for an hour or 2 on hacker news" ;)

</comment></comment><comment><USER15> I wonder how many people would pay 3 dollars a month for a clean, usable webmail interface for their domain.

<comment><USER16> Some would, but most people would continue to use a free service. It would have to seriously be causing the average user a pain to have them switch. More likely would be another free service that could be the gmail of years past and they would slowly become what gmail is today.

</comment></comment><comment><USER17> How many of us actually access gmail via gmail.com anymore? It's an exchange account on my phone, which syncs all of my contacts, and my calendar, and an IMAP account on my desktops. The only time I ever actually sign into gmail.com is when I need to set up a new filter (if I sign up for a new mailing list or something), or if I want to use gmail's search.

</comment><comment><USER18> I think the average person minds ads much less than the average programmer/technical person. Just my personal experience. An online example would be the constant barrage against advertising on Reddit, which you don't really see in communities with different demographics.</comment>


2015 Silicon Valley Index [pdf] - <AUTHOR> http://www.jointventure.org/images/stories/pdf/index2015.pdf <comment><USER2> My of my friends from college are about 30 and living in Silicon Valley. The cost of purchasing a house is enormous there (1.5+M), so many are considering moving to other parts of the country. A few have moved already. (The report didn't mention this topic)

</comment><comment><USER3> Great report. Thanks for posting.

Lots of interesting insights possible, but my (brief) highlight of it:

[https://twitter.com/p10q/status/563076490641027076](https://twitter.com/p10q/status/563076490641027076)</comment>


Show HN: PumpkinDB, an event sourcing database engine - <AUTHOR> http://pumpkindb.org <comment><AUTHOR> It's a lower-level "database engine" that allows you to build different types of higher level databases based on a very simple foundation:

1) BTree-based K/V engine (which gives you an ability to iterate over lexicographically sorted keys) 2) Strong immutability guarantees (data can not be overwritten) 3) ACID transactions 4) Server-side executable imperative language that gives you a control over querying costs

In a sense, it's as much of a database constructor as different MUMPS systems (GT.M, for example: [https://en.wikipedia.org/wiki/GT.M](https://en.wikipedia.org/wiki/GT.M))

PumpkinDB also aims to provide a good set of standard primitives that help building more sophisticated databases, ranging from hashing to JSON support, and more to come.

<comment><USER2> Thanks. I read the entire "Documentation" page and still didn't feel confident that I understood what this really was. "Event sourcing" to me implies that it's generating events.

<comment><USER3> Event Sourcing is a technical term, it's the idea that instead of mutating your database, you should instead have a log and insert a new log entry saying that you changed this value to that, etc. The idea is that this helps you do cool stuff like temporal queries (i.e. make a query "as the entire database looked like a month ago") or look at historical values and changes of things. This matters a lot in some fields. Of course then there's the matter of how to do this efficiently. You can build event sourcing on top of a regular RDBMS but if there is database-level support (as in PumpkinDB), then maybe some things are more efficient. Read more:

[https://martinfowler.com/eaaDev/EventSourcing.html](https://martinfowler.com/eaaDev/EventSourcing.html)

<comment><USER4> Virtually every db works like that under the hood. They expose it differently, though. Kafka has nothing but log, for example.

<comment><USER5> They do but it's usually not exposed in a useful way. Postgres once had this feature... [https://www.postgresql.org/docs/6.3/static/c0503.htm](https://www.postgresql.org/docs/6.3/static/c0503.htm)

<comment><USER6> We actually expose something to support event sourcing: [https://www.postgresql.org/docs/current/static/logicaldecodi...](https://www.postgresql.org/docs/current/static/logicaldecoding.html) \- although that's very different from the old time travel feature.

Edit: missing word

</comment></comment></comment></comment></comment></comment><comment><USER7> I like how every commit message is formatted as a problem and a solution: [https://github.com/PumpkinDB/PumpkinDB/commits/master](https://github.com/PumpkinDB/PumpkinDB/commits/master)

<comment><USER8> Indeed, it's a neat "hack" to force yourself to write better commit messages. I think this style of commit messages originated from the zeromq community: [https://github.com/zeromq/libzmq/commits/master](https://github.com/zeromq/libzmq/commits/master) [https://github.com/zeromq/zproto/commits/master](https://github.com/zeromq/zproto/commits/master)

<comment><AUTHOR> Yes, I picked this style up form Pieter Hintjens

</comment></comment></comment><comment><USER3> Very interesting! I think one thing that this would benefit from is a lot of usage examples, especially around pumpkinscript. I was reading recently about MUMPS and Caché and it's interesting to see a modern implementation of similar ideas.

One question - what is the storage layout like? Do you have plans to support efficient range queries at all?

<comment><AUTHOR> We definitely need better documentation! That's for sure. We only did a basic one just to get the basics out.

As for the layout -- everything is built around btree k/v, and the original idea behind PumpkinDB is to give primitives that are useful in building databases, indices in particular. The expectation is that, over time, we will grow our library to have more sophisticated primitives, including ready-made indices of different kind.

Does this help?

</comment></comment><comment><USER9> Written in Rust :) Inspiring, I am learning Rust now to try implementing HDFS- like storage.

</comment><comment><USER10> What's an actual use-case for this? I am reading the documentation but still don't see why I should use it and what the actual advantages compared to current solutions are.

<comment><AUTHOR> It was built as a kind of a database constructor for event sourced / journalled systems. It's design inspiration is largely stemming from MUMPS which provided a great ("oddly productive") combination of a database and a programming language.

Being a constructor it's also a great tool for building applications with a better control over querying mechanics (since everything is actually described in PumpkinScript)

</comment></comment><comment><USER11> I don't get this whole "never overwrite data" thing, including Datomic, for example.

Isn't the disk space needed for these schemes enormous?

<comment><USER5> I have reservations, too: it's important to be able to remove data even though disk is cheap.

* Removing very old data is a reasonable hedge for user privacy.

* Sometimes confidential data makes its way into the data set and needs to be removed.

* Old event data is often not useful but can impact performance or cost just the same. For example, one needs to allocate an EBS volume on AWS volume with a certain level of performance; but the cost of that is `IOPs * GBs`, not `IOPs * useful GBs`.

* Replicating and backing up the dataset takes longer and longer as the application grows.

<comment><AUTHOR> I agree, this is an importabt aspect.

Our plan in PumpkinDB is to add key value association retirement, subject to defined retirement policies.

</comment></comment></comment><comment><USER12> Holy cow it's in Rust.

I'm doing a thesis in Classification Trees, doing R and hoping to do the backend of the R package in Rust (it looking to be C++). I'll look through the source code of this to see it's tree implementation. Probably used the rust standard library's implementation of BTree?

<comment><USER13> Documentation says they use LMDB for the backend. Looking over the documentation, it looks like you could readily use pumpkin be directly to implement the database/datacaching scheme and interface with it from R. Unless your thesis is on implementation of B-trees, definitely try bootstrapping on something like this first. BTW, lmdb provides memory mapping which can be very fast for computations.

</comment></comment><comment><USER14> Where would I use this in place of, say, Kafka and Samza?

</comment><comment><USER15> Looks very interesting. I'd love to use it once it supports Akka persistence. Is this on the roadmap?

</comment><comment><USER16> What an interesting commit message format.</comment>


I heard you like numbers... Numbers from 37signals - <AUTHOR> http://37signals.com/svn/posts/3076-i-heard-you-like-numbers

<comment><USER2> "And a Basecamp user uploaded the 100,000,000th file (It was a picture of a cat!)"

Aren't you supposed to treat user data as confidential and not examine the contents?

<comment><AUTHOR> The file was named cat.jpg and that was logged, which was what we saw. We do not look at user's files.

<comment><USER3> Terribly bad judgment to post that. Like apparently numerous others, that bit caught my eye and made me pause and reflect on the downside of SaaS.

Even looking at the filename seems pretty suspect, as an aside. What if the filename was BankruptcyPreparation.docx, or TerminationOfBobDobbs.pdf, etc? The metadata about a file should be confidential as well.

<comment><USER4> I won't comment on whether or not it was wise of them to post that information, except to say that plenty of other services have posted much more revealing data without backlash of any kind.

What I will question, however, is the assertion that looking at user filenames is suspect. That's _easily_ fair game, and to claim otherwise is as ridiculous as claiming your dentist has no right to see your dental records, or your bank shouldn't know how much money is in your account.

If you're that protective of your data, then it's up to you make wiser decisions. For starters, don't name your files SuperSecretPrivateInfo.doc and then give them to other people to store. Take a look at their extremely readable privacy policy. Send them an email with questions. If you care so much, take action and stop blaming other people for your own laziness.

<comment><USER3> Plenty of other services have shown indiscretion about their client's data. That doesn't validate this case, especially considering that many of us look to 37signals as essentially the poster boy of leading behaviors.

We expect more from them.

I am not trying to be argumentative but want to respond to a point you made as I think it is critically important for many HNers running or aspiring to run SaaS solutions-

"If you're that protective of your data, then it's up to you make wiser decisions. For starters, don't name your files SuperSecretPrivateInfo.doc and then give them to other people to store."

For real? I guarantee that 37signals would not sanction such a ridiculous statement. Most SaaS companies wouldn't touch such claims with a 40' pole.

The industry lives and breathes on the feeling that the data is confidential. We're currently looking at some hosted helpdesk ticket solutions, and I can tell you that if there was even the slightest hint that the vendors casually browsed our data we would rethink the whole adventure.

<comment><USER5> Cat.jpg from an unknown user of Basecamp. This tells us nothing about anyone. Get over it.

<comment><USER6> It tells us that they looked at customer data, and that's a really, really big deal to people who are doing serious business that involves private information that is: (1) regulated by government, and/or (2) has significant commercial value.

You can waive your arms and talk yourself blue in the face about your security protocols, but in the end it all comes down to trust. This kind of slip-up erodes that trust.

<comment><USER5> > It tells us that they looked at customer data

Have you ever supported a product that has external users? Eventually have to see their data in some way, shape, or form. Whether it be a username, email address, ip address, user-agent strings, filenames, etc; there are times when troubleshooting, verifying functionality, validating report data, etc where you will have to look at at least some subset of actual customer data somewhere. It is simply unrealistic to think otherwise.

How would you go about providing customer support or auditing without looking at the customer data required to complete such tasks?

(edited to add quote)

<comment><USER6> And announcing the content of the one millionth file upload is serving the customer how?

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Inspiring numbers for a bootstrapped, private company, and a strong reminder that if you're building a business there are viable alternatives to the SV funding cycle

<comment><USER8> They got funding from Jeff Bezos.

<comment><USER9> As I understand, the owners sold a portion of their equity to Bezos. The company didn't raise money from Bezos to fund operations. Big difference.

<comment><USER10> Exactly. This was _after_ three of their four major products had been released:

[http://37signals.com/svn/archives2/bezos_expeditions_invests...](http://37signals.com/svn/archives2/bezos_expeditions_invests_in_37signals.php)

They didn't need his money, they wanted him.

</comment></comment></comment></comment><comment><USER11> These numbers are mind-boggling. I'm a subscriber to a few 37signals products but never knew they had so much usage.

Thanks for posting the stats.

<comment><USER12> Those numbers tell you almost nothing. That's the entire point of the post. Big meaningless numbers.</comment></comment>


React.Component vs. React.createClass - <AUTHOR> http://reactjsnews.com/composing-components/

<comment><USER2> If you are using ES6 class syntax, then I would think you would also be using const / let; and if you are using const / let, then FlowTypes is, for me anyway, borderline unusable because it still does not support them (although there is apparently a fork with pseudo-support, if you want to deal with that):

[https://github.com/facebook/flow/pull/431](https://github.com/facebook/flow/pull/431)

</comment><comment><USER3> Why the heck would you not want all that juicy ES6 ES2015 goodness?

<comment><USER4> No one stops you to use ES6 notation in React.createComponent methods.</comment></comment>


Dataflow computers: Their history and future (2008) [pdf] - <AUTHOR> http://csrl.unt.edu/~kavi/Research/encyclopedia-dataflow.pdf <comment><USER2> Cool review! We have been looking at custom dataflow for floating-point computations -- [http://dx.doi.org/10.1109/TCAD.2011.2173199](http://dx.doi.org/10.1109/TCAD.2011.2173199) and [http://dx.doi.org/10.1109/DFM.2014.21](http://dx.doi.org/10.1109/DFM.2014.21) but the big challenge has been handling dataflow graphs larger than chip capacity can hold.. Caching doesn't really work well as the dataflow wavefront proceeds along multiple separate paths.

</comment><comment><USER3> [2008], the author has quite a few more specific papers in the field as well (just remove the filename from the URL to see a list)

</comment><comment><USER4> I really wonder if dataflow machines could genuinely be a feasible commercial processor.

Software is moving more and more towards this type of programming model, from the reactive stuff to even HPC. OoO cores are already small dataflow processors, but their instruction window does not seem to scale. Is x86/arm just too much of a semantic bottleneck? All the dependency information available to a compiler/runtime is lost when code-generating to x86 (same for ARM), yet a processor core needs to extract the same information again in hardware.

<comment><USER5> > but their instruction window does not seem to scale.

The issue with scaling instruction windows really has more to do with (i) the scheduling logic and (ii) the physical register file than it does with ISA semantics. In particular, the scheduler is usually quite expensive to scale, because it needs to compare each completed result against the not-yet- fulfilled sources on waiting instructions.

> All the dependency information available to a compiler/runtime is lost when > code-generating to x86 (same for ARM), yet a processor core needs to extract > the same information again in hardware.

I think this is a bit different than what you describe above w.r.t. software dataflow. When you talk about reactive programming in software, dependences are things like event streams or promises that become fulfilled. That's very different from (say) an individual 32-bit register value flowing from producer to consumer instruction, and the compiler usually only knows about the latter type of dependence. Perhaps you're envisioning a different type of reactive/dataflow programming framework though, like maybe chaining together arithmetic transformations or something similar lower-level?

\---

All of that said, there has been some interesting work in compiling conventional software down to a more "dataflow-like" architecture. See e.g. the TRIPS project at UT Austin [1] from about 10 years ago -- the idea there was to build a fabric of execution units connected by a mesh interconnect on the chip, and then stream data through.

[1] [https://www.cs.utexas.edu/~trips/](https://www.cs.utexas.edu/~trips/)

<comment><USER4> I was indeed more thinking of the fine-grained dataflow or event-driven tasks, in the style of VAL/SISAL or very recently OCR ([https://xstack.exascale- tech.com/wiki/index.php/Main_Page](https://xstack.exascale- tech.com/wiki/index.php/Main_Page)).

I heard there were some fundamental problems with TRIPS, but never got any detailed explanation. Any idea what it was? Is fine-grained dataflow still too much overhead to do in hardware or was there something else.

There were some dataflow-critique papers back in the 80-90s, but most of their points seem moot these days: low transistor occupancy (compared to the 90%+ of the simple RISC microprocessors) and high cost of associative memory needed for the token matchers. These days, we are working with billions instead of 10k transistors and commonly ship processors with megabytes of associative memory in the form of SRAM cache.

<comment><USER5> Cool, I have some more reading to do -- thanks for that link!

My understanding of TRIPS is that compiler complexity is an issue -- it depends on being able to chunk the program into hyperblocks with fairly high control locality (i.e., remain in one hyperblock for a while), because the transition cost is higher than a simple branch on a conventional superscalar. In the best case this can be great (32 ALUs worth of ILP, IIRC) but in the worst case (e.g. large code footprint) this can degrade terribly.

IIRC there are some more practical issues too -- e.g., the ISA is specific to the microarchitecture (because it explicitly maps to ALUs in the fabric), so binary compatibility is an issue.

All that said, still a really interesting idea, I think.

</comment></comment></comment></comment><comment><USER6> Write purely functional programs in continuation-passing style and you already have something that looks verry close to dynamic-graph dataflow programming, no?

<comment><USER7> If you mean a lazy functional program, then the difference is that those are generally demand-driven. You execute a thunk, and it executes thunks that it needs. In most dataflow models, computation is availability driven, in that thunks which can run will do, and when they complete they will enable other thunks which needed those values to now run.

<comment><USER6> You're right, I meant 'strictly' rather than 'purely' there (hate that bit of jargon, btw). Unfortunately 'continuation-passing style' was probably the wrong choice of words too: I meant 1) the restricted language with only tail calls, no evaluable arguments etc., not 2) the method (thread the continuation through the code, etc.) used to encode arbitrary functional programs into 1). Naturally 2) produces programs which run in 1), but not usually _idiomatic_ programs in 1) (while otoh idiomatic/arbitrary programs in 1) may be side- effect-free, but they're not usually really _functional_ in the sense of equational reasoning/term-rewriting).

AFAIK you can encode either the lazy or eager variants of functional programs into 1), while 1) itself is effectively "super-eager" as it just doesn't permit any arguments that need evaluation except where explicitly delayed inside a lambda, right?</comment></comment></comment>


React's JSX: The Other Side of the Coin - <AUTHOR> https://medium.com/@housecor/react-s-jsx-the-other-side-of-the-coin-2ace7ab62b98

<comment><USER2> Not sure about this.

The irritation is about what we may expect to be another quoting level (e.g., back-ticks) is implemented as plain code. By doing so, the language specs are dramatically inflated by the addition of HTML grammar. We may note in this context that in JS the DOM-interface is _not_ part of the core language, but kept a separate implementation.

<comment><USER3> JSX is a separate spec. [https://facebook.github.io/jsx/](https://facebook.github.io/jsx/)

"It's NOT a proposal to incorporate JSX into the ECMAScript spec itself. It's intended to be used by various preprocessors (transpilers) to transform these tokens into standard ECMAScript."

Anyway, I really like this article. It pains me every time I have to deal with angular templating.</comment></comment>