ASDictionaryは各アプリ毎のappscript APIの辞書
ASTranslateはapplescriptをruby scriptに変換するツール
これは必須
Saturday, March 13, 2010
iTermとMacVimのWindowの透過度をkeyboard shortcutで変える
iTerm
ちなみにapplescript で引数を渡すには以下のようにする
ほんとうはこれに引数を渡したものをセットしたい
MacVim
- apple scriptで以下のようなtransparency_to05.scptとtransparency_to3.scptを書く
- /Users/keyes/Library/Application Support/iTerm/Scripts/にそれらを置く(folderが無ければ作る)。そうするとiTermにスクリプトメニューが現れる
- Preference/keyboardの設定でshortcutを割り当てる
tell application "iTerm"
activate
tell current session of the last terminal
set transparency to "0.05"
end tell
end tell
ちなみにapplescript で引数を渡すには以下のようにする
ほんとうはこれに引数を渡したものをセットしたい
on run argv
tell application "iTerm"
activate
tell current session of the last terminal
set transparency to item 1 of argv
end tell
end tell
end run
MacVim
- .gvimrcに以下を追加
map + :set transparency+=10<CR>
map ; :set transparency-=10<CR>
Saturday, March 06, 2010
Wednesday, March 03, 2010
Saturday, February 20, 2010
fetch Gmail with ruby
- net/pop(POP3)かnet/imap(IMAP)を使う
- POP3はruby187でも192でも動くけど、全てのメールをフェッチするのでgmailには適さない
- IMAPはメールクライアントのような機能を持っているので、未読メールだけ取得するなどのことができる
- しかしなぜかruby19では動かなかった
- またいずれでも取得メールをutf8でencodeするときruby19のString#encodeが効かなかったのでKconvをrequireする必要があった
#!/usr/local/bin/ruby
# -*- encoding:utf-8 -*-
require "net/imap"
require "kconv"
require "rubygems"
require "termcolor"
class Gmail
def initialize(username, password)
begin
@imap = Net::IMAP.new('imap.gmail.com', 993, true)
@imap.login(username, password)
rescue Exception => e
puts e
end
end
def fetch(select="INBOX", ids="UNSEEN")
begin
@imap.examine(select)
ids = @imap.search(ids)
@imap.fetch(ids, "ENVELOPE").each_with_index do |mail, i|
sender = mail.attr["ENVELOPE"].sender[0]
name = sender.name || sender.mailbox || sender.host
subject = mail.attr["ENVELOPE"].subject || "(no subject)"
puts TermColor.colorize("#{i+1}:", "red") +
TermColor.colorize("#{name.toutf8} : ", 'green') +
TermColor.colorize("#{subject.toutf8}", 'yellow')
end
rescue Exception => e
puts e
ensure
@imap.disconnect
end
end
end
g = Gmail.new()
g.fetch
# -*- encoding:utf-8 -*-
require "net/pop"
require "kconv"
username = ''
password = ''
address = 'pop.gmail.com'
port = 995
Net::POP3.enable_ssl(OpenSSL::SSL::VERIFY_NONE)
Net::POP3.start(address, port, username, password) do |pop|
if pop.mails.empty?
$stderr.puts 'no mail.'
else
puts pop.mails[-1].pop.toutf8
# pop.mails.each do |m|
# puts m.pop
# end
#puts "#{pop.mails.length} mails received."
end
end
Monday, February 15, 2010
gsearch
visionmedia-google-searchがmultibyte文字に対応してなかったので対応させる
def self.url_encode string
string.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/n) {
'%' + $1.unpack('H2' * $1.size).join('%').upcase
}.tr(' ', '+')
end
utf-8は3byteなのでunpack('H2')だと最初の1byteしかひろってくれない
下のようにして対応できた
def self.url_encode string
string.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/) {
'%' + $1.unpack('H*')[0].scan(/../).join('%').upcase
}.tr(' ', '+')
end
Friday, February 05, 2010
Saturday, January 16, 2010
アルゴリズム問題
http://www.itmedia.co.jp/enterprise/articles/0912/05/news002.html
class Board
attr_accessor :cells
attr_reader :width, :height
def initialize(width, height)
@width, @height = width + 2, height + 2
@cells = Array.new(@height){ Array.new(@width){0} }
end
def place_peace
2.upto(width-1) do |i|
2.upto(height-1) do |j|
cells[i][j] =
(cells[i-2][j] == 0) && (cells[i][j-2] == 0) ? 1 : 0
end
end
end
def draw_board
cells.each_with_index do |line, i|
next if [0, 1].include?(i)
line.each_with_index do |cell, j|
next if [0, 1].include?(j)
print cell == 1 ? "◎" : "+"
end
print "\n"
end
end
end
b = Board.new(10, 10)
b.place_peace
b.draw_board
アルゴリズム問題
http://www.itmedia.co.jp/enterprise/articles/0908/01/news001.html
class CircleCountry
attr_reader :x, :y, :r
def initialize(x, y, r)
@x, @y, @r = x, y, r
end
def inside?(other)
(self.x - other.x).abs <= other.r && (self.y - other.y).abs <= other.r
end
end
def least_borders(circles, start, goal)
count = 0
circles.each { |c| count += 1 if (start.inside?(c) ^ goal.inside?(c)) }
count
end
start = CircleCountry.new(0.8, 0.8, 0)
goal = CircleCountry.new(2, 2, 0)
circles = [CircleCountry.new(1, 1, 0.5),
CircleCountry.new(2, 2, 0.4),
CircleCountry.new(0.8, 0.8, 0.3)]
puts least_borders(circles, start, goal)
Tuesday, January 12, 2010
Net::HTTP回りを調べる
require "net/http"
list = []
Net.constants.sort.each do |c|
next unless /^H/.match c
sc = Net.const_get(c).ancestors rescue 'Module'
list << sc.select { |e| /Object|Kernel/ !~ e.to_s }.reverse
end
list.sort_by { |e| e.length }.uniq.each { |e| puts e.join ' < ' }
出力
Net::HTTPExceptions
Net::HTTPHeader
Net::Protocol < Net::HTTP
Net::HTTPHeader < Net::HTTPResponse
Net::HTTPHeader < Net::HTTPGenericRequest
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError
Net::HTTPHeader < Net::HTTPGenericRequest < Net::HTTPRequest
Exception < StandardError < Net::HTTPBadResponse
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPInformation
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPUnknownResponse
Exception < StandardError < Net::HTTPHeaderSyntaxError
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPNotImplemented
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPInternalServerError
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPLengthRequired
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPMethodNotAllowed
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPMovedPermanently
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPFound
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPMultipleChoice
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPNoContent
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPNonAuthoritativeInformation
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPNotAcceptable
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPNotFound
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPGone
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPNotModified
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPOK
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPPartialContent
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPPaymentRequired
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPPreconditionFailed
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPProxyAuthenticationRequired
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPGatewayTimeOut
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPForbidden
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPRequestEntityTooLarge
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPRequestTimeOut
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPUnauthorized
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPRequestURITooLong
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPRequestedRangeNotSatisfiable
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPResetContent
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPVersionNotSupported
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPExpectationFailed
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPUseProxy
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPUnsupportedMediaType
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPSeeOther
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPCreated
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPInformation < Net::HTTPContinue
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPSuccess < Net::HTTPAccepted
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPServiceUnavailable
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPConflict
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPClientError < Net::HTTPBadRequest
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPServerError < Net::HTTPBadGateway
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPInformation < Net::HTTPSwitchProtocol
Net::HTTPHeader < Net::HTTPResponse < Net::HTTPRedirection < Net::HTTPTemporaryRedirect
Exception < StandardError < Net::ProtocolError < Net::HTTPExceptions < Net::HTTPError
Exception < StandardError < Net::ProtocolError < Net::ProtoServerError < Net::HTTPExceptions < Net::HTTPServerException
Exception < StandardError < Net::ProtocolError < Net::ProtoRetriableError < Net::HTTPExceptions < Net::HTTPRetriableError
Exception < StandardError < Net::ProtocolError < Net::ProtoFatalError < Net::HTTPExceptions < Net::HTTPFatalError
Monday, January 11, 2010
Gift of Technology
The gift of technology is possibility -- possibilities in ever increasing mountains of diversity. Like biological life itself (despite its many hourly horrors), and like diversity itself, I find greater possibility to be an unequivocal good.
技術からの贈りものは可能性である。増加しつづける大量の多様性にもとづく可能性である。生物的な生命と同じように(多くの絶え間ない恐怖にかかわらず)、また多様性と同じように、私は、紛れもなく善良なものになる可能性が大いにあると思っている。
技術からの贈りものは可能性である。増加しつづける大量の多様性にもとづく可能性である。生物的な生命と同じように(多くの絶え間ない恐怖にかかわらず)、また多様性と同じように、私は、紛れもなく善良なものになる可能性が大いにあると思っている。
Sunday, January 10, 2010
Saturday, January 09, 2010
12月の電気代がやばい
今年の12月の電気代が14812円
去年の同月の電気代が14491円
しかしKWで見ると去年は563kwなのに対し
今年は667kw
だから実質16,000円越え
新たに購入したパネルヒーター
デロンギに比べて最大ワット数が少なくなっても
使用時間が増えているということ
つまり長時間使っても部屋が暖まらない
とりあえずの対策として
去年の同月の電気代が14491円
しかしKWで見ると去年は563kwなのに対し
今年は667kw
だから実質16,000円越え
新たに購入したパネルヒーター
デロンギに比べて最大ワット数が少なくなっても
使用時間が増えているということ
つまり長時間使っても部屋が暖まらない
とりあえずの対策として
- 廊下側の扉を閉じる
- エアコンを中心にする
Tuesday, December 29, 2009
VIM
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>
* 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>
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
Subscribe to:
Posts (Atom)