I took a version of this class (called The Art of Approximation) with Dr. Mahajan when he was a visiting professor at Olin College. The course helped me become fearless about tackling a broad range of math problems I knew little about, and has helped me in countless real life situations from financial planning to major work decisions.
Also, it's a great intro on good ways to nail PM interviews, at least at Google (where I now work, thanks in no small part to the lessons from this class).
If you have a spare few hours, read this book or take his classes on edX. It'll absolutely change your intuition for numbers.
> it's a great intro on good ways to nail PM interviews, at least at Google (where I now work, thanks in no small part to the lessons from this class).
Could you give an example? It would be great to know why you say so.
Allen taught every single software class I took in college,its awesome to see his writing recognized on HN! We actually worked through LBoS during a software systems course this past spring semester, it was a great way to get introduced to the complexities of multithreaded programs.
Really cool idea, I have a general question about the healthcare app space -- how many of these apps are written ad-hoc for each medical practice? I.E., should I expect my dentist to run a totally different software stack from my general practitioner, and do they usually run custom software or more general solutions?
Also, how much of the existing stuff is written on .NET? I have a feeling that's a pretty popular stack for a lot of small business/enterprise companies, but is harder to support via open source software.
If you're referring to what the providers use for patient documentation, billing etc, there's a slew of apps out there that unfortunately don't talk to each other in much of a meaningful way without a lot of work. Beyond the big EMR companies (Epic, Cerner, Allscripts, Siemens, etc -- what you'll see at academic centers and medium-large hospitals), there are tons of companies that have come out with medical record software for individual clinics (i.e. a couple dicots in a practice not owned by or affiliated with a major medical center) and much of it is often marketed in a niche way
From what I understand, many of the statistics quoted about Iron Dome are for "attempted interceptions". This skews the effectiveness of the system towards high-priority scenarios, maybe those that are more likely to produce a winning outcome for Iron Dome.
As an Israeli, I've always heard the Iron Dome rockets are stupid expensive to fire, so the IDF really only wants to fire them during scenarios that are high risk -- e.g., a rocket fired toward the Negev is much lower priority than a rocket fired at Tel Aviv.
On another note, I think that as programmers it's an interesting exercise to speculate as to the nature of the computer systems Iron Dome employs in order to mitigate attacks. AFAIK, Iron Dome rockets are only fired when high-value areas are targeted or there is a high probability of success. Can you imagine the kinds of online learning models we employ nowadays, being able to evaluate a set of inputs in <10s ? Even a complex Bayesian inference algorithm that could solve for a probable strike area in that short time with reasonable accuracy is incredible.
As colloquial evidence, a family member of mine recently posted a photo of Iron Dome intercepting a rocket almost directly over his home. So maybe it's not that accurate or that effective, but when it does work it's worth almost every dollar or shekel spent.
> I've always heard the Iron Dome rockets are stupid expensive to fire
I'm not sure that's really true. Estimates range from $20,000 to $60,000 - that's cheap compared to the cost of a single hit on a building (which the Israeli government pays for). (And never even mind the human and economic costs.)
>>As an Israeli, I've always heard the Iron Dome rockets are stupid expensive to fire
I was wondering how they deal with DDoS scenarios. Lets say the enemy just mixes genuine rockets with dummy one's and keeps firing. They could essentially create a scenario where a lot of Iron dome missiles can be wasted destroying dud rockets.
>>Firing a dud is pointless since the cost of the rocket is the same
If this is the case. Then in the presence of Iron dome, only impact those rockets have is in scaring away people.
It hardly makes any sense to fire a barrage of rockets in this case. A more optimal strategy is fire them a few at a time spread out over a period of time.
You are forgetting that Israel [tries to] destroys the launcher and the attacker after every launch. So every rocket attack is basically a suicide attack.
I think that's the main cause of most of the civilian death - Israel doesn't have time to check for civilians in the area, they counter attack almost instantly.
So they'll launch a bunch while they can before they die.
I don't think you can really comprehend the level of hate going on there that would make someone suicide and take civilians with him for even a tiny chance of killing an Israeli.
Rockets without a payload are lighter and have greater range so you can attack more northerly targets - for example Tel Aviv. They are about public relations far more than they are conventional military weapons.
This has to be one of the clearest academic papers I have ever read. Aside from the content, the author does a really good job explaining his thesis. I wish more academic papers were written this way.
I wish that none were written this way: Using a sample size of 4, the paper proposes some layer model. Already the first language (erlang) does not correspond to this model, yet the model will later be concluded to be the way to go: "A surprising result is that the four resultinglanguages have a common structure (comment: no, they don't). [...] I postulate that this common structure will be part of one possible definitive programming language".
Then we have four conclusions:
1. the notion of declarative programming is a the 'core' of programming languages
2. it will also stay there
3. it is concluded that message passing "seems to be the correct default for general purpose concurrent programming" (my emphasis)
@1: what's the 'core'? Without any useful definition, this is a meaningless statement.
@2: aha! The core seems to change over time. OK, I rephrase my last question: what's the 'core' today?
@3: First, it's a weak conclusion that something 'seems' to be the case. But, ignoring the odd usage of the word 'correct', how does the author support this conclusion? It seems like the author thinks that presenting a couple examples for your proposed solution (message passing) allows to conclude that a competing solution (shared memory programming) is worse. I fail to see evidence for that. Yeah, programming with locks is harder than programming with actors. But it's also more expressive, so the comparison is unfair. If you want to compare erlang to, say, java, you need to compare it to programming with higher level data structures (queues, actors, ...).
btw, this one's a gem: "Declarative concurrency is a deterministic form of concurrency that is much
simpler to program with than the shared-state concurrency used in mainstream
languages such as Java [18]" -- if you look at [18], it doesn't support the simplicity claim; it's a reference to Doug Lea's "Concurrent Programming in Java". The simplicity claim remains a claim. That may be sloppy writing. Or not.
Quick question about one of the algorithms this article proposes:
>Instead, we compute a seed by combining a server_seed (which is provided in hashed form to the client before the deal - in the same way as the initial_shuffle is) and a client_seed.
What if the server picked a large value and this appending caused an overflow? Don't some languages/runtimes turn an overflow into 0? Then the server could always seed the RNG the same way.
I'm currently working on a project where we started with Trigger.IO but moved to phonegap simply because more people have used phonegap, so the documentation is a lot better.
Also, depending on your target user group, you may want to checkout out Ionic (ionicframework.com). It's a mobile-first front end framework built on top of AngularJS. I've been using it on top of cordova/phonegap and it's easy to get up and running with and very performant (on the modern devices it supports). With Cordova and Ionic, our app feels very close to native on iPhone 5+ and high-end Androids
Also, it's a great intro on good ways to nail PM interviews, at least at Google (where I now work, thanks in no small part to the lessons from this class).
If you have a spare few hours, read this book or take his classes on edX. It'll absolutely change your intuition for numbers.