Knuth versus Email (1999) - <AUTHOR> http://cs.stanford.edu/~uno/email.html <comment><USER2> I had an uncle who was a vice president at a fortune 50 company. The executives at the company were not allowed to have a computer at their desks. They all had secretaries who dealt with email, calendars, spreadsheets, etc. The point was that if they were sitting behind a computer doing time consuming clerical work required to interact with a computer, they were being distracted from much more important tasks. The company was more interested in having people at that level who could delegate and organize than to actually do the work themselves.

The skills and kind of work that makes a person successful at one level often leads to lack of success at another.

<comment><USER3> While I agree with your premise about different types of work, and while I agree there's some level of clerical work required to interact with a computer, computers can do far more than clerical work, and can provide intellectual leverage when used properly. Banning a high-level executive from using something that gives them intellectual leverage holds the organization back.

<comment><USER4> You have to think, people - especially senior executives at fortune 50 companies - don't like being arbitrarily held back when they have a job to do. If they want to use a computer, I imagine that these ambitious people would fight the CEO tooth and nail to get access to one. Probably people on the board whom the CEO is politically motivated to please are also banned from using these computers.

People tend not to ban things before they're widely used and cause some sort of problem. I imagine there was a time at his company where his executives used computers. People would have a memory of the time before the computer ban, and compare it every day to the time after the computer ban.

These executives probably had stellar track records, had the motivation to do better, had the previous experience of using computers, had political sway, and still failed to convince the CEO.

And yet, with nothing more than a brief description of the abstract idea, and a firm belief that computers are valuable, a Hacker News commenter has been able to diagnose that it's holding their company back.

That's not to say that CEOs can't make bad decisions, but we don't even know what the company does or what they sell. Probably neither of us have worked there. It seems a little premature to rebel at his decision.

</comment></comment></comment><comment><USER5> I was reminded of RMS's autoreply:

I am not on vacation, but I am at the end of a long time delay. I am located somewhere on Earth, but as far as responding to email is concerned, I appear to be well outside the solar system.

After your message arrives at gnu.org, I will collect it in my next batch of incoming mail, some time within the following 24 hours. I will spend much of the following day reading that batch of mail and will come across your message at some point. If I write a response immediately, it will go out in the next outgoing batch--typically around 24 hours after I collected your message, but occasionally sooner or later than that. Please expect a minimum delay of between 24 and 48 hours in receiving a response to your mail to me.

If your message is hard to understand or responding takes real work, the response could take longer.

So please wait 48 hours after sending a message before you resend it, remind me about it, or ask if I have received it. If it has been less than 48 hours, the absence of a response from me only means you have not given me time to answer.

If you are having a conversation with me, please keep in mind that each message you receive from me is a response to the mail you sent 24 to 48 hours earlier, and when writing it, I probably had not yet downloaded your later mail.

If you are in big hurry to speak with me, and one day's delay would be a serious problem, you can ask my FSF assistant to phone me. Send mail to <rms- email@example.com> saying what you would like to talk with me about, and giving your telephone number. You can also call the Free Software Foundation office at 617-542-5942 (weekday Boston business hours) and ask them to phone me on your behalf. If it's really important, try both!

An intermediate measure is to email me your phone number and ask me to phone you.

But if there isn't enough hurry to warrant phoning me, please don't bother the FSF people. The mail you already sent me will reach me before any mail they could send me now on your behalf. I will respond as soon as I can.

To contact the Free Software Foundation, use one of the addresses in [https://www.fsf.org/about/contact/email](https://www.fsf.org/about/contact/email).

If you do not wish to receive this message ever again, please send a message to firstname.lastname@example.com with the subject "OFF". Otherwise, you might receive a reply like this one up to once a month.

<comment><USER6> So he's self-centered enough that he expects everybody to read through all of this essay. Interesting.

<comment><USER7> Actually, back in the 80s, people normally wrote email of about that length, and since gaming was uncommon, had the leisure to read well-written prose from their peers.

Sometime around 2000, busy people started complaining about this practice, and old timers started to hold their tongues. I knew the era was over when my Millennial co-worker one cube away asked me to not interrupt him and IM him instead, since he had to take off his earphones. About the same time, my boss complained about how long my (senior engineer, explaining matters related to the immanent demise of the company...) emails were -- frankly managers were busy and 1-2 sentence ought to explain about this O-ring problem.

Your projection of self-centeredness on the part of your elders is unbecoming and ill-informed. You are merely young.

rms is just old school.

<comment><USER8> I am young. RMS has written a very simple email, well laid out and information dense. There is no external referencing and it is easy to skim read.

I find most "short" messages lack key details, requiring me to either search out more information, request a clarification, or abandon the conversation (due to anticipation of the pain continued communication would cause). This is more time and mentally expensive to me than reading a longer more precise message.

</comment></comment></comment></comment><comment><USER9> I don't really understand why people become so anti-email. I'm a deeply introverted person, so it's not like I don't understand wanting to be left alone, but if I don't want to be interrupted... I close my email viewer. The asynchronous nature of email makes it great for introverted people. I used to get a TON of email at one of my prior jobs, and, like, it was fine. Just wait till it's convenient to open it. If it's actually urgent they'll call or send an IM.

I'm not accusing Knuth of this, but I think some people just use email as a way of humble-bragging. "I'm so important it's overwhelming!" Yeah wow. We're all so impressed.

<comment><USER10> > I'm a deeply introverted person

That there might be why you haven't learnt to hate Email (or other forms of asynchronous communication). If you want to learn to hate, try running a few mildly successful Open Source projects. Or try participating in other lame company flame email thread.

The fundamental problem with email (and other forms of asynchronous electronic comms including Github pull requests and Facebook messages) is there's little burden on the sender. The entire burden is carried by the recipient. It's too easy for the sender to turn impulse into wasting someone else's time. Snail mail at least costs a stamp and a trip to the letter box.

TLDR: Right now email doesn't scale

<comment><USER11> Email has been scaling just fine for years. And I've run some reasonably successful open source projects (including SpamAssassin at the height of its success). I really don't see the problem.

The fact that an email is easy to send without knowing the recipient is a huge benefit of email. No other electronic communication system offers this benefit (and unfortunately it enables spam, but that's an entirely different discussion).

<comment><USER12> The whole point is that it enables spam, broadly interpreted to include unsolicited mail of all kinds.

</comment></comment></comment></comment><comment><USER13> "Email is a wonderful thing for people whose role in life is to be on top of things. But not for me; my role is to be on the bottom of things." Wow!

<comment><USER14> I think that many of us have jobs in which we have to be both "on top of things" and "on the bottom of things" to varying degrees.

For example, when I'm trying to write a tricky piece of code, it goes much better if I can shut out interruptions like Knuth does and concentrate on the task at hand. If people expected me to reply immediately to their non-urgent e-mails, it would be a lot harder to concentrate.

Also, people who expect me to answer their e-mail or phone call immediately are making the presumption that whatever they have to ask me is more important than whatever I currently happen to be doing. In most cases, it's not.

</comment></comment><comment><USER15> Previous HN discussion of Knuth's email containing anecdotes of people's experience interacting with him: [https://news.ycombinator.com/item?id=2537624](https://news.ycombinator.com/item?id=2537624)

</comment><comment><USER16> So I'm guessing he's not on Slack?

<comment><USER17> Hard to tell; Slack doesn't let you know who's online, what they've read etc.

<comment><USER18> Slack lets you know who's online.

<comment><USER17> You're right - I had to dig around to find it (on the Android app). It's nowhere near as clear as it is in Facebook Messenger. (And of course there's no `read to here`).

</comment></comment></comment></comment><comment><USER19> "The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man." \--George Bernard Shaw

<comment><USER20> Wow! That looks like my new favorite quote

</comment></comment><comment><USER21> There is something that feels disingenuous about taking a conscientious position against email, and then saying that you do actually use email, just by way of a "human spam filter" instead of an automated one.

With that said, I certainly recognize the need for very-deep-focus jobs to be uncoupled from the "right-now" pace expectations of email. So I think Knuth is making a smart decision for the kind of work he does (and one that could be useful to other people in similar lines of work), but he's just presenting/explaining it poorly.

It's sorta like the person who proclaims "I don't have internet access, and I'm better off for it", and then goes on to say that they have a personal assistant whose job is to handle all their online accounting/shopping/research/etc for them. Maybe they personally are better off for their particular workflow, but the really _are_ using the internet, just by proxy, and their implied value statement about themselves compared to people who _do_ use the internet (directly) is not really valid.

<comment><USER22> He is very specific when he said that the only incoming email he welcome is about bugs and errors in TAOCP. Also he doesn't rant against email, just explained why is not for him and encourage people to use regular mail to communicate with him.

</comment></comment><comment><USER23> Book "Deep Work" contains some great thoughts on this topic, talking about Knuth too.

I made an app that shows you how often you check your email: [http://focuslist.co/escape/](http://focuslist.co/escape/) (and other distracting websites)

<comment><USER24> Looks neat. I tried to download from the MAS, but I use the incompatible 10.10, and I don't want to upgrade my OS. Is there a way to download it regardless?

</comment></comment><comment><USER25> I've read this a long time ago and it seems to be still mostly true! A more recent statement of Knuth about email is here: [https://www.youtube.com/watch?v=QS8qwMna8_o](https://www.youtube.com/watch?v=QS8qwMna8_o)

</comment><comment><USER26> Knuth has a point. Although I use email and couldn't work without it, I think we haven't yet realized email's insidious invasion of our world, and its pernicious change of our work habits. Suddenly the Inbox has become a tyrant dictating our daily schedule. Since when do others have priority over our time and attention, expecting immediate replies to their intrusions?

Companies and organizations have not yet grasped the negative impact on productivity that email has wrought. Like drinking from lead goblets in another era, it's going to be a while before we get it. We need email, but it needs to be put in its place.

</comment><comment><USER27> He was still on email. He just delegated the work to someone else. Sounds like a good arrangement for someone with his level of contribution. I'd rather he didn't spend his limited time reading his junk mail either.

</comment><comment><USER28> _The form ``email '' has been well established in England for several years, so I am amazed to see Americans being overly conservative in this regard. (Of course, ``email'' has been a familiar word in France, Germany, and the Netherlands much longer than in England --- but for an entirely different reason.)"_

I sense there's a joke here. Did anyone get it?

<comment><USER29> It's not a joke -- email (or émail in French) means enamel or glaze in those languages.

<comment><USER30> Canada too at least the French parts but anywhere here you can buy spray cans of émail in English is enamel.

</comment></comment></comment><comment><USER31> Before everything was wired to the internet in the late 1980s, UNIX and bboard message apps were as popular as email. You were either there to get the message or it didnt matter. I see mobile message apps enjoy a resurgence in the past decade.

</comment><comment><USER32> Knuth does read emails and reply them, the only difference from the rest of us is that he may do it on print out of original emails, and usually in batch.

</comment><comment><USER33> He's old, and he's notable enough that people put up with his eccentricities.

<comment><USER34> That statement works fine, perhaps even better, without "he's old".

</comment></comment><comment><USER35> The existing comments are already largely meaningless, so I'll add another meta comment:

Is the use of "versus" in the headline correct in English? There isn't anything adversarial going on here, it is just his email policy.

In other places "versus" even seems to be used as a synonym of "and".

<comment><USER36> > There isn't anything adversarial going on here

On the contrary, this passage sounds quite hostile:

> If I run across such a message that was misaddressed --- I mean, if the > message asks a question instead of reporting an error --- I try not to get > angry. I used to just throw all such sheets in the wastebasket. But now I > save them for scratch paper, so that I can print test material for The Art > of Computer Programming on the blank sides.

</comment></comment><comment><USER37> Anybody know the year of this? It was posted in 2007 ([https://news.ycombinator.com/item?id=81289](https://news.ycombinator.com/item?id=81289)) and [https://news.ycombinator.com/item?id=9997073](https://news.ycombinator.com/item?id=9997073) has 2003 in the title, but it's likely even older. The delightful Eco quote was from 1995.

<comment><USER38> Another date for you: there's an HTML comment in the <head>

        <!-- Changed by: Ursula N. Owen,  8-Mar-1999 -->

It's possible that it's referring to the HTML skeleton, not the article itself.

<comment><USER37> Bravo for finding a bit of actual textual evidence. Let's use 1999; it's at least an upper bound.

<comment><USER39> Actually I heard of him stopping to use email during the late 80's and such

<comment><USER37> That's consistent with cpr's post. But the article was clearly written later.

</comment></comment></comment></comment></comment><comment><USER40> After catching dust for 15 years on my bookshelf, I sold the 3-volume edition of The Art of Computer Programming this week through a used book service. No regrets.</comment>


What Would Democracy Look Like if it Were Invented Today? - <AUTHOR> http://elidourado.com/blog/democracy-invented-today/ <comment><USER3> This again. It's a bad idea. It will always be a bad idea.

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

The reason we have representative democracy is not because of scaling factors.

It's because direct, voluntary democracy usually leads to utter failure. Our ancestors, who studied a tedious problem-domain subject called "History", could examine the case studies and draw this conclusion with some confidence.

There are better places to direct your attention if you don't like the outcome of the current system.

For example, should the power to create the laws and the power to appropriate funds be vested in the same body? Hayek wrote an interesting hypothetical Constitution based on this simple question.

My pet peeves are all around voting systems. For instance, voting in most countries is voluntary. That has well-understood failure modes.

And the UK and the USA have first-past-the-post voting. Which is ... just dreadful, actually. Arrow's Theorem shows that there is no "perfect" voting system possible, but some are definitely better than others. FPTP is not high on such lists.

Special footnote for the UK and other Parliamentary democracies -- winner- takes-all electorates are a feature, not a bug, because of the fused executive. Somebody has to govern, in Westminster systems, that somebody is the majority party in Parliament. Proportional Representation is terrible at forming stable governments that can get any time to focus on the purely administrative side. Ask the Kiwis.

<comment><USER4> Ask the Kiwis? I admit that I'm a kiwi and so I don't have a clear perspective, but I've never considered our Parliament to be be particularly unstable. Certainly there's a bit of horse-trading around election time, but not much. The advantage is that parties like the Greens have a much fairer slice of the influence.

<comment><USER5> I agree. MMP as in Germany and NZ looks pretty good to me (I'm in Australia, with preferential winner-takes-all as the grandparent post would seem to advocate as better). I have never seen any evidence for the 'impossible to govern' line, which seems to be pulled out by big parties with a big desire to retain the status quo (In the UK they even pulled out this argument to much effect against preferential/alternative/instant-runoff voting, which seems crazy from Australia)...

I'd agree that compulsory voting is good though. In Australia we also tend to vote on the weekend, which I think is also important and probably overlooked.

<comment><USER3> I like the Australian approach. We almost always form a government quickly with the Senate acting as a reasonable check on legislative adventurism. The poms have it better with the House of Lords, but I don't think a similar institution can be engineered ab initio, it's an evolved body. The Canadians tried, I understand they don't regard it highly.

I'd fiddle with the Senate formula to allow more minority parties into the mix (for the past few decades it's settled into a stable tripartite pattern, 2 majors and a minor).

<comment><USER6> Speaking as a Canadian, the Senate is little more than a retirement program for friends of the party (which party is of little consequence). The party that currently holds power spent years talking about Senate reform, only to revert to the status quo once they got into power. Thus, the Senate rubber- stamps legislation, but no one seriously discusses what goes on in that body, because I think that it is generally understood that it doesn't make a difference.

</comment></comment></comment></comment></comment><comment><USER7> I think the biggest problem with an "always on" system like this is that without well-defined election periods, people's tendency to be fickle would surface and wreak havoc on progress.

Imagine people vote to construct a bridge, and the vote passes by a narrow margin. Then, 3 months later when people first get hit with the tax that pays for it, many of them decide that's it's more money than they want to be spending, and they change their position on the matter. Now we have a partially constructed bridge that sits because the people who voted for it changed their mind.

Part of the reason that periodic voting works for us is that it allows a block of time for the new policies and projects to be executed without interruption. If voting happened continuously, no one would ever be able to develop a flow, and the system would feel a lot like an old man driving a car. _jerk forward, stop, jerk forward, stop, jerk forward...._

<comment><USER8> You don't generally need a new law to pay for a bridge, just vote on the legislature.

<comment><USER7> Of course, but I was working under the assumption that this guy's theory was to replace ALL democratic votes, whether on laws or legislature, would take place asynchronously and through the internet.

Either way, the point stands.

</comment></comment></comment><comment><USER9> This is a terrible idea, because it allows voters to be coerced. Any voting system that exposes who voted for what has this problem, even if vote-buying is technically illegal. It happens on a small scale with absentee ballots, where dependents can be coerced by their spouses, parents, or children. It could happen on a much larger scale if the voting records were public. Think of the social implications from people's churches, their friends, or their employers if voting records were public.

Allowing votes to be explicitly sold would be even worse. It would lead to much more control by special interests and the powerful. For someone who is poor, selling their votes as a package deal for a chunk of change in the short term would seem like a great deal. In the long term, they've probably just made their future even worse. Who knows what the end-game would be in this system, but it's almost guaranteed to be miserable for almost everyone.

<comment><USER10> Well-picked, I missed that altogether. Publicly-visible voting is very bad for a fair system. On a re-read, I notice another fundamental flaw: "voting on every issue is too onerous, so voters will assign their votes to someone, a 'politician' to vote for them" -> "a single bad vote will scupper that politician's support". If the voters don't have the time to inform themselves and vote on every issue, then how on earth are they going to have the time to analyse each of their selected politician's choices? There's no real offload here.

</comment></comment><comment><USER11> There's a scale between 100% direct democracy and 100% dictatorship/plutocracy. I think most of the current republics are significantly closer to the latter than the first, as besides voting once every 4 years in most countries, there isn't much the population can do to help shape political decisions (other than protests and media scandals, but those don't really have much to do with direct democracy).

So the specifics can be discussed, but I think in principle we need to get a lot closer to the direct democracy spectrum (while still preserving representatives and allowing them to have the final word, legally, to maintain the idea of the republic - but have a much more democratic republic).

I also think that campaign donations are basically an alternative "voting system", and it's currently extremely skewed towards the people with a lot of money. We have the "equal vote" system, but the "money voting" system is not equal at all, and I think it should be, to equalize the influence one person can have on a certain politician. Therefore donations should be limited to say $100 per person, and only people can donate. Companies can not.

I don't buy the idea that a company needs free speech. When a company uses its wealth to buy elections, it's not really the idea of all the people working in that company - only of its bosses. But besides, only people should vote - <USER2> entities. This should be a fundamental principle in any democracy. If most people in the company would actually agree with their boss - then they should just donate their $100, and vote for that politician. There's no reason to have people as a group or as an entity vote directly, or vote indirectly through money.

<comment><USER3> > _There's a scale between 100% direct democracy and 100% > dictatorship/plutocracy. I think most of the current republics are > significantly closer to the latter than the first, as besides voting once > every 4 years in most countries, there isn't much the population can do to > help shape political decisions (other than protests and media scandals, but > those don't really have much to do with direct democracy)._

This is by design. Bodies politic which begin as "100% direct democracy" tend to transform themselves into "100% dictatorship" with alarming regularity.

That this is a common historical pattern was already old hat in Plato's time.

<comment><USER10> Direct democracy is also more plausible in an age where you only have 10k voters (we exclude the women, the poor, foreigners, slaves, the unsound, etc) and the issues of the day are pretty simple to understand and become informed about. The classical Athenians didn't have to worry about smog, so they didn't need chemical, industrial, or environmental specialists that deal with these things to come up with potential plans. It's not to say they didn't have issues, just that the scope is much, much broader now.

</comment></comment></comment><comment><USER12> That sounds like liquid democracy: <http://en.wikipedia.org/wiki/Delegative_democracy>

There is an implementation of it: <http://liquidfeedback.org/> and it is used by many Pirate Parties (mostly informally but - I've heard the Italian Pirate Party uses it as the sole governing body).

</comment><comment><USER13> _Conditional on the premise that the majority should govern in the first place, I think this sounds like a reasonably attractive system._

Not necessarily the case. The problem even has a name: "Tyranny of the majority" [1].

I'd argue that decisions in government should be made by a majority vote, _with each person's vote being weighted by the impact the decision will have on them_. Currently, we have the idea that everyone should have an equal vote. Yes, determining the weightings verges on the impossible, but is there someway the Internet might make it possible?

Note that such a scheme would make the concept of "nation" and other levels of government irrelevant. Local decisions would automatically be make by a local cluster of people, whilst decisions with a global impact would be determined by a larger group.

<comment><USER14> _I'd argue that decisions in government should be made by a majority vote, with each person's vote being weighted by the impact the decision will have on them._

Proposal: the government should take $1 from every person and give to me.

Determining the weightings is straightforward: I get 300 million votes, each individual besides me gets 1 vote (since the impact on me is 300 million x greater than the impact on them).

An exaggerated example to be sure, but your proposal will drastically increase the power of special interests.

<comment><USER13> Yep. Chances are my proposal would just shift the bun fight from deciding the decision to deciding the weightings. I'd contend that the weightings shouldn't be based on $, but I'm sure those with lots of $ would disagree. I'm just fantasisng that the net might be able to produce some measure of the impact of decisions, similar to the way that social graphs can be traced and relationships/influence calculated.

</comment></comment></comment><comment><USER15> I'm sure many people in this comment thread would say that this is a terrible idea. But lets say we had a different type of structure in the UK and someone drew up the current system for the UK - no doubt it would look like a terrible idea.

Democracy appears to be the least worst system we have, with varying implementations of it (as with Communism, varying implementations existed or exist each with their pros and cons).

If a system looks great on paper, chances are we've missed something.

</comment><comment><USER16> It is nearly a description of "Liquid Democracy"

<http://en.wikipedia.org/wiki/Delegative_democracy>

<http://globalfree.wordpress.com/2011/11/06/liquiddemocracy/>

<http://en.wikipedia.org/wiki/LiquidFeedback>

</comment><comment><USER17> I'm pretty sure that a lot of the government can be decentralized and automated with technology. Instead of lines and offices, people could do things online. Instead of publication requirements in newspapers, or requests for data by mail, things could be published online.

So what do we need government of cities, etc. to really do?

I guess I'm going to suggest more of a minarchist vision with government playing the role of fulfilling the minimum expectations of the people.

Suppose the entire population really needs something (clean water, education, medical insurance, housing etc.)

Then the government should be able to pay for the basic amount of it (primary education, basic nationalized health insurance, etc.) through a single payer system. By using their collective bargaining power, the country's consumers could form a monopsony to achieve really affordable prices for these basic goods and services for everyone.

But, this would only be subsidized up to a point. For example, the first $10k per year of education per child would HAVE to be bought by the government. If you wanted more, you could simply buy it on the private market.

In a sense, this is the basic welfare state which leverages the power of collective bargaining through a single payer. But everything is out in the open, including the budgets. Everything we value as a society would be openly budgeted and justified on the internet.

The other part of what government does is regulations. Here we have a question of whether they need to force businesses to not do something. For example, if a building is not built up to code, should the government just condemn it and not allow anyone to use it, or should it simply require the building to advertise its shortcomings and let people decide whether to use it anyway? If a workplace has unsafe conditions, should the government force a shutdown or force advertising of the unsafe conditions?

Any system we where we give power to the government to expand its powers on our behalf, use could be hijacked by swaying the majority of voters little by little -- which is different from the majority of the people, because not everyone votes. The problem for example if very few people vote to close a particular program, or are even aware of its existence, but many people can motivate the expansion of a program by giving it new things to do.

In a sense, it becomes more and more costly to operate a democratic government over time, and we don't have effective systems to scale it back.

<comment><USER3> > _By using their collective bargaining power, the country's consumers could > form a monopsony to achieve really affordable prices for these basic goods > and services for everyone._

Australia has managed to get a monopsony for many pharmaceuticals via the Pharmaceutical Benefits Scheme. It costs the taxpayer an enormous amount of money, but it's cheaper in terms of percentage of GDP spent on pharmaceuticals.

<comment><USER17> Can you elaborate? When you say it costs the taxpayer and enormous amount of money, are you saying that something about the monopsony caused the taxpayers to pay more than they would have otherwise? Or are you talking about some hidden costs?

<comment><USER3> I'm saying that the PBS literally costs a lot of money to the taxpayer because the subsidised medicine is funded out of the Commonwealth's taxes.

But if you look at pharmaceuticals as a percentage of GDP, it's cheaper for Australians to pay for the PBS through tax than for pharmaceuticals to be bought directly. That's because the Commonwealth has enormous purchasing power. It can and does alter the bottom line of multinationals by tens or hundreds of millions of dollars by including or excluding drugs from the scheme.

</comment></comment></comment></comment><comment><USER18> This is almost exactly the project I have started:

[https://bitbucket.org/djarvis/world- politics/wiki/Interests%...](https://bitbucket.org/djarvis/world- politics/wiki/Interests%20Page)

Feel free to contribute your ideas to the wiki.

</comment><comment><USER8> The same idea is proposed here: <http://www.jadeleaf.co.uk/voting-is-bad>

</comment><comment><USER19> I wonder if a similar concept could be adopted to run a company.

<comment><USER20> One company that fascinates me is the John Lewis Partnership - this is a large (~40K employees, ~£3.5B turnover) upscale retailer in the UK that manages to be both rather successful while being an employee owned "partnership" that appears to allow employees a reasonable say in the running of the company while still have a strong management team.

They even have an explicit constitution:

"The Constitution states that 'the happiness of its members' is the Partnership's ultimate purpose, recognising that such happiness depends on having a satisfying job in a successful business. It establishes a system of 'rights and responsibilities', which places on all Partners the obligation to work for the improvement of our business in the knowledge that we share the rewards of success."

[http://www.johnlewispartnership.co.uk/about/our- constitution...](http://www.johnlewispartnership.co.uk/about/our- constitution.html)

[I particularly enjoy the irony of a retailer famed for being the favourite of the upper middle class being a workers co-operative].

</comment></comment><comment><USER21> > An alternative would be for the state to pay a salary to every proxy in > proportion to how many principal-votes he casts throughout the year

Seems pretty good, I'd be interested in ideas in how you could game this system.

> An even more intriguing possibility would be to allow any and all side > payments and let the market determine compensation. Citizens could pay > politicians directly for their services, or politicians could pay citizens > to be allowed to represent them. Proxies could have a policy of negotiating > a price for their votes and then distributing the proceeds to their > principals

This strikes me as a horrible idea, especially allowing politicians to pay citizens to be allowed to represent them. Where do they get that money besides lobbyists? It couldn't be from their proportional salary or the payment would be too tiny for anyone to care. There are way too many people who would happily sell their votes to whoever payed the most. This is unfortunate but it's precisely the problem a republic is supposed to balance.

This is the same reason you wouldn't want citizens to pay politicians for their "services". Too many people wouldn't care about anything but paying nothing or as little as possible. A modern updated democracy should strive to be about giving citizens equal democratic power with no bias towards class.

One issue not really addressed here is that you can't invent a system like this as if all actors are rational and self interested. You have to assume that a large percentage are completely apathetic, will act against their own self interest and the interested and powerful use every manipulative and dishonest tactic possible to game the system.

Another is how you would stop political parties from dominating the landscape, which is likely closely tied to access to television airtime. You would need some system of free airtime (and no privately paid political advertising allowed) for politicians with a minimum percentage of public support (who else is singing the Bulworth rap in their head now?).

You still probably wouldn't stop big political parties from emerging and using a common brand to succeed, especially with apathetic voters.

And I'm fairly confident that too much proportional representation would quickly result in a tragedy of the commons effect for a lot of things. Taxation policy would get interesting really fast. Unpopular minority groups would be in constant danger without a very strong court system. You're entire society would be much much less stable.

Other than that the whole idea of using proxies to implement a republic where citizens can directly vote on those issues they care about and let a representative proxy vote for those they don't (or don't understand) is fascinating.

Then again, I also find systems where you elect only a local representative and those representatives elect the next level and those elect the next, etc. to also be fascinating and that's nearly the opposite of a system like this.

<comment><USER22> > Citizens could pay politicians directly for their services ... This strikes > me as a horrible idea

It doesn't strike me as completely horrible. Lots of people all making small contributions is basically the kickstarter model. Prospective politicians could pitch thier platform on kickstarter or the like.

> Where do they get that money besides lobbyists?

But if politicians are perceived to be captured by lobbyists, they'll get fewer votes delegated to them, and then will be of less interest to these lobbyists. I don't see this as worse than the current, quite similar, lobbying setup. Maybe not much better though.

> how you would stop political parties from dominating the landscape

Maybe, but that doesn't make this proposal worse than the current setup where political parties dominate the landscape. Nor does it show that this is always something to be avoided.

<comment><USER21> > It doesn't strike me as completely horrible. Lots of people all making small > contributions is basically the kickstarter model. Prospective politicians > could pitch thier platform on kickstarter or the like.

It would work for some, and kickstarter is good proof of that, but what about all those who don't give a shit? _Everyone_ has to pick a proxy (or all those who want to vote anyway) so the field will be dominated by the free options. If there are no free options allowed then this is basically a poll tax and is truly awful for a democracy.

> But if politicians are perceived to be captured by lobbyists, they'll get > fewer votes delegated to them

Will they? Why would people act differently than they do now?. The results of a large scale test called every democracy tried so far has shown that that's not the case. You are assuming rational self interested actors participating in this system rather than human beings.

> Nor does it show that this is always something to be avoided

True, I was taking that as a given in any new system since it's a well discussed problem. A lot of the discussion around this idea assumes having a lot of politician/proxies competing for votes, but the party system has been shown to be the perfect method of keeping competition to a minimum, so I assumed you would need to limit party power in some way in order to get competition. But you are absolutely correct that it is not really related to this post except tangentially.

</comment></comment></comment><comment> barry-cotter Switzerland</comment>


Ask HN: Does your company do internal developer conferences? - <AUTHOR>

Is this something that a lot of companies do? I've recently noticed a few companies that have publicly written about having an internal developer conference (for example http://www.rackspace.com/blog/leveling-up-developers-at-rackspace/) and am wondering if this is a common occurrence. I know that there has been several times when I've attended conferences where I wished that a certain group of people could have seen a specific talk because they could have learned a lot. That group is also the least likely to want to attend conferences, so having something company wide would kind of force them into it. I can also see the benefit of forcing developers to share ideas between departments. So I think it is a really interesting idea.
I'm also not sure how you get enough people that are willing to speak. Many devs I know don't want to do public speaking or don't think they have anything to say. I also don't know how difficult it would be to get management buy in for such a thing.
Obviously this doesn't make as much sense for startups, but for larger companies it might. If you have any experience with such a thing I'd love to hear about it. <comment><USER2> Disclaimer, I'm a dev at Rackspace and helped run 2015's instance of the internal conference example linked in OP.

Speaking only from my own experience, this kind of internal dev conference can be especially useful for large companies (like Rackspace) that have teams of developers spread across the world, who may never otherwise work side-by-side. You mentioned management buy-in: a key selling point is that even outside of the talks+workshops, an internal con provides a discrete, intentional space for these spread-out teams to work together for a few days, outside of the pipeline of their "regular" work. Essentially you are bringing the benefit of hackathons & sprints to internal projects, using the structure of a conference for framing.

As far as "how to get devs to speak" \-- lots of devs do like speaking (or teaching workshops), and maybe it's easier to do that for an audience of immediate peers and coworkers? But for many public speaking IS hard, and a way to mitigate that barrier is to consider the idea of an unconference [1]. When you move away from the standard tech talk format (stage, mic, podium, etc) and towards an "unconference session" (white board, circle of chairs, participant- set agenda), you can get a surprisingly high level of participation.

I'd be interested to hear of any experiences with this kind of thing at a smaller company, but essentially I think the core advantages (sprints, intentional technical discussion, knowledge exchange/training) are things that can be scaled up or down at will.

1) e.g., [http://transparencycamp.org/about/tips/](http://transparencycamp.org/about/tips/)

</comment><comment><USER3> At VMware we have an annual conference called RADIO (Research and Development Innovation Offsite), I haven't been myself but everyone I know who's been speaks incredibly highly of it. Here's a blog post[1] from a couple years ago that gives a little insight into it.

[1] [http://blogs.vmware.com/cto/radio-a-different-kind-of- high-p...](http://blogs.vmware.com/cto/radio-a-different-kind-of-high- performance/)

</comment><comment><USER4> I haven't seen internal conferences, but I have seen a number of smaller companies (even startup sized) creating internal knowledgebases on best- practices, how-tos, etc. Some times in Wiki form, some times as just a shared google-drive folder full of writeups. Not quite a conference, but they serve a similar purpose.

<comment><AUTHOR> Yeah, I've seen the wiki thing quite a bit and think it's a good thing. I guess part of the reason why the conference idea intrigued me is that it's not easy to actually get people to go read those pages when they're just links sent out in an email. I've actually tracked some of the links I've sent out and a 10% click rate was pretty common. There could be a lot of different reasons for that so I can't necessarily draw any specific conclusions. However, if you took a day and told people you have to go to one of these presentations maybe they'd actually pick something up.</comment></comment>


The 446 People, Places and Things Donald Trump Has Insulted on Twitter: - <AUTHOR> https://www.nytimes.com/interactive/2016/01/28/upshot/donald-trump-twitter-insults.html <comment><USER2> 'member when NYTimes wrote news articles?</comment>


Show HN: Jolie – The First Programming Language for Microservices - <AUTHOR> http://www.jolie-lang.org/ <comment><USER2> How does this differ from say Erlang and OTP? (conceptually)

<comment><AUTHOR> Right, excellent question. We should put something in the FAQ. It's going to take some time to answer properly, but here are some initial pointers. Note that while I know Erlang academically I am definitely not an expert, so feel free to add more comments if you like.

Both languages are based on message passing, but Erlang is functional whereas Jolie is classical imperative/stateful.

Jolie provides architectural programming, e.g., you can make proxies abstracting from the behaviour of what you are composing with a language primitive.

Jolie provides integration natively, e.g., with automatic data transformations between different data protocols. The contract with the developer is that if you need to change protocols or deployment information (e.g., switch from TCP/IP to Bluetooth L2CAP or in-memory communication), you just have to change a couple of lines in the deployment part of a Jolie program and the rest will continue working without modifications to the program logic (logic/deployment decoupling).

Jolie has dynamic fault handling: fault handlers can be updated at runtime compositionally (higher-order code composition), which is afaik a new thing.

<comment><USER3> None of those concepts seem unique to Jolie compared to Erlang, but I have yet to understand the concepts of Jolie well enough to figure out if something is conceptually different.

Architectural programming: gen_server is a fine example.

Integration: Erlang is opinionated but as soon as you have a lens to erlang terms, everything is easy. This is the point where Jolie may have an advantage.

Dynamic fault handling is subsumed by dynamic code loading.

<comment><AUTHOR> I would be very interested in seeing a comparison with gen_server, it looks interesting.

Embedding in Jolie looks like a language primitive implementing something that resembles some of the ideas found in supervision trees.

AFAIK, dynamic fault handling is not subsumed by dynamic code loading in the specific case of request-response operations in parallel code ([http://iospress.metapress.com/content/p0647559l8455778/?issu...](http://iospress.metapress.com/content/p0647559l8455778/?issue=1&genre=article&spage=73&issn=0169-2968&volume=95), see my webpage fabriziomontesi.com/research.html for the pdf), but if that's relevant for the comparison with Erlang, I don't know. In all other cases your statement is correct. It's subsumed also in that case if you allow for dynamic code loading in the middle of waiting for a response for a request in a request-response invocation.

Another point which may be interesting: in Jolie a process inside of a microservice can have many input queues. Which messages go in which queue is decided by (an easier form of) correlation sets, basically a declarative part of the program where the programmer tells which parts of messages identify the queue in which they must go. These can be application data or even HTTP cookies, we use this features a lot for integration.

<comment><AUTHOR> It looks like another interesting difference may come from the workflow primitives (e.g., sequence, parallel, input choice) that Jolie comes with.

</comment></comment></comment></comment></comment><comment><USER4> In my experience the biggest frustration when building microservices is the replicated logic across multiple languages/frameworks. For example if my microservices are in node/io.js and my app a rails app, then I can't replicate my model logic in my node services. Have you done anything in the jolie language to help this problem?

<comment><USER5> > For example if my microservices are in node/io.js and my app a rails app, > then I can't replicate my model logic in my node services.

Why would you want to do this? If something is the responsibility of one service, why is another service or app duplicating its logic?

<comment><USER6> Perhaps several layers of input data validation? Typically the problem is that you want the client side (ie: javascript) to do form validation for early- feedback to the user, and the back-end to do actual input filtering/validation -- but I suppose one might want to push input-errors/validation-errors as far out towards the input as possible -- also in case of a web of micro-services? Things like allowing only utf8, or maintaining data integrity for relationships (eg: in order to add dependants to a person, those need to be defined with some kind of minimal data, like a social security number?).

I am a bit puzzled as well -- I normally think of this as a problem of synchronizing back-end and front-end -- but then again, if you have a proper SQL-schema, with a thin REST-layer abstraction/API on top, you'd probably have to have other services know about your models in order to do input-validation before attempting to post/insert/update data?

<comment><AUTHOR> What we can do right now is having a microservice for input validation and call it when we need to validate something, both from the client and the server parts. In Jolie, adding calls to a validator for all functionalities exposed by a microservice is easy with courier constructs ([http://docs.jolie- lang.org/#!documentation/architectural_com...](http://docs.jolie- lang.org/#!documentation/architectural_composition/couriers.html)).

However, if your client application is a web app, that may mean generating a lot of traffic between clients and web server.

In theory, we could make a tool for automatically propagating validation checking from Jolie to client code, but that's a hard problem because some checks depend on information that only the server knows, so sometimes you need to make remote calls anyway. Not all hope is lost, because in many cases a static analysis could tell us what can be safely exported to the client and what cannot.

</comment></comment></comment></comment><comment><USER7> Looks interesting, but "It is used in Computer Science research and teaching at many universities around the world." turns into "It's had papers about it published by the same handful of researchers for the last decade" when you actually look at the references.

Consider toning down the sales pitch and focusing on the language.

<comment><USER8> We are in the middle, you know :-) Usually the academic part ask to us to focus more on the research topics instead of the language details (they usually call them "details" :-)).

We believe both of the aspects are very important. There are formal models behind the language which are, and will be, very useful for building analysis and verification tools

</comment></comment><comment><USER9> For anyone who is interested, the implementation is as an interpreter and runtime implemented in Java[1].

[1] [http://sourceforge.net/projects/jolie/](http://sourceforge.net/projects/jolie/)

<comment><USER10> Is there a git repo anywhere, out of curiousity? (Perhaps I'm being blind?) This looks interesting..

<comment><USER11> Like marktangotango wrote, the official repository is at [1]

May I ask why you prefer git? For cloning/forking the project?

[1] [http://sourceforge.net/projects/jolie/](http://sourceforge.net/projects/jolie/)

<comment><USER10> > May I ask why you prefer git? For cloning/forking the project?

Not that it's difficult to break out of the cycle, and download a tarfile and so on but.. Yeah, creature of habit... git's part of the workflow these days.

(for better or worse!)

</comment></comment></comment></comment><comment><USER12> wow really well done, now need some code samples in definitely languages to illustrate this :)

<comment><USER11> I recently posted here[1] a tutorial on how to implement quicksort as a service in Jolie. I think it could be a good starting point to learn some of the main features of the language.

You can find a good deal of examples also in the official documentation [2].

[1] [https://news.ycombinator.com/submitted?id=thesave](https://news.ycombinator.com/submitted?id=thesave) [2] [http://docs.jolie-lang.org](http://docs.jolie-lang.org)

</comment></comment><comment><USER13> I stopped reading when I saw the word "SOAP".

<comment><USER14> Why? Most modern tools are pretty good at Json, but SOAP is still everywhere, especially health care. And, current support for SOAP in modern tools could be better (outside of.Net land).

<comment><USER13> OK, from that perspective it makes sense - if there are some APIs you just can't go without. I just don't want to touch SOAP ever again, not even with a 10 foot pole. But maybe if this makes SOAP invisible it could be acceptable - although I don't see how that could be possible.

<comment><AUTHOR> Short answer: we usually don't use SOAP unless it is strictly necessary in your system. We have simpler and/or more efficient protocols.

Long answer:

We do not use SOAP when it is not strictly necessary. Most Jolie programs use SODEP (our own open binary protocol) or HTTP/JSON or HTTP/XML. You do not need to deal with this manually, you just tell Jolie "use HTTP" or "use SODEP" in the deployment part. For example, this is how you expose your service in SODEP:

inputPort MyService { Location: "socket://localhost:80" Protocol: sodep Interfaces: MyIface }

and this is how you get the same thing but in HTTP:

inputPort MyService { Location: "socket://localhost:80" Protocol: http Interfaces: MyIface }

If you use Jolie to provide a SOAP service, it will most probably be completely invisible. You just have to choose soap and you are done:

inputPort MyService { Location: "socket://localhost:80" Protocol: soap Interfaces: MyIface }

Jolie will take care of using the right data formats without you noticing.

If you need to access an external SOAP service, there are many cases in which it can be invisible, but also many other cases in which you will have to tell Jolie some extra parameters in case some extensions or weird details need to be used.

</comment></comment></comment></comment><comment><USER15> Shame its GPL'd.

<comment><USER11> The website is published under creative commons and GPL (code examples) but the Jolie codebase is published under LGPL.

<comment><AUTHOR> Maybe this is a good hint that we should clarify this in the footer. :)

<comment><USER16> Do not mind the other guy. Thank you for making it GPL'd. As a potential user, I thank you.</comment></comment></comment></comment>


Show HN: My first technical manual. - <AUTHOR> http://www.whitemagicsoftware.com/books/indispensable/

<comment><AUTHOR> Today I made my first sale of my first technical manual and I wanted to share the news!

I chose FastSpring as the vending machine because of Hacker News. I included many details about the book, along with a sample chapter, because of Hacker News. I received such good advice from you that I could not help but share and give my thanks.

As a small token of appreciation, I would be delighted to answer any questions you may have about the entire process, from inception to first book sale.

Thank you!

*Edit: For those who are interested in reports, part of the book describes an open source report integration framework. The idea is to write applications such that they can use reports without being tied to a specific reporting tool implementation.

<http://www.whitemagicsoftware.com/software/java/rif/>

<http://www.whitemagicsoftware.com/software/java/rif/api/>

Chapter 15 of the book (also free) describes how the implementation works.

[http://www.whitemagicsoftware.com/books/indispensable/sample...](http://www.whitemagicsoftware.com/books/indispensable/sample_chapter.pdf)

</comment><comment><USER2> Congrats!

<comment><AUTHOR> Thanks, Ashish. (I was visiting Vancouver last weekend; I am from Victoria.)</comment></comment>


Tydlig – Calculator Reimagined for iPad and iPhone - <AUTHOR> http://tydligapp.com <comment><USER2> Great to see more people attacking the underserved math app segment on the iOS.

I'm the author of Scalar ([http://scalarapp.com](http://scalarapp.com)), another calculator replacement for iPhone / iPad. Just tested both versions of Tydlig very heavily, looks like the author ran into lots of the similar math/UI problems as I did when I was working on my app. :) Some approaches he has chosen look similar, some are unique.

Great work, good luck!

<comment><USER3> This looks rather good (sadly no iDevice). Looks as if Apple came up with it, if they weren't so silly with the way they applied their skeumorphism.

I always imagined that if you were aiming for the mathematician market (huge market!!1 /s) you could have an app like that except on a tablet you'd use with a pen. Then you'd just write down calculations and OCR would figure out what you are trying to calculate and do the number crunching (where applicable), and intelligently recognise variables and a lot of different mathematical functions (I just don't like the whole process of going back and forth between my TI and my legal pad). That'd be a mathematician's (or just mine) wet dream.

<comment><USER4> Something like that exists(for android): MyScript Calculator. It's probably not powerful enough for a matematician, but works for me.

</comment></comment></comment><comment><USER5> No RPN. Neckbeard status confirmed.

Calculators are still an unsolved problem for me on glass devices to the point I still religiously carry around an HP50G even though its 6x the size of my phone. Also from some bad experiences, it appears that some "app" calculators are also seriously badly implemented. Even basic trig ops can return stupid values at extremes which makes them untrustworthy. Plus none are reasonably programmable.

My use cases are base conversions, simple CAS stuff, basic engineering calculations, unit conversions, financial (TVM etc) and generic math. I also canned a lot of knowledge in RPL programs over the years from fuel calculations to diagnostic tools and dice rollers etc.

Please can someone solve all these problems (without doing half arsed HP calc emulation).

<comment><USER6> Yes. I really want a decent, pretty, RPN calc on all the platforms I use. Which rules out any HP emulator. I've _got_ several amazing HP calcs gather dust in a drawer; I want something better than that.

I've been pleasantly surprised with the built in calculator that ships with OSX; it's got a decent RPN mode, good keyboard support, and a nice stack display. Not brilliant, but better than what I've found for Windows or Android. :-/

<comment><USER7> I use m48+. It's a decent replacement for my trusty old HP48.

<comment><USER8> Yes m48+ is the best way to have HP 48x. I'd also like to have the emulation of my HP 28S, I'm more used to it.

</comment></comment></comment></comment><comment><USER3> Graphing functionality on a phone reminds me of an old TI calculator. I really don't know why recent OSes (be it on PC, smartphone, tablet) always came with such feeble calculators. It's not like TI calculators are difficult to use. Sure if all you want is add/min/mul/div functionality the TI is essentially a traditional calculator, and then behind that you've got all these nifty graphing utilities. It's not like a graphing calculator app is going to be _that_ difficult to program, or going to be large in size. But no, in 2013, vanilla OS installations are stuck with a calculator app that has less features than that of a computer a few million times less powerful.

(Now I feel bad; bitching and complaining is against the Open Source Spirit).

Edit: I do recall that OSX comes with something similar, except that not many people actually know of it (as far as I can tell, from my friends with OSX).

<comment><USER9> Just a musing: perhaps its considered not as valuable an investment to program since a (the?) primary market is students, and students are probably not allowed to use phones on tests for obvious reasons (internet connectivity, texting questions to each other, overall distraction). However, TI's are state approved or whatever.

<comment><USER10> It's so sad that kids with iphones aren't allowed to use phones on tests. They're being tested in an archaic context for archaic purposes. Under what circumstances are people going to be working without internet access? School has a lot of catching up to do with the real world. :(

<comment><USER11> For any field, there's always some basic knowledge that anyone studying or practicing it simply has to have if they're going to be at all effective. A well-written test should be checking that the students have acquired that knowledge (which can be much of the course content) and can apply it appropriately to problems.

Anyone with an internet connection can easily find out, for example, how to add together two ints in Java. But if someone took an introductory Java course and couldn't do that at the end of it, then they don't deserve to pass because they've clearly not learned what they were supposed to. If they were actually trying to program something and had to look up basics like that every time they used them, they would be so slow as to be completely useless. Or consider someone with a more time-critical job like a surgeon - they can do specific research beforehand but some level of knowledge (surgical techniques, how to use their tools, anatomy, etc.) is simply going to have to be in their head at the moment they need it or their patient could die.

Also, phones and internet access don't just provide knowledge, they're a way to communicate with everyone else in the room. If you want to see if any particular person has actually learned the material, you obviously can't allow that.

<comment><USER12> > If they were actually trying to program something and had to look up basics > like that every time they used them, they would be so slow as to be > completely useless

Isn't that the point of timed tests? You can structure a test such that the person who needs to look up how to add two ints in Java will waste so much time that they wouldn't be able to finish the test. And if they can search for and apply this knowledge quickly enough, then maybe they've proven that they won't be slow if they have to do it in the real world.

My favourite exams were open book but still hard/long enough that if you didn't already know 95% of the material, you simply wouldn't have time to complete it.

<comment><USER13> On the other hand, if you allow outside communication (such as unrestricted access to the internet), you open the door for "I'll pay someone who already knows this stuff to phone in the answers for me" \- which isn't generally an applicable skill in the real world.

As an aside, I hated open book exams - if you were talented and knew the material, you could typically blast through a closed-book examination in half the allotted time and get out of there, while the open-book exams were far longer and more tedious.

<comment><USER14> >"I'll pay someone who already knows this stuff to phone in the answers for me" \- which isn't generally an applicable skill in the real world.

I would argue that this is also a valuable skill. Knowing who to hire, assessing the person's abilities, figuring out if they can actually get the job done in the time allotted. Sure it's not at the same level that a hiring manager at a tech company in the real world would have to make, but then again the normal CS test questions aren't at that level either.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> This really seems much more like a freeform spreadsheet than a calculator to me. Which is also a cool idea, obviously, but I find it interesting no one else has made the same observation.

</comment><comment><USER16> I basically stopped using "calculators" when Soulver and more recently Calca came out. Much easier to use and a lot more flexible.

That said the graphing in this looks quite nice.

<comment><USER6> Wow, Calca is amazing. Thanks for the tip. :)

<comment><USER17> Calca is such a great calculator. I've encountered some issues where it refuses to recompute (systems of equations confuse it when you keep redefining variables), but I suppose that's not what it's for. I love being able to define real functions in it. The documentation is also all composed in Calca, which is helpful.

<comment><USER18> I've seen it be really awkward with whitespace, usually when I think it's not recalculating it's because of a stray or missing space somewhere that's keeping it from seeing that something is an equation (it tries to auto detect between equations and markdown).

The common case for me is that I keep a very short-term personal ledger in it, just the stuff that hasn't hit the bank account yet, like this:

        chequing = (1,000 # current balance
          - 2  # coffee
          - 15 # groceries
          + 2  # Joe paid me back
          ) => 985

But messing up the spacing in any way, for instance like this:

        chequing = (1,000 # current balance
          - 2  # coffee
          - 15 # groceries
          + 20  # Joe paid me back
        ) => 985

(note one fewer space before the closing paren) and now no changes to the values inside the parens take effect on the total after the => (which for non- Calca-using spectators should always auto-update based on changes). I copy- pasted this out of Calca just now and you can see the the total is incorrect.

Sometimes this messes up the syntax highlighting so that it's obvious, but usually it doesn't, and I'm left wondering why it's not updating.

</comment></comment></comment></comment><comment><USER19> Great work. A few thoughts from the initial experience:

I like the linked numbers design. As it reminded me of Bret Victor's work, I was expecting scrubbing to work directly with numbers, which caused occasionally a bit of havoc, but I think you did a right choice of putting linking as the main action - touch design is hard.

The free-form infinite layout gives a mindmap vibe: it's potentially great when you are trying to understand pieces of a problem that you need. The downside is that the canvas becomes a bit of mess quickly.

The other alternative could be a Mathematica style, free-form document, with more restricted flow of equations (and text).

Because the organization becomes a bit of problem, undo is a must and solves a bunch of other problems. I'd implement area selection of equations (initiate with long tap?) to quickly move things around.

Y-axis could auto adjust by default or quick slider scrubbing should work directly for axis max-min values.

You probably want a simple document model as this is something between calculator and full featured computation software. Maybe just save every canvas when user clears/starts new one

All in all, great work!

</comment><comment><USER20> Good to see that Bret Victor's ideas outlined in "Inventing on Principle" start taking some foothold.

<comment><USER21> Impressed to see only one comment, with no discussions, mentioning Bret Victor. His influence is clear on this work.

</comment></comment><comment><USER22> As a Matlab enthusiast, this is probably the coolest thing I've seen in years.

Good job guys, I have high hope for this in the future!

</comment><comment><USER23> The linked numbers are brilliant. Lacking the "in my head" math skills I should probably have, I regularly whip out Excel to solve the kind of use cases you can imagine from the linked numbers in the video.

</comment><comment><USER24> And now for the majority market share, the android version?

<comment><USER25> Just because an OS has a "majority market share" doesn't make it a suitable market. Elegant, minimal premium apps like Clear have done well on the iOS app store, but it's hard to imagine a $5 calculator app getting much interest on Android.

<comment><USER26> Why is that hard to imagine? If the application were released for Android, I would have considered it. I've already purchased several Android calculators. There's no real basis for your claim, but I say this while I also realize I haven't provided sufficient evidence to support why Android would be a better platform. The reason I think a lot of applications like this fail on Android is that the developers first target iOS and then try to port it to Android without really _designing_ for Android. The result is something lackluster that doesn't really work for Android devices.

<comment><USER27> Although you may personally have considered purchasing this calculator on Android. I think he was hinting at the fact that an IOS user is more likely on average to purchase an app and pay a premium for it, hence being more lucrative for developers even with less market share.

"the App Store generated 2.3x more revenues than Google Play."

[http://www.theguardian.com/technology/2013/aug/01/android- ap...](http://www.theguardian.com/technology/2013/aug/01/android-apple-google- play-apps)

<comment><USER28> It's probably not a good idea to make a decision for a specific app based on the average behavior across _all_ apps, unless your app is "average."

A calculator app is an outlier; it is _not_ an average app. It's also an outlier with real _utility_ \--- so it's something people are more likely to pay for.

</comment></comment></comment></comment></comment><comment><USER29> This is great, though there are 15,230 calculator apps on iPhone alone. Tydlig ranks as #443 in the US for 'calculator', quite a tough fight!

</comment><comment><USER30> Looks great. Just needs a new name. Tydlig?

<comment><USER31> (Edit: it is swedish and...) Almost danish/norwegian: Tydelig == Apparent/Clear

<comment><USER32> In German the slang word tüddelig means fiddly or flimsy.

</comment></comment></comment><comment><USER33> This looks much worse than symcalc.

SymCalc has pretty much all the functionality of a TI-89 including solving calculus and algebraic equations.

Tydlig looks like it has a nice ui but it doesn't even seem to support variables....

<comment><USER34> Thanks for the recommendation for SymCalc, I've just downloaded it. I had been using TouchCalc and GraphCalc but this is much better!

</comment></comment><comment><USER35> I love this app, and it's interesting to see the innovation in this familiar space. Oovium for iPad is a great example of fresh thinking. And coming soon, apparently, is the Wolfram Calculator for iPad, featuring user-programmable functions:

[http://mvid.wolfram.com/mobile/dannewman_teachconceptsnotkey...](http://mvid.wolfram.com/mobile/dannewman_teachconceptsnotkeystrokes_archive.mp4)

<comment><USER36> That interface is a bag of hurt, but it looks powerful.

</comment></comment><comment><USER37> If you're mainly interested in having all calculation steps visible and 'linked', there is also a great app called Digits ([https://itunes.apple.com/us/app/digits-calculator-for- ipad/i...](https://itunes.apple.com/us/app/digits-calculator-for- ipad/id364500115?mt=8)) which is at $0.99 right now.

</comment><comment><USER38> For the iphone and ipad? You mean for direct interface devices? (is there any reason this couldn't be applied to non idevices?)

<comment><USER18> Because it's written for UIKit for iOS, presumably in Objective C?

</comment></comment><comment><USER39> _Tydlig supports external Bluetooth keyboards or numpads for really quick entry_

It's been a while since i did any ios development and this was never a requirement for me. Can someone explain why an external keyboard is something that had to be explicitly supported at an individual app level? Surely this should be an OS-level thing?

<comment><USER40> It's not an explicit requirement, but you definitely need to test your app with an external keyboard to polish the experience.

Here's a couple of situations that can get you when supporting an external Bluetooth keyboard:

\- Input accessory view. If you use an input accessory view (bar that sits atop the regular software keyboard), then connecting an external keyboard will cause the software keyboard to hide but keep the accessory view on screen. This is great — but if you had any controls underneath the keyboard (especially on iPad) that required the user to dismiss the keyboard to get to them, then you have to build a way for them to 'dismiss' the keyboard when using an external keyboard.

\- Custom keyboard. You might build a custom keyboard for your app. Connecting an external one will not show your custom keyboard. You'll need to ensure that functionality is still provided when an external keyboard is connected.

There are a few other things like making sure your keyboard view resizing code is robust enough to handle all the possible state transitions ("no input -> software input -> bluetooth input", or "no input -> bluetooth input -> software input", and so on).

If you're just using a standard text view you probably don't need to do anything special. But in this case Tydlig seems to do a lot of special stuff and probably required a bit of extra work to get Bluetooth keyboards running without issue.

</comment></comment><comment><USER41> I love it! Great design and should be very flexible to create simple functions through linked numbers.

Is it really a good idea to allow 96 + 15% though (at 0:45)? Might cause some problems for people learning maths, as it won't work on normal calculators and doesn't really make it obvious what percentages actually are.

<comment><USER42> The New Old Thing has an article on this topic [1]. Personally, I avoid ever using the percent button simply because I can never remember exactly how it will behave.

[1] [http://blogs.msdn.com/b/oldnewthing/archive/2008/01/10/70474...](http://blogs.msdn.com/b/oldnewthing/archive/2008/01/10/7047497.aspx)

</comment></comment><comment><USER43> I was actually working on something really similar. ([http://i.imgur.com/w4F8ms4.gif](http://i.imgur.com/w4F8ms4.gif))

It really is true that at any moment there is probably 4 other teams working on a similar idea as you are.

Well I will not give up. Good luck to you too!

<comment><USER44> Dope interface, I would use that

</comment></comment><comment><USER45> Can we have something other than jingly guitar music for tech videos?

</comment><comment><USER46> On Android you have a choice of TI Calculator emulations

see [https://play.google.com/store/apps/details?id=com.Bisha.TI89...](https://play.google.com/store/apps/details?id=com.Bisha.TI89Emu)

or

[http://www.androidpolice.com/2012/02/15/nostalgia- ti-89-calc...](http://www.androidpolice.com/2012/02/15/nostalgia- ti-89-calculator-emulator-finally-comes-to-android-download-it-while-you- still-can/)

</comment><comment><USER47> Handsdown it has pretty good ui. But i regret buying it, because i can't calculate % seriously why isn't on the front. I have to press folder button to find it.

additionally, I am baffled why do i have to press = to find end result, it should automatically calculate as i enter figure just like my $3 citizen calculator does.

</comment><comment><USER48> So I bought it

Here are my thoughts as I use it (I will add to this comment. Hopefully the kids won't wake up soon.)

Wish there was an UNDO. I just moved a number and didn't want too. Shake to UNDO?

Pinch to zoom in and out. I'm using this on an iPhone.

Can I save a canvas? It doesn't look like, but maybe I'm missing it.

</comment><comment><USER49> This looks closer to Mathematica/Maple/MATLAB than a basic calculator, although still nowhere near the power of those.

Of course 1/0 should be +Infinity, not ?...

(Disclaimer: I have a Mathematica console always open on my desktop, and regularly use it for all kinds of calculations.)

<comment><USER50> Why should 1/0 be +Infinity? Think of 1/x at the limit as x->0 from the left and from the right

<comment><USER26> I still think the 1/0 problem can be solved if we step outside Euclidian geometry. It is undefined for the very reason you give. The Numberphile YouTube channel has an excellent video [1] discussing why x/0 is undefined and worth watching.

[1] [https://www.youtube.com/watch?v=BRRolKTlF6Q](https://www.youtube.com/watch?v=BRRolKTlF6Q)

</comment></comment></comment><comment><USER51> This looks great, for some uses, but I know myself (and a lot of my coworkers) would much prefer a beautiful iPhone calculator that behaves more like a 10-key/adding machine than an iPython notebook.

</comment><comment><USER52> Seems sort of like a slicker Soulver, I'm going to give it a shot.

</comment><comment><USER53> This looks very nice, and I'll probably buy it and Scalar this week, but it did get me to wondering. It would be interesting to see how an APL app would fair these days.

</comment><comment><USER54> Nice work! Would be nice to have more tips on graphing. I spent 10 minutes and still can't figure out how to do graphs. The video on website is pretty helpful though.

<comment><USER54> Never mind... The video is in intro guide!

</comment></comment><comment><USER55> Just a heads up, the inverse hyperbolic trig functions are arsinh, arcosh, and artanh. That's "ar" and not "arc" which stands for area.

</comment><comment><USER8> Which number system does it use? 8-byte doubles or its own library? What are the ranges? On which libraries is it based? Does it have complex numbers?

</comment><comment><USER56> Very cool. Unfortunately, I think the price point is a bit too high (at least for me).

<comment><USER57> $5 for a calculator with updateable functionality?

</comment></comment><comment><USER58> It would be fun to build this as a webapp in JS + canvas/SVG.

</comment><comment><USER59> excellent new idea.

</comment><comment><USER60> beautiful

</comment><comment><USER61> I would just a ipython console Gone is the age of calculator</comment>


Designing database: split into different tables or group them together? - <AUTHOR> I am fairly new to database design and now trying to build my own forum-based application. The app will have nested categories as
countries > systems > levels > subjects
In every subject category, user access the same type of data e.g. user can post and answer a thread, can reply to each answer accordingly. Users can search for topics with particular strings ( Just like how stackoverflow or quora works) and 80% of the time they will only search for topics that are relevant to their subjects. That means highly unlikely they are going to access other country, or other system or other level but I want to keep that functionality as well.
I am thinking whether should I follow the standard database design and separate the country, system, level and subject into separate tables and use their primary key as foreign key to a particular forum thread. But my concern is performance issue, since there will be heavy usage of searching for particular topic from the users when they key in strings. Imagine every search will have to trigger the JOIN functionality.
However I did some research and found that the accepted answer here https://stackoverflow.com/questions/8479252/database-design-3-types-of-users-separate-or-one-table suggested that if the forum thread has the same attributes, it is best to group them into one table together. However, it will have performance issue too when it comes to search functionality. Every search will have to traverse the database row by row, and there are rows that are irrelevant in terms of the country, system, level and subject attribute. Imagine the thread table rows grew to hundred thousands.
What would be the best way to go? Or should I consider NoSQL? I am looking to integrate the DB into AWS backend <comment><USER2> If you go single table you can use filtered indexes if your database supports it to speed up queries instead of having to do a row by row search with a where clause.

Personally this seems like a job for DynamoDB but that's a whole beast unto itself. You must know the queries you will do to the database before hand as that guides how you craft it. There's an amazing talk at reinvent that is given almost every year on creating a DynamoDB schema ([https://m.youtube.com/watch?v=HaEPXoXVf2k](https://m.youtube.com/watch?v=HaEPXoXVf2k))

I would normalize as the theory says and then denormalize as performance requires it.</comment>


Chrome: CORS restrictions on internet-to-intranet connections - <AUTHOR> https://www.chromestatus.com/feature/5733828735795200 <comment><AUTHOR> Firefox was also working on this problem, but progress seems to have stalled since mid 2014

Mitigate CSRF attacks against internal networks (block rfc 1918 local addresses from non-local addresses) [https://bugzilla.mozilla.org/show_bug.cgi?id=354493](https://bugzilla.mozilla.org/show_bug.cgi?id=354493)</comment>


Google Censorship Initiative Thwarted by 'Gee No Evil' Add-On - <AUTHOR> http://torrentfreak.com/google-censorship-gee-no-evil-add-on-110613/ <comment><USER2> I don't think 'censorship' is the right term here, the sites are still indexed and displayed. Google is just doing the minimum possible to appease the record labels (and the politicians they sponsor) and get a content deal.

Initiatives like these browser extensions show how ridiculously futile these efforts by the content industry are.</comment>


Ship Now, Not Later, the story of shipping Arrival - anti-pattern http://anti-pattern.com/ship-now-not-later

<comment><AUTHOR> Great Post - JFDI - Just Fucking Do it!

BTW - any plans to expand on <http://arrival.io/> to other products (just electronics?)

<comment> anti-pattern Thanks! Probably not, there aren't really any other products I get that excited about, and I like the idea of keeping it very niche.</comment></comment>


Weak Security and Vulnerabilities in the Portuguese Government's Auth System - <AUTHOR> https://iluxonchik.github.io/weak-security-of-portuguese-government/ <comment><USER2> Is the XSS exploitable? Can you insert data in the phone field via a form submit or URL param? Seems like the attack requires exceedingly unlikely user interaction.

Did you contact the Portuguese National Data Protection Agency? If you can leak phone numbers, they should be informed.

Cool findings :)

<comment><AUTHOR> Thank you :)

Regarding the XSS attack, I have the answer here: [https://iluxonchik.github.io/chave-movel-digital- xss/#commen...](https://iluxonchik.github.io/chave-movel-digital- xss/#comment-3900328496)

I did not, thank you for suggesting, I will do it now.

</comment></comment><comment><USER3> When your cousin's software consultancy company is hired...</comment>