Couldn't find the text of this for a while...
import time | |
import win32api, win32con | |
VK_CODE = {'left_arrow':0x25, | |
'spacebar':0x20, | |
'right_arrow':0x27} | |
def press(x): | |
win32api.keybd_event(VK_CODE[x], 0,0,0) | |
win32api.keybd_event(VK_CODE[x],0 ,win32con.KEYEVENTF_KEYUP ,0) |
;; based on core.logic 0.8-alpha2 or core.logic master branch | |
(ns sudoku | |
(:refer-clojure :exclude [==]) | |
(:use clojure.core.logic)) | |
(defn get-square [rows x y] | |
(for [x (range x (+ x 3)) | |
y (range y (+ y 3))] | |
(get-in rows [x y]))) |
git diff --name-only | uniq | xargs mvim
When git encounters a merge conflict, e.g. during a rebase, it drops you back into the shell with a dirty working directory. I like this one-liner for opening all files with a merge conflict in MacVim.
Once you're in Vim, you can then switch between the files with :n
and :prev
, or another favourite: :w | n
(save current file and open the next command line-supplied file).
UPDATE: see below for a version that works with real terminal commands.
This is my xmonad+unity panel config. With this config, you'll have a well integrated panel from unity but still have xmonad as your window manager with your gnome apps, including the pretty gnome-terminal
(for those too lazy to learn xmoobar).
This config doesn't have the unity launcher, mainly becuse it causes windows to be unfloatable, besides I'm not fond of it anymore.
Copy and paste these lines (or understand what it does and do it manually).
## Acer | |
#SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0600", OWNER="<username>" | |
## ASUS | |
#SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0600", OWNER="<username>" | |
## Dell | |
#SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0600", OWNER="<username>" | |
## Foxconn |
import os, random, string, sys, urllib2 | |
num_pics = 5 | |
if len(sys.argv) > 1: | |
num_pics = int(sys.argv[1]) | |
while num_pics > 0: | |
name = ''.join(random.sample(string.letters+string.digits, 5)) + '.jpg' | |
img = urllib2.urlopen("http://i.imgur.com/" + name).read() | |
if len(img) != 503: # 'image not found' is 503 bytes |
(use '[clojure.core.match :only [match]]) | |
(defn evaluate [env [sym x y]] | |
(match [sym] | |
['Number] x | |
['Add] (+ (evaluate env x) (evaluate env y)) | |
['Multiply] (* (evaluate env x) (evaluate env y)) | |
['Variable] (env x))) | |
(def environment {"a" 3, "b" 4, "c" 5}) |
Latency Comparison Numbers (~2012) | |
---------------------------------- | |
L1 cache reference 0.5 ns | |
Branch mispredict 5 ns | |
L2 cache reference 7 ns 14x L1 cache | |
Mutex lock/unlock 25 ns | |
Main memory reference 100 ns 20x L2 cache, 200x L1 cache | |
Compress 1K bytes with Zippy 3,000 ns 3 us | |
Send 1K bytes over 1 Gbps network 10,000 ns 10 us | |
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD |
import XMonad | |
main = xmonad defaultConfig | |
{ modMask = mod4Mask -- Use Super instead of Alt | |
, terminal = "urxvt" | |
-- more changes | |
} |