Skip to content

Instantly share code, notes, and snippets.

@quark-zju
quark-zju / ipv4_inv.cc
Created August 31, 2012 11:13
Invert IPv4 address list: Given a IPv4 address (with netmasks) list A, output another list B, s.t. A & B = [], A + B = Internet - Private Addresses
#include <cstdio>
#include <cinttypes>
#include <stdexcept>
#include <set>
union IPv4Addr {
struct {
uint32_t x;
uint8_t prefix;
};
@quark-zju
quark-zju / spec_fetcher.rb
Created October 22, 2012 13:51
Patched ruby-1.9.3-p{194,286}/lib/ruby/1.9.1/rubygems/spec_fetcher.rb to prefer local cached version even it's a little out-dated. This makes gem / bundle command a lot faster under slow Internet connection.
require 'rubygems/remote_fetcher'
require 'rubygems/user_interaction'
require 'rubygems/errors'
require 'rubygems/text'
##
# SpecFetcher handles metadata updates from remote gem repositories.
class Gem::SpecFetcher
@quark-zju
quark-zju / .gitignore
Created November 23, 2012 19:29
Linux tutorial slide for MSTC.ZJU
*.html
@quark-zju
quark-zju / git-vendor.sh
Last active October 16, 2015 11:52
git-vendor
fatal() {
echo "$@"
exit 1
}
get_vendor_dir() {
[ -n "$VENDOR" ] && echo $VENDOR && return
[ -d src ] && echo src/vendor && return
echo vendor
}
@quark-zju
quark-zju / colorful_logger.rb
Created April 17, 2012 10:42
A colorful Logger for ruby
require 'term/ansicolor'
require 'logger'
class String
include Term::ANSIColor
end
class ColorfulLogger < Logger
def initialize(logdev, shift_age = 0, shift_size = 1048576)
@quark-zju
quark-zju / lock.bat
Created July 5, 2013 08:12
Lock Windows.
rem Enable Win+L, Lock Windows, Disable Win+L.
rem Useful as a workaround to disable Win+L while being able to lock.
rem This makes sence if you are using Win+L for other purpose, for example, use Win+L inside a virtual Linux system.
rem Run this as Administrator. If it is annoying, try UAC Trust shortcut from www.itknowledge24.com
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableLockWorkstation /t REG_DWORD /d 0 /f
rundll32 user32.dll,LockWorkStation
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableLockWorkstation /t REG_DWORD /d 1 /f
#! /usr/bin/env python3
# quick & dirty preforked echo server listening on /tmp/server
# client: socat unix-connect:/tmp/server stdout
import os, sys, time, socketserver
class PreforkMixIn:
max_nchildren = 3
children = None
@quark-zju
quark-zju / Gemfile
Last active May 25, 2016 20:06
i3-scriptable with auto-splitv script (emulating i3 3.x behavior)
source 'http://rubygems.org'
gem 'i3ipc', '~> 0.2.0'
@quark-zju
quark-zju / tango-colors.css.scss
Created April 17, 2014 01:49
Tango colors (SCSS)
// Highlight Shadow
// Aluminium #eeeeec #d3d7cf #babdb6
// Butter #fce94f #edd400 #c4a000
// Chameleon #8ae234 #73d216 #4e9a06
// Orange #fcaf3e #f57900 #ce5c00
// Chocolate #e9b96e #c17d11 #8f5902
// Sky Blue #729fcf #3465a4 #204a87
// Plum #ad7fa8 #75507b #5c3566
// Slate #888a85 #555753 #2e3436
// Scarlet Red #ef2929 #cc0000 #a40000
@quark-zju
quark-zju / mssh.rb
Last active December 8, 2016 19:09
Use tiled view correctly
#!/usr/bin/env ruby
require 'digest'
hosts = ARGV.to_a
hosts = $<.each_line.map(&:chomp) if hosts.empty?
hosts.uniq!
def system! *args
raise "Cannot exec #{args}" unless system(*args.flatten)