UK mass digital surveillance regime ruled unlawful - <AUTHOR> https://www.theguardian.com/uk-news/2018/jan/30/uk-mass-digital-surveillance-regime-ruled-unlawful-appeal-ruling-snoopers-charter <comment><USER2> _" Yet again a UK court has ruled the government's extreme mass surveillance regime unlawful. This judgement tells ministers in crystal clear terms that they are breaching the public's human rights."_

So the question then remains...where are the handcuffs?! I ask this question constantly when it comes to government wrongdoing and there is almost never anyone charged with anything. If the government has been acting in a manner that has been found in a court of law to violate human rights, then multiple people should be going to jail.

Before you drop the "well now we know for sure - we shouldn't be punitive and punish people who thought they were doing their job properly" crap, think about this. Whenever the government applies a law in a new and untested way against a civilian the case is watched very closely and if that civilian is found guilty they never get the benefit of the "well it's been settled and now we know" argument and get let off lightly. So I argue the same should apply here. The government has grossly violated the rights of citizens on a mass scale and everyone at the top of the food chain involved in these programs should be rotting in a jail cell.

<comment><USER3> > Yet again a UK court has ruled the government's extreme mass surveillance > regime unlawful

Except that's not what happened. Not legally anyway. What happened is that the Court of Appeal ruled that a Parliamentary Act did not contain sufficient safeguards to be compliant with the Human Rights Act.

So there's, at least, 2 problems you've got. One is that it's not, technically, government legislation. It's the Crown's legislation as enacted by Parliament. Secondly, and slightly less importantly, the Court of Appeal isn't the final arbiter here. One can either argue that it's the European Court of Justice or, and this is where it gets fun, Parliament.

Now, you can of course make a case for banging the Queen away. It's not like that hasn't been tried in the past with some of her predecessors. Or you could make a cases for locking up some or all of both Houses of Parliament. Or they could enact an amendment to correct the problem.

Of course, if it turns out that anyone was actually affected by the legislation as it stands then that should be dealt with as a matter of urgency. While the internet happily chunters on.

<comment><USER4> The ECJ has ruled less awful laws than this to be invalid under the fundamental charter of rights. I wouldn't be worried about them. It's the UK courts you have to worry about when deciding such cases, especially when the UK doesn't even have a constitution and they kind of play it by ear.

<comment><USER3> Not sure a constitution necessarily helps. In this case, the Human Rights legislation is acting like a constitution in the sense that it's a benchmark that laws are being held to.

A constitution can sometimes be a fairly negative thing. You regularly see US decisions being made against the Constitution where it blatantly isn't applicable. You rarely (ever?) see SCOTUS saying that the Constitution doesn't apply so it needs to go back to Congress for a more applicable law. In other words a Constitution starts to resemble a religious document that has the answer to every conceivable problem if only a priest can interpret it.

<comment><USER5> What would it mean for the US Constitution not to apply to a law within the US?

For a federal law, either it's within Congress's specifically enumerated and limited powers (as interpreted by SCOTUS) and therefore valid, or else the law is invalid.

For a state law, the US Supreme Court will only base their ruling on the US Constitution if anything legally binding at the federal level (including but not limited to the Constitution) forbids or allows that state law.

Otherwise, SCOTUS and every other court will defer on state law to the state Constitution as interpreted by state courts, but from a federal constitutional perspective, states can pass whatever laws aren't federally forbidden.

<comment><USER3> As an obvious example, the 5th Amendment blatantly didn't have anything to do with passwords. The whole idea is a bit silly. The sensible thing to do would be to say that the Constitution has nothing much to say on many issues relating to modern technology and deal with it accordingly.

Same goes with guns. If you want everyone to be armed then fine. That's your prerogative. But the Constitution clearly didn't mean for everyone and their mom to be tooled up with semi-automatic weaponry. I mean, just how legal are militias in the US? Because they're the reason you should be carrying.

It was clearly a document of its time. And one of international importance. But the religious zeal to which it is adhered to is highly questionable.

Now, it's not like we're perfect in the UK or anything. But if someone tried to justify something to do with smartphones or terrorism by referencing Magna Carta or the Bill of Rights, we'd probably take a step back and give them a napkin for the mouth frothing.

</comment></comment></comment></comment></comment></comment><comment><USER6> Biggest problem IMO with this is that they left the data collection and storage to each ISP individually without any support. This results in a large surface area for security failure and the inevitable leak of this data into the public domain. I wrote my MP with these concerns but they wanted it on the cheap and forced it through.

I don't like that they're storing the data in general as even if they centralised it and secured it properly it'd still probably leak but they've more or less chosen the worst approach on top of recording information that they shouldn't be recording in the first place. Also its linked to billing account which is a lossy way to deriving who is actually looking at what and begs the question: "do you actually know what websites your children are visiting?". Because now those sites come up as places YOU (the bill payer) are going to. I'm looking forward to the "scandal" when MPs are "found" to visiting dubious sites when its really someone else in their household.

and everyone going anywhere vaguely dark with half-decent tech knowledge just switches to VPN undermining the whole premise. My MP was _very_ interested in that bit without realising that even if you close that loop hole we just invent another.

<comment><USER7> Yep. TalkTalk can't even keep their customers key details secure, and now they are expected to keep browser history as well? It's a joke.

[http://www.independent.co.uk/news/business/news/talktalk- fin...](http://www.independent.co.uk/news/business/news/talktalk-fine-data- breach-theft-customers-information-stolen-record-penalty-a7346316.html)

</comment></comment><comment><USER8> What we have learned thanks to Snowden is this:

You can never trust your government.

Mass surveillance was conducted illegally before and continues to this day. Does anyone really think some "law" will change this?

<comment><USER9> Good point, but if we can't rely on the law to help us what will be left?

I wonder if one can make a request for information (Freedom of Information Act) about data personally held from the government?

<comment><USER10> > Good point, but if we can't rely on the law to help us what will be left?

The only options remaining, when you can't trust the laws or the systems that create the laws, are attrition (pervasive encryption and decentralizing of networks to deny governments access to information coupled with aggressive leaking and whistleblowing to limit their effectiveness), violence (which serves the interests of authoritarians and extremists) or acceptance of the status quo.

</comment></comment></comment><comment><USER11> I know of very few British MPs, being a Canadian who watches occasionally British panel shows, but I do hear about Tom Watson fairly frequently and almost always for things I am in favor of. Now here he is championing the fight against mass surveillance as well.

British folks: is this guy eventually going to replace Corbyn? He seems likeable enough to. And he has a sense of humor- the first time I heard of him was when he was doing comedy bits with Five Second Films[0].

[0][https://youtu.be/Z4oNjTuTz-8](https://youtu.be/Z4oNjTuTz-8)

<comment><USER12> Tom Watson has agreeable views in a number of areas, but he's unlikely to be a candidate for the leadership any time soon. Quite aside from anything, Corbyn is unfortunately unassailable at the moment.

<comment><USER11> > Corbyn is unfortunately unassailable at the moment

But... Why? I don't have a horse in this race at all, but Corbyn just doesn't seem to be able to win. He seems so uncharismatic. The last election wasn't so much him gaining seats as it was May losing them.

With a minority government, May's days are numbered. It feels to me like the time to replace Corbyn is now, before the next election.

<comment><USER13> > I don't have a horse in this race at all

Yeah right, you come only to bury caesar. I'll admit my bias, I'm a fan. And I don't think you can write off Corbyn's coming from well behind, daily attacks from all the centre and rightwing press as if he were the antichrist or some antisemitic Stalinist, as well as attacks from the Blairite dead in his own party, to beat all the critics and deprive "strong and stable" May of her majority, leaving her weakly needing to bribe the Northern Irish in order to stay in government. That's no small achievement given the hatchetjobs he's had to overcome.

Labour under Corbyn look much more like a government than the Tories, frankly.

<comment><USER14> _Labour under Corbyn look much more like a government than the Tories, frankly._

But again, how much of that is just because May has been such a disaster?

Corbyn's Labour might look like the government-in-waiting by default, but that's partly because they've got very good at either not committing on controversial subjects or having policies that have a very visible upside that they've promoted while they gloss over serious downsides. None of that will be sustainable if they actually form a government.

</comment></comment></comment></comment></comment><comment><USER15> What is the real reason behind surveillance?

The government(s)'s excuse is terrorism, but terrorism in Europe doesn't kill a big enough amount of people to justify these drastic measures. I would argue also that no one has proven that it's efficient at preventing terrorist attacks.

There must be a reason, I don't get it. Is it just because governments can, so they do it? It is to create the basis for some initiative that is planned for the future when technology improves..?

<comment><USER16> > I would argue also that no one has proven that it's efficient at preventing > terrorist attacks.

What if arrests in terrorist investigations are kept under wraps though? If the public would hear of thwarted terrorist attacks on a regular basis, either they'd feel more and more unsafe - that is, the terrorists win - or the terrorists find out about other cells and find ways to circumvent detection.

<comment><USER17> So arrests but no trials? Or are the trials secret too?

<comment><USER18> Neither. Successful anti-terrorism is about nipping this stuff in the bud before the potential perpetrators get close to having specific plans. You can easily think of tactics that would disrupt recruiting, financing and supply chains quietly, all the way down to simply having a "friendly" chat with someone (and/or their mother).

The extend to which this happens and to what degree surveillance helps with this is difficult to ascertain, of course.

<comment><USER19> Humint is always more effective than sigint at these efforts. Far too much noise in the former case.

</comment></comment></comment></comment></comment><comment><USER20> I'm not exactly convinced this will change anything. It's the same for Denmark, and even though it was also ruled unlawful, it just continues. They are even planning on expanding it, and sharing data across public inst. without approval.

</comment><comment><USER21> The judges invoked EU privacy laws, so I guess this one of those cases of "the yoke of Brüssel imperialism" that the UK may soon(ish) be liberated from.

</comment><comment><USER22> Can anyone point to countries which are not going down this same route? In my head Europe is doing better with protecting privacy, but maybe that's just an impression. Canada? Not Australia. Japan?

<comment><USER23> Here is a good overview: [https://en.wikipedia.org/wiki/Internet_censorship_and_survei...](https://en.wikipedia.org/wiki/Internet_censorship_and_surveillance_by_country)

<comment><USER24> I took one look at that article and the fact that the U.S. is literally painted the same color as China as having an equal amount of internet censorship would be hilarious if it weren't so egregiously misleading.

There's internet censorship and there's China. Nobody else is in the same league.

The only explanation I can think of is if censorship and surveillance are just being casually lumped together, but people understand that they're not synonyms, right? Right?

<comment><USER25> > The only explanation I can think of is if censorship and surveillance are > just being casually lumped together

The chart is literally titled "Internet censorship and surveillance by country (2014)" with categories that don't differentiate between censorship and surveillance, so I'm relatively certain that the two have been lumped together.

<comment><USER24> Sure, but that doesn't imply that there's an equivalency between the two, or that the grading scale should be course-grained enough to show no difference between the U.S. and China.

If I made an article called "human rights violations and numbers of reality tv shows by country" and painted Saudi Arabia and Germany the same color, it should rightly raise some eyebrows.

<comment><USER25> All I was saying was that you didn't need to speculate, not that it was the right way to present the data.

</comment></comment></comment></comment></comment></comment><comment><USER4> _> The court of appeal ruling on Tuesday said the powers in the Data Retention and Investigatory Powers Act 2014, which paved the way for the snooper's charter legislation, did not restrict the accessing of confidential personal phone and web browsing records to investigations of serious crime, and allowed police and other public bodies to authorise their own access without adequate oversight._

This was such a massive power grab by the authoritarians like Theresa May and David Cameron and they were so transparent about it. Of course such powers should never be allowed in any democrat. But they thought they'd get away with it anyway, because "people don't care about privacy". But this is going to end up badly for UK citizens if they're allowed to operate mass surveillance at a policeman's or taxman's level.

</comment><comment><USER26> The article makes it sound a little like rights are respected if the controls are to be put in place. However, bulk collection is still going to carry on is it not?

</comment><comment><USER27> > The three judges said Dripa was "inconsistent with EU law" because of this > lack of safeguards, including the absence of "prior review by a court or > independent administrative authority".

I imagine the government knows exactly how to take care of the pesky little problem of EU law giving people rights.

</comment><comment><USER28> Oh no, now the government won't have access to my browsing history _.

_ Apart from GCHQ as part of TEMPORA & NSA as part of UPSTREAM.

</comment><comment><USER29> Brexit, problem solved, everything legal for the UK government.

</comment><comment><USER30> Can we get some of this for the US? Asking for a friend.

</comment><comment><USER31> Aadhaar in India, hopefully!

<comment><USER32> Aadhaar in India is far worse.

99% of the data has leaked multiple times already. It also seems to sport all the classic signs of an amateur project. Post facto design changes, unauthenticated mails, unprofessional mobile apps, leaky access to all of the data irrespective of your need, terrible code (same hard coded passwords for everyone), cludgy design increments making the problems worse while not acknowledging existing issues, logical errors (like beign unable to reset passwords if you have lost mobile device) and the deaths of people unable to access hospitals and food in some areas, Police cases against people reporting on vulnerabilities, ... ...

It's a kafkaesque nightmare and I am surprised no one mentions it on HN much. Probably because it's a slow motion train wreck.

I am not sure how the Indian courts are even going to justify continuing with the system anymore given the absolutely callous handling of the data thus far by their Aadhaar agency.

In the end, India's aadhaar is actually not a government project, it is a private project run by a bunch of companies run by some ex infosys top shots who have time and again proven to only look after their own interests.

<comment><USER31> Funny thing is NRIs, who don't have to enroll, are writing opinions to defend this.

</comment></comment></comment><comment><USER33> Well that was predictable. Shame the government didn't listen to people like me who literally told them that while it was still a Bill not an Act.</comment>


Ask HN: How Did the Outage Affect You Personally? - <AUTHOR> <comment><USER2> If a website outage affects your life in any significant manner then I'm sorry but your life is non existent.

Unless it's StackOverflow, I can't imagine StackOverflow going down.

<comment><USER3> So you are saying that sysadmins don't have a life, since an outage of any public-facing sites _that they are responsible for_ usually has a significant impact on their lives.

</comment></comment><comment><USER4> I got a ton done on the side project I have been hacking together. It started as a blog post but will end a short book on the Meteor framework. Hopefully finished by the weeks end! I got about 3000 words in while we were down! :)

Edit: It will be totally free and open source, and is being written on a collaborative platform ala git where anyone can add a branch for edits/extra content/suggestions. I don't want to plug it shamelessly, but if you're really interested email me and I will send you a link. It's in my profile.

</comment><comment><USER5> I went outside. It's bright out there. There were strange creatures walking and making noises.

</comment><comment><USER6> Shakes and tremors. I no longer have fingernails and I chewed through an entire box of pencils.

<comment><USER7> Sounds like a possible psychological issue. This might lead to a problem for society. We might want to get you some preventive treatment for that before you have a chance of harming someone. Do you think prison might work well here?

<comment><USER6> I advocate medical treatment for addiction, though of course I am joking here.

I assume we were discussing this yesterday, after the last HN restore point?

<comment><USER7> Yes, discussing yesterday, exactly. I missed that discussion when it was gone.

The point is the same whether you were joking about addiction or not. Preemptive forced action based on subjective reason like labeling makes for unwarranted control of human beings by other human beings or systems. I can just imagine a set of RAS checkboxes similar to stop and frisk for mental illness and homelessness. None of these are ok and the fact that we are supporting systems like this means we are headed backwards instead of forwards.

Harming others is a separate issue and is always a problem.

</comment></comment></comment></comment><comment><USER8> It gave me a chance to really compare the opportunity cost of readership versus the amount of personably actionable material I find here.

As a result I've decided to drastically restrict the time I spend here. (And that's me done for today)

</comment><comment><USER9> I realized how compulsively I click on HN. All in all it is not a healthy habit. I ought to give it up or cut down. Before it used to be The Register, Ars Technica and Wired.

</comment><comment><USER10> rant

I switched to Feedly when Google Reader closed, so it made me a bit depressed because I figured Feedly would be fucked like it was last time HN went down. I had to unsubscribe and resubscribe to get it to start showing new items.

And indeed it is.

I want to get my feed from news.ycombinator.com/rss. That's what I had in Google. That works in Digg Reader. It works in NewsFire. Not at Feedly. Feedly insists that there is no RSS feed there.

Last time, I was able to find something that was close among the feeds that Feedly offered. That was [http://feeds.feedburner.com/hacker-news- feed?format=xml](http://feeds.feedburner.com/hacker-news-feed?format=xml). (I got that from Feedly's exported OPML).

So this time, I unsubscribed and resubscribed, but it was unclear which feed was right from the 9 that Feedly says are available for news.ycombinator.com. Adding all and looking at the OPML, it looks like the one that corresponds to what I was using ([http://feeds.feedburner.com/hacker-news- feed?format=xml](http://feeds.feedburner.com/hacker-news-feed?format=xml)) is now [http://feeds.feedburner.com/feedsapi/BwPx](http://feeds.feedburner.com/feedsapi/BwPx).

But I'm not sure. It doesn't seem to match news.ycombinator.com/rss as well as the old one did--but maybe there is some delay because Feedly apparently is going through feedburner, so I'm not actually sure whether or not I've found the right thing.

This isn't the middle ages. This crap [1] should not be happening.

/rant

[1] "This crap" solely refers to Feedly, not to HN going down. Sites go down on occasion, so I have no complaint about HN in this regard.

<comment><USER10> Figured out why Feedly would not let me get the feeds directly from HN. It was an http vs https issue.

</comment></comment><comment><USER11> I learned to code, finally.

</comment><comment><USER12> I visited Hatena Bookmark (somewhere between HN and Reddit in terms of content type and quality, for Japanese links) much more frequently and discovered how much worse (for me) the curation there is (because it's more mainstream than HN).

</comment><comment><USER13> I got work done yadda yadda, but I was also pretty bored when I needed a break. In the long term, if HN disappears, I'll probably find something else. So get your shit together HN and don't die on us again.

<comment><USER14> Or maybe you'll just get more work done ;)

</comment></comment><comment><USER15> I went to Slashdot for the first time in about a year or two. It still sucks.

<comment><USER16> No, it sucks _worse_.

Their new layout is all Weboblag 3.0.

<comment><USER3> I'm not sure that matters. For all that I care, a site like HN or Slashdot might as well look as if it came straight from 1997.

What killed Slashdot was the abysmal quality/delay/editing of posted stories.

</comment></comment></comment><comment><USER17> I felt something I do daily is missing out and I kept refreshing the site.

</comment><comment><USER18> I think I speak for everyone when I say significantly more work got done!

</comment><comment><USER19> It didn't.

</comment><comment><USER20> I had planned on writing up an email gleaned from some HN comment insight, and citing the comment.

"I'll just do that tomorrow" I thought. But, as we found out, there was no tomorrow.

</comment><comment><USER21> I regressed from man to beast, communicating in grunts and fueled by primal instinct. My time was taken up with hitting the ground with femurs and painting on cave walls with mud.

<comment><USER16> Ah, so back to your day job with PHP I see?

</comment></comment><comment><USER16> In my desperation I turned to /. and VentureBeat, because I can't browse 4chan at work.

And I don't have a membership to lobste.rs :(

So, instead, I read about unit testing with Karma.

</comment><comment><USER22> I went outside in what felt like -34F in Chicago to blow soap bubbles in the air and watch them land at the consistency of plastic bags.

</comment><comment><USER23> It was awful, don't let it happen again.

</comment><comment><USER24> Jesus. Is this an actual question?

</comment><comment><USER25> Increased productivity.

</comment><comment><USER26> I couldn't get my fix man!!!

</comment><comment><USER27> I wondered if HN had been NSLed.

</comment><comment><USER28> I was highly productive today.

</comment><comment><USER29> Life in general was better. :)

</comment><comment><USER30> It didn't

</comment><comment><USER31> Insanity: doing the same thing over and over again and expecting different results.

I kept checking and checking HN over and over again. When I couldn't take it anymore I started to do some actual work.</comment>


Ask HN: Is this pseudocode client side login algorithm secure? - <AUTHOR>

on new user login: 1)generate a random assignment of prime numbers to permissable characters for a new username/password entry and save it as tempTransform.json, save a copy to rawTransforms.json 2)translate username and password to integers using this list, then add them together and save the resulting integer in userHashes.html 3)add the username, password, and userHash and use the sum to encrypt tempTransform.json, then save it as userHashTransform.json; 4)on subsequent user login, take entered username and passwords add them together using all available rawTransforms looking for userHashTransform collisions.  decrypt with sum if username, password, and user hash. if alphabets match, authenticate user.
essentially you create a huge solution space problem only the right username/password combo can solve in reasonable time.
i bet that samsonite, I'm way off, but please tell me how to protect user data with a client side only js/css3/html5/bootstrap site? I want an open source drop in js login script we can all verifiably agree is secure so this doesn't happen to me. <comment><USER2> I have read this several times and still don't understand the point of what you want to achieve. Some loud alarm bells ring - it looks like you're making a brand new hash algorithm. Don't every do that. Use one of the existing ones. For one, in the one you outlines, anagrams give the same hash value.

If you want everything to be client-side then you're out of luck. The client controls everything, and tweaks of the Javascript, to invert the logic of the password check, will break everything. You could have the password be the decryption key for the rest of the code to run, but I don't understand the goal.

What's the threat model? Who's is going to try to do what?

<comment><USER3> I completely concur with your post, I have been scratching my head for some minutes now trying to figure out what the OP wants to do.

> For one, in the one you outlines, anagrams give the same hash value

It's even worse: Only the number of occurences of a given character matter for the value of the hash. So "correct horsebatterystaple" gives the same as "aabcceeeehlooprrrrsstttty". Permutation of letters does not change the output at all, making a brute force attack extremely viable.

</comment></comment><comment><USER3> I'm really at loss at what problem you're trying to solve here, what your algorithm is doing, and where/for how long the mentioned files are stored and who's involved in the transaction? Who's holding which files? For how long?

I can only guess that the rawTransforms.json and userHashTransform.json are kept by some server, and the user is then authenticated against this? If so, why not use some standard method? (bcrypt, scrypt?)

In any case, creating your own hash function or making up your own secure authentication procedure should generally be considered a big red flag. Chances are, whatever authentication issue you're trying to solve, there is already a standard way for it: Stick to it.

Remember: It's trivial to create a security scheme _you_ cannot break, but very hard to create one that somebody else cannot break.

<comment><AUTHOR> I am trying let people login to a site hosted on/as a github pages site. A client side only site with authentication. A single javascript file the can add this feature to my projects. i'm trying to create a homomorphic authentication system where no server ever stores any data about the user. your data never leaves your client. user data gets stored within the client itself custom encrypted for each user by their username, password, and hash.

If I change the additions in my algorithm to multiplications I can avoid some issues others have pointed out.

<comment><USER3> Multiplication instead of addition in the hash will give you the same problems.

I'm not familiar with Github pages, but it seems one cannot store anything on the server-side, it's just HTML+JS. If nothing is sent to any server, there does not seem anything to authenticate or protect from anyone.</comment></comment></comment>


Show HN: Astound – a voice coaching app to boost your speaking power - <AUTHOR> https://itunes.apple.com/app/astound/id1253443132?mt=8 <comment><AUTHOR> Hi HN, my name is Robin and I teamed up with my girlfriend Leila, who works as a voice coach and speech therapist, to build an iPhone app called Astound. It's like a fitness app for your voice. I started working on Astound because I had difficulty with my own voice. For my last startup idea, I went door knocking around Brooklyn, talking to as many artists as I could. However, being incredibly nervous and exhausted, I picked up poor speaking habits and put too much pressure on my vocal chords. At the end of most days my voice was hoarse, and I had the constant feeling that I sounded too timid and unconvincing. Luckily I was able to turn to Leila for some help, and through her training I'm now learning how to keep my voice healthy, and turn it into a more effective communication tool. I always thought that voice coaching is just for singers and actors. Now I think it's for everyone, whether you use your voice to captivate an audience, build trust with a customer, or sell an idea. Unfortunately this training is not an option for most people. Vocal health can regress - one in ten Americans actually suffers from some sort for of voice disorder, which can become troublesome as soon as your job depends on it. I'm passionate about the topic of voice. So after my last startup failed, I learned iOS app development (apologies to all non iPhone users) and built Astound. Astound includes guided breathing, voice, and articulation exercises packaged in different workout plans. The most recent plan is for dating. Yes, research actually suggests that the tone of your voice matters quite a bit. I'm currently working on a plan to help users strengthen their voice for being on the phone all day. It's a subscription model, but you'll receive enough free content to decide if it's worth it to continue. Just like with physical exercise, you will hear an improvement in your voice with practice. So my current goal is to make it fun and engaging that you'd want to practice everyday. I'd love to hear your feedback and see how I can get closer to this goal. I'd also love to hear your stories. Do you have a similar experience with your voice as I do? I very much look forward to hearing your comments. Thanks for your time!

</comment><comment><USER2> Looks interesting--I think you're onto something big here. Out of curiosity, did you write the app in Swift or Objective-C? And how long did the initial production version take until app store submission?

<comment><AUTHOR> Thanks for the note! I wrote it in Swift, and I'd guess it took about 9 months from from the moment I thought this could be of value to the first launch. Hard to say exactly, because of the learning curve.</comment></comment>


Snow Leopard Adds Closures to C (and its derivatives) - <AUTHOR> http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/10 <comment><AUTHOR> There is also an ongoing discussion at [http://groups.google.com/group/comp.lang.c++.moderated/brows...](http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/f6479d0d4dab8592)

</comment><comment><USER2> So basically Apple is pulling a Microsoft by adding a platform-specific extension to an otherwise cross-platform, portable language?

<comment><USER3> For C, yes. For Objective-C, Apple already owns it so no problem. It seems like conforming ANSI C code should still work so it isn't a weird IE6 cross- incompatibility issue.

<comment><USER2> Sure, but now there's a variant of C that will only work on Apple platforms...

<comment><USER3> I think if you're writing C code, you're either writing systems code yourself, or you're writing application code for a particular operating system, or you're writing something that's explicitly cross-platform by design (like a programming language runtime). I think anyone facing these three situations would be able to judge whether or not to use Apple-C closures.

</comment></comment></comment></comment><comment><USER4> _You'll just have to trust me when I tell you that this syntax actually makes sense to seasoned C programmers._

What?</comment>


Google's Complex Relationship with DeepMind Gets Exposed - <AUTHOR> https://www.forbes.com/sites/samshead/2018/04/20/googles-complex-relationship-with-deepmind-gets-exposed/#5331c4be17d6 <comment><USER2> The fact that DeepMind turned down having it's name slapped on Google's cloud products is super, super interesting.

Slight sidebar about the source here: This past year I actually subscribed to The Information. It's costly ($200 a year is the lowest they go, in a plan that only some people qualify for.) but they repeatedly put out in-depth quality journalism that other sites, like Forbes in this case, end up regurgitating within the following week or so.

[https://en.wikipedia.org/wiki/The_Information_(company)](https://en.wikipedia.org/wiki/The_Information_\(company\))</comment>


Web.com: Weblock program will be opt-in not opt-out - <AUTHOR> http://domainnamewire.com/2014/01/22/web-com-weblock-program-will-be-opt-in-not-opt-out/

<comment><AUTHOR> Summary:

""Candidly, we did not do a good job in wording that [email]," Teichman said. "Every one of those customers is getting a call. It's not our intention to enroll anyone in a program they don't want."</comment>


Employee Scheduling - <AUTHOR> https://developers.google.com/optimization/scheduling/employee_scheduling <comment><USER4> Technical solution aside:

I wrote a schedule for a team of ~20 co-workers for a 24/7 support shop. This required people change shifts / sleep schedules often.

The schedule was a point of contention for years.

After I volunteered to write the schedules, in 3 months I had everyone happy.

It was not hard.....but....

The catch was that I did it manually for a month at a time with a wide ranging amount of changing priorities that would be hard to program ... and the key was COMMUNICATION, and working with people and their personal preferences.

<comment><USER5> One of the senior teachers in my school used to organise schedule for 1000 pupils and 50+ teachers. With some minor things everything worked pretty damn well.Then they decided to get some software to do the same.Never ended up working...

<comment><USER4> Humans might be kinda slow and expensive, but their ability to handle a lot of variable data and inputs and weigh them dynamically, filter out absurd results before applying them, and etc is pretty amazing.

Like if someone comes to me and says "what if we... did X with the schedule". I could tell them how to do that and not to right away. The code would have to be changed / rewritten and tested and fail at it each time... so much mess.

Especially when scheduling other humans... the humans being scheduled can smell a computer scheduling a mile away and IMO they expect the worst at that point. They're not necessarily wrong.

<comment><USER6> > their ability to handle a lot of variable data and inputs and weigh them > dynamically

I dunno. Computers are pretty good at this one too, on different kinds of variance and weights.

The largest problem I see is that everyone is discussing "either or" on this thread, while the clear winner is both.

<comment><USER7> I was reading some old literature a few months ago on this related to police staffing where union issues had to be taken into account. It seems adding social penalties is a way to do this algorithmically

<comment><USER8> You're giving me flashbacks to some software I worked on a while ago that had to use rules from three different collective agreements from nursing unions. Turns out writing business logic for rules that aren't internally consistent is a challenge, and unlike most LOB projects I've worked on, the procedure _can not_ be amended until the next round of bargaining.

</comment></comment></comment></comment></comment></comment><comment><USER9> We run into this for customer support (www.assembled.com) and one of the things we've learned is that the ability to solve the fully constrained problem in the real world is not quite enough, at least for our customers.

Quite often, people are looking for the right set of constraints to apply so they're kind of running a meta problem on top of the NSP. How many back-to- back shifts should I allow? Should people's shifts always start at the same time? Can I give some people regular 9-5 schedules? All of the above questions will decrease the strict optimality of the solution, but increase the happiness and long term retention of your workforce. Thus, the question really become, how much do each of these cost in terms of optimality and what are the tradeoffs.

We've found that developing a very fast heuristic algorithm for the NSP allows people to iterate quickly on these types of questions (even though it's not quite as optimal as a SAT solver). We use a greedy algorithm with a heuristic that is relatively specific to our problem domain to ensure that we have a reasonable combination of speed and optimality.

</comment><comment><USER10> State of the art for employee scheduling seems to be column generation; see benchmarks here: [http://www.schedulingbenchmarks.org/nurse.html](http://www.schedulingbenchmarks.org/nurse.html)

Here is an open-source column generation solver that currently achieves the best solutions on that benchmark: [https://github.com/PetterS/monolith/tree/master/minimum/line...](https://github.com/PetterS/monolith/tree/master/minimum/linear/colgen)

<comment><USER11> Thank you for the pointers! I've been interested in crew scheduling systems for my company to make effective use of personnel. Is the problem of producing ideal time slots for appointments requiring a crew (pattern of ordered and unordered availability) very different?

<comment><USER10> Perhaps not very different, but each problem formulation has its own complication.

For column generation, specifically, the routine that generates the columns incorporates a lot of problem-specific information. The rest of the solver is more general.

</comment></comment></comment><comment><USER12> We had to find a solution for doctors to manage 22 different peers distributing 30 shifts a month. The schedule had to abide by each employees vacation requests and distributed undesirable shifts like weekends and holidays in some equitable manner, and be easily interpreted by staff. The solution was an excel spreadsheet with a lot of auto-fill logic and formulas to show shift and burden counts for each doctor so the person managing the sheet could move around shifts when needed and ensure equitable distribution still remained. Excel really helped where python and other tools would require a lot more code and be a lot less flexible to operator changes.

<comment><USER13> Since it's a spreadsheet, is there any way you can share it? I assume the Dr's names could be easily changed so it's generic?

</comment></comment><comment><USER14> I built a web interface for this type of nurse scheduling optimization. Mine uses CPLEX instead of the CP-SAT solver but the Python set up is very similar.

Here's the web interface to the nurse scheduler: [https://forio.com/app/showcase/nurse- scheduling/](https://forio.com/app/showcase/nurse-scheduling/)

and here are some other optimization examples: [https://forio.com/products/epicenter/example- applications/](https://forio.com/products/epicenter/example-applications/)

<comment><USER15> [https://forio.com/app/showcase/nurse- scheduling/nurses.html?...](https://forio.com/app/showcase/nurse- scheduling/nurses.html?Gloria)

      Thursday, 02:00 to 08:00 — Emergency
      Thursday, 08:00 to 12:00 — Oncology
      Thursday, 12:00 to 18:00 — Oncology
      Friday,   08:00 to 12:00 — Emergency

<comment><USER16> Turns out Gloria is an incredibly hard worker.

<comment><USER17> It's the pandemic thing everyone's working overtime

</comment></comment></comment></comment><comment><USER18> I get the point is to show a problem solving technique, but I'm either missing something, or they are missing a constraint.

In several solutions, a nurse works shift 2 one day, then shift 0 the next. In fact, Nurse 3 keeps getting stuck with the back to back shifts.

<comment><USER19> Are you referring to the first model? Only 5/5184 solutions are displayed. There's no objective function and the branching is probably defaulting to a simple systematic search with min domain, min value heuristic. If these are the first 5 solutions in the search tree, it's not surprising that nurse 3 keeps getting stuck with back to back shifts (does not work day 3)

<comment><USER20> They listed the constraint of no back-back shifts in the text but didn't implement it as a constraint.

<comment><USER19> By back to back, do you mean nurse 3 works shift 2 day 1 and shift 0 day 2? Or that nurse 3 always works two days in a row in the listed solutions?

The example doesn't mention back to back shifts, only that a nurse can at most work one shift a day which in turn implies the constraint that no nurse can work shifts back to back (in the same day).

One could easily add the constraint that a nurse scheduled on shift 2 cannot work shift 0 the next day.

</comment></comment></comment></comment><comment><USER21> Any thoughts about the scheduling projects open sourced by staffjoy a few years ago, regarding the relevant schedule optimizers chosen? [https://github.com/Staffjoy](https://github.com/Staffjoy)

<comment><USER22> Hey - I was the primary author of Staffjoy!

We had a few different algorithm iterations. One of our biggest learnings was that it's hard to build a generalized auto-scheduling algorithm. While most companies have similar needs at a surface level - things like local labor laws, cross-functional roles, breaks, and business quirks mean that you end up customizing the algorithm for most customers.

For the best auto-scheduling - Kronos is the incumbent, and Legion.co is probably the most advanced disruptor.

<comment><USER21> Thanks for replying! You gave money back to investors and open sourced your work. That's commendable behavior! I never forgot that story. As usual, the solution seems straightforward from 30,000 feet but once we go into the details, it turns out to be much more complicated. Noted about Kronos and Legion.

Have you done any further scheduling related work since Staffjoy?

</comment></comment></comment><comment><USER23> I have been building a employee scheduling system in a factory environment. New employees need to be trained on machines, for a certain number of shifts, with a limit of how many employees can train on a machine at a time.

A question becomes "how many new employees could we handle?".

I looked at some solutions, but landed on an Excel spreadsheet with a small macro for spreadsheet setup, conditional formatting to call out an employee being allocated to 2 positions on the same shift, and a visual way to show for each operator, how long it takes to be fully trained. HR or a manager can setup training schedules by manually allocating people to training slots.

There were some constraints the business wanted (train on machine #1 before #2, do 2 days of training if you haven't already trained on _x_ machine). They would have been hard to accommodate in a way the end user could configure, so I have a notes section they can fill in (and they have to manually observe these constraints).

Totally open to other ideas people have on how to approach the proble.

<comment><USER24> This sounds like a good solution to me. I can imagine some HN readers might comment 'ew Excel!' but it truly is the right tool for something where you have to transparently demonstrate the logic to non-technical stakeholders in a way they can easily edit and adapt.

Of course, you could build or buy a web app that handles this specific scenario more powerfully and scaleably, but if this is a quarterly problem rather than a everyday problem then the additional overhead of the different interface / logins may not be worthwhile.

My only comments would be

1) macros are too hard for nontechnical users in my experience, even just w/r/t setup (excel prompts you a security warning to enable macros that is scary). I think you could maybe do this using the what-if analysis tables, simple ifelse formulas, and conditional formatting.

2) another improvement might be a cloud-based version where there is a link at which others can easily view + collaborate, like Google Sheets or Airtable. I think Excel is supposed to have this feature as part of the 365 subscription but I've never used it.

</comment></comment><comment><USER25> This looks nice but actually doesn't adress the actual challenges of scheduling.

It's rather easy to generate a schedule and most of the feasible variants are available online already (there aren't infinite possibilities on how to schedule shifts) - you fit it to a 7 day or a 28 day (or a multiple of 7) cycle and then copy paste.

The scheduling challenges occur when people need to take unexpected vacations or during vacation period when staffing is low.

Another challenge is the skill level of the individual employees which is usually not binary - can do work / cannot do work - since employees come to work to perform tasks and they don't always learn all of the tasks the first day.

</comment><comment><USER26> I'm a bit uncertain about what Google OR-Tools is…it _seems_ to be some sort of framework for solving optimization problems, but based on the example here I am curious how general such a tool can be, as normally I find that a "drop in" algorithms framework is generally quite difficult to make or use. Is anyone using this for something useful? Does it perform faster than a hand- rolled implementation tailored to the problem? Is it easier to use?

<comment><USER27> Exactly my thinking.

<disclaimer>I work in a company that deals exclusively with OR. This means that we might be overly specialized for this product.</disclaimer>

I see OR-Tools as an educational product. The tool is easy to start tinkering with and it has superb documentation - even for people not specialized in combinatorial optimization.

<comment><USER28> Can you link to your company. I've always thought it would be cool to 100% work on LP, MIP, and Nonlinear models. Do y'all use CPLEX/GUROBI for the big stuff and Prolog for more discreet items?

</comment></comment></comment><comment><USER29> Employee scheduling seems to be a problem common to a large number of businesses.

Are the needs of most small/medium businesses currently being met in this area or is there an opportunity for providing tools in this space ?

<comment><USER30> My sister is in charge of scheduling physicians for shifts and on call for a large hospital and she has a really hard time. She does it manually with the help of a spreadsheet. She engaged with some software company to help and after many hours of work she still uses the spreadsheet.

Part of the problem is that some senior physicians do whatever they want and aren't interested in playing fair. They'll call her the day before a holiday and tell her they're not coming in, and my sister is left trying to figure out the least shitty way to cover the gap.

<comment><USER31> See my link above for KHE. It also does nursing schedules which may help you.

</comment></comment></comment><comment><USER32> I've used ORTools to schedule tasks to be done in parallel.

it's really simple.

[https://github.com/samsquire/devops- schedule](https://github.com/samsquire/devops-schedule)

</comment><comment><USER33> Would also be interested in a compare and contrast with open source optaplanner [https://www.optaplanner.org/learn/useCases/employeeRostering...](https://www.optaplanner.org/learn/useCases/employeeRostering.html)

</comment><comment><USER34> Google or-tools are quite fun although a little bit of a pain to setup and get started at least if you want to use the JVM and support different OS. Just to share a little anecdote about my use case: The department I work in consists of about 40 developers and once a year we had a day together just to form new teams in a self organized manner. Management wanted about one third of a team to move to a different team to spread and gather knowledge but completely backed off during that day. We had a special coach and scrum masters supporting us but still it was very exhausting and a lot of the developers didn't like it. The devs that showed motivation to change teams were more or less forced to go to the teams which were disliked the most (either because of their domain or the already present members). So in the end there was not much rotation and the whole thing was quite expensive so that this year it was cancelled. That's when I started to use Google or-Tools to write a little tool that suggests teams based on some constraints like size, at least one experienced dev / software architect per team and an optimization function based on preferences of each dev for a certain domain as well as their sympathy towards other devs When I announced it it got almost no attention and was dismissed as "inhuman".

</comment><comment><USER19> I'm glad to see the domain of constraint programming and operational research in general generate interest so I thought I would take the opportunity to share some links and resources I have found useful. Personally, I've spent most of my time on the routing (TSP, VRP, VRPTW) side of things using CP (OscaR-CP).

Discrete optimization and constraint programming can be a bit difficult to get into. There are two great free online courses on Coursera that do a good job at introducing the topic.

 _Discrete Optimization_

[https://www.coursera.org/learn/discrete- optimization](https://www.coursera.org/learn/discrete-optimization)

I don't remember the exact content of this course but I believe it covers the basics in a few different methodologies.

 _Basic Modeling for Discrete Optimization_

[https://www.coursera.org/learn/basic- modeling](https://www.coursera.org/learn/basic-modeling)

This is a great course by Peter Stuckey that uses MiniZinc. The MiniZinc programming language is a great starting point that teaches you to think of solving discrete optimization problems only in terms of modelling the problem.

Håkan Kjellerstrands blog is another great resource

[http://www.hakank.org/](http://www.hakank.org/)

It contains hundreds of different models for a large variety of different solvers. Chances are that he has created a model for your solver for a similar problem.

Two books worth mentioning are:

 _Handbook of Constraint Programming_

 _Principles of Constraint Programming_

Other solvers/frameworks:

 _The OscaR library_

[https://bitbucket.org/oscarlib/oscar/wiki/Home](https://bitbucket.org/oscarlib/oscar/wiki/Home)

My personal favorite. An OR framework written entirely in Scala. As such it's an absolute joy to work with and the internals are (relatively speaking) easier to understand.

 _GeCode_

[https://www.gecode.org/](https://www.gecode.org/)

Another extremely potent solver. Exclusively CP based.

 _Mini-CP_

[https://minicp.readthedocs.io/en/latest/](https://minicp.readthedocs.io/en/latest/)

An extremly lightweight CP solver, designed for educational purposed to expose how a CP solver works without obfuscating performance optimizations found in research/production solvers.

 _MiniZinc_

[https://www.minizinc.org/](https://www.minizinc.org/)

A solver agnostic constraint modelling languages, designed to interface a given optimization model with different solvers.

A few notable researches:

Phil Kilby

Pascal Van Hentenryck

Paul Shaw

Laurent Perron - OR-tools

Peter Stuckey - <USER2>

Pierre Schaus - OscaR, Mini-CP

Renaud Hartert - <USER3>

I also want to make a plug for the work of the Uppsala University optimization group

[http://www.it.uu.se/research/group/optimisation/](http://www.it.uu.se/research/group/optimisation/)

Especially the work of Pierre Flener, Gustav Björdal and Justin Pearson who I've had the pleasure to work with during my masters thesis on vehicle routing using CP.

</comment><comment><USER35> IBM makes an even faster (than google or) cp optimizer

[https://arxiv.org/pdf/1909.08247.pdf](https://arxiv.org/pdf/1909.08247.pdf)

</comment><comment><USER36> My team used to have an absolutely wild script for oncall scheduling. People would enter their availability weeks, and then we'd run a genetic algorithm, scoring the fitness of each schedule "offspring" according to the number of availabilities violated and then making random mutations to the most promising. It would slam CPU for several hours and still produce clearly ridiculous solutions. Brute force would have been better.

I'll have to play with this.

</comment><comment><USER37> Happy user here! I've used it for a couple of projects.

Here's an open source solver for a fun presumably-NP casual video game:

[https://github.com/asah/tents-and-trees](https://github.com/asah/tents-and- trees)

As with other solvers, it can be a little difficult to debug, so I recommend starting small and adding constraints and known test examples.

</comment><comment><USER38> Maybe a little OT, but why aren't the OR-tools in general more focused (or more "marketed") towards GPU/TPU clouds since they seem like the exact problems which they are made for? More focus seems to be towards TF/PT/NN and not the real problems like what OR-tools and solvers in general push for.

<comment><USER39> Typical algorithms solving combinatorial problems are usually heavily branching, so not so much vectorizable. For example for a branch-and-cut MIP solver, you could run the LP-relaxed problems on GPU, but most of the logic lives in branching and cutting heuristics that are much harder to parallelize.

</comment></comment><comment><USER40> I see their documentation also covers routing vehicles across multiple deliveries, with time windows.

Can someone who's tested this stuff out advise on how many deliveries it can handle at a time? The examples only list trivial problems, but that might just be to keep the examples short.

<comment> nappy-doo I can chime in. Googler here, who knows the OR team very well. They are solving EXTREMELY large problems for customers. I can't tell you who, and I can't tell what problems, but they are among the biggest OR problems you can imagine.

(No, I don't mean within Google, although they solve scheduling problems there as well.)

EDIT: There are articles:

[https://cloud.google.com/press- releases/2020/0120/lufthansa](https://cloud.google.com/press- releases/2020/0120/lufthansa)

[https://www.cnbc.com/2020/01/19/lufthansa-taps-googles- cloud...](https://www.cnbc.com/2020/01/19/lufthansa-taps-googles-cloud-tech- to-mitigate-impact-of-flight-delays.html)

<comment><USER41> The articles are more statement of ambition than indication of actually "solving problems". I will follow whatever information gets out about this project with great interest.

The big challenge in making something like this actually work, are not the fancy hightech bits. Dealing with humdrum data integrations and torrential rates of change in rules and constraints, sourced from hundreds of mostly non- technical people across dozens of independent departments is where it gets hard.

</comment></comment></comment><comment><USER42> Now do that with a few thousand employees, vacation request ranking/status and three different sets of thousands of pages of union contracts.

The above is something I actually worked on before.. The bitter irony, is they all just traded their vacation weeks as it came up anyway.

</comment><comment><USER43> Well now I want to spend a few hours using it to solve the peaceable queens problem: [https://youtu.be/IN1fPtY9jYg](https://youtu.be/IN1fPtY9jYg)

<comment><USER19> Sounds similar to n-Queens, check out

[http://www.hakank.org/google_or_tools/nqueens.py](http://www.hakank.org/google_or_tools/nqueens.py)

[http://www.hakank.org/google_or_tools/nqueens2.py](http://www.hakank.org/google_or_tools/nqueens2.py)

[http://www.hakank.org/google_or_tools/nqueens3.py](http://www.hakank.org/google_or_tools/nqueens3.py)

for inspiration

<comment><USER44> Actually, the Peaceable Army (or Armies) of Queens problem is a separate problem and much harder than the n-queens problem. Here is a MiniZinc model: [http://hakank.org/minizinc/peaceableArmyOfQueens.mzn](http://hakank.org/minizinc/peaceableArmyOfQueens.mzn) , and a Picat model: [http://hakank.org/picat/peaceableArmyOfQueens.pi](http://hakank.org/picat/peaceableArmyOfQueens.pi)

(Also: Thanks for your links to my site.)

</comment></comment></comment><comment><USER45> Interesting project, I'd like to see it take into account decades of ambiguous union contracts, past practices, seniority, preferences, time off requests, preferences, training and certification levels, and not to mention the various local, state and federal labor laws.

Scheduling isn't an easy problem to solve in the real world vs the lab where there are far less constraints and consequences for getting it wrong. Kronos (kronos.com) is the recognized leader in this space and even their software has a hard time keeping it all straight.

<comment><USER19> CP solvers are excellent at handling side constraints, at least as long as they can be expressed as a boolean, discrete or linear relation.

</comment></comment><comment><USER46> Can someone chime in on how this compares with the software that takes part in the yearly planning competition, eg. FastDownward etc. What subset of PDDL is supported?

<comment><USER47> The CP-SAT solver would be used for combinatorial optimization problems. These solvers are very different than the ones you'd use for planning problems a la PDDL.

</comment></comment><comment><USER48> Great find, thank you. I ended up playing with the tools they provide. I always loved solving optimization problems and this page ia a gem, I did not know it existed.

<comment><USER19> You should check out [http://www.hakank.org/](http://www.hakank.org/) for a fantastic resource of optimization models for a huge variety of solvers and problems

</comment></comment><comment><USER49> WOW! There is still some interest in optimization? I'm shocked! The message long was "Operations Research is dead."

Gee, I got started in OR (operations research) at FedEx, covered a lot from some of the best people in grad school, taught it as a prof in B-school, and applied it to US national security and some commercial problems.

Good to see the interest in some of the flight operations work for Lufthansa -- I was considering (no great progress) some of those problems at FedEx!

One commercial problem was allocating marketing resources for some banks. I was given the formulation, 0-1 integer linear programming with 600,000 variables and 40,000 constraints. I derived some non-linear duality theory, used the IBM OSL (Optimization Subroutine Library), and in 500 iterations found a feasible solution with the objective function guaranteed to be within 0.025% of optimality!

Another commercial problem was some more marketing optimization. It was also 0-1 integer linear programming, but surprisingly it was just a problem in least cost network flows. That is also linear programming, but there the simplex algorithm takes on a special form where a basis is a spanning tree of arcs in the network. A simplex pivot is to add an arc to the tree, thus, yielding a circuit, and running flow around the circuit in the direction that saves money and removing from the circuit, thus, making a tree again, one of the first arcs where the flow goes to zero. There is a cute variation of the algorithm due to W. Cunningham (one of my profs) based on his _strongly feasible basis_ , that avoids cycling.

A super nice point about the simplex problem on least cost network flows is if all the arc capacities are whole numbers and if start with an integer basic feasible solution, then the simplex algorithm will automatically maintain an integer basic feasible solution and terminate with an integer solution. It is good to suspect that a lot of integer linear programming problems are actually just such network flow problems or nearly so.

Once I used that stuff to say, for NASA, how to assign signals to satellite channels to minimize some signal interference -- it was an example of the _bottleneck assignment_ problem which should be solvable very quickly by some _post optimality_ tweaking with the network simplex algorithm.

I enjoyed using the IBM OSL, but IBM withdrew it from marketing in about 2003, maybe in favor of marketing C-PLEX. But it appears that at about 2004 IBM donated the source of the OSL (with lots of pieces, network flow, stochastic programming, etc.) to Riverware which might distribute the open source.

I got started with the OSL when I was in an AI group at IBM's Watson lab where the OSL was written. The Watson lab long had some high expertise in optimization -- Gomory (cutting planes, Gilmore-Gomory column generation, etc.) was head of the lab; there was Phil Wolfe (the Wolfe dual, etc.), Ellis Johnson (group theory and integer programming), etc.

So, in particular, if still want to do some OR and optimization, get some quite well written software, and save some money, then might look into getting all the IBM OSL code open source.

<comment><USER29> > The message long was "Operations Research is dead."

Could you elaborate on why that was perceived to be the case ?

It seems like the number of applications is very large and I suspect the technology is under-exploited outside of very large organizations.

<comment><USER49> Of course _optimization_ went back at least to Newton and his work to find the shape of a frictionless wire that would let a bead slide down in least time. That problem was a seed for the field of _calculus of variations_ and later deterministic optimal control.

But the _optimization_ of operations research was different, e.g., less central use of calculus: Some of the surprising history is in a book review at

[https://www.jstor.org/stable/2975180?seq=1#page_scan_tab_con...](https://www.jstor.org/stable/2975180?seq=1#page_scan_tab_contents)

And that is not really the beginnings of such things since there was the Kantorovich work on the cutting stock problem.

In that book review will see that linear programming (LP) had a launch as a big splash. Broadly it appeared that LP was so close to so many important practical problems -- military, commercial, maybe more -- that it was bound to become a big thing for a long time. And, can check, IIRC several Nobel prizes in Economics were given for LP and more topics in optimization applied to economics.

And there are connections with _two sided_ optimization, i.e., the theory of two person games (e.g., paper, scissors, rock) since the basic saddle point result, IIRC first proved by von Neumann, follows easily from the duality part of basic theory of LP. So, again LP looked good.

Can't leave out the Hugh Everett work: He had a company around DC working on military problems -- best allocation of resources. Everett's theorem is a cute version of Lagrange multipliers and supposedly the foundation of his Lambda Corporation. Yes, that Everett, physics student of J. Wheeler where Everett worked up the _many worlds_ interpretation of quantum mechanics.

Operations research had a more general big push during WWII, e.g., with some of the work of F. Dyson.

So, by the 1950s, it looked like operations research (OR) and its tools of optimization, especially LP, were to be _big things_.

Problems:

(1) Real Problems. What real problems were to be solved? Too commonly the problems were not really _linear_ or were linear but linear _integer_ (which led to the question of P versus NP).

(2) Data. Too often it was a struggle to get the needed real data.

(3) Software. The IBM OSL I mentioned was good software, and so are C-PLEX, Gurobi, and more, but in the 1950s the software situation was grim.

(4) Computing. The 1950s computers, e.g., the IBM 709, were clumsy to use, slow, and expensive.

Then (1)-(4) too easily resulted in projects with not so good fits with reality, over budget, and later than promised. Reputation fell.

Another problem, no surprise, was that the real business problem commonly evolved faster than the optimization software could keep up.

But for selected and sufficiently valuable applications, e.g., running an oil refinery, by 1970 LP could be a big money maker.

There were claims that companies that mixed animal feed did well with LP in, say, the 1970s or so.

In the 1980s the situation on LP software and computing was good enough to permit some better -- project time and budget -- results on real problems.

By the 1980s, B-school accreditation called for a course in LP. So, a lot of B-school students got a good introduction to LP.

But there was very little down to essentially no instruction to turn out well _skilled_ professionals in OR or LP. The college profs concentrated on publishing papers, e.g., about P versus NP, and were discouraged from working on real, non-academic problems from outside academics, i.e., were not like MDs in medical teaching/research hospitals who were also _clinical_ and professional. So, the OR/LP workers who were available still needed some years of _hands on experience_ to become competent professionals for important practical applications.

The standard attitude in the C-suites was a special case of C-suite attitudes more generally -- don't spend money on chancy, risky stuff. Instead, if there is to be a development project, then time, budget, good ROI, etc. needed to be reliable. So, in the C-suites, LP and OR got reputations as "dead fields", flops. Or maybe no middle manager ever got fired declining to pursue an OR/LP project. Neither the C-suite nor a middle manager wanted to have their career at risk from an OR/LP project they didn't understand.

The problem of P versus NP also hurt: Or, the dream was that in business we should need only to _formulate_ an optimization problem, type that into some software to get the problem ready for some _solver_ software, and then have the solver produce an optimal solution quickly and reliably. Well, with the P versus NP issue, we saw that at least for now such a _solver_ was asking for too much.

[My experience was that it was usually necessary and effective to take the problems one by one and exploit special structure.]

Giving up that way was mostly a mistake: If the real business problem is a $100 million project, an optimal solution might save $15 million, the problem is a case of NP-complete so that saving all the $15 million to the last penny, guaranteed, in reasonable time, is also in this particular case (not necessarily the worst case of the P versus NP issue) not reasonable but saving $14 million is reasonable, then still commonly people regarded the challenge of P versus NP and showing that anything about optimization for the real problem was unreasonable and would also believe that the challenge of P versus NP meant that the $14 million was also beyond hope. People just gave up.

But in broad terms from 100,000 feet up, the original observation that business needs optimization was correct then and still, now. For such problems, a lot of what has long been known in LP and optimization more generally is uniquely powerful, relevant stuff.

So, there's money to be saved.

The main question is, do C-suites want to fund the relevant projects?

My guess is that the C-suites and middle managers have not changed much and, no, rarely want to fund the relevant projects.

</comment></comment></comment><comment><USER50> Google OR tools was an excellent resource when I was trying to solve a p-median problem in Python for my operations research course in school.

[https://github.com/ralaruri/Pmedian/blob/master/PMedianRamzi...](https://github.com/ralaruri/Pmedian/blob/master/PMedianRamziEditFinal.py)

</comment><comment><AUTHOR> I would imagine that this tool would be helpful if you connect it with a social graph, i.e. self organizing Facebook groups which help each other take care of each other's children during the Corona outbreak or schedule incident response teams in an organization,like:" who has to work together? Are there any hidden connections between employees?"

</comment><comment><USER51> The problem with employee schedules where employees work in shifts is communication. At one place it was done using Excel as I'm sure it's still done today in many organizations.

You always have two people trading shifts but never telling anyone. Then the one who was supposed to work doesn't show up they forgot they traded shifts.

Human nature is half the problem.

</comment><comment><USER52> Are there any good projects that implement this in a user-friendly system that allows schedulers to choose from multiple options and make adjustments based day-to-day conditions?

Algorithms like this look cool but can end up being too rigid for many real- world scenarios. You can't just take the output and force everyone to follow that schedule.

<comment><USER53> One option for real world use is to take the rigid schedule, and tell people that if they don't like it they need to find swaps with other people. Make the fill schedule visible to all so people can easily find swaps by hand. Always pay the original shift owner for the shift, and preferably, don't even keep records or who really did the shift (doing so opens you up to liability if employees swap in some way that is illegal, such as doing not enough shifts to qualify for medicare/benefits/whatever).

Tell them that it is critical someone fills every one of their shifts, but it needn't be them. Employees will end up bartering, swapping, paying for others to fill their shift, etc. Overall, most shifts will get filled, and most people will be happy.

You run the small risk that an employee will deliberately use the ability to swap to work some illegal shift pattern, and then prosecute you over it. So far, it's never gone far.

<comment><USER54> Admitting you pressure your employees (not independent (sub)contractors) to pay off part of their wage to do their job? Offloading your logistical planning work to staff and not paying them for the time spent? This is begging for a NLRB lawsuit and I hope someone wises up.

<comment><USER53> True, although from what I've seen it's actually rare for money to change hands. There seems to be quite an honor code - "I'll do your shift this time, as long as you remember that next time I want the day off.".

The only time people get upset is if someone trades a bunch of shifts, then quits. People who don't like that have the option of just not swapping shifts though.

<comment><USER55> I don't believe that's "the only time people get upset". Even if no one ever quits, this has got to be causing lots of drama. In most places I've worked, managers did management and hourly workers did not. When you want to abuse an hourly worker like this, you have to move them to a salary. Traditionally that salary would be a bump up from their 40-hour wage.

</comment></comment></comment></comment></comment><comment><USER56> Really nice. OR is not my field, and when I must dabble, in the past, I always used MiniZinc constraint solving language (sometimes with Python bindings).

On the page above the linked page, on Google's OR tools, there is mention that their tools won four gold medals in the MiniZinc completions.

<comment><USER19> Not just this year but the last couple of years

</comment></comment><comment><USER57> " _OR-Tools is open source software for combinatorial optimization, which seeks to find the best solution to a problem out of a very large set of possible solutions._ "

</comment><comment><USER54> Why was the title changed to something less informative?

</comment><comment><USER58> This doesn't take into account certain people are more productive when paired up (and less productive when paired with other people).

<comment><USER19> No it doesn't. It's an extremely basic model to introduce the CP-SAT solver to people with little to no experience in scheduling problems or CP. Pairing up people based on such criteria requires turning the problem into a MOCO or incorporating it with the current objective function.

</comment></comment><comment><USER59> "Every day, each shift is assigned to a single nurse, and no nurse works more than one shift" WeirdChamp

</comment><comment><USER60> How does it compare with Gurobi optimiser ?

</comment><comment><USER61> What is this? There's no introduction

<comment><USER19> It's an example model of how to use the or-tools CP-SAT solver to solve employee scheduling problems. It's part of the or-tools library which is a framework for solving scheduling, routing and other NP-hard discrete optimization problems [https://developers.google.com/optimization/introduction/over...](https://developers.google.com/optimization/introduction/overview)

</comment></comment><comment><USER62> From "Ask HN: What algorithms should I research to code a conference scheduling app" [https://news.ycombinator.com/item?id=15267804](https://news.ycombinator.com/item?id=15267804) :

> _Resource scheduling, CSP (Constraint Satisfaction programming)

CSP: [https://en.wikipedia.org/wiki/Constraint_satisfaction_proble...](https://en.wikipedia.org/wiki/Constraint_satisfaction_problem)

Scheduling (production processes):

[https://en.wikipedia.org/wiki/Scheduling_(production_process...](https://en.wikipedia.org/wiki/Scheduling_\(production_processes\))

Scheduling (computing):

[https://en.wikipedia.org/wiki/Scheduling_(computing)](https://en.wikipedia.org/wiki/Scheduling_\(computing\))

... To an OS, a process thread has a priority and sometimes a CPU affinity.

From [http://markmail.org/search/?q=list%3Aorg.python.omaha+pysche...](http://markmail.org/search/?q=list%3Aorg.python.omaha+pyschedule#query:list%3Aorg.python.omaha%20pyschedule+page:1+mid:enenp7smhvr5636g+state:results) :

Pyschedule:

\- Src: [https://github.com/timnon/pyschedule](https://github.com/timnon/pyschedule) _

From [https://github.com/timnon/pyschedule](https://github.com/timnon/pyschedule) :

> _pyschedule is python package to compute resource-constrained task > schedules. Some features are:

\- precedence relations: e.g. task A should be done before task B

\- resource requirements: e.g. task A can be done by resource X or Y

\- resource capacities: e.g. resource X can only process a few tasks

Previous use-cases include:

\- school timetables: assign teachers to classes

\- beer brewing: assign equipment to brewing stages

\- sport schedules: assign stadiums to games

_

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

> _Slurm is the workload manager on about 60% of the TOP500 supercomputers.[1]

Slurm uses a best fit algorithm based on Hilbert curve scheduling or fat tree network topology in order to optimize locality of task assignments on parallel computers.[2]_

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

> _[...] the Hilbert curve scheduling method turns a multidimensional task > allocation problem into a one-dimensional space filling problem using > Hilbert curves, assigning related tasks to locations with higher levels of > proximity.[1] Other space filling curves may also be used in various > computing applications for similar purposes.[2]_

</comment><comment><USER63> DevRel was a mistake.</comment>


Stephen Hawking: "The Human Species Has Entered a New Stage of Evolution" - <AUTHOR> http://www.dailygalaxy.com/my_weblog/2010/01/stephen-hawking-the-human-species-has-entered-a-new-stage-of-evolution-the-daily-galaxy-top-story-of.html

<comment><USER2> Don't know the science involved but how does the evolution of life strictly out of impersonal forces over eons of time transmute into a process that somehow can be controlled by any species? In other words, if the very nature of _being_ is purely and eternally impersonal (i.e., no deity or other overriding intelligent force as creator or overseer of creation), on what basis can this possibly change to the point where there emerges a controlling, _purposeful_ force that suddenly overrides everything else in existence?

Is there some form of science that attempts to describe how that change occurred or is it a philosophical assumption based on a worldview tied to evolution?

<comment><USER3> If I understand you correctly, you're saying that if being is the result of chance, then so are our wills.

So if evolution is the universe blindly programming creatures, then human- directed evolution is the universe blindly meta-programming, via our wills.

In other words, destiny and purpose are illusions in a materialistic worldview. (How we manage to perceive them is another paradox.)

</comment></comment><comment><USER4> His vision of modifying human behavior is pretty much the plot of "Brave New World". I'm not sure why this goal of forcefully improving the human race is so appealing to people. It seems strange to me to want other people to guide the direction of our species.

<comment><USER3> Yes. C.S. Lewis makes an interesting argument in "The Abolition of Man." IIRC, he says this: imagine a generation which has absolute power to shape the following generation to its will. Every generation that follows will then be puppets of that generation.

So humanity's power cannot continue growing indefinitely. If it reaches a high enough point, it will immediately drop to 0.

From Wikipedia: "The final chapter describes the ultimate consequences of this debunking: a distant future in which the values and morals of the majority are controlled by a small group who rule by a perfect understanding of psychology, and who in turn, being able to "see through" any system of morality that might induce them to act in a certain way, are ruled only by their own unreflected whims. The controllers will no longer be recognizably human, the controlled will be robot-like, and the Abolition of Man will have been completed."

<comment><USER5> I like C.S. Lewis, and this quote definitely makes me want to read this book soon. It seems timely and relevant to the "Singularity" kind of thinking.

Thanks for the tip!

</comment></comment></comment><comment><USER6> Please tell me if I am wrong or incorrect here but...

How come someone like Hawking can make statements like this when he is not a evolutionary biologist? And how come people will take him seriously when he hasn't gained the ethos.

<comment><USER7> Can it be because he is not talking about evolutionary biology? He is taking a wider view of human evolution.

<comment><USER5> To me, it is more of a metaphor stretched past its breaking point. Is reading books really just an extension of the process of biological evolution? To me, it seems a very different kind of thing, and conflating it with biological evolution confuses more than it clarifies.

</comment></comment></comment><comment><USER8> I'm sure the original talk by Hawking was inspiring, but this summarised version reads like an edulcorated sci-fi dream, somewhere on par with "some day we'll all have flying cars". Sadly, all the substance seems to have been squeezed out of this one to leave only fairly trite and obvious ideas.

Would be interesting to see a transcript or recording of the original talk.

</comment><comment><USER9> It's kind of out there, but there's a related scene in the film `Waking Life'.

"What is interesting here is that evolution now becomes an individually centered process, emanating from the needs and desires of the individual, and not an external process, a passive process where the individual is just at the whim of the collective. So, you produce a neo-human, okay, with a new individuality and a new consciousness. But that's only the beginning of the evolutionary cycle because as the next cycle proceeds, the input is now this new intelligence. As intelligence piles on intelligence, as ability piles on ability, the speed changes. Until what? Until we reach a crescendo in a way could be imagined as an enormous instantaneous fulfillment of human, human and neo-human potential. It could be something totally different. It could be the amplification of the individual, the multiplication of individual existences. Parallel existences now with the individual no longer restricted by time and space."

For the full excerpt and a clip: <http://ieet.org/index.php/IEET/more/waklifeex/>

</comment><comment><USER10> There are very many other authors who talk about how most evolution (change) in human daily life now comes about mostly because of cultural innovation rather than because of new inherited characteristics in successive generations of Homo sapiens. Hawking has neither a special competence nor a special lack of competence to speak to this issue--anyone who knows basic facts about biological evolution and the development of human culture can make (and probably has made) the same observation. What's interesting here is Hawking's attempt to attach numbers to the rate of evolution (change) in genes and in cultural information. Plainly humans will develop the most in new directions as a result of cultural changes.

</comment><comment><USER11> Because the alternative - survival of the fittest - is incompatible with contemporary/democratic human values. In deed, and sometimes in thought, we pretend evolution does not apply to humans. The issue cannot just be avoided, in the long term there are 3 options: a) Design the next generation. b) Do nothing. Go backwards genetically. c) Create a reproductively unfair society based on fitness (hopefully not one which involves people dying off - but the alternative is preventing people who are not medically and financially independent from having children).

I agree with your sentiment (and am a B or C)

</comment><comment><USER12> The point of the article is made about books, which are an insignificant source of information. Average folks learn from books a little in school ( I remember returning many college textbooks unread), then never again. Its the media that matters. And its bitrate is orders of magnitude larger than books.

</comment><comment><USER13> Human beings did not evolve from the apes.

<comment><USER14> Yes, you're quite right. We are apes. (though that may also depend on your classification philosophy [1].)

[1] <http://www.talkorigins.org/origins/feedback/oct02.html>

<comment><USER13> amen. Occasionally even well-intentioned writing suggests that humans are at a more advanced evolutionary stage than our sister species, even though we've all been doing it the same amount of time.

</comment></comment></comment><comment><USER15> This theory essentially what Ray Kurzweil has been preaching for years.</comment>


Ask HN: Extrovert programmer without programmer friends, where do I find energy? - <AUTHOR>

Hi HN,
I'm a really extrovert person, now doing remote CS studies. My classes are going fine (translated to US grades they're all A or B).
However, I constantly feel stressed and depleted, since I meet so few people in person in my day life.
The classes are not particularly hard, my deadlines are not that bad, and every time I have a short break when I'm able to meet a lot of people, I'm myself again.
I've got some programmer buddies on Skype, but they're not enough. Right now I just want to drop out to be in a place with actual humans.
How do other extrovert programmers deal with the isolated life that is remote work/study? <comment><USER2> A lot of people I know spend time in cafes when doing school work (maybe even doing classes) and when working on projects during the weekend. While being in the midst of people might not make you any less lonely/isolated (it's easy to be lonely/isolated even in the midst of a big group of people), but you should be able to get some more of that human interaction, and if you run into a person that looks to be coding too, you can strike up a conversation.

Also, what about meetups in your area? That's a great way to meet people with expertise AND meet friends who code/are doing stuff

There are also always the kind of rougher typical suggestions: joining sports leagues or doing some physical group activity (ex. yoga).

You could also take a side-job at a bar/cafe or something.</comment>


Facebook employees reveal 22 awful things about working at Facebook - <AUTHOR> http://www.businessinsider.com/the-22-worst-things-about-working-at-facebook-according-to-employees-2015-7

<comment><USER2> does it bother anyone else that none of the photos are just random stock photos and not actual from FB offices</comment>


Ask HN: Sr Software Management Positions Perks? - <AUTHOR> Hi everyone,
I have been offered fairly senior positions with a couple of Fortune 100 companies. I have a non-traditional background and would appreciate insights from folks who have been there and done that.
I would appreciate your insights to help with negotiations.
What are usual perks for Director/Sr Director/VP of software engineering/ops positions?
Guaranteed contract? Severance? Premium benefits? Bonus target (offered is 30%)? Anything else that should be considered part of standard package?
Thank-you all! <comment><USER2> Quarterly bonuses of 8%-25% or guaranteed (in your employee/promotion offer letter and added to your contract) end of year bonuses and if it is a startup quarterly additional stock options based on company, sector, team performance. Some may even pay for your home, car, and offer fully paid tuition/books/university fees.

You may also gain the ability to ride (company paid) business or first class for all of your domestic and international flights or if if your in a really profitable company or high position in a government agency you get to fly on the company/agency/chartered jet(s) for some or all flights. You may also get an assistant or assistants to help you out with personal and business related activities since you should be pretty busy and may forget things, they will normally keep your schedule and keep you on schedule 24/7/365.

You normally get a pretty nice severance package that is only offered to C-Level management which is only VP and above. Though if it is your first time you should have a sit down with an attorney to make sure what you get from the company is good to go and a financial advisor and tax accountant to help you make a plan for what to do with those extra benefits and how they can affect you tax wise so you know what is seen as income and what treated as gifts. This way you will have a full picture of what you are really getting. As sometimes it may look like more, but may push you into a new tax bracket or increase your taxes to not make much of a difference in the end. Either way it is good to have a full overview so there are no surprises at the end of the year.</comment>


HTC Vive President: 'VR Clearly Has a Marketing Problem' - <AUTHOR> http://www.alistdaily.com/strategy/htc-vive-president-vr-clearly-has-a-marketing-problem/ <comment><USER2> The problem VR has is very few people really want to sit, or stand and stumble around, with a headset on for very long and that's not gonna be easy to fix because the main competition with it, real reality, is pretty darn good.

<comment><USER3> "Casual VR" will probably have the same sucess as "casual gaming" has in the industry.

After the fad blows over, VR space will probably largely be enthusiasts for a while if I had to guess.

The real potential for VR's wide adoption, the "killer app", outside of the productivity space, will likely be experiences that sensually overwhelm and stir up intense emotions while educating the user.

But there are still fundamental issues with VR that must be worked out first, namely inside-out tracking, increased mobility scale, and fatigue. It's an ongoing effort.

<comment><USER2> I think it goes deeper than that, or more pointed, it goes to "fatigue" and that aspect is highly underrated in the market projections.

The tech is amazing, no doubt about it, and there's lot's of headroom to make it even more so, but the experience is a novelty that wears off fast and when it does one is left fatigued and that sticks.

The idea of exploring, say, Machu Picchu in VR is cool as can be. Same can be said for 1000s of destinations, but after a few you're satiated and it's human nature to long for what's real.

Like any trendy tech there will some who immerse themselves in it but I don't see people spending huge amounts of time with it.

Here's why... After I've done Machu Picchu in VR I know pretty much what everything else will look like. I want to touch the walls and breath the air and meet the people at Machu Picchu, not just see images of it. I want to be there.

And deep down inside I know if I become immersed in (or addicted to) VR I lose touch with reality and there are innate feelings of guilt and waste in that which are inescapable for most of us.

<comment><USER3> I think this is why the holy grail is experiences that both sensually overwhelm and educate the user.

Social multiplayer VR games like Star Trek: Bridge Crew will certainly maintain a foothold, but what I and I think most people are looking for isn't a tour of the reality we already experience, but a tour of places that expand upon or altogether do away with reality.

I want to come out of some VR experiences a changed person, just like I would a great journey into the unknown.

I want to experience the bloodshed of war firsthand in such a profound way that I develop PTSD and refuse to support any unnecessary warfare in real life, and develop empathy and respect for veterans.

I want to solve puzzles so intricately deep (4-dimensional, based on different physical laws, etc) that I have no comparison for real life.

I want to create my very own meditation / thinking chamber, where I can surround myself with things I'm trying to comprehend, like a new language, or information surrounding an unsolved mystery, or a multidimensional flow control graph in an interpreted program.

I want to study 3-dimensional star maps and universal simulations like Space Engine [0], because I don't have time to wait for holograms.

I want to physically train my reaction speed, my hand-eye coordination, my racquetball score, etc.

I want to experience VR audiovisual albums that will no doubt be made by experimental artists of the next generation.

When I am putting on a VR headset, if I am not doing so to teach myself, I am doing so to give the opportunity for someone else to teach me with unprecedented access to my sensory system.

That, to me, is the real application of VR. That is why I will probably end up spending hours upon hours in VR-space, like many today spend on their phone, only I am getting something appreciable and of essence.

[0] [http://spaceengine.org/](http://spaceengine.org/)

<comment><USER2> "I want to physically train my reaction speed, my hand-eye coordination, my racquetball score"

I get all that, but this example sticks out because it's not really "racquetball" and I couldn't help but question myself about why I didn't go play real racquetball, or go to real concert.

And, as far as war is concerned, I find it far to easy to imagine the experience in an all to real way and do not want to dwell on that or see or suffer the real effects of participating in it.

"When I am putting on a VR headset, if I am not doing so to teach myself, I am doing so to give the opportunity for someone else to teach me with unprecedented access to my sensory system."

That may be true to a point. It's also a great description of a "brainwashing" machine.</comment></comment></comment></comment></comment>


Sex the new currency on trading site Bunz - <AUTHOR> http://www.cbc.ca/news/business/sex-bunz-trading-swap-sharing-economy-1.3624851 <comment><USER2> They named the app "Bunz" what did they think was going to happen?</comment>


Top Down Operator Precedence - <AUTHOR> http://javascript.crockford.com/tdop/tdop.html <comment><USER2> And here's a truly nifty application of it for parsing Python: <http://effbot.org/zone/simple-top-down-parsing.htm> .

Funny how these things go in cycles: parser generators were all the rage for a few decades, and now people are rediscovering the pleasures and strengths of top-down recursive parsers. (E.g., in the new clang compiler that's part of the LLVM project.)</comment>


There Is No Campus Free Speech Crisis: An Unreasonably Long Thread - <AUTHOR> https://twitter.com/JeffreyASachs/status/972150713890549760 <comment><USER2> "These aren't the droids you're looking for."</comment>


Ask YC: Becoming an OpenID relying party - <AUTHOR>

I've seen a few OpenID advocates here.  Anyone with experience becoming a relying party, in a JVM-based environment?  There are several class libraries to choose from, and I don't want to do a deep comparison myself if someone here already has. <comment><AUTHOR> Here's the best writeup I found on my own:

<http://www.plaxo.com/api/openid_recipe></comment>


Imba - create complex web apps with ease! - <AUTHOR> http://imba.io/home <comment><AUTHOR> This is the new website for Imba. I'd love to get advice and constructive feedback regarding both the site itself, and the learning material.

<comment><USER2> The benchmarks seem fishy to me. The last time I looked, Mithril was much faster than React. This seemed to be one of its main selling points, besides being a much smaller lib.

What happened? Did Facebooks money buyed so much speed improvements or did Mithril just get slower?

Nevertheless a impressive performance for Imba. As a LiveScript fan I also like the syntax very much :)

<comment><AUTHOR> The benchmark where mithril was much faster is very flawed, see comments from creators of vue: [http://vuejs.org/perf/](http://vuejs.org/perf/). Mithril was faster because it rendered asynchronously once every frame, while React rendered on every single simulated event. We will write a blogpost describing why Imba is in fact so much faster. I stand by the benchmark, and would love to explain it in detail. You can see some more discussion about it here: [https://github.com/somebee/imba/issues/9](https://github.com/somebee/imba/issues/9)

<comment><USER2> Thanks for the links, didn't know about these issues.

Because of the syntax alone I want to play around with Imba, haha.

How does it interopt with JavaScript?

<comment><AUTHOR> It compiles to standard js, and it's entirely unproblematic to interoperate with any/all js libraries. I myself use Imba whenever I need to write something for web/node, even if it is only a small library to be used in a larger javascript project, but obviously I'm quite biased. If you're thinking about specific libraries / cases I'm happy to write up an example.

<comment><USER2> Ah, so it is more like LiveScript than Elm?

At the moment, the libs I'm using the most are Axios, Redux and Moment, Leaflet and D3.

Does an Imba app even need something like Redux (or Flux?) or does it have an own state-mechanism?

<comment><AUTHOR> Yes, more like LiveScript / CoffeeScript. I don't think apps written in Imba really need anything like Redux/Flux, nor any other framework for that matter, since the way you define tags etc structures your code pretty well. We still don't have an official recommended way to do routing, as we're still experimenting with different approaches in real apps to see what sticks. You can check out the full source for the website at [https://github.com/somebee/imba.io](https://github.com/somebee/imba.io). It is not documented at all yet, but at least it gives some impression.

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> How do imba convert any XML files to JS object that we can manipulate to just about everything?</comment>


Time Magazine profile of Steve Jobs (1983) - <AUTHOR> http://www.time.com/time/printout/0,8816,953633,00.html

<comment><USER2> I love these vintage interviews from back in the day.

Can one conclude from this interview that Steve Jobs is an example of a non technical founder or probably the most successful non technical founder?</comment>


Punchfork - <AUTHOR> http://www.punchfork.com <comment><AUTHOR> It's back! From the About page:

Company History

\- 2010 Originally founded

\- 2012 Grew to 1M users

\- 2013 Acquired by Pinterest — formed recipe pins [0]

\- 2020 Rebuilt from the ground up — relaunched as an independent company

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