Dropbox で Connection Errors

インストール時に Connection Errors が出てしまって先に進めないという現象が WindowsXP のマシンで発生した。コンパネからのアンインストールでなく、スターメニューの Dropbox の UnInstall を使ってアンインストールしてから再インストールしたら無事動いた。

ひさびさに Ubuntu 動かした。

 ちょいと思うところがありまして、ひさびさに Ubuntu を立ち上げたのですが、自動的に「新しいディストリビューション 9.10 が利用可能です」みたいなメッセージが表示されると共に最新版にアップデートされた。

 んで、MacBook から大量のデータをコピーしようとしたんだけど、Windows のときは「マイネットワーク」からIPアドレスで検索をかけないとたどりつけなかった Mac 側の共有フォルダが「場所」メニュー下に最初から認識されていたり、ファイルの移動中に Windows だと出現していたエラーが出なかったり、Windows よりかえって使いやすいような気がした。毎回こんなこと書いてる気がするけど。Ubuntu すげえ。

10進数と16真数を相互変換する Ruby ワンライナ

 すんごいしょうもないけど、あとで使うかもしんないし、コピペしておきます。
 10 進数から 16 進数への変換は、

 alias d2x='ruby -e "puts sprintf(\"%x\", ARGV.first.to_i)"'

 って .bashrc に書く。すると、

 $ d2x 160
 a0

 ってなる。

 16 進数から 10 進数への変換は、

 alias x2d='ruby -e "dec, fig, dats = 0, 1, [[48, 48, 57], [87, 97, 122], [55, 65, 90]]; ARGV.first.strip.sub(/^0x/, \"\").reverse.each_byte { |ch| dats.each { |dat| dec += (ch - dat[0]) * fig if ch >= dat[1] and ch <= dat[2]; }; fig *= 16 }; puts dec"'

 って書く。すると、

 $ x2d 1a0c
 6668

 ってなる。
(ARGV.first と dat[0] で表記ぶれがあるのであとで直す)

 守秘義務があるので、適当にごまかすけど、職場になんちゃら ID の define マクロが記載されたヘッダがあって、それは 16 進数なんだけど、gdb でデバッグしたログを TeraTerm 経由で取ったりすると、p/x を間違えて p で出したりするんで、.bashrc に

 alias fooidg='grep -n FOO_ /bar/foo_def.h | grep '

 function fooidgd() {
  fooidg `d2x $1`
 }

 みたいのを書いて、fooidg でなんちゃら ID を 16 進数で、fooidgd でなんちゃら ID を 10 進数で検索できるようにしています。

 $ fooidg FOO_FATAL_ERROR
 #define FOO_FATAL_ERROR 0xf001

 $ fooidg 0xF001
 #define FOO_FATAL_ERROR 0xf001

 $ fooidgd 61441
 #define FOO_FATAL_ERROR 0xf001

 みたいな感じで。

 サーバにログオンできる環境ならどこでも使えるから設計書が開けないとかプリントアウト忘れたとかあっても大丈夫ということ。ていうか、設計書じゃなくコードで会話したいもんです。クソったれが。

Vim に慣れた

 職場で Emacs と zsh に拘ってゴリゴリやっていたら、サーバが妙に遅くて「おせえなあ」と思っていたら管理者の方がわざわざ僕の自席までやってきて「あんたの Emacs が起こしたプロセスが 80% 使ってるんですけど、kill していいですかね?」と言ったので、反省してホームディレクトリから Emacs および elisp をすべて削除した。grep-find くらいしか思い当たるフシがないんだけど、何かが悪さをしたらしい。その悪さが何であったかがわかるようになるまでは、少なくとも、会社で Emacs は使わない。早く学びたい。

 あと、周囲の席の人から「イーマックってなんですか?」「標準的なツール使ったほうがいいですよ」とか言われて絶望した(リアル話)。

 たいていのディストリにデフォルトでインストールされていて vim と人気を二分すると言われる Emacs が標準でないなら何が標準だと言うのか。あと、イーマックじゃねえ。イーマックスだ。Editor MACroS の略で Emacs だよ。

 悪いのは俺の拡張の仕方と使い方だよ。
 Emacs には何の問題もねえよ。

 んで、結局、自宅で Ruby, JavaScript, ActionScript のコーディングをするときは Carbon Emacs + zsh、職場では Vim + bash と使い分けるスタイルで定着した。WindowsXP を使いつつ、Emacs のなかでは Emacs キーバインドで操作するということができるのと同様に、Windows, Mac OS X, Emacs, Vim のキーバインドがいま僕のなかで共存していて、案外簡単に複数の操作系統を覚えられるもんなんだなぁと思った。それが難しいんじゃないかと推測していたので、すべてを極力端末内 Emacs に統合する方向で開発環境のカスタマイズを勉強していたんだけど、そうでもないのか、という。

 キーバインドは Emacs より Vim のほうが使いやすいですね。C-Space で範囲選択して C-w で切り取り、C-n で移動して C-y で貼り付けとかまだるっこしい。5 dd 12 j p とかわかるようになるとすげえ速い。アンドゥも C-x u より u のほうが速い。一単語削除して入力開始も M-d してタイプするより cw のほうが速い。ただ、Emacs のキーバインドのほうが自由度が高く、拡張を前提とするなら Emacs のほうがキーバインドの意味でも有利なんじゃないかとは思っている。そしていろいろやるならやっぱり現実的には Emacs に軍配が上がる。一長一短でじつに味わい深い。いまは局面にあわせて vim と emacs を使い分けるのが当然と感じ、あと、Eclipse はどの局面でも使いにくいような気がしている。

渡されたソースコードの文字エンコードと改行コードを判別する Ruby スクリプト

 一発で用途を満たすのがなかったので書きました。
 たぶんもっとずっと簡単なやり方があるから載ってないんだと思うけど。

     1  #!/usr/bin/ruby -W0
2
3 class UploadedFile
4 attr_reader :file_name
5
6 def initialize(file_name)
7 @file_name = file_name
8 end
9
10 def newline_code
11 cr_found, lf_found = false, false
12 File.open(@file_name).each do |l|
13 l.each_byte do |c|
14 cr_found = true if c == 0x0d
15 lf_found = true if c == 0x0a
16 end
17 end
18 if cr_found and lf_found
19 "CRLF"
20 elsif cr_found
21 "CR"
22 elsif lf_found
23 "LF"
24 end
25 end
26
27 def encoding
28 `nkf -g #{@file_name}`.strip
29 end
30 end
31
32 exit if not ARGV.length == 1
33 f = UploadedFile.new(ARGV.first)
34 puts "#{f.file_name} is #{f.encoding} (#{f.newline_code})"
35


 使い方は、たとえば codechk なんて名前で保存したなら、
 $ ./codechk foobar.cpp
 ってすると、
 $ foobar.cpp is EUC-JP (LF)
 って教えてくれる。
 $ find /proj -name "*.[ch]" -or "*.cpp" -exec ~/codechk "{}" \;
 ってすると、ずらーっと出てくるのでリダイレクトしてログしたり、
 $ find /proj -name "*.[ch]" -or "*.cpp" -exec ~/codechk "{}" \; | grep ASCII
 ってすると、ASCII のやつだけ抜き出せたり、
 $ find /proj -name "*.[ch]" -or "*.cpp" -exec ~/codechk "{}" \; | grep CRLF
 ってすると、改行が CRLF のやつだけ抜き出せたりする。
プロフィール

志田

Author:志田
どこにでもいるIT派遣です。今年中に正社員としての転職を目指していろいろ画策中。誰か年俸420万円以上で雇って下さい。それなりに使えると思いますよ。
FC2 プロフ

最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード