Shared posts

23 Apr 23:29

Russia killed its tech industry

08 Feb 01:26

US DOT awards $800M toward street safety

17 Oct 01:31

Simon Peyton Jones interview

20 Mar 18:27

VESPA: Static profiling for binary optimization

What the research is:

Recent research has demonstrated that binary optimization is important for achieving peak performance for various applications. For instance, the state-of-the-art BOLT binary optimizer developed at Meta, which is part of the LLVM Compiler Project, significantly improves the performance of highly optimized binaries produced using compilers’ most aggressive optimizations, such as profile-guided and link-time optimizations.

In this research, we propose a novel approach to apply binary optimization without the need to profile the application. Our technique, called Vintage ESP Amended (VESPA), builds on top of a previous technique called evidence-based static prediction (ESP), which applies machine learning techniques to statically infer the direction of branch instructions in a program.

VESPA expands on ESP in several ways to make it useful in the context of binary optimizers. VESPA increases the scope where binary optimizers can be used, thus enhancing the range of applications that can leverage these tools to improve their performance. Our work also enables higher performance and better user experience for many software applications that were out of the reach of binary optimizers, such as end-user mobile applications.

How it works:

VESPA is useful for obtaining profile information to feed binary optimizers like BOLT statically, i.e., with no need to execute the target application to produce profile data. To achieve this, VESPA employs machine learning techniques. First, during a training phase, VESPA is provided with a set of applications and corresponding dynamic profiles. Using these, VESPA trains a neural network model that learns the probability that branch instructions in the programs will be taken based on various program characteristics (e.g., the condition code of the branch or whether the target block is a loop header).

After this model is produced, it can be used to infer the probability that branches from other programs will be taken. VESPA then transforms these probabilities into code frequencies, or estimates of how often each individual piece of the program will execute, similar to the information that a binary optimizer normally requires from dynamic profiles obtained by executing an application. Once the static profile data produced by VESPA is injected into a binary optimizer, this tool can proceed with its optimization steps as usual, completely oblivious to how the profile data was computed. VESPA, therefore, can very easily be integrated into existing binary optimizers, which we demonstrated by integrating it into Meta’s BOLT binary optimizer.

Compared to the seminal ESP technique that inspired our work, VESPA provides three main improvements:

  1. An enhanced neural-network model
  2. New program features to improve the model’s accuracy
  3. A technique to derive code frequencies required for binary optimizations instead of simply branch directions

Why it matters:

BOLT can provide performance speedups of about 20 percent not only for many of Meta’s widely deployed server workloads, but also for other widely used open source applications such as compilers (e.g., GCC and Clang) and database systems (e.g., MySQL and PostgreSQL). To achieve these results, BOLT relies on very accurate dynamic profile data collected from executing the target applications on representative inputs. Unfortunately, collecting these profile data adds complexity and overheads to applications’ build processes, and sometimes it is not even possible — for example, in the case of mobile applications executing on user devices. 

Using VESPA to derive static profiles for the BOLT binary optimizer, our work demonstrates that a 6 percent speedup can be achieved on top of highly optimized binaries built with Clang -O3 without the need for dynamic profiling the application. As such, our research demonstrates that binary optimizations can be beneficial even in scenarios where dynamic profiling is prohibitive or impossible, thus opening new opportunities for binary optimizers, such as end-user mobile applications.

Read the paper:

VESPA: Static profiling for binary optimization

The post VESPA: Static profiling for binary optimization appeared first on Engineering at Meta.

14 Mar 01:14

A new history of Byzantium reveals the inner workings of a late antique empire

20 Feb 21:37

Netlify Graph: A faster way for teams to develop web apps with APIs

20 Feb 21:16

Things that used to be hard and are now easy

Hello! I was talking to some friends the other day about the types of conference talks we enjoyed.

One category we came up with was “you know this thing that used to be super hard? Turns out now it’s WAY EASIER and maybe you can do it now!“.

So I asked on Twitter about programming things that used to be hard and are now easy

Here are some of the answers I got. Not all of them are equally “easy”, but I found reading the list really fun and it gave me some ideas for things to learn. Maybe it’ll give you some ideas too.

  • SSL certificates, with Let’s Encrypt
  • Concurrency, with async/await (in several languages)
  • Centering in CSS, with flexbox/grid
  • Building fast programs, with Go
  • Image recognition, with transfer learning (someone pointed out that the joke in this XKCD doesn’t make sense anymore)
  • Building cross-platform GUIs, with Electron
  • VPNs, with Wireguard
  • Running your own code inside the Linux kernel, with eBPF
  • Cross-compilation (Go and Rust ship with cross-compilation support out of the box)
  • Configuring cloud infrastructure, with Terraform
  • Setting up a dev environment, with Docker
  • Sharing memory safely with threads, with Rust

Things that involve hosted services:

  • CI/CD, with GitHub Actions/CircleCI/GitLab etc
  • Making useful websites by only writing frontend code, with a variety of “serverless” backend services
  • Training neural networks, with Colab
  • Deploying a website to a server, with Netlify/Heroku etc
  • Running a database, with hosted services like RDS
  • Realtime web applications, with Firebase
  • Image recognition, with hosted ML services like Teachable Machine

Things that I haven’t done myself but that sound cool:

  • Cryptography, with opinionated crypto primitives like libsodium
  • Live updates to web pages pushed by the web server, with LiveView/Hotwire
  • Embedded programming, with MicroPython
  • Building videogames, with Roblox / Unity
  • Writing code that runs on GPU in the browser (maybe with Unity?)
  • Building IDE tooling with LSP (the language server protocol)
  • Interactive theorem provers (not sure with what)
  • NLP, with HuggingFace
  • Parsing, with PEG or parser combinator libraries
  • ESP microcontrollers
  • Batch data processing, with Spark

Language specific things people mentioned:

  • Rust, with non-lexical lifetimes
  • IE support for CSS/JS

what else?

I’d love more examples of things that have become easier over the years.

12 Feb 19:39

Ask HN: I am not a competitive guy, how will it affect my career?

06 Feb 00:22

Cassowary – Run Windows Apps on Linux using a VM as if they were native apps

23 Dec 04:11

Our recent server issues

20 Nov 19:49

Facebook tells LA police to stop spying on users with fake accounts

23 Oct 12:51

Google takes two-to-four times as much as the fees charged by rival ad networks

15 Mar 01:03

Bitcoin Has Zero Intrinsic Value. Some People Are OK with That

15 Feb 16:48

Microsoft’s Big Win in Quantum Computing Was an ‘Error’ After All

28 Dec 20:59

Buttplug (Sex Toy Control Library) Hits v1 Milestone

28 Dec 18:55

If you don’t know you have it…

by Seth Godin

then you don’t. (Not yet.)

Cleaning out the fridge after a power failure, I found three half-empty containers of anchovies. Because they magically migrate to the back of the fridge, every time I had needed some, I ended up opening a new jar, because the old ones were invisible. Not just invisible if I had looked for them, but so invisible that it never even occurred to me to look for them.

And this is even more likely to happen with the data on your hard drive. If you don’t know to look for it, if you don’t believe it’s there, it might as well be deleted.

And of course, this applies to our lost skills, confidence and experience as well.

It’s worth putting in regular effort to remind ourselves of what we’ve already got and how it has served us in the past.

10 Dec 03:25

FTC Sues Facebook for Illegal Monopolization

23 Nov 16:22

How do you write simple explanations without sounding condescending?

Sumana Harihareswara wrote an interesting blog post Plain Language Choices recently, about writing about complicated topics using simple language and how it can sometimes come off as condescending.

I really like explaining complicated topics while trying to avoid unnecessary jargon, and I realized that I’ve thought a lot about how to do it well. So here are a bunch of things I try to do when I use simple language to avoid coming off as condescending.

use some jargon to give the reader search terms

Sometimes I see writing that completely avoids all jargon and instead substitutes simple language for all “jargon”-y words.

I like to include some jargon in my explanations because otherwise it’s impossible for the reader to search & learn more about the concept they’re trying to learn about.

write (mostly) true explanations

Something else I see sometimes in ELI5-type explanations is an explanation in plain language that’s not actually true in a useful way. I’m pretty sympathetic to why people do this – it’s super hard to write simple explanations that are also true!

And actually sometimes when I’m trying to write down a simple/clear explanation for a concept, I realize that I don’t actually understand the concept as well as I thought and that I’m not able to explain it. That’s okay!

I think there are a few options here:

  • try to say only things that are true (or at least which are a useful model for how the world works even if they’re not 100% true)
  • write things that are not really true / that you’re not sure of, but point out that they may not be true (“I think it works like X, but I realize now that it might be Y instead, I’m not sure!“)

only use “fun” visual elements on explanations that are actually well written & easy to understand

This happens more with visual aids than with simple language but I’ll include it anyway. Sometimes I see explanations which have “fun” elements to it to make it them seem more approachable where the explanation itself is still pretty unclear.

I try to be careful about this in my own work – I try to only attach “fun” elements (like a fun illustrated cover) to explanations that I’ve spent a lot of time on making really clear. Basically to me “fun” things are a signal that the content itself is really clear/accessible, and I try to not misuse that signal.

I think why’s poignant guide to ruby is a nice example of something that’s fun and clear and which has helped a lot of people learn Ruby.

Another nice example of this is: I know someone who got her master’s thesis printed as a paperback book and illustrated with some great drawings related to the topic of her thesis (trans represensentation in media). It’s called “I’m supposed to relate to this?”, here’s the paperback.

I ended up reading the whole thing because, in addition to having the fun illustrations, her master’s thesis was really well written and interesting! The fact that she did the work to print a paperback book of her thesis and get it illustrated was a sign that she’d worked on making the writing accessible to a non-academic audience, and it was true!

tell a relevant story

Stories can really help people learn! For example, something I’ve done a lot on this blog is talk about a problem I ran into in the course of my job and what I did to solve that problem.

Some kinds of stories that I think work well:

  • a real problem that someone ran into, to motivate why the concept is interesting / important to learn
  • something that’s happening on a computer, framed as a “story” (for example https://howdns.works/ tells a story about how DNS works. Everything in the story literally corresponds to exactly what happens when you make a DNS query)

Sometimes I see stories used to explain concepts that don’t fit into either of these and feel kind of pasted on, like they’re there to help the concept seem “fun” but don’t actually illustrate the concept or motivate why it might be useful to learn it.

have a specific audience in mind

I try to write relatively simple explanations, but when I write I also generally assume a lot of knowledge on the part of my audience.

Sometimes I see explanations of complicated concepts that start with explaining the very basics of the topic. This usually isn’t that effective: if someone is trying to understand some super technical aspect of containers, they probably understand the basics of containers already!

“Have an audience” is more of a general writing tip so I’ll leave it at that.

on using simple language as a joke for people who already understand the idea

Here’s a very fun explanation of a complicated thing using simple language: Gödel’s Second Incompleteness Theorem Explained in Words of One Syllable.

On one hand, this is fun! I enjoyed reading it. On the other hand, I think the main audience for this is probably people who already more or less understand Gödel’s Second Incompleteness Theorem.

For example, someone pointed out that “if math is a not a load of bunk” in this text is code for “Peano arithmetic is consistent” with (“math” being “Peano arithmetic” and “not a load of bunk” meaning “consistent”). Which I find very charming, but also I found it a little hard to decode when reading it.

And (as we talked about before about jargon), if you know that “Peano arithmetic is consistent” is the relevant bit of jargon, you can find all kind of fascinating things, like a blog post by John Baez from 2011 discussing an attempted proof that Peano arithmetic was inconsistent)

(I’m also reminded here of the XKCD up goer five, which is very delightful, but I don’t think I learned anything about spaceships from reading it)

that’s all!

I’d love to hear more thoughts on this – I think there are probably more ways that simple explanations can feel condescending that I’ve missed!

I really don’t think they need to feel condescending though – to me the point of writing a clear/simple explanation is usually that I think the idea is not actually fundamentally that complicated and so I’m just explaining it in a way that’s exactly as complicated as it needs to be.

09 Nov 01:24

Volvo Trucks to launch full range of electric trucks in Europe in 2021

08 Jun 13:28

Python Wheels Crosses 90%

08 Apr 02:02

Local Home SDK ready for Actions

by Google Developers
Posted by Dave Smith, Developer Advocate

Last year we introduced the developer preview of the Local Home SDK, a suite of local technologies to enhance your smart home integration with Google Assistant by adding local fulfillment. Since then, we've been hard at work incorporating your feedback and getting the experience ready for production. Starting today, we're exiting developer preview and allowing you to submit local fulfillment apps along with your smart home Action through the Actions console using Local Home SDK v1.0.

Adding local fulfillment for your smart home Action.

As part of the Smart Home platform, local fulfillment extends your smart home Action and routes commands to devices through the local network, benefitting users with reduced latency and higher reliability. If a local path cannot be successfully established, commands fall back to your cloud fulfillment.

The Local Home SDK v1.0 supports discovery of local devices over Wi-Fi using the mDNS, UDP, or UPnP protocols. Once a local path is established, apps can send commands to devices using TCP, UDP, or HTTP. For more details on the API changes in SDK v1.0, check out the changelog.

Multi-scan configurations

Along with this release, we've also improved the scan configurations in the Actions console based on your feedback. You can now enter multiple scan configurations for a given project, enabling your local fulfillment app to handle multiple device families that may be using different discovery protocols.

New multi-scan configuration UI.

The new interface groups scan attributes by protocol and highlights required fields, making it clearer how to properly configure your project.

Submit your app

The Local Home SDK configuration page in the Actions console now accepts JavaScript bundles for your local fulfillment app. When you are ready to publish your app, upload your JavaScript files to the console and submit your Action. For more details on submitting your smart home Action for review, see the smart home launch guide.

Upload your local fulfillment app.

We've updated the test suite for smart home to support local fulfillment as well. Be sure to self-test your local fulfillment before submitting your updated smart home Action for review. You must provide updated test suite results with your certification request when you submit.

Get started

To learn more about enhancing your smart home Actions with local fulfillment, check out the Introduction to Local Home SDK and the developer guide. Build your first local fulfillment app with the codelab, and go deeper with the samples and API reference.

We want to hear from you, so continue sharing your feedback with us through the issue tracker, and engage with other smart home developers in the /r/GoogleAssistantDev community. Follow @ActionsOnGoogle on Twitter for more of our team's updates, and tweet using #AoGDevs to share what you’re working on. We can’t wait to see what you build!

29 Sep 02:42

The Two Squares Puzzle

30 Jun 20:04

Show HN: Web pages stored entirely in the URL

22 Dec 05:08

Advocating for privacy in Australia

18 Sep 03:43

The iPhone Franchise

by Ben Thompson

Apple released a new flagship iPhone yesterday, the iPhone XS. This isn’t exactly ground-breaking news: it is exactly what the company has done for eleven years now (matching the 11-year run of non-iOS iPods, by the way1). To that end, what has always interested me more are new-to-the-world non-flagship models: the iPhone 5C in 2013, the iPhone 8 last year (or was it the iPhone X?), and the iPhone XR yesterday. Each, I think, highlights critical junctions not only in how Apple thinks about the iPhone strategically, but also about how Apple thinks about itself.

The iPhone 5C

It’s hard to remember now, but the dominant Apple narrative in 2013, after a five-year iPhone run that saw the company’s stock price increase around 700%, was that the company was at risk of low-end disruption from Android and high-end saturation now that smartphone technology was “good enough”.

Apple's stock price during the iPhone era

This was, for me, rather fortuitous: Stratechery launched in the middle of the Apple-needs-a-cheap-iPhone era, providing plenty of fodder not only for articles defending Apple’s competitive position,2 but also multiple articles speculating on what the iPhone 5C would cost and how it would be positioned.

For the record, I guessed wrong, and I knew I was wrong Two Minutes, Fifty-six Seconds into the keynote.

It was at two minutes, fifty-six seconds that Tim Cook said there would be a video – a video! – about the iTunes Festival.

And it was awesome.

In case you didn’t watch the whole video (and you really should – it’s only a couple of minutes; due to a copyright claim I had to embed Apple’s full-length keynote), this clip of the ending captures why it matters:

Message: Apple is cool.
Message: Apple is cool.

This was Apple, standing up and saying to all the pundits, to all the analysts, to everyone demanding a low price iPhone:

NO!

No, we will NOT compete on price, we will offer something our competitors can’t match.

No, we are NOT selling a phone, we are selling an experience.

No, we will NOT be cheap, but we will be cool.

No, you in the tech press and on Wall Street do NOT understand Apple, but we believe that normal people love us, love our products, and will continue to buy, start to buy, or aspire to buy.

Oh, and Samsung? Damn straight people line up for us. 20 million for a concert. “It’s like a product launch.”

Apple's iTunes Festival video on the left, Samsung's Galaxy SIII commercial mocking those standing in line on the right
Apple’s iTunes Festival video on the left, Samsung’s Galaxy SIII commercial mocking those standing in line on the right

This attitude and emphasis on higher-order differentiation — the experience of using an iPhone — dominated the entire keynote and the presentation of features, with particularly emphasis throughout on the interplay between software and hardware.

In fact, that understated Apple’s position in the market: as I discussed last year the iPhone 5C — which in retrospect, was really just an iPhone 5 replacement in Apple’s trickle-down approach to serving more price-sensitive customers — was a bit of a failure: Apple customers only wanted the best iPhone, and those that couldn’t afford the current flagship preferred a former flagship, not one that was “unapologetically plastic”.

Thus the first lesson: Apple wouldn’t go down-market, nor did its customers want it to.

The iPhone X

Last year, meanwhile, was in many respects the opposite of the iPhone 5S and 5C launch, at least from a framing perspective. The iPhone 8 was the next in line after the iPhone 7 and all of the iPhones before it; it was the iPhone X that was presented as being out-of-band — “one more thing”, to use the company’s famous phrase. The iPhone X was the “future of the smartphone”, with a $999 price tag to match.

A year on, it is quite clear that the future is very much here. CEO Tim Cook bragged during yesterday’s keynote that the iPhone X was the best-selling phone in the world, something that was readily apparent in Apple’s financial results. iPhone revenue was again up-and-to-the-right, not because Apple was selling more iPhones — unit growth was flat — but because the iPhone X grew ASP so dramatically:

iPhone Revenue, Units, and ASP on a TTM basis

This was the second lesson: for Apple’s best customers, price was no object.

The iPhone XR

To be clear, the overall strategy and pricing of the iPhones XS and XR were planned out two to three years ago; that’s how long product cycles take when it comes to high-end smartphones. Perhaps that is why the lessons of the iPhone 5C seem so readily apparent in the iPhone XR in particular.

First off, while the XR does not have stainless steel edges like the iPhones X or XS, it is a far cry from plastic: the back is glass, like the high end phones, and the aluminum sides not only look premium but will be hidden when the phone is in a case, as most will be. What really matters is that the front looks the same, with that notch: this looks like a high-end iPhone, with all of the status that implies.

Second, the iPhone XR is big — bigger than the XS (and smaller than the XS Max, and yes, that is its real name). This matters less for 2018 and more for 2020 and beyond: presuming Apple follows its trickle-down strategy for serving more price-sensitive markets, that means in two years its lowest-end offering will not be a small phone that the vast majority of the market rejected years ago, particularly customers for whom their phone is their only computing device, but one that is far more attractive and useful for far more people.

Third, that 2020 iPhone XR is going to be remarkably well-specced. Indeed, probably the biggest surprise from these announcements (well, other than the name “XS Max”) is just how good of a smartphone the XR is.

  • The XR has Apple’s industry-leading A12 chip, which is so far ahead of the industry that it will still be competitive with the best Android smartphones in two years, and massively more powerful than lower-end phones.
  • The XR has the same wide-angle camera as the XS, and the same iteration of Face ID. Both, again, are industry-leading and will be more than competitive two years from now.
  • The biggest differences from the XS are the aforementioned case materials, an LCD screen, and the lack of 3D Touch. Again, though, aluminum is still a premium material, Apple’s LCD screens are — and yes there is a theme here — the best in the industry, and 3D Touch is a feature that is so fiddly and undiscoverable that one could make the case XR owners are actually better off.

There really is no other way to put it: the XR is a fantastic phone, one that would be more than sufficient to maintain Apple’s position atop the industry were it the flagship. And yet, in the context of Apple’s strategy, it is best thought of as being quite literally ahead of its time.

The iPhone XS

There is, of course, the question of cannibalism: if the XR is so great, why spend $250 more on an XS, or $350 more for the giant XS Max?

This is where the iPhone X lesson matters. Last year’s iPhone 8 was a great phone too, with the same A11 processor as the iPhone X, a high quality LCD screen like the iPhone XR, and a premium aluminum-and-glass case (and 3D Touch!). It also had Touch ID and a more familiar interface, both arguably advantages in their own right, and the Plus size that so many people preferred.

It didn’t matter: Apple’s best customers, not just those who buy an iPhone every year, but also those whose only two alternatives are “my current once-flagship iPhone” or “the new flagship iPhone” are motivated first-and-foremost by having the best; price is a secondary concern. That is why the iPhone X was the best-selling smartphone, and the iPhone 8 — which launched two months before the iPhone X — a footnote.

To be sure, the iPhone X had the advantage of being something truly new, not just the hardware but also the accompanying software. It was the sort of phone an Apple fan might buy a year sooner than they had planned, or that someone more price sensitive might choose over a cheaper option. The XS will face headwinds in both regards: it is faster than the iPhone X, has a better camera, comes in gold — it’s an S-model, in other words — but it’s hard to see it pulling forward upgrades; it’s more likely natural XS buyers were pulled forward by the X. And, as noted above, the XR is a much more attractive alternative to the X than the 8 was to the X; most Apple fans may want the best, but some just want a deal, and the XR is a great one.

Apple should be fine though: overall unit sales may fall slightly, but the $1,099 XS Max will push the average selling price even higher. Note, too, that the XR is only available starting at $749; the longstanding $650 iPhone price point was bumped up to $699 last year, and is now a distant memory.3

Apple's Fall 2018 iPhone Lineup

To put it another way, to the extent the XR cannibalizes the XS, it cannibalizes them with an average selling price equal to Apple’s top-of-the-line iPhone from two years ago; the iPhone 8 is $50 higher than the former $550 price point as well.

Mission Impossible iPhone

This is what I meant when I said Apple’s second iPhone models capture how the company has changed not only its strategy but how the company seems to view itself:

  • 2013 was a time of uncertainty, with a sliding stock price and a steadily building clamor heralding Apple doom via low-end disruption; the company, though, found its voice with the 5C and declared its intentions to be unapologetically high-end; the 5C’s failure, such that it was, only cemented the rightness of that decision.
  • In 2017 the company, for the first time in ten years, started to truly test the price elasticity of demand for the iPhone: given its commitment to being the best, just how much could Apple charge for an iPhone X?
  • This year, then, comes the fully-formed iPhone juggernaut: an even more expensive phone, with arguably one of the weaker feature-driven reasons-to-buy to date, but for the fact it is Apple’s newest, and best, iPhone. And below that, a cheaper iPhone XR that is nearly as good, but neatly segmented primarily by virtue of not being the best, yet close enough to be a force in the market for years to come.

The strategy is, dare I say, bordering on over-confidence. Apple is raising prices on its best product even as that product’s relative differentiation from the company’s next best model is the smallest it has ever been.

Here, though, I thought the keynote’s “Mission: Impossible”-themed opening really hit the mark: the reason why franchises rule Hollywood is their dependability. Sure, they cost a fortune to make and to market, but they are known quantities that sell all over the world — $735 million-to-date for the latest Tom Cruise thriller, to take a pertinent example.

That is the iPhone: it is a franchise, the closest thing to a hardware annuity stream tech has ever seen. Some people buy an iPhone every year; some are on a two-year cycle; others wait for screens to crack, batteries to die, or apps to slow. Nearly all, though, buy another iPhone, making the purpose of yesterday’s keynote less an exercise in selling a device and more a matter of informing self-selected segments which device they will ultimately buy, and for what price.

I wrote a follow-up to this article in this Daily Update.

  1. Specifically, the original iPod was released in October, 2001, and the 7th generation iPod Nano in September, 2012; the last iPod Touch was released in July, 2015
  2. I.e. Two Bears and What Clayton Christensen Got Wrong
  3. Hilariously, Senior Vice President of Worldwide Marketing Phil Schiller said in reference to the $749 price point, “That’s less than the iPhone 8 Plus. I’m really proud of the work the team has done on that”; Apple shareholders are surely proud that the price is $50 higher than the iPhone 8!
10 Aug 01:20

Nanish 12MP WiFi 1080P Action Camera Underwater Cam $30

by rss@techbargains.com
14 Apr 17:42

A Dusting of Gamification

by Joel Spolsky

[This is the second in a series of posts about Stack Overflow. The first one is The Stack Overflow Age.]

Around 2010 the success of Stack Overflow had led us into some conversations with VCs, who wanted to invest.

at the Getty

The firm that eventually invested in us, Union Square Ventures, told us that they were so excited by the power of gamification that they were only investing in companies that incorporated some kind of game play.

For example, Foursquare. Remember Foursquare? It was all about making your normal post-NYU life of going to ramen noodle places and dive bars into a fun game that incidentally generated wads of data for marketers. Or Duolingo, which is a fun app with flash cards that teaches you foreign languages. Those were other USV investments from that time period.

At the time, I had to think for a minute to realize that Stack Overflow has “gamification” too. Not a ton. Maybe a dusting of gamification, most of it around reputation.

Stack Overflow reputation started as a very simple score. The original idea was just that you would get 10 points when your answers were upvoted. Upvotes do two things. They get the most useful answers to the top, signaling that other developers who saw this answer thought it was good. They also send the person who wrote the answer a real signal that their efforts helped someone. This can be incredibly motivating.

You would lose points if your questions were downvoted, but you actually only lose 2 points. We didn’t want to punish you so much as we wanted to show other people that your answer was wrong. And to avoid abuse, we actually make you pay one reputation point to downvote somebody, so you better really mean it. That was pretty much the whole system.

Now, this wasn’t an original idea. It was originally inspired by Reddit Karma, which started out as an integer that appeared in parentheses after your handle. If you posted something that got upvoted, your karma went up as a “reward.” That was it. Karma didn’t do a single thing but still served as a system for reward and punishment.

What reputation and karma do is send a message that this is a community with norms, it’s not just a place to type words onto the internet. (That would be 4chan.) We don’t really exist for the purpose of letting you exercise your freedom of speech. You can get your freedom of speech somewhere else. Our goal is to get the best answers to questions. All the voting makes it clear that we have standards, that some posts are better than others, and that the community itself has some norms about what’s good and bad that they express through the vote.

It’s not a perfect system (more on the problems in a minute), but it’s a reasonable first approximation.

By the way, Alexis Ohanian and Steve Huffman, the creators of Reddit, were themselves inspired by a more primitive karma system, on Slashdot. This system had real-world implications. You didn’t get karma so that other people could see your karma; you got karma so that the system knew you weren’t a spammer. If a lot of your posts had been flagged for abuse, your karma would go down and you might lose posting or moderation privileges. But you weren’t really supposed to show off your high karma. “Don’t worry too much about it; it’s just an integer in a database,” Slashdot told us.

To be honest, it was initially surprising to me that you could just print a number after people’s handles and they would feel rewarded. Look at me! Look at my four digit number! But it does drive a tremendous amount of good behavior. Even people who aren’t participating in the system (by working to earn reputation) buy into it (e.g., by respecting high-reputation users for their demonstrated knowledge and helpfulness).

But there’s still something of a mystery here, which is why earning “magic internet points” is appealing to anyone.

I think the answer is that it’s nice to know that you’ve made a difference. You toil away in the hot kitchen all day and when you serve dinner it’s nice to hear a compliment or two. If somebody compliments you on the extra effort you put into making radish roses, you’re going to be very happy.

This is a part of a greater human need: to make an impact on the world, and to know that you’re contributing and being appreciated for it. Stack Overflow’s reputation system serves to recognize that you’re a human being and we are super thankful for your contribution.

in Utah

That said, there is a dark side to gamification. It’s not 100% awesome.

The first problem we noticed is that it’s very nice to get an upvote, but getting a downvote feels like a slap in the face. Especially if you don’t understand why you got the downvote, or if you don’t agree. Stack Overflow’s voting has made many people unhappy over the years, and there are probably loads of people who felt unwelcome and who don’t participate in Stack Overflow as a result. (Here’s an old blog post explaining why we didn’t just eliminate downvotes).

There’s another problem, which is that, to the extent that the gamification in Stack Overflow makes the site feel less inclusive and welcoming to many people, it is disproportionately off-putting to programmers from underrepresented groups. While Stack Overflow does have many amazing, high reputation contributors who are women or minorities, we’ve also heard from too many who were apprehensive about participating.

These are big problems. There’s a lot more we can and will say about that over the next few months, and we’ve got a lot of work ahead of us trying to make Stack Overflow a more inclusive and diverse place so we can improve the important service that it provides to developers everywhere.

Gamification can shape behavior. It can guide you to do certain things in certain ways, and it can encourage certain behaviors. But it’s a very weak force. You can’t do that much with gamification. You certainly can’t get people to do something that they’re not interested in doing, anyway. I’ve heard a lot of crazy business plans that are pinning rather too high hopes on gamification as a way of getting people to go along with some crazy scheme that the people won’t want to go along with. Nobody’s going to learn French just to get the Duolingo points. But if you are learning French, and you are using Duolingo, you might make an effort to open the app every day just to keep your streak going.

I’ve got more posts coming! The next one will be about the obsessive way Stack Overflow was designed for the artifact, in other words, we optimized everything to create amazing results for developers with problems arriving from Google, not just to answer questions that people typed into our site.

 

10 Apr 17:33

Spinning Man (2018) [WEBRip] [720p] [YTS.AM]

Spinning Man (2018)
IMDB Rating: 5.5/10
Genre: Drama / Mystery / Thriller
Size: 853.54 MB
Runtime: 1hr 40 min

Evan Birch is a family man and esteemed professor at a distinguished college, where his charm and reputation have made his philosophy class very popular. When a female student named Joyce goes missing, Evan's previous off-campus dalliances make his wife question his alibi. Gruff police Detective Malloy has even more reason to be suspicious when crucial evidence makes Evan the prime suspect in Joyce's disappearance. Suddenly, the questions Evan faces aren't merely academic - they're a matter of life or death.
08 Feb 06:16

The Super Bowl is for losers

by Seth Godin

[But selling projects well isn't. There are five things every project organizer can learn from the stadium builders...]

The Times reports that the people of Minnesota spent half a billion dollars (more accurately written as $500,000,000.00) to build a stadium and make concessions that led to being able to host the big game today. And, like every other city that has invested heavily in the NFL over the last decade or more, they will certainly lose money, probably a lot of money. More money than we can easily visualize.

So why does it keep happening?

Why, despite volumes of documented evidence, do well-intentioned people spearhead new projects like this? There's a valuable set of lessons here about human behavior:

  1. The project is now. It's imminent. It's yes or no. You can't study it for a year or a decade and come back to it. The team creates a forcing function, one that turns apathy into support or opposition.
  2. The project is specific. Are there other ways that Minneapolis could have effectively invested five hundred million dollars? Could they have created access, improved education, invested in technology, primed the job market? Without a doubt. But there's an infinite number of alternatives vs. just one specific. 
  3. The end is in sight. When you build a stadium, you get a stadium. When you host a game, you get a game. That's rarely true for the more important (but less visually urgent) alternatives.
  4. People in power and people with power will benefit. High profile projects attract vendors, businesses and politicians that seek high profile outcomes. And these folks often have experience doing this, which means that they're better at pulling levers that lead to forward motion.
  5. There's a tribal patriotism at work. "What do you mean you don't support our city?"

For me, the biggest takeaway is to realize that in the face of human emotions and energy, a loose-leaf binder from an economist has no chance. If you want to get something done, you can learn a lot from the power of the stadium builders. They often win. 

[Update: I heard from some kind readers in MN who shared numbers that show that the state was very careful with their investment, and it might be one of the better long-term stadium bets on record. Well done. If you have to do a giant stadium project like this one, it sounds like this is the way to do it...]

       
22 Jan 03:38

Splenda in the grass

by Linda

I’ve been on a cut-wayyyyy-back-on-the-carbs food plan lately, which is a pretty big change from how I was eating during the holidays (“holidays” meaning the entire chocolate-smeared section of the calendar from Halloween to New Year’s, mind you) and for the frillionth time I am faced with the undeniable evidence that I just plain feel better when my diet doesn’t revolve around tortilla chips and frosting. Physically, mentally (like: bigtime), energy-wise, headache-wise, stomach-wise: better.

Now what would be great is if I would take this information, which I have experienced many many times, and commit to a self-care-focused long-term lifestyle which involves fueling my body in a way I know for a fact results in a healthier happier me as opposed to repeatedly having to course-correct after an uncontrollable downward slide into the land of Can Cookies Be Pulverized and Placed in an IV Bag? Let’s Find Out but 1) history does not indicate a high chance of success in this department, and 2) even in my most motivated state of being I cannot, repeat, cannot step away from the Splenda.

You know: Splenda. Sucralose. Those little yellow packets of PURE FUCKING HEAVEN.

Most current dietary advice now positions artificial sweeteners as The Absolute Worst, for a myriad of reasons ranging from toxicity to triggering spikes in blood sugar to being evil on account of synthetic things = bad. I’ve read all the suggestions to switch to things like Stevia, Truvia, Eryth … erythit … ritol, Swerve, monk fruit, and of course “a hint of honey.”

First, just stop it right there with your hint of anything. I’m not overly fond of honey but if I’m going to eat it I’m going to want an entire glorp, not a hint. If I were the sort of person who could be satisfied by a hint of anything I wouldn’t have half the problems I do, okay? As for the other sweeteners, I’ve tried them all and they run the spectrum from disappointing to downright hostile.

Nothing is as wonderful as Splenda, which I consider one of mankind’s greatest achievements. It elevates my coffee, it transforms my berries, it can be eaten directly out of a small prep bowl via moistened fingertip, not that I have ever done such a thing (OMG TRY IT WITH SEA SALT).

I feel like my devotion to Splenda, and its freakish effect on taste receptors — what is it, 600 times sweeter than sugar? — is indicative of a basic psychological makeup that probably can’t be altered at this point without trepanation. I like sweet stuff and I cannot lie.

Real sugar and processed carbs legitimately make me feel awful in a variety of ways and I have a terrible time staying away from them, which is why I’m always somewhere on the battle map with how I eat: either gathering forces and holding strong, or in full surrender.

But Splenda? Oh, man. When I’m feeling like this about cookies:

Splenda is all,