2009-12-29 kyoendo
* VIM: '': jump to prev pos
. : repeat prev act
% : search the word
daw: delete a word
cis: change inner sentence
* VIM: 複数のファイルを同時に開く: vim [-o] file1 file2 (o:split vie
w)
MacVimだと複数ウィンドウが開いてしまう
* VIM: surrounding.vim
yss" - hello world => "hello world"
ysaw" - h|ello world => "hello" world
cs"' - "hello world" => 'hello world'
visual mode: s" - add
* VIM: snipMate.vim
"<Tab>hello<Tab> => "hello"|
add snippet to snippet folder
* VIM: <C-c> or <C-[> in insert mode => <Esc>
Tuesday, December 29, 2009
Monday, December 28, 2009
VIMすごいよVIM
- changelogで簡単日記帳メモを取る
- migemoで日本語をローマ字検索・置換
- RefeでRubyReference検索
- Blogger投稿:はまだうまくいかない
* VIM: changelogの使い方 <Leader>oで追加
* VIM: calc paste: <C-R>r= [expr] in insert mode
* VIM: search by # or * on the word
* VIM: copy in command mode: <C-R>r,"
* VIM: :%s/[0-9]\+/=submatch(0)+1/g add 1 to all numbers in a file
* VIM: :diffsplit <filename>
* RUBY: File.rename(old, new)
* VIM: mA でbufferをmark 'A で呼び出し
* VIM: Migemo Search: g/, g?
Ruby 引数ファイルをrename
#!/usr/bin/env ruby -wKU
ARGV.each do |f|
new = File.basename(f, ".*").downcase
ext = File.extname(f)
File.rename(f, "MacVim-#{new}#{ext}") if ext == '.icns' and new !~ /MacVim/
end
Sunday, December 27, 2009
Refe
require 'nkf'
require 'iconv'
module ReFe
module Encoding
def adjust_encoding( str )
if shift_jis_platform?
NKF.nkf('-Es', str)
else
Iconv::iconv("UTF-8", "EUC-JP", str)
end
end
Saturday, December 26, 2009
vimでruby
3つの方法
ただ、VimScriptとRuby間での引数を渡す方法がわからない
一つ分かった
evaluateを使う
- :ruby puts 'hello'
- :rubydo gsub(/\w+/){|m| m.upcase} (または、:%!ruby -pe 'gsub....'
- :rubyfile hello.rb
function! Claims()
ruby <<EOF
$KCODE = 'u'
require 'jcode'
require 'patent'
cb = VIM::Buffer.current
pf = PatentFile.new(cb.name)
claims = pf.claims?
puts claims.map{ |c| "Claim #{c[:no]} inv:#{c[:inv]} subof:#{c[:subof]} err:#{
c[:err]}"}
EOF
endfunction
ただ、VimScriptとRuby間での引数を渡す方法がわからない
一つ分かった
name = VIM::evaluate('a:name')
evaluateを使う
Friday, December 25, 2009
vimでRubyスクリプトを読み込む
日本語がうまく処理されない
原因
(追記)原因判明!
文字コードを指定してなかった
スクリプト中で
$KCODE = 'u'
しないと
あとpatent.rbにバグがあった
全角スペースは、正規表現において'\s'では補足できないのだった
原因
- VIMのRubyは1.8.7
- puts "あ"はちゃんと出力できるが
- puts "あ".length は3となる
- ということは'jcode'が読めてないみたいだ
(追記)原因判明!
文字コードを指定してなかった
スクリプト中で
$KCODE = 'u'
しないと
あとpatent.rbにバグがあった
全角スペースは、正規表現において'\s'では補足できないのだった
Thursday, December 24, 2009
VimでPatentFileを使うときに文字化け
Vim Script内でRubyコードを実行すると
文字化けしてうまくいかない
具体的には、
なかなか解決策がみつからない
文字化けしてうまくいかない
具体的には、
if exists("loaded_related")pf.readの出力が文字化けする
finish
endif
let loaded_related = 1
function! Patent()
ruby <<EOF
#!/usr/bin/env ruby -Ku
require 'jcode'
require 'pa'
f = VIM::Buffer.current
pf = Patent.new('Hello,こんにちははは world\nnewline here\ngo go.')
p pf.read
EOF
endfunction
なかなか解決策がみつからない
Wednesday, December 23, 2009
VimでRuby
+perl / +python / +ruby
デフォルトでMac OS X 10.6 (Snow Leopard)の標準パスからperl/python/rubyのdylibを動的に読み込みます。
MacPortsなどのdylibを使用したい場合は .vimrc にて
let $PERL_DLL = "/opt/local/lib/perl5/5.10.0/darwin-2level/CORE/libperl.dylib"
let $PYTHON_DLL = "/opt/local/lib/libpython2.6.dylib"
let $RUBY_DLL = "/opt/local/lib/libruby.dylib"
のように指定します。perl5.10.0, python2.6(2.5), ruby1.8.xと互換です。perl5.8.8,5.8.9,5.10.1とは非互換となります。
非互換のものはソースコードからビルドすることで使用できます。python3やruby1.9などは別途パッチが必要となります。vimメーリングリストなどをご参照ください。
だそうで
Flickr更新
Flickrのアカウントが1月6日に切れるという案内が来た
GoogleのPicasaが先月値下げしたので乗り換えを検討してみる
Flickrは年$25で容量無制限
Picasaは20Gまで年$5、80Gまで年$20、200Gまで$50
Flickrにアップした写真の枚数は8,700枚
1枚を3.0MBとして計算すると26.1GB
よってPicasaだと$20で差額が年5ドル
移行の手間を考えると差無し
来年1年もFlickrでいきます
GoogleのPicasaが先月値下げしたので乗り換えを検討してみる
Flickrは年$25で容量無制限
Picasaは20Gまで年$5、80Gまで年$20、200Gまで$50
Flickrにアップした写真の枚数は8,700枚
1枚を3.0MBとして計算すると26.1GB
よってPicasaだと$20で差額が年5ドル
移行の手間を考えると差無し
来年1年もFlickrでいきます
Sunday, December 20, 2009
MetaClass _why
スーパークラスでサブクラスのクラスメソッド(シングルトンメソッド)を定義する
class Object
def metaclass
class << self
self
end
end
def meta_eval &blk
metaclass.instance_eval &blk
end
def meta_def name, &blk
meta_eval { define_method name, &blk }
end
def class_def name, &blk
class_eval { define_method name, &blk }
end
end
class MailTruck
def self.company name
meta_def :company do
name
end
end
end
class HappyTruck < MailTruck
company "Happy's -- We bring the mail!"
end
以下と等価
class MailTruck
def self.company name
class << self
self.instance_eval do
define_method :company do
name
end
end
end
end
end
class HappyTruck < MailTruck
class << self
def company
"hello"
end
end
end
p HappyTruck.company
Metaclass _why
スーパークラスでサブクラスのクラスメソッド(シングルトンクラスメソッド)を定義する
class Object
def metaclass
class << self
self
end
end
def meta_eval &blk
metaclass.instance_eval &blk
end
def meta_def name, &blk
meta_eval { define_method name, &blk }
end
def class_def name, &blk
class_eval { define_method name, &blk }
end
end
class MailTruck
def self.company name
meta_def :company do
name
end
end
end
class HappyTruck < MailTruck
company "Happy's -- We bring the mail!"
end
以下と等価
class MailTruck
def self.company name
class << self
self.instance_eval do
define_method :company do
name
end
end
end
end
end
class HappyTruck < MailTruck
class << self
def company
"hello"
end
end
end
p HappyTruck.company
Saturday, December 19, 2009
Friday, December 18, 2009
Vim でコマンドを実行したい
現在開いているファイルを標準入力として読み込んでコマンドを実行
ファイルの内容は結果で置き換えられてしまう点が問題
コマンドの実行結果をカーソル位置へ挿入
コマンドの実行結果をステータスラインへ
:%!ruby claim_check.rb
ファイルの内容は結果で置き換えられてしまう点が問題
コマンドの実行結果をカーソル位置へ挿入
:r(ead) !ls
コマンドの実行結果をステータスラインへ
:!cal
Tuesday, December 15, 2009
付箋アプリが危ない!
突然、付箋アプリがちゃんと動かなくなった
原因はDataMapperのアップデートだった
0.9から0.10で大きく仕様が変わったようだ
現在4種類のRubyをインストールしている
ruby186(/usr/local/bin/ruby186)
_ruby (/opt/local/bin/ruby)ruby187
ruby1.9 (/opt/local/bin/ruby1.9)
ruby (/usr/local/bin/ruby)ruby1.9.2
付箋アプリは_rubyを使ってるんだけど
そのdm-coreその他を0.9に戻してもうまくいかず
調べると
requireして呼ばれてるのはruby1.9.2のライブラリであった
それですべてのdm-coreその他を0.9に戻すことで
やっと対処できた
DBデータは死んでしまい
2週間くらい前にバックアップしていたのに戻した
これからの運用先をDropBox内に変えよう
教訓
原因はDataMapperのアップデートだった
0.9から0.10で大きく仕様が変わったようだ
現在4種類のRubyをインストールしている
ruby186(/usr/local/bin/ruby186)
_ruby (/opt/local/bin/ruby)ruby187
ruby1.9 (/opt/local/bin/ruby1.9)
ruby (/usr/local/bin/ruby)ruby1.9.2
付箋アプリは_rubyを使ってるんだけど
そのdm-coreその他を0.9に戻してもうまくいかず
調べると
requireして呼ばれてるのはruby1.9.2のライブラリであった
それですべてのdm-coreその他を0.9に戻すことで
やっと対処できた
DBデータは死んでしまい
2週間くらい前にバックアップしていたのに戻した
これからの運用先をDropBox内に変えよう
教訓
- アップデートには気をつけよう
- バックアップ重要(リアルタイムが最良)
Monday, December 14, 2009
10YDiaryプロジェクト始動!
12月11日より新プロジェクト『10YDiary」始動
今日まで順調に進んでいる
今日まで順調に進んでいる
- テーブル形式でカレンダーを表示
- 行・列の数を自由に可変
- 各ボックスで直接編集
Friday, December 11, 2009
DocType宣言
HtmlにDocType宣言を入れるとその規則に従っていないCSSは無視される
DocTypeが無い場合width 100は自動で100Pxと解釈されるが
DocTypeを入れると無視される
DocTypeが無い場合width 100は自動で100Pxと解釈されるが
DocTypeを入れると無視される
Thursday, December 10, 2009
明細書作成支援Webアプリを凍結?
Ruby1.8.6にも対応できてローカルでは問題なく動いているんだけど
Herokuでは一部が文字化けしてしまう
Herokuのログを見るとto_jsonでillegal/malformed utf-8というJSON::GeneratorErrorが出ている
最初の表示で@resultsのデータが既に文字化けしているからなんだと思う
一方で@pfileの内容はチャンと表示できている
ちょっと原因特定できず
本件にこれ以上時間を割きたくないということもあり
一応ローカルでは完成したということで凍結しようか
それで解決策の検討がついたらちょくちょくと試してみるという方向にしよう
さあ先に進もう
Herokuでは一部が文字化けしてしまう
Herokuのログを見るとto_jsonでillegal/malformed utf-8というJSON::GeneratorErrorが出ている
最初の表示で@resultsのデータが既に文字化けしているからなんだと思う
一方で@pfileの内容はチャンと表示できている
ちょっと原因特定できず
本件にこれ以上時間を割きたくないということもあり
一応ローカルでは完成したということで凍結しようか
それで解決策の検討がついたらちょくちょくと試してみるという方向にしよう
さあ先に進もう
Wednesday, December 09, 2009
Patessier
明細書作成ツールが完成に近づいてるんだけど
Herokuにアップするところで2つのトラブル
2にはDataMapperを使えるようにもしたんだけど
DataMapperがどういうわけかRuby1.8.6で起動するとエラーが出る
/usr/local/lib/ruby/gems/1.8/gems/addressable-2.1.1/lib/addressable/uri.rb:1862:in `to_s': uninitialized constant Addressable::URI::Encoding (NameError)
どうしたものか
あとRuby1.9でも別のエラーがでてDMが動かない
Ruby1.8.7は動くのに
Herokuにアップするところで2つのトラブル
- Rubyのヴァージョンが1.8.6
- PStoreのようなfilesystem storageが使えない
2にはDataMapperを使えるようにもしたんだけど
DataMapperがどういうわけかRuby1.8.6で起動するとエラーが出る
/usr/local/lib/ruby/gems/1.8/gems/addressable-2.1.1/lib/addressable/uri.rb:1862:in `to_s': uninitialized constant Addressable::URI::Encoding (NameError)
どうしたものか
あとRuby1.9でも別のエラーがでてDMが動かない
Ruby1.8.7は動くのに
Tuesday, December 08, 2009
herokuでダブルショック!
明細書作成支援ツールの最初の版ができたので
Herokuにアップするも
Ruby1.8.6ということで撃沈
これを対応させた版ができたのでアップするも
こんどはPStoreが使えないみたいで二度目の撃沈
はい、見積もり甘すぎます
Herokuにアップするも
Ruby1.8.6ということで撃沈
これを対応させた版ができたのでアップするも
こんどはPStoreが使えないみたいで二度目の撃沈
はい、見積もり甘すぎます
TextMate comment tips
Command+/ : comment
Alt+Command+/ : block comment
Ctr+B : banner comment
head tab: header comment
todo tab : todo comment
Alt+Command+/ : block comment
Ctr+B : banner comment
head tab: header comment
todo tab : todo comment
Monday, December 07, 2009
電気代の比較
year 2008 2009
Nov 7236 7999
Dec 14491(563kw) 14812(667kw)
Jan 18168
Feb 13954
Mar 12782
Apr 6086
May 5052
Jun 6069
Jul 7368
Aug 7377
Sep 5540
Oct 5313
2008年はデロンギ 2009年はパネルヒーター 12月が勝負だ
Nov 7236 7999
Dec 14491(563kw) 14812(667kw)
Jan 18168
Feb 13954
Mar 12782
Apr 6086
May 5052
Jun 6069
Jul 7368
Aug 7377
Sep 5540
Oct 5313
2008年はデロンギ 2009年はパネルヒーター 12月が勝負だ
Sunday, December 06, 2009
ViMate
TextMateをVIMライクにするプラグインViMateを見つけた
ショートカットをカスタマイズできないようだ
実用に耐えるかちょっと試してみよう
ただESCで補完機能が使えなくなるんだけどどうなってんだろう
ショートカットをカスタマイズできないようだ
実用に耐えるかちょっと試してみよう
ただESCで補完機能が使えなくなるんだけどどうなってんだろう
Commands Implemented
Movement- h
- left
- j
- down
- k
- up
- l
- right
- w
- word forward
- b
- word backward
- e
- end of word forward
- 0
- beginning of line
- $
- end of line
- gg
- top of document
- G
- end of document
- i
- insert
- I
- insert at beginning of line (doesn't respect indenting)
- a
- append
- A
- append to end of line
- o
- insert line below (doesn't respect indenting)
- O
- insert line above (doesn't respect indenting)
- c+(?)
- change
- cc
- change line
- C
- change to end of line
- d+(?)
- cut
- dd
- cut line
- D
- cut to end of line
- y+(?)
- copy
- yy
- copy line
- x
- cut character forward (or cut selection)
- X
- cut character backward (or cut selection)
- p
- paste after or below (or replace selection)
- P
- paste before or above (or replace selection)
- Ctrl+u
- scroll half page up (broken)
- Ctrl+d
- scroll half page down (broken)
- Ctrl+b
- scroll full page up
- Ctrl+f
- scroll full page down
- Ctrl+y
- scroll line up
- Ctrl+e
- scroll line down
- V
- highlight line
- v
- visual mode
- 1,2,3...
- repeat next command (buggy)
Monday, November 30, 2009
Ruby1.9 encoding
SinatraがRuby1.9に対応したので早々UPGrade
しかし1.9のエンコードがうまくいかない
原因はRackのParamsからのリターンがASCII-8BITになってしまうため
Patent.rbではファイルストリングがUTF-8か判断して
そうでないときはSJISと解釈してforce_encodingし
さらにUTF-8にencodeし
一方でUTF-8の時はUTF-8にforce_encodingする
しかし1.9のエンコードがうまくいかない
原因はRackのParamsからのリターンがASCII-8BITになってしまうため
Patent.rbではファイルストリングがUTF-8か判断して
そうでないときはSJISと解釈してforce_encodingし
さらにUTF-8にencodeし
一方でUTF-8の時はUTF-8にforce_encodingする
def conv_to_utf8_string(filename)
str = IO.read(filename) rescue filename
if str.utf8?
# should force encoding: Rack bug which params badly return ASCII-8BIT
str.force_encoding('UTF-8')
else
str.force_encoding('SJIS').encode('UTF-8').gsub("\r", "")
end
end
File encoding sjis to utf8
入力ファイルがUTF-8でない場合
SJISと判断してUTF-8に変換
SJISと判断してUTF-8に変換
#!/usr/bin/env ruby
# encoding: utf-8
class String
def utf8?
unpack('U*') rescue return false
true
end
end
f1 = '/Users/keyes/Desktop/utf8.txt'
f2 = '/Users/keyes/Desktop/sjis.txt'
pfs = [f1, f2]
pfs.map! do |f|
if File.open(f).gets.utf8?
File.open(f, 'r')
else
File.open(f, "r:sjis:utf-8")
end
end
pfs.each do |pf|
puts pf.read
end
Sunday, November 29, 2009
Ajax Upload
in html
#upload_button Upload
in javascript
new AjaxUpload('#upload_button', {
action: '/',
name: 'file',
autoSubmit: true
});
in controller
params[:file][:tempfile]
Wednesday, November 25, 2009
RMagic memory leak
image_shrink.rbでRMagickを使ってる
それで大量の画像を渡すとメモリーが解放されず
処理が著しく低下するというバグがあるみたいだ
で対応としてGCを強制的に作動させる
それで大量の画像を渡すとメモリーが解放されず
処理が著しく低下するというバグがあるみたいだ
で対応としてGCを強制的に作動させる
def run_gcを各RMagickの処理のあとに呼ぶ
fDisabled = GC.enable
GC.start
GC.disable if fDisabled
end
Monday, November 23, 2009
Thursday, November 19, 2009
明細書作成支援Webアプリ
なかなかの調子で進行中
が、リナンバリングでつまづく
やはりデータベースでの管理が必要か
結局サーバー側とクライアント側のデータ受け渡しが厄介だ
例えば、クライアント側でデータを書き換えて
その結果に基づいて処理を行う場合
クライアント側からデータをサーバーに渡し
サーバー側で処理してまたクライアントに渡さなければならない
サーバーとクライアント側でRubyを走らせて
DRubyでオブジェクトをそのまま渡せたらどんなにか便利だろうに
が、リナンバリングでつまづく
やはりデータベースでの管理が必要か
結局サーバー側とクライアント側のデータ受け渡しが厄介だ
例えば、クライアント側でデータを書き換えて
その結果に基づいて処理を行う場合
クライアント側からデータをサーバーに渡し
サーバー側で処理してまたクライアントに渡さなければならない
サーバーとクライアント側でRubyを走らせて
DRubyでオブジェクトをそのまま渡せたらどんなにか便利だろうに
その場で
その場で編集が実装できるjQueryのプラグインjeditable.js
dataの受け取りは、params[:name], params[:value]で
$(".editable_textarea").editable("http://localhost:4567/save", {
indicator : "<img src='../img/indicator.gif'>",
type : 'textarea',
submitdata: { _method: "put" },
select : false,
submit : 'OK',
cancel : 'cancel',
cssclass : "editable"
});
dataの受け取りは、params[:name], params[:value]で
Wednesday, November 18, 2009
Firefox3.6beta + nightly build tools add-on
vimp doesn't work on firefox3.6b.
but with nightly build tool addon, it works fine.
after the tool work, then disable the tool. it start working.
but i can't use ime for this.??
but with nightly build tool addon, it works fine.
after the tool work, then disable the tool. it start working.
but i can't use ime for this.??
install Scala
- www.scala-lang.orgからDLして解凍
- mv scala/ /usr/local/
- add followings to .zshrc
export PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:/opt/local/bin:/opt/local/sbin:/opt/local/lib/:.:$HOME/Dropbox/lib:$SCALA_HOME/bin:$PATH"
export SCALA_HOME="/usr/local/scala"
http://www.paradox1x.org/archives/2009/06/very-quick-star.shtml
Sunday, November 15, 2009
Saturday, November 14, 2009
jQuery checkbox + getJSON
jquery
$('#go_btn').click(function(event){
var params = [];
$("input:checkbox[name='selector']:checked").each(function(){
params.push($(this).val());
});
$.getJSON('/results/'+params.join(':'), function(json){
$('#results').html("<p>"+json.evalclaims+"</p>"+"<p>"+json.claims+"</p>");
});
});
controller
get '/results/:params' do |params|
redirect '/' unless request.xhr?
requests = params.split(':')
q = {}
unless requests.empty?
pf = PatentFile.new('./public/tmpfile')
requests.each do |res|
case res
when 'evalclaims'
q[:evalclaims] = pf.eval_claims_with_statics.last[:claims]
when 'claims'
q[:claims] = pf.claims 1
end
end
end
content_type :json
{:evalclaims => q[:evalclaims], :claims => q[:claims]}.to_json
end
Sinatra File Upload
controller
if params[:file]
path = './public/tmpfile'
File.open(path,'w'){ |f| f.write(params[:file][:tempfile].read) }
@original = File.open(path).read
end
view
%form{:action=>'/', :method=>'post', :enctype=>'multipart/form-data'}
%input{:type=>'file', :name=>'file'}
%input{:type=>'submit', :value=>'POST'}
Tuesday, November 10, 2009
data backupの手順
- backup_coosamac.sh
- backup_eggmac.sh
- backup_keyesmac.sh
- backup_bigmac.sh
backup_keyesmac.sh
rsync -avz -e ssh --delete --exclude 'Library/Caches/' --exclude '.Trash' /Users/keyes/ /Volumes/BIGMAC/backups/keyesmac/
backup_bigmac.sh
rsync -avz -e ssh --delete --exclude '.*' --exclude 'Desktop*' --exclude 'backups/' /Volumes/BIGMAC/ coosa@192.168.1.5:/Volumes/EGGMAC/backups/keyesmac/
backup_coosamac.sh
rsync -avz -e ssh --delete --exclude 'Library/Caches/' --exclude '.Trash' /Users/coosa/ /Volumes/EGGMAC/backups/coosamac/
backup_eggmac.sh
rsync -avz -e ssh --delete --exclude '.*' --exclude 'Desktop*' --exclude 'backups/' /Volumes/EGGMAC/ keyes@192.168.1.3:/Volumes/BIGMAC/backups/coosamac/
外付けHDD購入 -> DELL PC処分
巨大なDELL PCを遂に処分する方向でプロジェクト進行中
ヤフオクみたら売れるかもということでそちらに挑戦予定
WinXPインストール済
- まずはAmazonで外付けHDD(IO Data HDCN-500A)を8,600円で購入
- データのバックアップ。さち、バックアップ中にHDD蹴り倒す!信じがたい事故発生。しかしHDD奇跡的に無事
- DELLを撤去
- ついでにシュレッダーも一時倉庫に退去
- コードの一部とUPSをキャビネットの裏に隠して足下すっきり
ヤフオクみたら売れるかもということでそちらに挑戦予定
WinXPインストール済
Blogger.vim
vim からBloggerに投稿できるBlogger.vimという素晴らしいツールがある
これを使うためにGHCとかいろんなものをインストールしたんだけど
どうもうまく動かない
ruby create ....
はうまくいくんだけど
とりあえず断念する
これを使うためにGHCとかいろんなものをインストールしたんだけど
どうもうまく動かない
ruby create ....
はうまくいくんだけど
とりあえず断念する
Sunday, November 08, 2009
Software Idea
Software Idea Note
1.explore: display only selected directories and file types.
2.editor for patent application creator:
-devide a file to a specification and an abstract
-auto numbaring
-criteria checker for submission to JPO
-parts number extractor from specificaton to parts list
-template provider
-word counter
-DOC formated file as default save file
-view by [0000]
-parts number viewer
3.Auto Dialer: stay an icon in notification area of Win95
-by click the icon, name list appear
-by select a name, the number will be call up
4.Mouse Pointer Mover: with shift+arrow keys, move mouse pointer freely.
5.Trump Game:A set of 52cards, only do shaffle, hand out cards.
network battle type game. user can play any card games as
they do on real cards.
6.atomosphere utility: whether in a PC changes, rain, snow, shine...
background of work
7.Patesuke Next Version
-Color astarisk for type of schedule
-Move date on shedule input dialog
-Display & print a list of schedules
-Jump date
-Input birthday for alarming
-
8.Inshi Adminislator
9.method for eliminating data or program on a medium.
10.correction for data read by OCR
- replace very rare words or characters, ie.ぱ
- replace to very frequent words
11.WZ macro :converter for JPO format from txt
-auto conv 1mm2,mm3,O2,O3,H2O etc. to upper or lower case
1.explore: display only selected directories and file types.
2.editor for patent application creator:
-devide a file to a specification and an abstract
-auto numbaring
-criteria checker for submission to JPO
-parts number extractor from specificaton to parts list
-template provider
-word counter
-DOC formated file as default save file
-view by [0000]
-parts number viewer
3.Auto Dialer: stay an icon in notification area of Win95
-by click the icon, name list appear
-by select a name, the number will be call up
4.Mouse Pointer Mover: with shift+arrow keys, move mouse pointer freely.
5.Trump Game:A set of 52cards, only do shaffle, hand out cards.
network battle type game. user can play any card games as
they do on real cards.
6.atomosphere utility: whether in a PC changes, rain, snow, shine...
background of work
7.Patesuke Next Version
-Color astarisk for type of schedule
-Move date on shedule input dialog
-Display & print a list of schedules
-Jump date
-Input birthday for alarming
-
8.Inshi Adminislator
9.method for eliminating data or program on a medium.
10.correction for data read by OCR
- replace very rare words or characters, ie.ぱ
- replace to very frequent words
11.WZ macro :converter for JPO format from txt
-auto conv 1mm2,mm3,O2,O3,H2O etc. to upper or lower case
旅の記録
旅の記録
93.06 2wks Australia sydney:ANA hotel-adelade:Hilton-perth-bloom:honeymoon
94.04 3wks USA oregon-san francisco-paloalto-yosemite-monterey-carmel
95.01 5days USA L.A.:hollywood-bevery hills:beverywillshier-santa monica
96.10.09-14 Bali Nusadua:grand hyatt-jimbaran-ubudo
97.07.16-22 Hawaii Hawaii Island:four seasons
98.07.15-22 Hawaii Maui Island:a condo
99.03.25-28 Hong Kong C.W.Mariott
99.07.10-18 USA LasVegas:Belargio-Oafu Island:Kahara Mandarin
00.02.10-15 Philipin Pamalican Island:Amanpulo
93.06 2wks Australia sydney:ANA hotel-adelade:Hilton-perth-bloom:honeymoon
94.04 3wks USA oregon-san francisco-paloalto-yosemite-monterey-carmel
95.01 5days USA L.A.:hollywood-bevery hills:beverywillshier-santa monica
96.10.09-14 Bali Nusadua:grand hyatt-jimbaran-ubudo
97.07.16-22 Hawaii Hawaii Island:four seasons
98.07.15-22 Hawaii Maui Island:a condo
99.03.25-28 Hong Kong C.W.Mariott
99.07.10-18 USA LasVegas:Belargio-Oafu Island:Kahara Mandarin
00.02.10-15 Philipin Pamalican Island:Amanpulo
Accomodations at Jourey in 2002
Our Journey in 2002
Priod
July 04 – Dec 24, 2002, 175days
Destinations
Singapore : 10 days
Indonesia : 1 day
Thailand : 7 days
Malaysia : 13 days
Australia : 72 days
New Zealand : 70 days
Number of Accommodations
53 accommodations
D. Itinerary
04 July NRT-Singapore Singapore Airline
07 July Singapore-Bintan Is. Ferry
08 July Bintan Is.-Singapore Ferry
08 July Singapore-Bangkok Singapore Airline
15 July Bangkok-Singapore Singapore Airline
16 July Singapore-Malacca Express Bus
20 July Malacca-Kuala Lumpur Express Bus
29 July Kuala Lumpur-Singapore Express Train
04 Aug Singapore-Brisbane Singapore Airline
06 Sep Brisbane-Perth Qantas
12 Sep Perth-Coral Bay Car
18 Sep Coral Bay-Perth Car
25 Sep Perth-Sydney Virgin Blue Airline
15 Oct Sydney-Auckland Air New Zealand
14 Nov Wellington-Picton Linx Ferry
12 Dec Picton-Wellington Linx Ferry
23 Dec Auckland-Brisbane Air New Zealand
24 Dec Brisbane-Singapore Singapore Airline
25 Dec Singapore-NRT Singapore Airline
Things to do
Golf 8 times
Fry Fishing 3 times
Beaches 10 times(Snorkeling 4 times, Surfing & Bogie Board 2 times)
Pools 10 times
Luge 1 time
Hot Springs 2 times
Casino 17 times
Car Hire 4 times
Cost
\2,500,000
Accommodations
Orchard Parade Hotel 04-06 July Singapore
Bintan Lagoon Resort 07 July Bintan Is. , Indonesia
Le Meridian Hotel 08-14 July Bangkok, Thailand
The Comfort Hotel 15 July Singapore
Mimosa Hotel 16-19 July Malacca, Malaysia
Plaza Hotel 20 July Kuala Lumpur, Malaysia
Concord Hotel 21-28 July Kuala Lumpur, Malaysia
Sweeny's House 29 July-03 Aug Singapore
Hotel Mercure 05-08 Aug Brisbane, QLD, Australia
Montepellier 09-24 Aug Noosa, QLD, Australia
Curts Falls Lodge 25 Aug Tamborine, QLD, Australia
Regends Hotel 26-29 Aug Gold Coast, QLD, Australia
Hotel Grand Chancellor 30 Aug Brisbane, QLD, Australia
Hotel George Williams 31 Aug Brisbane, QLD, Australia
James St. Motor Inn 01-02 Sep Toowoomba, QLD, Australia
Manly Hotel 03 Sep Manly, QLD, Australia
Hotel George Williams 04-05 Sep Brisbane, QLD, Australia
Holiday Inn 06-08 Sep Perth, WA, Australia
Kings Hotel 09-11 Sep Perth, WA, Australia
Best Western Carnarvon 12 Sep Carnarvon, WA, Australia
Ningaloo Reef Resort 13-16 Sep Coral Bay, WA, Australia
Best Western Geraldton 17 Sep Geraldton, WA, Australia
Kings Hotel 18-23 Sep Perth, WA, Australia
Oakford Darling Harbor 25 Sep-08 Oct Sydney, NSW, Australia
O'baoill's House 09-12 Oct Schofeilds, NSW, Australia
Pacific International Inn 13-14 Oct Sydney, NSW, Australia
Madion on the Square 15-21 Oct Auckland, Nth, New Zealand
Baylys Motor Park 22-24 Oct Dargaville, Nth, New Zealand
Omapere Motel 25 Oct Omapere, Nth, New Zealand
Kauri Park Motel 26-29 Oct Kerikeri, Nth, New Zealand
Top 10 Orere Point 30 Oct Orere Point, Nth, New Zealand
Top 10 Papamoa Beach 31 Oct-02 Nov Papamoa Beach, Nth, New Zealand
Ann's Volcanic Rotorua 03-04 Nov Rotorua, Nth, New Zealand
Top 10 Lake Taupo 05-11 Nov Taupo, Nth, New Zealand
747 Motel 12-13 Nov Wellington, Nth, New Zealand
Blue Seas Motel 14 Nov Kaikoura, Sth, New Zealand
City Worcester Motel 15 Nov Christchurch, Sth, New Zealand
Milano Motor Lodge 16-19 Nov Christchurch, Sth, New Zealand
Tekapo House 20 Nov Lake Tekapo, Sth, New Zealand
The Heritage Queenstown 21-22 Nov Queenstown, Sth, New Zealand
Milano Motor Lodge 23-27 Nov Christchurch, Sth, New Zealand
The Heritage Queenstown 28-29 Nov Queenstown, Sth, New Zealand
Garden Court Apartments 30 Nov Queenstown, Sth, New Zealand
Milano Motor Lodge 01-02 Dec Christchurch, Sth, New Zealand
Settlers Inn Motel 03-04 Dec Hammer Springs, Sth, New Zealand
Mapua Leisure Park 05 Dec Mapua, Sth, New Zealand
Equestrian Lodge 06 Dec Motueka, Sth, New Zealand
Lugano Motor Lodge 07-11 Dec Blenheim, Sth, New Zealand
Camelot Motor Lodge 12 Dec Palmerstone North, Nth, New Zealand
Top 10 Kennedy Park 13-14 Dec Napier, Nth, New Zealand
Top 10 Lake Taupo 15-18 Dec Taupo, Nth, New Zealand
Top 10 Papamoa Beach 19-22 Dec Papamoa Beach, Nth, New Zealand
Airport Travel Air Motor Inn 23 Dec Auckland, Nth, New Zealand
Priod
July 04 – Dec 24, 2002, 175days
Destinations
Singapore : 10 days
Indonesia : 1 day
Thailand : 7 days
Malaysia : 13 days
Australia : 72 days
New Zealand : 70 days
Number of Accommodations
53 accommodations
D. Itinerary
04 July NRT-Singapore Singapore Airline
07 July Singapore-Bintan Is. Ferry
08 July Bintan Is.-Singapore Ferry
08 July Singapore-Bangkok Singapore Airline
15 July Bangkok-Singapore Singapore Airline
16 July Singapore-Malacca Express Bus
20 July Malacca-Kuala Lumpur Express Bus
29 July Kuala Lumpur-Singapore Express Train
04 Aug Singapore-Brisbane Singapore Airline
06 Sep Brisbane-Perth Qantas
12 Sep Perth-Coral Bay Car
18 Sep Coral Bay-Perth Car
25 Sep Perth-Sydney Virgin Blue Airline
15 Oct Sydney-Auckland Air New Zealand
14 Nov Wellington-Picton Linx Ferry
12 Dec Picton-Wellington Linx Ferry
23 Dec Auckland-Brisbane Air New Zealand
24 Dec Brisbane-Singapore Singapore Airline
25 Dec Singapore-NRT Singapore Airline
Things to do
Golf 8 times
Fry Fishing 3 times
Beaches 10 times(Snorkeling 4 times, Surfing & Bogie Board 2 times)
Pools 10 times
Luge 1 time
Hot Springs 2 times
Casino 17 times
Car Hire 4 times
Cost
\2,500,000
Accommodations
Orchard Parade Hotel 04-06 July Singapore
Bintan Lagoon Resort 07 July Bintan Is. , Indonesia
Le Meridian Hotel 08-14 July Bangkok, Thailand
The Comfort Hotel 15 July Singapore
Mimosa Hotel 16-19 July Malacca, Malaysia
Plaza Hotel 20 July Kuala Lumpur, Malaysia
Concord Hotel 21-28 July Kuala Lumpur, Malaysia
Sweeny's House 29 July-03 Aug Singapore
Hotel Mercure 05-08 Aug Brisbane, QLD, Australia
Montepellier 09-24 Aug Noosa, QLD, Australia
Curts Falls Lodge 25 Aug Tamborine, QLD, Australia
Regends Hotel 26-29 Aug Gold Coast, QLD, Australia
Hotel Grand Chancellor 30 Aug Brisbane, QLD, Australia
Hotel George Williams 31 Aug Brisbane, QLD, Australia
James St. Motor Inn 01-02 Sep Toowoomba, QLD, Australia
Manly Hotel 03 Sep Manly, QLD, Australia
Hotel George Williams 04-05 Sep Brisbane, QLD, Australia
Holiday Inn 06-08 Sep Perth, WA, Australia
Kings Hotel 09-11 Sep Perth, WA, Australia
Best Western Carnarvon 12 Sep Carnarvon, WA, Australia
Ningaloo Reef Resort 13-16 Sep Coral Bay, WA, Australia
Best Western Geraldton 17 Sep Geraldton, WA, Australia
Kings Hotel 18-23 Sep Perth, WA, Australia
Oakford Darling Harbor 25 Sep-08 Oct Sydney, NSW, Australia
O'baoill's House 09-12 Oct Schofeilds, NSW, Australia
Pacific International Inn 13-14 Oct Sydney, NSW, Australia
Madion on the Square 15-21 Oct Auckland, Nth, New Zealand
Baylys Motor Park 22-24 Oct Dargaville, Nth, New Zealand
Omapere Motel 25 Oct Omapere, Nth, New Zealand
Kauri Park Motel 26-29 Oct Kerikeri, Nth, New Zealand
Top 10 Orere Point 30 Oct Orere Point, Nth, New Zealand
Top 10 Papamoa Beach 31 Oct-02 Nov Papamoa Beach, Nth, New Zealand
Ann's Volcanic Rotorua 03-04 Nov Rotorua, Nth, New Zealand
Top 10 Lake Taupo 05-11 Nov Taupo, Nth, New Zealand
747 Motel 12-13 Nov Wellington, Nth, New Zealand
Blue Seas Motel 14 Nov Kaikoura, Sth, New Zealand
City Worcester Motel 15 Nov Christchurch, Sth, New Zealand
Milano Motor Lodge 16-19 Nov Christchurch, Sth, New Zealand
Tekapo House 20 Nov Lake Tekapo, Sth, New Zealand
The Heritage Queenstown 21-22 Nov Queenstown, Sth, New Zealand
Milano Motor Lodge 23-27 Nov Christchurch, Sth, New Zealand
The Heritage Queenstown 28-29 Nov Queenstown, Sth, New Zealand
Garden Court Apartments 30 Nov Queenstown, Sth, New Zealand
Milano Motor Lodge 01-02 Dec Christchurch, Sth, New Zealand
Settlers Inn Motel 03-04 Dec Hammer Springs, Sth, New Zealand
Mapua Leisure Park 05 Dec Mapua, Sth, New Zealand
Equestrian Lodge 06 Dec Motueka, Sth, New Zealand
Lugano Motor Lodge 07-11 Dec Blenheim, Sth, New Zealand
Camelot Motor Lodge 12 Dec Palmerstone North, Nth, New Zealand
Top 10 Kennedy Park 13-14 Dec Napier, Nth, New Zealand
Top 10 Lake Taupo 15-18 Dec Taupo, Nth, New Zealand
Top 10 Papamoa Beach 19-22 Dec Papamoa Beach, Nth, New Zealand
Airport Travel Air Motor Inn 23 Dec Auckland, Nth, New Zealand
古いレコードのリスト
LP
井上陽水 氷の世界 1000
中島みゆき 中島みゆき 1000以下
荒井由実 ひこうき雲 1000以下
松任谷由実 Diamond Dust
松任谷由実 No Side
松任谷由実 DADIDA
松任谷由実 ALARM a la mode
原ゆうこ はらゆうこが語るひととき
グレープ 三年坂
石川優子 Love Feeling
Beatles HELP
Beatles sgt peppers lonely hearts club band
John Lennon Double Fantasy
John Lennon ジョンの魂
Wings Venus and Mars
Wings At the Speed of Sound
Paul McCartney Tug of War
Derek and The Dominos LAYLA
Mountain Flowers of Evil
Lee Ritenour RIT
Michael Jackson Thrieler
Michael Jackson BAD
Berlin Phil Karajan Dvorak Symphony No.9(5) From the New World
Furtwangler Beethoven Symphony No.5&9
冨田勲 惑星
小池一也とワゴンマスターズ テキサスの黄色いバラ/荒野の呼声
三橋美智也 ああ新撰組/照菊:幾松小唄
島倉千代子 りんどう峠/布良の娘
日本民謡全集
SP
小泉今日子 ひとり街角
安全地帯 ワインレッドの心
井上陽水 Bright Eyes
桜田淳子 ウィスパーカード
村下孝蔵 春雨
一節太郎 一発節
三沢あけみ 街角
坂本九 GIブルース/砂漠の恋の物語
吉永小百合 明日の花嫁/いつでも夢を
山田太郎 帰ろう心のふるさとへ/幸福はこだまする
Beatles Long tall sally / I call your name
井上陽水 氷の世界 1000
中島みゆき 中島みゆき 1000以下
荒井由実 ひこうき雲 1000以下
松任谷由実 Diamond Dust
松任谷由実 No Side
松任谷由実 DADIDA
松任谷由実 ALARM a la mode
原ゆうこ はらゆうこが語るひととき
グレープ 三年坂
石川優子 Love Feeling
Beatles HELP
Beatles sgt peppers lonely hearts club band
John Lennon Double Fantasy
John Lennon ジョンの魂
Wings Venus and Mars
Wings At the Speed of Sound
Paul McCartney Tug of War
Derek and The Dominos LAYLA
Mountain Flowers of Evil
Lee Ritenour RIT
Michael Jackson Thrieler
Michael Jackson BAD
Berlin Phil Karajan Dvorak Symphony No.9(5) From the New World
Furtwangler Beethoven Symphony No.5&9
冨田勲 惑星
小池一也とワゴンマスターズ テキサスの黄色いバラ/荒野の呼声
三橋美智也 ああ新撰組/照菊:幾松小唄
島倉千代子 りんどう峠/布良の娘
日本民謡全集
SP
小泉今日子 ひとり街角
安全地帯 ワインレッドの心
井上陽水 Bright Eyes
桜田淳子 ウィスパーカード
村下孝蔵 春雨
一節太郎 一発節
三沢あけみ 街角
坂本九 GIブルース/砂漠の恋の物語
吉永小百合 明日の花嫁/いつでも夢を
山田太郎 帰ろう心のふるさとへ/幸福はこだまする
Beatles Long tall sally / I call your name
Friday, November 06, 2009
ひさびさのRailsに困惑
ちょっと前に作った特許関係のアプリを見てみようと
Railsファイルを開いたんだけど
久しぶりすぎて起動方法すら忘れていてビックリ
でRails2.3.4ということでやはりうまく動かない
Rubyも1.9だし
Railsファイルを開いたんだけど
久しぶりすぎて起動方法すら忘れていてビックリ
でRails2.3.4ということでやはりうまく動かない
Rubyも1.9だし
- config/environment.rbのヴァージョンを2.3.4に
- rake rails:update
- development.rbのcache関連の一行を削除
Sunday, November 01, 2009
Monday, October 26, 2009
Memoloo
付箋アプリの開発がちょっと行き詰まってる
なんかしっくり来ない
それで大規模な改造(ダイエット)計画を提案してみた
概ねさちの同意も得られて以下のような方向で改造することに
それとも一から作り直すか要検討
これがブレイクスルーになりますように
なんかしっくり来ない
それで大規模な改造(ダイエット)計画を提案してみた
概ねさちの同意も得られて以下のような方向で改造することに
- 付箋は移動できない
- 付箋は拡大しない
- 付箋をクリックでThickBox風に前面に拡大
- このThickBox上で表示、編集、削除等の処理をできるようにする
- ゴミ箱は削除
- 新規作成Boxは通常時で小さく、カーソルインで拡大(これもThickBox風か)
- タグBoxは上部横並びを廃止して,右又は左サイドに縦表示(1項目1行)
- UserタグとPublicタグはタブで切換え
- 設計がシンプルになる
- 描画が高速になりIEでも使える
- ユーザの操作性が向上する
- 拡張性もよくなる
それとも一から作り直すか要検討
これがブレイクスルーになりますように
Sunday, October 25, 2009
VimpのGoogle検索
VimpのGoogle検索のデフォルト設定が日本のサイトになっていて
なぜか日本語のサイトのみが検索対象になっていた!
ショック!
しかもそれ変えられない
しようがないからGoogle.comで検索するように設定変えた
なぜか日本語のサイトのみが検索対象になっていた!
ショック!
しかもそれ変えられない
しようがないからGoogle.comで検索するように設定変えた
tmux1.0
tmuxが1.0になっていたのでMacにもインストール
manページができていたのでコマンドがこれでわかる
操作性をあげるために.tmux.confでキーバインドを変えた
C-t, ? でコマンドリストがでるんだけど
変更したキーバインドもリスティングされるんで助かる
Windowペインの分割は便利だなあ
manページができていたのでコマンドがこれでわかる
操作性をあげるために.tmux.confでキーバインドを変えた
C-t, ? でコマンドリストがでるんだけど
変更したキーバインドもリスティングされるんで助かる
Windowペインの分割は便利だなあ
Ruby Unit Test
tc_pascals_triangle.rb
pascals_triangle.rb
require "test/unit"
require "pascals_triangle"
class TestPascalsTriangle < Test::Unit::TestCase
def setup
@output = <<END_OUTPUT
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
END_OUTPUT
@rows = @output.each_line.map { |line| line.scan(/\d+/).map { |n| n.to_i } }
@tri = PascalsTriangle.new
end
def test_next_row
@rows.each do |row|
assert_equal(row, @tri.next_row)
end
end
end
pascals_triangle.rb
class PascalsTriangle
def initialize
@last_row = nil
end
def next_row
@last_row =
if @last_row.nil?
[1]
elsif @last_row == [1]
[1, 1]
else
[1] + @last_row.enum_for(:each_cons, 2).map do |l, r|
l + r
end + [1]
end
end
end
Saturday, October 24, 2009
tmuxのインストール
Ubuntuにtmuxをインストールを試みる
- まずmakeで止まる
- ncursesが必要らしいことが分かりこれをインストール
- が./configureできない
- 調べてlibncursesをインストール.これは問題なし。
- しかしncursesのmakeでC++がないと言われる
- ./configure --without-cxx-bindingとして再トライ
- 今度はうまくいく。
- tmuxも無事インストール
Friday, October 23, 2009
TigerでUbuntuが動いた!
Dellマシンがでかくてうざいという話が出ている
DellはいまバックアップとちょっとLinuxで遊ぶために使っているので
処分のためにはそれらの機能の代替手段が必要だ
バックアップのほうは外付けHDDを購入(9000円ほど)以外にはなさそうだ
一方でLinux環境のほうは仮想環境はすべて有料だと思っていたら
VirtualBoxという個人利用なら無料で使えるものがあった
早々これをDL&InstallついでUbuntu
UbuntuにはなんとVirtualBox用のイメージファイルがあって
CDに焼く必要もないということでトライするもエラーでうまくいかない
で100円ショップでCD-Rを購入(2枚で100円)し
これに焼いて再挑戦するも撃沈あ〜
でもう一度ダイレクトインストールに挑戦
エラーの対処をGoogleで見つけて設定でVT-xのチェックを外したら
なんと、インストール成功
結局CD-Rは要らなかった
さちに言われて最低枚数購入で正解
それとDellの処分は裏のテイクオフという中古OSショップで0円で引き取れることを確認(市原さん)
あとは外付けHDDを用意すればDellを処分できる
一応ヤフオクの同程度出品をウォッチ中
DellはいまバックアップとちょっとLinuxで遊ぶために使っているので
処分のためにはそれらの機能の代替手段が必要だ
バックアップのほうは外付けHDDを購入(9000円ほど)以外にはなさそうだ
一方でLinux環境のほうは仮想環境はすべて有料だと思っていたら
VirtualBoxという個人利用なら無料で使えるものがあった
早々これをDL&InstallついでUbuntu
UbuntuにはなんとVirtualBox用のイメージファイルがあって
CDに焼く必要もないということでトライするもエラーでうまくいかない
で100円ショップでCD-Rを購入(2枚で100円)し
これに焼いて再挑戦するも撃沈あ〜
でもう一度ダイレクトインストールに挑戦
エラーの対処をGoogleで見つけて設定でVT-xのチェックを外したら
なんと、インストール成功
結局CD-Rは要らなかった
さちに言われて最低枚数購入で正解
それとDellの処分は裏のテイクオフという中古OSショップで0円で引き取れることを確認(市原さん)
あとは外付けHDDを用意すればDellを処分できる
一応ヤフオクの同程度出品をウォッチ中
Wednesday, October 21, 2009
apvlv pdf viewer
apvlvというPDFビューワーがVIMライクに操作できるというのでインストールしようとしたら
popplerというライブラリがいるといわれ
popplerを入れようとしたらx-codeのバージョンが古いと言わたので
半日かけて幾多のトラブルに遭遇しつつ
x-codeをアップデートしてpopplerを入れて
いよいよapvlvというのをインストールしようとしたら
makeのところでwait.hというのが無いといわれインストールできない
参る
やけくそになってSKIMというビューワーを入れてみたけど
キーボードで全然操作できそうにない
ドツボ
popplerというライブラリがいるといわれ
popplerを入れようとしたらx-codeのバージョンが古いと言わたので
半日かけて幾多のトラブルに遭遇しつつ
x-codeをアップデートしてpopplerを入れて
いよいよapvlvというのをインストールしようとしたら
makeのところでwait.hというのが無いといわれインストールできない
参る
やけくそになってSKIMというビューワーを入れてみたけど
キーボードで全然操作できそうにない
ドツボ
Tuesday, October 20, 2009
macport error
vimのpluginをインストールしてるんだけど
なんかmacportがおかしい
でいろいろ探してcleanしてみるとよいかもということがわかった
port clean --all
で
port install popplerとするもエラー
xcodeのヴァージョンが古いと
2.4.1以上が必要
なんかmacportがおかしい
でいろいろ探してcleanしてみるとよいかもということがわかった
port clean --all
で
port install popplerとするもエラー
xcodeのヴァージョンが古いと
2.4.1以上が必要
Monday, October 19, 2009
Vim commands
* Vim Command Help
- Move
i, I, a, A, o, O : insert : before, head, after, tail, next, prev
s, S, r, R : replace : sub current, sub line, repl current, cont. repl
c on v-mode : selected text repl
w, e, b, (,), {,} : move : word, word end, back word, sentence, paragraph
h, j, k, l, 0, ^, $ | : line move : left, next, prev, right, top, head, tail, ?
C-f, C-b : screen move : forward, back
gg, G, [num]G : doc move : top, bottom, line num
H, M, L : move in window : top, middle, bottom
m[chr] -> `[chr] : mark : set, jump
C-o, C-i : time move : past, future
C-], C-o : link : go, back
- V-mode
select text -> c : replace text
aw, ab, as, ap : selection : word, front word, sentence, paragraph
:helpgrep [word] : grep help
:cnext, :cprev, :clist : grep list move
~ : caseswap
:0,50s/word1/word2/gc : replace word1 to word2 in line0-50 step by step
d, y, p : delete, copy, paste
d(h,j,k,l), dw, dd : delete : neighbor, word, line
p, P : paste : after, before
xp, dwwp : swap : char word
u, C-r : undo, redo
:earlier 5m, :later 40s : undo 5min ago, redo 40sec later
/[word], /\d, /<[word]\> : search : include, num, exact
:set foldmethod=indent : fold
:ls, b1, bd1 : buffer : list, select, delete
:new : new window
C-w -> (h,j,k,l), C-wC-w : switch window
:sp(C-ws), vsp(C-wv) : create window : horizontal, vertical
C-wr, C-wK : replace, move top
C-w_, C-w= , :resize 10 : biggest window, equally, resize
gt, :tabnew, :tab help : tab : next, new, help with tab
- Viki
[[path][name]] : make link
C-<CR> : open link
- Move
i, I, a, A, o, O : insert : before, head, after, tail, next, prev
s, S, r, R : replace : sub current, sub line, repl current, cont. repl
c on v-mode : selected text repl
w, e, b, (,), {,} : move : word, word end, back word, sentence, paragraph
h, j, k, l, 0, ^, $ | : line move : left, next, prev, right, top, head, tail, ?
C-f, C-b : screen move : forward, back
gg, G, [num]G : doc move : top, bottom, line num
H, M, L : move in window : top, middle, bottom
m[chr] -> `[chr] : mark : set, jump
C-o, C-i : time move : past, future
C-], C-o : link : go, back
- V-mode
select text -> c : replace text
aw, ab, as, ap : selection : word, front word, sentence, paragraph
:helpgrep [word] : grep help
:cnext, :cprev, :clist : grep list move
~ : caseswap
:0,50s/word1/word2/gc : replace word1 to word2 in line0-50 step by step
d, y, p : delete, copy, paste
d(h,j,k,l), dw, dd : delete : neighbor, word, line
p, P : paste : after, before
xp, dwwp : swap : char word
u, C-r : undo, redo
:earlier 5m, :later 40s : undo 5min ago, redo 40sec later
/[word], /\d, /<[word]\> : search : include, num, exact
:set foldmethod=indent : fold
:ls, b1, bd1 : buffer : list, select, delete
:new : new window
C-w -> (h,j,k,l), C-wC-w : switch window
:sp(C-ws), vsp(C-wv) : create window : horizontal, vertical
C-wr, C-wK : replace, move top
C-w_, C-w= , :resize 10 : biggest window, equally, resize
gt, :tabnew, :tab help : tab : next, new, help with tab
- Viki
[[path][name]] : make link
C-<CR> : open link
Sunday, October 18, 2009
programのダウンロードとインストール
以下の手順が簡単
- ネット上の対象ファイルのURLをマウス右クリックでコピー
- Terminalで,wget [paste url] -O target.zip
- ダウンロード先フォルダが無い場合は, mkdir -p dir/dirで作成
- ダウンロードするフォルダに移動して unzip target.zip
- rm target.zipで削除
エディターの文字サイズ
いままでMonacoの12ptで使ってたんだけど
VIMの初期設定が14になってて
なんか見やすかったので
TextMateもTerminalも14にしてみた
ところでこのGmailのフォントが小さすぎるんだけど…
と思ってFirefoxの最小フォントサイズを14にセットしたら大きくなった
VIMの初期設定が14になってて
なんか見やすかったので
TextMateもTerminalも14にしてみた
ところでこのGmailのフォントが小さすぎるんだけど…
と思ってFirefoxの最小フォントサイズを14にセットしたら大きくなった
vim cobalt theme
vimでTextMateのThemeを再現している人たちがいる
でも自分が好きなcobaltは見付からなかった
で他の人のを参考に作ってみた
まあ8割くらいのできだけどこれ以上深みに入ると
時間がいくらあっても足りなさそうなのでやめた
でも自分が好きなcobaltは見付からなかった
で他の人のを参考に作ってみた
まあ8割くらいのできだけどこれ以上深みに入ると
時間がいくらあっても足りなさそうなのでやめた
Saturday, October 17, 2009
VIM ver7
MacVimのPluginが.vimフォルダに作られたため
Terminalのvimを起動するとver7じゃないとエラーがでるようになった
でMacportで最新版をインストール
ところがMacportではインストール時のオプションを変えると
別インストールになるようで
port installed vim
とやったら3つも入ってた
2つを削除し残ったものを
port activate vim@7...
でactivateし
.zshrcでalias vi=/opt/local/bin/vim
としてうまくいった
Terminalのvimを起動するとver7じゃないとエラーがでるようになった
でMacportで最新版をインストール
ところがMacportではインストール時のオプションを変えると
別インストールになるようで
port installed vim
とやったら3つも入ってた
2つを削除し残ったものを
port activate vim@7...
でactivateし
.zshrcでalias vi=/opt/local/bin/vim
としてうまくいった
cocoa keybindings
TextMateのkeybindingsがもう一つなので
~/Library/keybindings/DefaultKeyBindings.dictを書き換える
C-7 : PageUp
C-8 : PageDown
C-9 : Document Top
C-0 : Document Bottom
あとセレクトしてキルとかヤンクとか何とかしたい
~/Library/keybindings/DefaultKeyBindings.dictを書き換える
C-7 : PageUp
C-8 : PageDown
C-9 : Document Top
C-0 : Document Bottom
あとセレクトしてキルとかヤンクとか何とかしたい
Friday, October 16, 2009
Satiと設定ファイルの同期成功!
Dropbox内の特定のフォルダを共有設定にすることによって
さちとファイルの同期を取ることができた
このフォルダ内のファイルにシンボリックリンクを貼る
こうすれば僕が対象のファイルを更新すればさちのファイルも更新される
すごいよ、Dropbox!
さちとファイルの同期を取ることができた
このフォルダ内のファイルにシンボリックリンクを貼る
こうすれば僕が対象のファイルを更新すればさちのファイルも更新される
すごいよ、Dropbox!
HOMEの設定ファイルをDropboxへ
HOMEの以下の設定ファイルをDropboxへ移行し
HOME以下にはそのシンボリックリンクを置くことに
これによって各アプリケーションをその設定で利用しつつ
設定ファイルをDropboxで常時バックアップできるようになる!
-rw-r--r-- 1 keyes keyes 8 10 16 13:35 .dropbox
-rw-r--r-- 1 keyes keyes 855 10 16 10:43 .gvimrc
-rw-r--r-- 1 keyes keyes 342 11 14 2008 .synergy.conf
-rw-r--r-- 1 keyes keyes 279 10 10 17:24 .tmux.conf
drwxr-xr-x 14 keyes keyes 476 10 16 12:43 .vim
drwxr-xr-x 5 keyes keyes 170 10 11 10:36 .vimperator
-rw-r--r-- 1 keyes keyes 7432 10 16 08:28 .vimperatorrc
-rw-r--r-- 1 keyes keyes 3026 10 10 07:57 .vimrc
-rw-r--r-- 1 keyes keyes 1857 10 16 08:48 .zshrc
-rw-r--r-- 1 keyes keyes 0 10 16 13:35 Icon
-rwxr-xr-x 1 keyes keyes 140 12 11 2008 backup_bigmac.sh
-rwxr-xr-x 1 keyes keyes 122 12 15 2008 backup_keyesmac.sh
-rw-r--r-- 1 keyes keyes 605 10 16 12:45 editor_help
-rwxr-xr-x 1 keyes keyes 22 11 22 2008 gos_login.sh
-rwxr-xr-x 1 keyes keyes 35 10 10 09:21 login_coosa.sh
-rwxr-xr-x 1 keyes keyes 57 11 14 2008 synergy.sh
-rw-r--r-- 1 keyes keyes 762 10 8 17:49 vim_cmd_ref
-rw-r--r-- 1 keyes keyes 2025 10 16 09:46 vimp_help
これをもう1歩進めてさちの設定ファイルも同期を取りたい
(追記).vimperator/フォルダもさちと同期したらHistoryの更新等がここに書かれるためコンフリクトを起こしておかしくなるところだった。だからここと.vimは対象から外した.
HOME以下にはそのシンボリックリンクを置くことに
これによって各アプリケーションをその設定で利用しつつ
設定ファイルをDropboxで常時バックアップできるようになる!
-rw-r--r-- 1 keyes keyes 8 10 16 13:35 .dropbox
-rw-r--r-- 1 keyes keyes 855 10 16 10:43 .gvimrc
-rw-r--r-- 1 keyes keyes 342 11 14 2008 .synergy.conf
-rw-r--r-- 1 keyes keyes 279 10 10 17:24 .tmux.conf
drwxr-xr-x 14 keyes keyes 476 10 16 12:43 .vim
drwxr-xr-x 5 keyes keyes 170 10 11 10:36 .vimperator
-rw-r--r-- 1 keyes keyes 7432 10 16 08:28 .vimperatorrc
-rw-r--r-- 1 keyes keyes 3026 10 10 07:57 .vimrc
-rw-r--r-- 1 keyes keyes 1857 10 16 08:48 .zshrc
-rw-r--r-- 1 keyes keyes 0 10 16 13:35 Icon
-rwxr-xr-x 1 keyes keyes 140 12 11 2008 backup_bigmac.sh
-rwxr-xr-x 1 keyes keyes 122 12 15 2008 backup_keyesmac.sh
-rw-r--r-- 1 keyes keyes 605 10 16 12:45 editor_help
-rwxr-xr-x 1 keyes keyes 22 11 22 2008 gos_login.sh
-rwxr-xr-x 1 keyes keyes 35 10 10 09:21 login_coosa.sh
-rwxr-xr-x 1 keyes keyes 57 11 14 2008 synergy.sh
-rw-r--r-- 1 keyes keyes 762 10 8 17:49 vim_cmd_ref
-rw-r--r-- 1 keyes keyes 2025 10 16 09:46 vimp_help
これをもう1歩進めてさちの設定ファイルも同期を取りたい
(追記).vimperator/フォルダもさちと同期したらHistoryの更新等がここに書かれるためコンフリクトを起こしておかしくなるところだった。だからここと.vimは対象から外した.
Thursday, October 15, 2009
editorで悩む
プログラミング用のエディターはTextMateで不満はまあないんだけど
日本語用が決まらない
CotEditorは重いしmiはcocoaじゃなくどうも好きになれない
TextWranglerというのがよさげかと思ったらkeybindingがEmacsから変えられない
でvimperator繋がりでvim/gvimを使ってるんだけどこれも日本語がダメ
でもvimのkeybindingには魅かれる
で調べてみるとMacVimというのがあって
これが日本語がいけるらしいというのでInstall
加えてTextMateのCommand+Tをシミュレートするプラグインを書いた人がいるというので
ますます乗り気になってインストール
ところがそのベースとなっているFuzzyFinderというのが大きく変更されてTextMate版がうまく動かない
FuzzyFinderは他のディレクトリのファイルを見てくれないらしいがまあこれでもがまんできるかも
MacVim自体はよさげだ
ただ全く今までとは違うKeybindingに暫く戸惑うだろうな
その壁を乗り越えたい
日本語用が決まらない
CotEditorは重いしmiはcocoaじゃなくどうも好きになれない
TextWranglerというのがよさげかと思ったらkeybindingがEmacsから変えられない
でvimperator繋がりでvim/gvimを使ってるんだけどこれも日本語がダメ
でもvimのkeybindingには魅かれる
で調べてみるとMacVimというのがあって
これが日本語がいけるらしいというのでInstall
加えてTextMateのCommand+Tをシミュレートするプラグインを書いた人がいるというので
ますます乗り気になってインストール
ところがそのベースとなっているFuzzyFinderというのが大きく変更されてTextMate版がうまく動かない
FuzzyFinderは他のディレクトリのファイルを見てくれないらしいがまあこれでもがまんできるかも
MacVim自体はよさげだ
ただ全く今までとは違うKeybindingに暫く戸惑うだろうな
その壁を乗り越えたい
jquery trigger
他のエレメントのメソッドをシミュレートする方法
$('.edit', '.control').click(function(event){
drop_to_edit( $('#post_form').trigger('drop'), $(this).parents('.fusen') );
});
Wednesday, October 14, 2009
Memoloo迷走中,そして光明が…
Memoloo(仮)が迷走している
設計の変遷を見てみる
設計の変遷を見てみる
- Window幅びっしりとカラフルな付箋を敷き詰めたデザイン。整列、ランダム、リスト表示の切り換え。他ユーザへのダイレクトメール,グループメール、電子メール通知機能。付箋には、YouTube,テーブル、時計、カレンダー,processingの描画まで貼れる。兎に角多機能。トップページの使い方、基本設計に行き詰まる。
- 一から設計のやり直し。幅を固定。付加的な機能は取りあえず削除。ランダム、リスト表示の廃止。他者への送信機能の廃止。
- 付箋の色付けをタグ毎に変更。一行の付箋数を5に減らし各付箋の間隔を空け、サイドバーを配置。ヘッダーに色と囲みを付け明確に。トップは初期状態で付箋を貼らず、タグ選択でデータを読み込んで表示。
- 付箋に削除、編集,移動ロック解除ボタンを配置。付箋の拡大・縮小をダブルクリックに。Trashを廃止。付箋の色を無してみる。
- 実用重視に偏りすぎに気付く。使う楽しさが失われつつあった。今ここ。
- 実用性と使う楽しさのバランスの取れた設計を目指す。女子大生やOLや草食系男子が喜んで使ってくれるようなもの。
- そのために各付箋毎にランダムに色をつけることを復活。ただし色はコンピュータに任せるのではなくKulgarから気に入った色を多数(100とか)ピックアップして使う。
- タグもそれぞれ色を持っており、タグ選択で表示したときにはその色が付箋の色になる。これは要検討.
- 付箋の各種ボタンを廃止。編集・Trashボックスへドラッグする方式のみへ。Trashボックスはそこに捨てるのが楽しくなるようなデザインを。例えば丸形で大きくなるとか。
Memoloo
付箋アプリの名前がなかなか決まらない
postme
Foosend
Kolors
Hana
TiLe
Brick
Dragee
などと変遷してきた
ところがここに来て
さちの夢の中から突如有力候補現れる
Memoloo
要はメモるなんだけど
意外と盲点なのか使われていないみたいだ
(whoisでも出てこない)
語感も可愛い
最終的にはどうなるかはまだわからないけど
postme
Foosend
Kolors
Hana
TiLe
Brick
Dragee
などと変遷してきた
ところがここに来て
さちの夢の中から突如有力候補現れる
Memoloo
要はメモるなんだけど
意外と盲点なのか使われていないみたいだ
(whoisでも出てこない)
語感も可愛い
最終的にはどうなるかはまだわからないけど
TextEditor
日本語を編集するための良いエディターが見つからない
現在はmiという日本製のものを使っているが
cocoaアプリじゃなくちょっとMacのエディターぽくないのが好きじゃない
vimとかはやっぱり日本語がダメだ
TextMateで日本語が扱えるようになれば最高なんだけど
なかなか対応してくれない
今日試しにTextWranglerというのをDLしてみた
ちょっとみたところよさげだけど少し使ってみないとわからない
よければいずれさちに勧めよう
現在はmiという日本製のものを使っているが
cocoaアプリじゃなくちょっとMacのエディターぽくないのが好きじゃない
vimとかはやっぱり日本語がダメだ
TextMateで日本語が扱えるようになれば最高なんだけど
なかなか対応してくれない
今日試しにTextWranglerというのをDLしてみた
ちょっとみたところよさげだけど少し使ってみないとわからない
よければいずれさちに勧めよう
Tuesday, October 13, 2009
ImageMagick
Yahoo Auctionに投稿するときに
撮った写真の画像サイズを小さくする必要があり
そのために今までImageWellというツールを使ってたんだけど
これがSharewareになってしまった
でRubyで作ることにした
RubyにはRMagickという画像処理ライブラリがあって
それはImageMagickというCのライブラリのインタフェースを提供する
ImageMagickとRMagickのインストールはこの辺を参考に
Installing RMagick on OS X using MacPorts
http://rmagick.rubyforge.org/install-osx.html
使い方はこの辺を
RMagickの使い方のメモ | 山本隆の開発日誌
http://www.gesource.jp/weblog/?p=198
取り急ぎ簡単なサイズ変換ツールを作った
とりあえず縮小サイズは30%固定…
引数に画像ファイルを与えると
同じフォルダに_newという接尾を付けて保存する
さちのmacにruby環境を作るのに時間が掛かる
撮った写真の画像サイズを小さくする必要があり
そのために今までImageWellというツールを使ってたんだけど
これがSharewareになってしまった
でRubyで作ることにした
RubyにはRMagickという画像処理ライブラリがあって
それはImageMagickというCのライブラリのインタフェースを提供する
ImageMagickとRMagickのインストールはこの辺を参考に
Installing RMagick on OS X using MacPorts
http://rmagick.rubyforge.org/install-osx.html
使い方はこの辺を
RMagickの使い方のメモ | 山本隆の開発日誌
http://www.gesource.jp/weblog/?p=198
取り急ぎ簡単なサイズ変換ツールを作った
とりあえず縮小サイズは30%固定…
引数に画像ファイルを与えると
同じフォルダに_newという接尾を付けて保存する
#!/usr/bin/env rubyプログラムは簡単だけど
# encoding: utf-8
require "RMagick"
PERCENT = 0.3
files = ARGV
num = files.each do |file|
path = File.join(File.dirname(file), File.basename(file, ".*")+"_new"+File.extname(file))
img = Magick::ImageList.new(file)
puts "Original image: #{img.entries}"
puts "processing on shrinkage to #{PERCENT*100}%..."
width, height = img.columns.to_f*PERCENT, img.rows.to_f*PERCENT
img = img.resize(width.to_i, height.to_i).write(path)
puts "Done! New image: #{img.inspect}"
end.length
puts "All Done! #{num} images processed."
さちのmacにruby環境を作るのに時間が掛かる
Monday, October 12, 2009
Dragee error
postを削除すると
undefined method bytesize for #<tag ....> とでるエラー
siatra ではget method で返される値をStringにキャストするらしい
だからgetのreturn値をstringにすればいい
What is problem? when undefined method `bytesize' for #. - Stack Overflow
http://stackoverflow.com/questions/1123666/what-is-problem-when-undefined-method-bytesize-for
undefined method bytesize for #<tag ....> とでるエラー
siatra ではget method で返される値をStringにキャストするらしい
だからgetのreturn値をstringにすればいい
What is problem? when undefined method `bytesize' for #. - Stack Overflow
http://stackoverflow.com/questions/1123666/what-is-problem-when-undefined-method-bytesize-for
Sunday, October 11, 2009
vimperator commands
1 h, l : 戻る・進む
2 H, L : タブ移動
3 <-, -> : 同上
4 S-<-, S--> : タブ位置変更
5
6 C-1, C-2, C-3 : ツールバー表示切換
7 qm : QuickMarkをセット
8 qa : QuickMark一覧
9 A : social bookmark
2 H, L : タブ移動
3 <-, -> : 同上
4 S-<-, S--> : タブ位置変更
5
6 C-1, C-2, C-3 : ツールバー表示切換
7 qm : QuickMarkをセット
8 qa : QuickMark一覧
9 A : social bookmark
tmux default keybindings
{ ' ', 0, &cmd_next_layout_entry },
{ '!', 0, &cmd_break_pane_entry },
{ '"', 0, &cmd_split_window_entry },
{ '%', 0, &cmd_split_window_entry },
{ '#', 0, &cmd_list_buffers_entry },
{ '&', 0, &cmd_confirm_before_entry },
{ ',', 0, &cmd_command_prompt_entry },
{ '-', 0, &cmd_delete_buffer_entry },
{ '.', 0, &cmd_command_prompt_entry },
{ '0', 0, &cmd_select_window_entry },
{ '1', 0, &cmd_select_window_entry },
{ '2', 0, &cmd_select_window_entry },
{ '3', 0, &cmd_select_window_entry },
{ '4', 0, &cmd_select_window_entry },
{ '5', 0, &cmd_select_window_entry },
{ '6', 0, &cmd_select_window_entry },
{ '7', 0, &cmd_select_window_entry },
{ '8', 0, &cmd_select_window_entry },
{ '9', 0, &cmd_select_window_entry },
{ ':', 0, &cmd_command_prompt_entry },
{ '=', 0, &cmd_scroll_mode_entry },
{ '?', 0, &cmd_list_keys_entry },
{ '[', 0, &cmd_copy_mode_entry },
{ '\'', 0, &cmd_select_prompt_entry },
{ '\032', /* C-z */ 0, &cmd_suspend_client_entry },
{ ']', 0, &cmd_paste_buffer_entry },
{ 'c', 0, &cmd_new_window_entry },
{ 'd', 0, &cmd_detach_client_entry },
{ 'D', 0, &cmd_choose_client_entry },
{ 'f', 0, &cmd_command_prompt_entry },
{ 'i', 0, &cmd_display_message_entry },
{ 'l', 0, &cmd_last_window_entry },
{ 'n', 0, &cmd_next_window_entry },
{ 'o', 0, &cmd_down_pane_entry },
{ 'p', 0, &cmd_previous_window_entry },
{ 'q', 0, &cmd_display_panes_entry },
{ 'r', 0, &cmd_refresh_client_entry },
{ 's', 0, &cmd_choose_session_entry },
{ 't', 0, &cmd_clock_mode_entry },
{ 'w', 0, &cmd_choose_window_entry },
{ 'x', 0, &cmd_confirm_before_entry },
{ '{', 0, &cmd_swap_pane_entry },
{ '}', 0, &cmd_swap_pane_entry },
{ '\002', /* C-b */ 0, &cmd_send_prefix_entry },
{ '1' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
{ '2' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
{ '3' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
{ '4' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
{ KEYC_PPAGE, 0, &cmd_scroll_mode_entry },
{ 'n' | KEYC_ESCAPE, 0, &cmd_next_window_entry },
{ 'p' | KEYC_ESCAPE, 0, &cmd_previous_window_entry },
{ KEYC_UP, 0, &cmd_up_pane_entry },
{ KEYC_DOWN, 0, &cmd_down_pane_entry },
{ KEYC_UP | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
{ KEYC_DOWN | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
{ KEYC_LEFT | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
{ KEYC_RIGHT | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
{ KEYC_UP | KEYC_CTRL, 1, &cmd_resize_pane_entry },
{ KEYC_DOWN | KEYC_CTRL, 1, &cmd_resize_pane_entry },
{ KEYC_LEFT | KEYC_CTRL, 1, &cmd_resize_pane_entry },
{ KEYC_RIGHT | KEYC_CTRL, 1, &cmd_resize_pane_entry },
{ 'o' | KEYC_ESCAPE, 0, &cmd_rotate_window_entry },
{ '\017', /* C-o */ 0, &cmd_rotate_window_entry },
{ '!', 0, &cmd_break_pane_entry },
{ '"', 0, &cmd_split_window_entry },
{ '%', 0, &cmd_split_window_entry },
{ '#', 0, &cmd_list_buffers_entry },
{ '&', 0, &cmd_confirm_before_entry },
{ ',', 0, &cmd_command_prompt_entry },
{ '-', 0, &cmd_delete_buffer_entry },
{ '.', 0, &cmd_command_prompt_entry },
{ '0', 0, &cmd_select_window_entry },
{ '1', 0, &cmd_select_window_entry },
{ '2', 0, &cmd_select_window_entry },
{ '3', 0, &cmd_select_window_entry },
{ '4', 0, &cmd_select_window_entry },
{ '5', 0, &cmd_select_window_entry },
{ '6', 0, &cmd_select_window_entry },
{ '7', 0, &cmd_select_window_entry },
{ '8', 0, &cmd_select_window_entry },
{ '9', 0, &cmd_select_window_entry },
{ ':', 0, &cmd_command_prompt_entry },
{ '=', 0, &cmd_scroll_mode_entry },
{ '?', 0, &cmd_list_keys_entry },
{ '[', 0, &cmd_copy_mode_entry },
{ '\'', 0, &cmd_select_prompt_entry },
{ '\032', /* C-z */ 0, &cmd_suspend_client_entry },
{ ']', 0, &cmd_paste_buffer_entry },
{ 'c', 0, &cmd_new_window_entry },
{ 'd', 0, &cmd_detach_client_entry },
{ 'D', 0, &cmd_choose_client_entry },
{ 'f', 0, &cmd_command_prompt_entry },
{ 'i', 0, &cmd_display_message_entry },
{ 'l', 0, &cmd_last_window_entry },
{ 'n', 0, &cmd_next_window_entry },
{ 'o', 0, &cmd_down_pane_entry },
{ 'p', 0, &cmd_previous_window_entry },
{ 'q', 0, &cmd_display_panes_entry },
{ 'r', 0, &cmd_refresh_client_entry },
{ 's', 0, &cmd_choose_session_entry },
{ 't', 0, &cmd_clock_mode_entry },
{ 'w', 0, &cmd_choose_window_entry },
{ 'x', 0, &cmd_confirm_before_entry },
{ '{', 0, &cmd_swap_pane_entry },
{ '}', 0, &cmd_swap_pane_entry },
{ '\002', /* C-b */ 0, &cmd_send_prefix_entry },
{ '1' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
{ '2' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
{ '3' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
{ '4' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
{ KEYC_PPAGE, 0, &cmd_scroll_mode_entry },
{ 'n' | KEYC_ESCAPE, 0, &cmd_next_window_entry },
{ 'p' | KEYC_ESCAPE, 0, &cmd_previous_window_entry },
{ KEYC_UP, 0, &cmd_up_pane_entry },
{ KEYC_DOWN, 0, &cmd_down_pane_entry },
{ KEYC_UP | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
{ KEYC_DOWN | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
{ KEYC_LEFT | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
{ KEYC_RIGHT | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
{ KEYC_UP | KEYC_CTRL, 1, &cmd_resize_pane_entry },
{ KEYC_DOWN | KEYC_CTRL, 1, &cmd_resize_pane_entry },
{ KEYC_LEFT | KEYC_CTRL, 1, &cmd_resize_pane_entry },
{ KEYC_RIGHT | KEYC_CTRL, 1, &cmd_resize_pane_entry },
{ 'o' | KEYC_ESCAPE, 0, &cmd_rotate_window_entry },
{ '\017', /* C-o */ 0, &cmd_rotate_window_entry },
Saturday, October 10, 2009
tmux commands
" : new pane
h,v,f : split direction
o: change pane
!, exit : kill pane
,: rename window
d : detach
w: list of windows
tmux a : attach
t: time
h,v,f : split direction
o: change pane
!, exit : kill pane
,: rename window
d : detach
w: list of windows
tmux a : attach
t: time
tmuxのsession
- tmuxを立ち上げると1つのSessionができる
- 1つのSessionの中には複数のWindowを持てる
- 1つのWindowは複数のPaneに分けられる
- tmux list-sessions(ls)で全セッションをみることができる
- tmux detachで現在のセッションをデタッチできる
- tmux attachで最後?のセッションにアタッチできる
- tmux attach -t [session num]
- tmux new-windowで別のWindowを持てる
- tmux splitw -> kill-windowでWindowを複数のペインにできる
TMUX
command list
"attach-session", "attach",
"bind-key", "bind",
"break-pane", "breakp",
"clear-history", "clearhist",
"confirm-before", "confirm",
"copy-buffer", "copyb",
"delete-buffer", "deleteb",
"detach-client", "detach",
"display-message", "display",
"display-panes", "displayp",
"down-pane", "downp",
"find-window", "findw",
"has-session", "has",
"if-shell", "if",
"kill-pane", "killp",
"kill-window", "killw",
"last-window", "last",
"link-window", "linkw",
"list-buffers", "lsb",
"list-clients", "lsc",
"list-commands", "lscm",
"list-keys", "lsk",
"list-sessions", "ls", "",
"list-windows", "lsw",
"load-buffer", "loadb",
"lock-server", "lock",
"move-window", "movew",
"new-session", "new",
"new-window", "neww",
"next-layout", "nextl",
"next-window", "next",
"paste-buffer", "pasteb",
"previous-layout", "prevl",
"previous-window", "prev",
"refresh-client", "refresh",
"rename-session", "rename",
"rename-window", "renamew",
"resize-pane", "resizep",
"respawn-window", "respawnw",
"rotate-window", "rotatew",
"save-buffer", "saveb",
"select-layout", "selectl",
"select-pane", "selectp",
"select-window", "selectw",
"send-keys", "send",
"server-info", "info",
"set-buffer", "setb",
"set-environment", "setenv",
"set-option", "set",
"emacs", "vi", NULL
"left", "centre", "right", NULL
"none", "any", "current", NULL
"set-password", "pass",
"set-window-option", "setw",
"emacs", "vi", NULL
"12", "24", NULL
"show-buffer", "showb",
"show-environment", "showenv",
"show-options", "show",
"show-window-options", "showw",
"source-file", "source",
"split-window", "splitw",
"start-server", "start",
"suspend-client", "suspendc",
"swap-pane", "swapp",
"swap-window", "swapw",
"switch-client", "switchc",
"unbind-key", "unbind",
"unlink-window", "unlinkw",
"up-pane", "upp",
"attach-session", "attach",
"bind-key", "bind",
"break-pane", "breakp",
"clear-history", "clearhist",
"confirm-before", "confirm",
"copy-buffer", "copyb",
"delete-buffer", "deleteb",
"detach-client", "detach",
"display-message", "display",
"display-panes", "displayp",
"down-pane", "downp",
"find-window", "findw",
"has-session", "has",
"if-shell", "if",
"kill-pane", "killp",
"kill-window", "killw",
"last-window", "last",
"link-window", "linkw",
"list-buffers", "lsb",
"list-clients", "lsc",
"list-commands", "lscm",
"list-keys", "lsk",
"list-sessions", "ls", "",
"list-windows", "lsw",
"load-buffer", "loadb",
"lock-server", "lock",
"move-window", "movew",
"new-session", "new",
"new-window", "neww",
"next-layout", "nextl",
"next-window", "next",
"paste-buffer", "pasteb",
"previous-layout", "prevl",
"previous-window", "prev",
"refresh-client", "refresh",
"rename-session", "rename",
"rename-window", "renamew",
"resize-pane", "resizep",
"respawn-window", "respawnw",
"rotate-window", "rotatew",
"save-buffer", "saveb",
"select-layout", "selectl",
"select-pane", "selectp",
"select-window", "selectw",
"send-keys", "send",
"server-info", "info",
"set-buffer", "setb",
"set-environment", "setenv",
"set-option", "set",
"emacs", "vi", NULL
"left", "centre", "right", NULL
"none", "any", "current", NULL
"set-password", "pass",
"set-window-option", "setw",
"emacs", "vi", NULL
"12", "24", NULL
"show-buffer", "showb",
"show-environment", "showenv",
"show-options", "show",
"show-window-options", "showw",
"source-file", "source",
"split-window", "splitw",
"start-server", "start",
"suspend-client", "suspendc",
"swap-pane", "swapp",
"swap-window", "swapw",
"switch-client", "switchc",
"unbind-key", "unbind",
"unlink-window", "unlinkw",
"up-pane", "upp",
scp file転送用のruby scpript
scp_coosa.rb
使い方
% ruby scp_coosa.rb [filename] [targetdir]
targetdirを省略するとDesktopへ
#!/usr/local/bin ruby
addr = "coosa@5.1.168.192.in-addr.arpa"
file = ARGV[0]
dir = ARGV[1] ? ARGV[1] : "Desktop"
system "scp #{file} #{addr}:#{dir}"
使い方
% ruby scp_coosa.rb [filename] [targetdir]
targetdirを省略するとDesktopへ
Friday, October 09, 2009
vimperator commands
1 move:
2 j,k:上下
3 C-d, C-u:上下半頁
4 C-f, C-b:上下一頁
5 gg, G:頁トップボトム
6 H,L(C-o, C-i):戻る進む
7 C-p, C-n(gT,gt):前後のタブ
8 d:タブ閉じる
9
10 f[num/word]:リンクハイライト
11 gi,[num]gi:インプットにカーソル
12 /[word]:頁中検索ワードへ移動
13
14 search:
15 t,o:検索モード
16
17 bookmark:
18 a(:bma):ローカルブックマーク
19 :sbm [tag]comment:ソーシャルブックマーク
20 M[char] -> gn[char],go[char]:クイックマーク登録・移行
21 m[char] -> '[char]:カーソル行登録・移行
2 j,k:上下
3 C-d, C-u:上下半頁
4 C-f, C-b:上下一頁
5 gg, G:頁トップボトム
6 H,L(C-o, C-i):戻る進む
7 C-p, C-n(gT,gt):前後のタブ
8 d:タブ閉じる
9
10 f[num/word]:リンクハイライト
11 gi,[num]gi:インプットにカーソル
12 /[word]:頁中検索ワードへ移動
13
14 search:
15 t,o:検索モード
16
17 bookmark:
18 a(:bma):ローカルブックマーク
19 :sbm [tag]comment:ソーシャルブックマーク
20 M[char] -> gn[char],go[char]:クイックマーク登録・移行
21 m[char] -> '[char]:カーソル行登録・移行
sati Mac mini Memory交換
さちのMacが最近重いということで
512から1Gにメモリーを交換
2007年7月に同じものを勝ったときは8000*2=16000だったのが
なんと1500*2=3000円と5分の1
これじゃメモリーメーカーは厳しいな
1500円のクーポンがあったので支払は1,500円
今回もアマゾンで
アマゾンは部品安いな
Amazon.co.jp: BUFFALO ノートPC用増設メモリ PC2-5300 (DDR2-667) 1GB 2枚組 D2/N667-S1GX2/E: 家電・カメラ
http://www.amazon.co.jp/%E3%83%8E%E3%83%BC%E3%83%88PC%E7%94%A8%E5%A2%97%E8%A8%AD%E3%83%A1%E3%83%A2%E3%83%AA-PC2-5300-DDR2-667-D2-N667-S1GX2/dp/B00243GS3Y/ref=wl_it_dp_o?ie=UTF8&coliid=I3KMI0LCLSRILE&colid=2QZRZAWC2HJ25
512から1Gにメモリーを交換
2007年7月に同じものを勝ったときは8000*2=16000だったのが
なんと1500*2=3000円と5分の1
これじゃメモリーメーカーは厳しいな
1500円のクーポンがあったので支払は1,500円
今回もアマゾンで
アマゾンは部品安いな
Amazon.co.jp: BUFFALO ノートPC用増設メモリ PC2-5300 (DDR2-667) 1GB 2枚組 D2/N667-S1GX2/E: 家電・カメラ
http://www.amazon.co.jp/%E3%83%8E%E3%83%BC%E3%83%88PC%E7%94%A8%E5%A2%97%E8%A8%AD%E3%83%A1%E3%83%A2%E3%83%AA-PC2-5300-DDR2-667-D2-N667-S1GX2/dp/B00243GS3Y/ref=wl_it_dp_o?ie=UTF8&coliid=I3KMI0LCLSRILE&colid=2QZRZAWC2HJ25
Wednesday, October 07, 2009
VIM commands
vimperatorに触発されてvimを使ってみる
まずはチュートリアルをやってみた
これはすごいいいかも
まずはチュートリアルをやってみた
これはすごいいいかも
move
h,j,k,l
0,$
w,e,b
gg, G
enter exit
:q!
:wq
delete
x
dw
d$
d [num] w,e,$..
dd
put
p,P
undo undo
u,U
c-r
insert
i, a, I, A
o, O
replace
r [char]
R
cw,c$
c [num] l,w,$..
:s/old/new/g
:%s/old/new/g
100,200s/old/new/g
search
/[word], then n or N
?[word]
% : parentheses
status
c-g
command
:!ls, :!rm TEST
explore
:E
file operations
:w TEST
:100,200 w TEST
:r TEST
set option
:set ic
:set hls is
help
:help w
window
c-w, s :split window
, n :new
, q :quit a window
, o :close other windows
, c-w :switch window
, +, _ :window resize
read file
:e
line number
:set number
:[number] :jump to number
Sunday, October 04, 2009
vimperatorがやばい
Firefox(flock)の操作をVim化するアドオンvimperatorがすごい
マウス要らず
j/k: line down/up
c-d/c-u: half page down/up
c-o/c-i: previous page/next page
c-n/c-p: next tab
d:tab close
gi : go input textarea
[[, ]] : previous next page
y, Y, p : yank url, selected area & append
:copy : copy title url.. to clipboard
[[, ]] : previous next page
y, Y, p : yank url, selected area & append
:copy : copy title url.. to clipboard
o: google search
f: hint link -> type target char or number
:help gt: help of gt
:viusage
c-z: pass through
bookmark
:bma : add local bookmark
:bmarks : list all local bookmarks
:sbm [tag] : add hatena bookmark:
:hb :list hatena bookmarks
M[chr] -> go[chr], gn[chr] : quickmark and go
c-c :escape
:emenu : firefox menu
:sb, sbclose :sidebar
:! system command
c-z: pass through
bookmark
:bma : add local bookmark
:bmarks : list all local bookmarks
:sbm [tag] : add hatena bookmark:
:hb :list hatena bookmarks
M[chr] -> go[chr], gn[chr] : quickmark and go
c-c :escape
:emenu : firefox menu
:sb, sbclose :sidebar
:! system command
Saturday, October 03, 2009
Ruby Pit
Pit: ソースコード中にIDとかパスワードを直接書きたくない場合に
これを.pit以下のyamlで一元管理しコードから読み出せるようにしたライブラリ
以下のように使う
require 'rubygems'
require 'pit'
config = Pit.get('flickr.com', require => {:api_key => 'your flickr api key', :secret => 'your flickr secret'}
Flickr.new(config[:api_key], config[:secret])
データが.pitに保存されていない場合(初回)は$EDITORにセットされたエディタが立ち上がり入力できるようになる
しかしTextMateはだめみたいだ
=>pitでは ruby のsystem(env[EDITOR], t.path)を使ってて
env[EDITOR]に'mate -w'とオプションを指定してあるのが問題のようだ
しようがないのでvimをセットした
% pit set flickr.com
としてエディタを立ち上げて設定を入力してもいい
Wednesday, September 30, 2009
Ruby flickrup.rb
食事の写真をFlickrにアップするのが大変なので
exifの情報に基づいてタイトルを生成し
FlickrにアップするRubyのクラスFlickrPhotoを書いた
使い方は以下のようにする
まずアップするための認証がいるので
API_KEY = '****'
SECRET = '***'
token = 'flickr.dat'
FlickrPhoto.new(token, API_KEY, SECRET)
API_KEYとSECRETはflickr/base.rbにセットすればここでは省略できる
次いでアップロード
photo = FlickrPhoto.new(ARGV)
photo.title = "Tokyo tower on #{photo.mon} #{photo.day} #{photo.year(:short)}"
photo.tags = ['tokyo', 'travel']
photo.only_friend
photo.upload
これで写真のアップが楽になる
Friday, September 25, 2009
DataMapper filter
one to manyのフィルタは
Post.all('user.name' => 'merborne')
のように簡単に行くけど
many to manyの場合はちょっと面倒
Post.all(:conditions => {:id => PostTag.all(:tag_id => 3).map { |pt| pt.post_id }})
つまりRelationTableを使ってやる必要がある
Thursday, September 17, 2009
Git command
設定
ファイルの追加・変更
> git config --global --list #listing config
> git config --global user.name "melborne"
> git config --global user.email "p@gmail.com"
> git config --global color.ui "auto"
状態を見る
> git status
> git diff # see only not staged changes
> git diff --cached # see only staged changes
> git diff HEAD # see all changes
> git log -1 #check last log
> git add myfile.rb # change staging area
> git add -i # interactive mode
> git commit -m 'initial commit' # apply stage data to repo
> git mv a.txt b.txt #only required is commit
gitignore or git/info/exludeファイルに追跡しないファイルを追加(*.dbとか)
> git commit -C HEAD -a --amend #amend most recent commit with same comment
> git revert#revert a commit
> git revert -n HEAD # only revert head without commit
> git checkout#discard changes in working dir
ブランチ
> git branch RB_1.0 master # create RB_1.0 branch for release
> git checkout RB_1.0 # change working branch to RB_1.0
> git tag 1.0 RB_1.0 # tagged 1.0 to RB_1.0's current status
> git checkout master
> git rebase RB_1.0 # rebase master with RB_1.0
> git branch -d RB_1.0 # delete RB_1.0 branch
> git branch -m oldname newname # rename branch
> git branch RB_1.0.1 1.0 # create branch RB_1.0.1 for tag 1.0
> git archive --format=tar --prefix=mysite-1.0/ 1.0 | gzip > mysite-1.0.tar.gz
マージ
>git merge RB_1.0 # merge RB_1.0 to master(when cuurent branch is master)
競合が生じた場合はソース上に表示される
修正して解消したのちcommitする必要がある
> git cherry-pick 321d.. #merge only 321d.. commit to master
> git mergetool #use when merge conflict
プル
> git pull #fetch repo and merge
> git pull origin RB_0.1 #merge RB_0.1 branch
> git fetch #only fetch
> git remote add # alias name
> git remote #list aliases
> git remote show #show info of alias
> cd /work
> git clone git://github.com/....
Wednesday, September 16, 2009
Tile: Bookmarklet with AJAX
hatena bookmarkletを参考にして
対象サイトにフォームをアペンドしてブックマークする方法を模索
いい線まで行ってると思うけどポストがうまくいかない
404がでる
bookmarklet
%a#booklet{:href=>"javascript:(function(){var%20d=(new%20Date);var%20s=document.createElement('script');s.charset='UTF-8';s.src='http://192.168.1.3:4567/javascripts/let.js';(document.getElementsByTagName('head')[0]||document.body).appendChild(s);})();"} Brick+
let.js
$(document).ready(function(){
$('body').append("<form id='bookmark-form' action='/' method='post' style='position: absolute; top: 10px; right: 10px;z-index: 10002';><textarea name='body' rows='6' cols='25'></textarea></br><input type='submit' value='New'><p id='ip'>POST!</p></form>");
$('#ip').click(function(){
$.post('http://192.168.1.3:4567/', $('textarea:name').text(), function(){
alert('posted!');
});
});
});
Tuesday, September 08, 2009
ruby mapreduce
module Enumerable
def mapreduce(init=0, blk)
self.map { |elm| blk[elm] }.inject(init) { |mem, var| yield(mem, var) }
end
end
a = [17, 14, 21, 21, 24]
b = a.map { |elm| elm**2 } # =>
b.inject { |mem, elm| mem + elm } # =>
p a.mapreduce(0, lambda { |elm| elm**2 }) { |mem, elm| mem + elm } # =>
p a.mapreduce("", lambda { |elm| elm.to_s(36) }){ |mem, elm| mem << elm } # =>
意味なさそう
Monday, September 07, 2009
ruby mapreduce
Google MapReduce
# docID, value => wordID, docID:docPos
WDIC = {101 => 'Page', 102 => 'of', 103 => 'School', 104 => 'Sakura', 105 => 'Kaede'}.invert
web = {1 => "Page of Sakura School", 2 => "Page of Kaede School"}
mapped = web.map do |doc_id, content|
content.scan(/\w+/).map.with_index { |word, i| [WDIC[word], [doc_id, i]] }
end.flatten(1)
p mapped.inject(Hash.new([])) { |h, (word_id, v)| h[word_id] += [v]; h }
# => {101=>[[1, 0], [2, 0]], 102=>[[1, 1], [2, 1]], 104=>[[1, 2]], 103=>[[1, 3], [2, 3]], 105=>[[2, 2]]}
Sunday, September 06, 2009
Ruby UDP Broadcast
require "socket"
require "timeout"
port = ARGV[1] || 'echo'
sock = UDPSocket.open
sock.setsockopt(Socket::SOL_SOCKET, Socket::SO_BROADCAST, true)
begin
sock.send('message', 0, '<broadcast>', port)
timeout(5) {
loop do
msg, addr = sock.recvfrom(20)
p addr
end
}
rescue TiemoutError
end
sock.close
Ruby UDP sample
echo_srv.rb
require "socket"
port = ARGV[1] || 'echo'
sock = UDPSocket.open
sock.bind('', port)
loop do
msg, (afam, port, host, ip) = sock.recvfrom(1024)
sock.send(msg, 0, ip, port)
end
Server側はClient毎にスレッド化する必要がない
recvfromしたデータにはClientのアドレス情報が入ってる
エコーバックするときにそのアドレス情報を指定する
echo_cln.rb
require "socket"
host = ARGV[0] || 'localhost'
port = ARGV[1] || 'echo'
sock = UDPSocket.open
while msg = STDIN.gets
sock.send(msg, 0, host, port)
print sock.recvfrom(1024)[0]
end
sock.close
Client側はsendするとき自アドレスを一緒に送る
Monday, August 31, 2009
Sunday, August 30, 2009
Ruby Curry
is_weekday = lambda { |week_day, time| time.wday == week_day }.curry
sunday = is_weekday[0]
monday = is_weekday[1]
tuesday = is_weekday[2]
case Time.now
when sunday
puts 'Day of rest'
when monday, tuesday
puts 'work'
else
puts 'maybe work..'
end
TinyUrl - URL shotener
#tinytiny.rb
# My first Ruby/Sinatra app, a URL shortener.
# by Leah Culver (http://github.com/leah)
require 'rubygems'
require 'sinatra'
require 'dm-core'
# Base36 encoded
BASE = 36
class Tinytiny
include DataMapper::Resource
property :id, Serial
property :url, String
end
DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/tiny.sqlite3")
configure do
DataMapper.auto_upgrade!
end
get '/' do
# Form for entering a fatty URL
<<-end_form
<h1>Tiny tiny URLs!</h1>
<form method='post'>
<input type="text" name="url">
<input type="submit" value="Make it tiny!">
</form>
end_form
end
post '/' do
# Put the fatty URL in the database and display
tiny = Tinytiny.new(:url => params[:url])
if tiny.save
url = request.url + tiny.id.to_s(BASE)
"Your tiny tiny url is: <a href='#{url}'>#{url}</a>"
end
end
get '/:tinyid' do
# Resolve the tiny URL
tiny = Tinytiny.first(:id => params[:tinyid].to_i(BASE))
redirect tiny.url
end
Subscribe to:
Posts (Atom)