Skip to content

Instantly share code, notes, and snippets.

View tyru's full-sized avatar
🏠
Working from home

Fujiwara Takuya tyru

🏠
Working from home
View GitHub Profile
@sunaot
sunaot / gist:613117
Created October 6, 2010 10:03
手間と複雑さとの戦いについて

手間と複雑さとの戦いについて。

プログラムは処理を機械の手続きにあわせて実装するものでした。でも、そうすると人間が制御可能な複雑さを超えてしまいます。制御不能になるということは、つまりバグが入るということです。そこで、機械には少しがんばってもらって、その分人間が理解可能なレベルまで複雑さを落とすためのテクニックが生まれてきました。

そのステップを追ってみます(厳密には概念の誕生ははるかに古いものなどもあります。実際に用いられるようになってきた歴史をプログラム改善の流れと結びつけて並び替えてあります)。

手続きの抽象化。

抽象化が進んだとき、引数の多段受け渡しが発生する。

@azu
azu / userContent.css
Created October 9, 2010 03:34
Google検索結果のuserContent.css
/* Google検索ページ
+結果欄の幅拡張
+検索バーを固定
+サイトの背景色を奇数で色分
+広告は犠牲になった
*/
@-moz-document url-prefix("http://www.google.com/search"),
url-prefix("http://www.google.co.jp/search"){
/* 「もっと見る」を常に表示 */
.nojsb {
@sunaot
sunaot / gist:625336
Created October 14, 2010 01:13
直交性と DRY

直交性と DRY

「達人プログラマー」からの抜粋。

直交性とは

コンピューティングの分野では、ある種の独立性、あるいは分離性を表しています。 2つ以上のものごとで、片方を変更しても他方に影響を与えない場合、それらを直交している と呼ぶわけです。うまく設計されたシステムでは、データベースのコードはユーザー・ インタフェースと直交しています。つまりデータベースに影響を与えることなく インタフェースを変更したり、インタフェースを変更することなくデータベースを交換できたり するのです。

#!/usr/bin/env zsh
# -*- coding: utf-8-unix; -*-
# vim: et fenc=utf-8 ff=unix
# 256色確認
function pcolor() {
for ((f = 0; f < 255; f++)); do
printf "\e[38;5;%dm %3d*■\e[m" $f $f
if [[ $f%8 -eq 7 ]] then
@h1mesuke
h1mesuke / util.vim
Created October 14, 2010 08:09
Vim - My autload/util.vim
" NOTE: THIS FILE CONTAINS MANY EXPERIMENTAL CODES!
"-----------------------------------------------------------------------------
" Abbrev
function! util#abbrev(words)
let table = {}
let seen = {}
for word in a:words
let abbrev = substitute(word, '.$', '', '')
#!zsh
# textobj-between code.
# Thank you very much, thinca and tarao!
#
# http://d.hatena.ne.jp/thinca/20100614/1276448745
# http://d.hatena.ne.jp/tarao/20100715/1279185753
def-oppc-textobj-between () {
def-oppc-inbetween-2 "$1" "opp+i$1" "opp+a$1" oppc-tb-main
}
" Vim syntax file
" Language: tiarra log file
" Written By: mashiro <[email protected]>
" Last Change: 2010 Jan 06
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
@tsukkee
tsukkee / move_cursor_with_tmux.vim
Created October 17, 2010 13:32
Vimとtmuxのウィンドウを区別せずに移動したい
function! MoveCursorWithTmux(vim_dir, tmux_dir)
let old_winnr = winnr()
execute "normal! \<C-w>" . a:vim_dir
" フォーカスがうつってなかったら
if old_winnr == winnr()
silent call system('tmux select-pane -' . a:tmux_dir)
endif
endfunction
@h1mesuke
h1mesuke / search.vim
Created October 18, 2010 05:02
Vim - My vimrc snippet for searching for texts; ver.2
"---------------------------------------
" Search
set incsearch nohlsearch
set noignorecase nosmartcase
nnoremap [Space]hl :<C-u>call util#toggle_option("hlsearch")
cnoremap <expr> / getcmdtype() == '/' ? '\/' : '/'
cnoremap <expr> ? getcmdtype() == '?' ? '\?' : '?'
@tsukkee
tsukkee / unite_sources_tags.vim
Created October 20, 2010 14:22
tags and tags/help sources for unite.vim
" tags, tags/help sources for unite.vim
" Version: 0.0.1
" Last Change: 20 Oct 2010
" Author: tsukkee <takayuki0510 at gmail.com>
" Licence: The MIT License {{{
" Permission is hereby granted, free of charge, to any person obtaining a copy
" of this software and associated documentation files (the "Software"), to deal
" in the Software without restriction, including without limitation the rights
" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
" copies of the Software, and to permit persons to whom the Software is