It's now here, in The Programmer's Compendium. The content is the same as before, but being part of the compendium means that it's actively maintained.
This describes how I setup Atom for an ideal Clojure development workflow. This fixes indentation on newlines, handles parentheses, etc. The keybinding settings for enter (in keymap.cson) are important to get proper newlines with indentation at the right level. There are other helpers in init.coffee and keymap.cson that are useful for cutting, copying, pasting, deleting, and indenting Lisp expressions.
The Atom documentation is excellent. It's highly worth reading the flight manual.
| <!doctype html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <title>React Quick Prototyping</title> | |
| </head> | |
| <body> | |
| <div id="root"></div> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react.min.js"></script> |
No, seriously, don't. You're probably reading this because you've asked what VPN service to use, and this is the answer.
Note: The content in this post does not apply to using VPN for their intended purpose; that is, as a virtual private (internal) network. It only applies to using it as a glorified proxy, which is what every third-party "VPN provider" does.
- A Russian translation of this article can be found here, contributed by Timur Demin.
- A Turkish translation can be found here, contributed by agyild.
- There's also this article about VPN services, which is honestly better written (and has more cat pictures!) than my article.
| import decamelize from 'decamelize'; | |
| import { fromGlobalId } from 'graphql-relay'; | |
| import pluralize from 'pluralize'; | |
| import getItem from '../api/getItem'; | |
| const types = {}; | |
| const endpoints = {}; | |
| const getItemOverrides = {}; |
Reposted from Qiita
For almost a year now, I've been using this "flux" architecture to organize my React applications and to work on other people's projects, and its popularity has grown quite a lot, to the point where it shows up on job listings for React and a lot of people get confused about what it is.
There are a billion explainations on the internet, so I'll skip explaining the parts. Instead, let's cut to the chase -- the main parts I hate about flux are the Dispatcher and the Store's own updating mechanism.
If you use a setup similar to the examples in facebook/flux, and you use flux.Dispatcher, you probably have this kind of flow:
| (ns foo.auth.google | |
| (:require [clojure.string :as str] | |
| [clojure.java.io :as io] | |
| [clojure.data.json :as json] | |
| [clojure.logging :refer :all] | |
| [friend-oauth2.util :refer [format-config-uri]] | |
| [friend-oauth2.workflow :as oauth2]) | |
| (:import [java.security.cert CertificateFactory] | |
| [org.apache.commons.codec.binary Base64])) |
This is a draft list of what we're thinking about measuring in Etsy's native apps.
Currently we're looking at how to measure these things with Espresso and Kif (or if each metric is even possible to measure in an automated way). We'd like to build internal dashboards and alerts around regressions in these metrics using automated tests. In the future, we'll want to measure most of these things with RUM too.
- App launch time - how long does it take between tapping the icon and being able to interact with the app?
- Time to complete critical flows - using automated testing, how long does it take a user to finish the checkout flow, etc.?
- Battery usage, including radio usage and GPS usage
- Peak memory allocation
| int box_size = 256; | |
| float Halton(int i, int base) | |
| { | |
| float x = 1.0f / base; | |
| float v = 0.0f; | |
| while (i > 0) | |
| { | |
| v += x * (i % base); | |
| i = floor(i / base); |