Gist simplicity can turn blogging into a liberating experience.
Pros | Cons |
---|---|
✅ Free, simple, fast, hassle-free | ❌ Image upload in comments only |
✅ Tagging | ❌ No post pinning |
✅ Search | ❌ Doesn't look like a blog |
✅ Revisions | ❌ Unfriendly URLs |
import React, { Component } from 'react' | |
import Subapp from './subapp/Root' | |
class BigApp extends Component { | |
render() { | |
return ( | |
<div> | |
<Subapp /> | |
<Subapp /> | |
<Subapp /> |
declare var __DEV__: boolean; | |
declare module 'react-native' { | |
declare type Color = string | number; | |
declare type Transform = | |
{ perspective: number } | | |
{ scale: number } | | |
{ scaleX: number } | |
/* | |
NOTE: This code assumes a bare git repo in ./bare-git/, | |
which should have at least one text file in its root, | |
named "greetings.txt". | |
This code updates the contents of a "greetings.txt" | |
file, and creates a new file called "greetings-XXX.txt" | |
(with XXX being a random number). It then creates a new | |
commit for these changes. Finally, it reads and dumps | |
the new current contents of the repo, file by file. |
function keepTrying(otherArgs, promise) { | |
promise = promise||new Promise(); | |
// try doing the important thing | |
if(success) { | |
promise.resolve(result); | |
} else { | |
setTimeout(function() { | |
keepTrying(otherArgs, promise); |
import WebKit | |
class NativeWebViewController: UIViewController { | |
let viewportScriptString = "var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); meta.setAttribute('initial-scale', '1.0'); meta.setAttribute('maximum-scale', '1.0'); meta.setAttribute('minimum-scale', '1.0'); meta.setAttribute('user-scalable', 'no'); document.getElementsByTagName('head')[0].appendChild(meta);" | |
let disableSelectionScriptString = "document.documentElement.style.webkitUserSelect='none';" | |
let disableCalloutScriptString = "document.documentElement.style.webkitTouchCallout='none';" | |
override func viewDidLoad() { | |
// 1 - Make user scripts for injection |
[ | |
{ | |
"value": -12, | |
"text": "(GMT -12:00) Eniwetok, Kwajalein" | |
}, | |
{ | |
"value": -11, | |
"text": "(GMT -11:00) Midway Island, Samoa" | |
}, | |
{ |
Last Updated: March 2023
IMPORTANT: Ignore the out-of-date steps below for getting Chromium keys.
Instead, read this up-to-date guide (Jan 2023) written by @LearningToPi.
P.S. Thank you to every contributor below who provided tips over the years on what should be a straightforward process: setting up Chromium for local development.
Long live the web!
Hi Nicholas,
I saw you tweet about JSX yesterday. It seemed like the discussion devolved pretty quickly but I wanted to share our experience over the last year. I understand your concerns. I've made similar remarks about JSX. When we started using it Planning Center, I led the charge to write React without it. I don't imagine I'd have much to say that you haven't considered but, if it's helpful, here's a pattern that changed my opinion:
The idea that "React is the V in MVC" is disingenuous. It's a good pitch but, for many of us, it feels like in invitation to repeat our history of coupled views. In practice, React is the V and the C. Dan Abramov describes the division as Smart and Dumb Components. At our office, we call them stateless and container components (view-controllers if we're Flux). The idea is pretty simple: components can't
/** | |
* Example to refresh tokens using https://github.com/auth0/node-jsonwebtoken | |
* It was requested to be introduced at as part of the jsonwebtoken library, | |
* since we feel it does not add too much value but it will add code to mantain | |
* we won't include it. | |
* | |
* I create this gist just to help those who want to auto-refresh JWTs. | |
*/ | |
const jwt = require('jsonwebtoken'); |