iTerm2&zsh環境にてctrl+矢印キーで単語移動をする

ちとハマったので備忘

まずは.zshrcに以下の設定を追加

# ctrl+矢印で単語移動
bindkey "\e[1;5C" forward-word
bindkey "\e[1;5D" backward-word

そしてosxの環境設定: System Preference-> Keyboard -> Keyboard Shortcuts -> MissionControl にて不必要と思われるショートカット(^→、^←)のチェックを外す(ついでに↑、↓も外した)

以上です

MySQL用のテストデータ作成ヘルパー的なものを作った

まぁ毎回テストデータを作るごとに飽きもせずマルチプルインサートな捨てスクリプトを書いていたのでいい加減まとめてみた。でも、作っただけだとまぁ確実に忘れるのでここで記事にもしてみた。使い方は以下の感じ。

https://github.com/pacojp/testdata_generater_for_mysql

# -*- coding: utf-8 -*-

require 'rubygems'
require 'testdata_generater_for_mysql'

#
# localhostにtestdata_generater_for_mysql_testというデータベースを作成し
# rootのパスワードなしでアクセスできるようにしてあるとして
#

# 取り敢えずおまじない
include TestdataGeneraterForMysql

# データベースへのアクセス情報を設定します(Mysql2::Client.newの引数です)
setup_mysql_client :host => "127.0.0.1", :username => "root",:database=>'testdata_generater_for_mysql_test'
# マルチプルインサートの実行単位を指定します(以下だと200行ずつインサート実行。defaultは100)
insert_per_rows 200
# プログレスバーを非表示にしたければ以下をコメントアウト
#hide_progress_bar

# 取り敢えず必要なテーブルを作成します(すでに存在する場合は消します)
query "DROP TABLE IF EXISTS tests;"
query "
CREATE TABLE tests (
  `id`          int(11) NOT NULL auto_increment,
  `brand_id`    int(11) NOT NULL,
  `shop_id`     int(11) NOT NULL,
  `user_id`     int(11) NOT NULL,
  `name`        varchar(20) NOT NULL,
  `value1`      int(11) NOT NULL,
  `value_nil`   int(11) ,
  `value_func`  varchar(20),
  `value_true`  tinyint(1) ,
  `value_time`  datetime ,
  `created_at`  datetime ,
  PRIMARY KEY  (`id`),
  KEY `idx01` USING BTREE (`brand_id`,`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
"

#
# ■データ作成
#
# まずはループ情報を設定します。
# テストデータを作る際は以下な感じで行うと思いますが
#
# (1..10).each do |brand_id|
#   (1..3).each do |shop_id|
#     (1..15).each do |user_id|
#       # do_someting here with brand_id,show_id,user_id
#     end
#   end
# end
#
# これを以下で表現しています。
#
CNT_BRAND      =    21
SHOP_PER_BRAND =    15
USER_PER_SHOP  = 1_003
loops = [
  [:brand_id, (1..CNT_BRAND)],
  [:shop_id,  (1..SHOP_PER_BRAND)],
  ['user_id', (1..USER_PER_SHOP)] # 文字列でキーを指定も
]
#
# 次に各列の処理を設定します。
# データはハッシュにて設定します。設定したいカラムの名前をkeyにて設定、
# valueはProcインスタンスにて設定します。Procのイニシャライザのブロック引数に
# loopsで設定した値が引き渡されます(上記ループ解説の# do_somethingの箇所の値が
# ハッシュにて引き渡されます)。
# 基本的にvalueは実行時にエスケープされシングルクォーテーションで囲まれます(数値でも同様)。
# 「NOW()」等関数を指定したい場合は"NOW()".to_funcと指定すると値にエスケープ及び
# シングルクォーテーションでの囲みがかからなくなります
#
procs = {
  :brand_id    => Proc.new{|v|v[:brand_id]},
  :shop_id     => Proc.new{|v|v[:shop_id]},
  :user_id     => Proc.new{|v|v['user_id']},
  :name        => Proc.new{|v|"#{v[:brand_id]}_#{v[:shop_id]}_#{v['user_id']}'s name"},
  :value1      => Proc.new{rand(10000)},
  :value_nil   => Proc.new{nil},
  :value_func  => Proc.new{"CONCAT('My', 'S', 'QL')".to_func}, #関数指定時はString#to_funcで
  :value_true  => Proc.new{true}, # true は 1 false は 0
  :value_time  => Proc.new{Time.mktime(2001,2,3,4,35,6)}, # Time,DateTime,Date
  :created_at  => Proc.new{'NOW()'.to_func},
}
#
# 実際にテストデータを作成します
# 引数はテーブル名、ループ、列に対する処理、になります
#
create_rows(
  'tests',
  loops,
  procs
)


# 以下作成結果のサンプルを出力しています
puts '=' * 60
puts query("SELECT count(id) AS cnt FROM tests").first['cnt'].to_s + "rows created"
puts 'sample:'
p query("SELECT * FROM tests WHERE brand_id = #{CNT_BRAND} AND shop_id = #{SHOP_PER_BRAND} AND user_id = #{USER_PER_SHOP}").first

__END__

出力結果は以下な感じになります

$ ruby example/sample1.rb
================   create rows for tests   =================
100% |oooooooooooooooooooooooooooooooooooo| Time:   0:00:23
============================================================
315945rows created
sample:
{"id"=>315945, "brand_id"=>21, "shop_id"=>15, "user_id"=>1003, "name"=>"21_15_1003's name", "value1"=>6704, "value_nil"=>nil, "value_func"=>"MySQL", "value_true"=>1, "value_time"=>2001-02-03 04:35:06 +0900, "created_at"=>2012-10-07 16:06:13 +0900}

HTMLのカラーネームのデータ

どこかに絶対あるとは思うけど、探すのが大変だったので。あるサイトからスクレイプして作ったデータなので無保証ですが下に貼っときます。

'#000000','Black'
'#000080','Navy'
'#00008B','DarkBlue'
'#0000CD','MediumBlue'
'#0000FF','Blue'
'#006400','DarkGreen'
'#008000','Green'
'#008080','Teal'
'#008B8B','DarkCyan'
'#00BFFF','DeepSkyBlue'
'#00CED1','DarkTurquoise'
'#00FA9A','MediumSpringGreen'
'#00FF00','Lime'
'#00FF7F','SpringGreen'
'#00FFFF','Aqua'
'#00FFFF','Cyan'
'#191970','MidnightBlue'
'#1E90FF','DodgerBlue'
'#20B2AA','LightSeaGreen'
'#228B22','ForestGreen'
'#2E8B57','SeaGreen'
'#2F4F4F','DarkSlateGray'
'#32CD32','LimeGreen'
'#3CB371','MediumSeaGreen'
'#40E0D0','Turquoise'
'#4169E1','RoyalBlue'
'#4682B4','SteelBlue'
'#483D8B','DarkSlateBlue'
'#48D1CC','MediumTurquoise'
'#4B0082','Indigo'
'#556B2F','DarkOliveGreen'
'#5F9EA0','CadetBlue'
'#6495ED','CornFlowerBlue'
'#66CDAA','MediumAquamarine'
'#696969','DimGray'
'#6A5ACD','SlateBlue'
'#6B8E23','OliveDrab'
'#708090','SlateGray'
'#778899','LightSlateGray'
'#7B68EE','MediumSlateBlue'
'#7FFF00','Chartreuse'
'#7FFFD4','Aquamarine'
'#800000','Maroon'
'#800080','Purple'
'#808000','Olive'
'#808080','Gray'
'#87CEEB','SkyBlue'
'#87CEFA','LightSkyBlue'
'#8A2BE2','BlueViolet'
'#8B0000','DarkRed'
'#8B4513','SaddleBrown'
'#8FBC8F','DarkSeaGreen'
'#90EE90','LightGreen'
'#9370DB','MediumPurple'
'#9400D3','DarkViolet'
'#98FB98','PaleGreen'
'#9932CC','DarkOrchid'
'#9ACD32','YellowGreen'
'#A0522D','Sienna'
'#A0CE00','AliceBlue'
'#A52A2A','Brown'
'#A9A9A9','DarkGray'
'#ADD8E6','LightBlue'
'#ADFF2F','GreenYellow'
'#AFEEEE','PaleTurquoise'
'#B0C4DE','LightSteelBlue'
'#B0E0E6','PowderBlue'
'#B22222','FireBrick'
'#B8860B','DarkGoldenrod'
'#BA55D3','MediumOrchid'
'#BC8F8F','RosyBrown'
'#BD008B','DarkMagenta'
'#BDB76B','DarkKhaki'
'#C0C0C0','Silver'
'#C71585','MediumVioletred'
'#CD5C5C','IndianRed'
'#CD853F','Peru'
'#D2691E','Chocolate'
'#D2B486','Tan'
'#D3D3D3','LightGray'
'#D8BFDB','Thistle'
'#DA70D6','Orchid'
'#DAA520','Goldenrod'
'#DB7093','PaleVioletred'
'#DC143C','Crimson'
'#DCDCDC','Gainsboro'
'#DDA0DD','Plum'
'#DEB887','BurlyWood'
'#E0FFFF','LightCyan'
'#E6E6FA','Lavender'
'#E9967A','DarkSalmon'
'#EE82EE','Violet'
'#EEE8AA','PaleGoldenrod'
'#F08080','LightCoral'
'#F0E68C','Khaki'
'#F0FFF0','Honeydew'
'#F0FFFF','Azure'
'#F5DEB3','Wheat'
'#F5F5DC','Beige'
'#F5F5F5','WhiteSmoke'
'#F5FFFA','MintCream'
'#F8F8FF','GhostWhite'
'#FAEBD7','AntiqueWhite'
'#FAF0E6','Linen'
'#FAFAD2','LightGoldenrodYellow'
'#FDF5E6','OldLace'
'#FF0000','Red'
'#FF00FF','Fuchsia'
'#FF00FF','Magenta'
'#FF1493','DeepPink'
'#FF4500','OrangeRed'
'#FF6347','Tomato'
'#FF69B4','HotPink'
'#FF7F50','Coral'
'#FF8C00','DarkOrange'
'#FFA07A','LightSalmon'
'#FFA500','Orange'
'#FFB6C1','LightPink'
'#FFC0CB','Pink'
'#FFD700','Gold'
'#FFDAB9','PeachPuff'
'#FFDEAD','NavajoWhite'
'#FFE4C4','Bisque'
'#FFE4E1','MistyRose'
'#FFEBCD','BlanchedAlmond'
'#FFEFD5','PapayaWhip'
'#FFF0F5','LavenderBlush'
'#FFF5EE','SeaShell'
'#FFF8DC','CornSilk'
'#FFFACD','LemonChiffon'
'#FFFAF0','FloralWhite'
'#FFFAFA','Snow'
'#FFFF00','Yellow'
'#FFFFE0','LightYellow'
'#FFFFF0','Ivory'
'#FFFFFF','White'

検索用文字列(自分向け)
HTML,色,color

svn propedit svn:ignore .にてsvn: system('vi svn-prop.tmp') returned 256とエラーが返って設定が失敗する

ネット上では色々なシチュエーションで本問題が発生するとの情報が散見されます。

私の場合、

export SVN_EDITOR="vim --noplugin"

のおまじないで回避できました(vimはもともとデフォルトを使っていないので)。

ruby1.8.6環境で gem install json すると Abort trap: 6 ってそっけないエラーでインストールが失敗する

古い環境を再構築していて引っかかりました。

1.8.7でgem install json したあと必要なファイル gemspecと本体を適切な場所にコピーして逃げました