This article is now published on my website: A one-off git repo server.
// Chrome extension 'content scripts' run in a sandboxed 'isolated world' | |
// (http://code.google.com/chrome/extensions/content_scripts.html#execution-environment). | |
// However, there are ways to get out and execute js code in the page | |
// context. Google searching revealed the following ways: | |
//////////////////////////////////////////////////////////////////////////////// | |
// http://blog.afterthedeadline.com/2010/05/14/how-to-jump-through-hoops-and-make-a-chrome-extension/ | |
// it looks like jQuery must be loaded by the content-script | |
jQuery('body').append('<script type="text/javascript">(function(l) { | |
var res = document.createElement('SCRIPT'); |
#!/bin/bash | |
# | |
# Steam installer for Debian wheezy (32- and 64-bit) | |
# | |
# Place into empty directory and run. | |
# | |
download() { | |
local url="$1" | |
local filename="$(basename "$url")" |
Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at http://localhost:8000. Use this power wisely.
$ python -m SimpleHTTPServer 8000
key
is pretty much crucial for state perservation in React. As of React 0.13 it can't do the following things:
- Clone state
<Comp key={1} /><Comp key={1} />
- Preserve component state across different parents:
#!/usr/bin/env python3 | |
# vim: sw=4 ts=4 et tw=100 cc=+1 | |
# | |
#################################################################################################### | |
# DESCRIPTION # | |
#################################################################################################### | |
# | |
# Decompressor/compressor for files in Mozilla's "mozLz4" format. Firefox uses this file format to | |
# compress e. g. bookmark backups (*.jsonlz4). | |
# |
This simple script will take a picture of a whiteboard and use parts of the ImageMagick library with sane defaults to clean it up tremendously.
The script is here:
#!/bin/bash
convert "$1" -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 "$2"
-
nix-channel
and~/.nix-defexpr
are gone. We'll use$NIX_PATH
(or user environment specific overrides configured vianix set-path
) to look up packages. Since$NIX_PATH
supports URLs nowadays, this removes the need for channels: you can just set$NIX_PATH
to e.g.https://nixos.org/channels/nixos-15.09/nixexprs.tar.xz
and stay up to date automatically. -
By default, packages are selected by attribute name, rather than the
name
attribute. Thusnix install hello
is basically equivalent tonix-env -iA hello
. The attribute name is recorded in the user environment manifest and used in upgrades. Thus (at least by default)hello
won't be upgraded tohelloVariant
.@vcunat suggested making this an arbitrary Nix expression rather than an attrpath, e.g.
firefox.override { enableFoo = true; }
. However, such an expression would not have a key in the user environment, unlike an attrpath. Better to require an explicit flag for this.
TBD: How to deal with search path clashes.