background preloader

20 lines of code that will beat A/B testing every time

20 lines of code that will beat A/B testing every time is a drop-in solution that lets users draw on your web site. A/B testing is used far too often, for something that performs so badly. It is defective by design: Segment users into two groups. Show the A group the old, tried and true stuff. Show the B group the new whiz-bang design with the bigger buttons and slightly different copy. After a while, take a look at the stats and figure out which group presses the button more often. In recent years, hundreds of the brightest minds of modern civilization have been hard at work not curing cancer. With a simple 20-line change to how A/B testing works, that you can implement today, you can always do better than A/B testing -- sometimes, two or three times better. It can reasonably handle more than two options at once.. The Multi-armed bandit problem The multi-armed bandit problem takes its terminology from a casino. Like many techniques in machine learning, the simplest strategy is hard to beat. Why does this work? More blog entries

How do you review code? I'm hoping to find ways to improve the code review process at the company where I work. My team has a fairly has a fairly standard github PR-based process. When you have some code you want to merge into the master branch you open a PR, ask another developer or two to review it, address any comments they have, and then wait for one of the reviewers to give it an LGTM (looks good to me). The problem is that there can be a lot of lag between asking someone to review the PR and them actually doing it, or between addressing comments and them taking another look. Worst of all, you never really know how long things will take, so it's hard to know whether you should switch gears for the rest of the day or not. Over time we've gotten used to communicating a lot, and being shameless about pestering people who are less communicative. So, has anyone else run I to similar problems?

Stop Nesting Functions! (But Not All of Them) JavaScript is over fifteen years old; nevertheless, the language is still misunderstood by what is perhaps the majority of developers and designers using the language. One of the most powerful, yet misunderstood, aspects of JavaScript are functions. While terribly vital to JavaScript, their misuse can introduce inefficiency and hinder an application's performance. Prefer a Video Tutorial? Performance is Important In the Web's infancy, performance wasn't very important. Fast forward to today. Today's JavaScript engines are light-years ahead of the engines of ten years ago, but they do not optimize everything. There is also a whole new set of web-enabled devices, smart phones and tablets, running on a limited set of resources. A poor performing application will trash a good experience. Most importantly, the user's experience depends on good performance. So what does all this have to do with functions? Where you define your functions has an impact on your application's performance. Figure 1

Nick Craver - Stack Overflow: How We Do Deployment - 2016 Edition This is #3 in a very long series of posts on Stack Overflow’s architecture. Previous post (#2): Stack Overflow: The Hardware - 2016 Edition We’ve talked about Stack Overflow’s architecture and the hardware behind it. The next most requested topic was Deployment. How do we get code a developer (or some random stranger) writes into production? I’m going ahead and inserting a set of section links here because this post got a bit long with all of the bits that need an explanation: Source This is our starting point for this article. A Little Context We deploy roughly 25 times per day to development (our CI build) just for Stack Overflow Q&A. The Human Steps When we’re coding, if a database migration is involved then we have some extra steps. And here’s the local %Repo%\StackOverflow.Migrations\ folder: You can see both in chat and locally that 726 was the last migration number taken. Now let’s add some code — we’ll keep it simple here: A \StackOverflow\Models\User.cs diff: .. So far, so good. Tiers

How to Get Google Docs Form Data in an Email Message This video tutorial explains how you can send form data from Google Docs in an email message using the very useful Send Mail function of Google Docs. Whether you are looking to add a simple “Contact Me” form on your website or need to create a complex online poll, Google Forms are an excellent tool. They offer a variety of themes, the form data is save in a spreadsheet that can be easily exported and, unlike other polling software, your Google Forms can accept any number of responses and they’re absolutely free. There’s one limitation though. Google Forms can send email notifications as soon as people submit your online form but, as shown in the screenshot, the actual form data isn’t included in the email message. Should you wish to receive Google Form data in an email message as soon as a user submits the online form, there’s an easy workaround as explained in this video tutorial ↓. What we can do is create a simple Google Script that triggers as soon as a user submits the form.

Rule of Silence definition by The Linux Information Project The rule of silence, also referred to as the silence is golden rule, is an important part of the Unix philosophy that states that when a program has nothing surprising, interesting or useful to say, it should say nothing. It means that well-behaved programs should treat their users' attention and concentration as being valuable and thus perform their tasks as unobtrusively as possible. That is, silence in itself is a virtue. There is no single, standardized statement of the Unix philosophy, but perhaps the simplest description would be: "Write programs that are small, simple and transparent. This philosophy has been fundamental to the the fact that Unix-like operating systems have been thriving for more than three decades, far longer than any other family of operating systems, and can be expected to see continued expansion of use in the years to come, particularly in the form of Linux. The rule of silence is one of the oldest and most persistent design rules of such operating systems.

amazon s3 - Publish to S3 using Git The Wrong Abstraction — Sandi Metz I originally wrote the following for my Chainline Newsletter, but I continue to get tweets about this idea, so I'm re-publishing the article here on my blog. This version has been lightly edited. I've been thinking about the consequences of the "wrong abstraction." My RailsConf 2014 "all the little things" talk included a section where I asserted: duplication is far cheaper than the wrong abstraction And in the summary, I went on to advise: prefer duplication over the wrong abstraction This small section of a much bigger talk invoked a surprisingly strong reaction. The strength of the reaction made me realize just how widespread and intractable the "wrong abstraction" problem is. Programmer A sees duplication.Programmer A extracts duplication and gves it a name. Existing code exerts a powerful influence. When you appear in this story in step 8 above, this pressure may compel you to proceed forward, that is, to implement the new requirement by changing the existing code. News: 99Bottles Book

How I built the Hacker News mobile web app - cheeaunblog Last month, I tweeted about one of my recent projects, the Hacker News mobile web app. It's a simple little app to read Hacker News' stories and comments in Mobile Safari. It started out as an experiment for me to try one of the new CSS extensions introduced in Mobile Safari in iOS5, -webkit-overflow-scrolling: touch which uses native-style scrolling in an overflow: scroll element. Before working on this app, I've also worked on another project called Kanade which is a mobile web app that shows a list of anime series for every season. There are two parts; the look and the feel. For brevity sake, I'll use the term 'HNmobile' for 'Hacker New mobile web app'. The look Every operating system has its own native look. There are frameworks that provide iOS native look for web apps such as iUI, UiUIKit, iWebKit, WebApp.Net and iOS-inspired jQuery Mobile theme. The latter, of course. I start by getting screenshots. The result is surprisingly good if you compare it with the native interface. The feel