sirgawain33
Joined 13 years ago
Joined 13 years ago
https://www.youtube.com/watch?v=vsA4w3itxA0
It's an introduction to differential privacy to an academic audience (i.e. not necessarily computer scientists). I sweeps across a range of surprising real-life privacy attacks that are possible against anonymization approaches that feel good-enough. Really gives you a sense for sort of problem that privacy protection is in today's world of greatly increased data collection and computational power.
https://en.wikipedia.org/wiki/Differential_privacy#Definitio...
One way to phrase it intuitively is "the probability of any particular output from two databases that differ by one element is almost the same". The bound on "almost" is captured by the privacy parameter ε.
One of the smoking guns that this algorithm is not differentially private is that the code doesn't import `random` anywhere! A differentially private algorithm is always going to be stochastic.
The anonymization approach implemented is "generalization". Here's a test showing the outputs this app would produce:
https://github.com/abe-winter/arbout/blob/master/test/test_d...
"Computermen sent up to install Mike were on short-term bonus contracts— get job done fast before irreversible physiologlcal change marooned them four hundred thousand kilometers from home. But despite two training tours I was not gung-ho computerman; higher maths are beyond me. Not really electronics engineer, nor physicist. May not have been best micromachinist in Luna and certainly wasn’t cybernetics psychologist. But I knew more about all these than a specialist knows—I’m general specialist. Could relieve a cook and keep orders coming or field-repair your suit and get you back to airlock still breathing."
from The Moon is a Harsh Mistress
I've seen many devs jump to caching before investing time in understanding what is really causing performance problems (I was one of them for a time, of course). Modern web stacks can scream without any caching at all.
Years ago, a talk by Rasmus Lerdorf really opened my eyes up to this idea. [1] He takes a vanilla PHP app (Wordpress, I think) and dramatically increases its throughput by identifying and tweaking a few performance bottlenecks like slow SSL connections. One of the best lines: "Real Performance is Architecture Driven"
[1] I think it was a variation of this one: https://vimeo.com/13768954
Three exercises along the lines of the parent that I found particularly valuable:
1. Compare VanillaJS TodoMVC to your framework of choice
https://github.com/tastejs/todomvc/tree/gh-pages/examples/va...
What does the framework buy you? Is the framework-powered code easier to read? Easier to understand for a newcomer to the code base?
2. Read every line of Effective Javascript (it's short and eminently practical) and write out every code example.
http://www.amazon.com/Effective-JavaScript-Specific-Software...
There are about a dozen small errors in the code in the book, see if you can find them.
3. Read substack's alternative Javascript build flow:
http://substack.net/task_automation_with_npm_run
Think about the possibilities and limitations. (I personally love his approach at the beginning of projects when I could care less about fiddling with gulp and want to get into exploring the guts of a problem)
"If, namely, we wish our trains of ideation and volition to be copious and varied and effective, we must form the habit of freeing them from the inhibitive influence of reflection upon them, of egoistic preoccuptation about their results.
...
Say to yourself, 'I won't waste another minute on this miserable thing, and I don't care an iota whether I succeed or not.' Say this sincerely, and feel it; and go out and play, or go to bed and sleep, and I am sure the results next day will encourage you to use the method permanently."
Despite using a bunch of fancy new language feature, name-dropping Knuth, and describing the solution for an hour, the result is code with no additional benefit and significantly worse maintainability.
Sometimes being smart doesn't have to look so smart.
Indeed, with food production, the evidence and points of view are always very diverse and nuanced. It's a complex subject--endless, really.
Here's a clip about banana chemical treatment...
> "...Zemurray finally addressed the problem. He found a solution, which he called 'Bordeaux Mixture' and that combined copper sulphate, water, and lime. Zemurray's experts cautioned him against its overuse but he had it pumped on the plantations in increasing quantity. It was a cocktail with quite a pleasant name, but the giveaway was in the title of those employed to spray and pump it: veneneros, or for want of a better translation, 'poisoners'
I would be very interested to find out if the industry decreased the pesticide/fungicide load since this was documented. I'm quoting secondhand here, Chapman notes in the 2007 book
> Of the world's food crops, the banana is the most chemically treated (so we depend on its skin's ability to prevent disease)
The story of marketing bananas is such a strange one. The 'Father of Public Relations', Edward Bernays, was heavily involved. There isn't a compelling dietary reason to eat bananas (expect, I suppose, if it's the only thing you've got). They resorted to the same marketing tactics that were used to sell cigarettes.
> "Samuel Crowther...looking back on nearly twenty years later on these early days of United Fruit in his book The Romance and Rise of the American Tropics, what was being discovered was that 'demand is a thing which must be created" (51)
Without getting into too much of a discussion about health and diet... I find that the heuristic that "anything new is bad" seems to work pretty well with food. Trans fats, high fructose corn syrup, factory farms, etc.
The history of bananas shows that the production and demand for the fruit is both very new and completely artificial.
Again, please feel free to draw your own conclusions. The only point to make here is that I found the reading surprisingly fascinating -- a banana is not just a banana.
The thumbnail summary: bananas only started being widely consumed in the 1960s because of heavy marketing efforts by Central American railroad builders (they had to do something with the land along the sides of the newly built railroads, and bananas happened to fit).
They are heavily chemically treated, more than any other fruit. They've been a monoculture almost since Day 1.
Oh, another fun fact, those little stickers on bananas? They were one of the first examples of 'branding'
I didn't find this article all that well written or informative. I recommend Chapman's Bananas: How the United Fruit Company Shaped the World
I also happened to read John McPhee's Oranges at the same time. The contrast between the orange (an ancient fruit, widely consumed, hardy, with a rich literary tradition) and the banana is stark.
Both books, by the way, are great little studies in technology business. Techno-optimism, marketing, PR, globalization, manic CEOs; it's all there.
I realized over time that the collection wasn't the hard part. It was the categorizing and simplifying. The author hits on it a few times:
"It is the extraction and organization of the information that takes time... I know full automation is not feasible, since the imposition of meaning onto the raw information is something that I must do, not the computer."
In my experience, the simplifying is really where you get all the gain.
What is simplifying?
It's distilling a complex research paper into a few key data points. It's naming files well so that you can search them with Spotlight. It's learning to write more clearly. etc.
That last one -- clear writing -- should have been obvious. Good writers manage to convey so much information in so little space. How do they do it?
The parallel to programming should be obvious. When you name things well, they become very easy to find and use.
We can expand this to a bigger point: if you really want to get smarter, you need to be learning to simplify because your brain can only hold so much at once.
It's like learning the law of gravity rather than cataloging every time an apple falls from a tree.
The following unintuitive conclusion arises: you should be looking to make your "Personal Knowledgebase" more difficult to grow because it forces you to go through the simplifying process sooner.
I stole this idea from someone on HN: anytime I find an idea or quote that I think it important, I clip it into a Word Document and print it out. I keep these in a binder. I have gone back to these notes so many more times than anything that I have in any digital form. More significantly, these bits of information have influenced my life more often and more deeply.
The point is that the technique was well known. It's not manufacturing or aesthetics that's been holding back the technology.
https://getnumberseven.com