kuro's blog

IT関連、その他諸々・・・。

ブログを引っ越しました(その2)

いままでライブドアブログを利用していましたが、Bloggerに引っ越すことにしました。


ゴテゴテと広告が表示されないのが良いです。


これまで引っ越したいなぁと思いつつ、実行に移せていなかったのは、無料版ライブドアブログにはエクスポート機能が無いようで、エントリの移行手段がよく分からなかったから。


今日何気なしに「ライブドア blogger 移行」でググったところ、まさに探していた情報が見つかりました。

http://pbrocky.blogspot.jp/2011/08/livedoorblogmtexport.html

ライブドアブログのトップページ表示カスタマイズ機能をJSでカスタマイズして、MovableTypeフォーマットで表示する、という荒技(?)が紹介されています。

念のためにデフォルトのJSを保存して、恐る恐る「MovableType形式出力用のブログテンプレート」を設定し、トップページを表示させたところ、ばっちり変換データが表示されました!

ただchromeだとBODY:の内容だけがコピペできず一瞬アセりましたが、IEだと問題なくコピペできて、指示通りここでBloggerのatom形式に変換。無事に移行できました。



今後はこちらを更新していきますのでよろしくお願いします。

http://kurokawh.blogspot.jp/

MBRが壊れた状態からの復旧方法

blogを移動しました。
http://kurokawh.blogspot.jp/2012/06/mbr.html を参照ください。


唐突ですが、MBRが壊れた状態からの復旧方法をまとめておきます。
# 正確には壊れたのではなく、お馬鹿な勘違いで自らMBRを消してしまったのですが・・・。

簡単にコトの経緯を。
  1. Windows XPとLinuxのデュアルブートにしていた家のPC
  2. 最近はLinuxを使うことがなくなったので、Linuxパーティションを削除しよう
  3. Windowsだけになったことだしブートローダも消しちゃえ(ここが勘違いの発端)
  4. 適当にネット検索してろくに内容を確認しないで実行した結果、MBRを0クリア(お馬鹿・・・)
  5. OS選択画面なしでWindowsが起動されることを期待してPC再起動したが、起動にしっぱい(あたりまえ・・・)
  6. 焦ってネットで情報を集めてなんとか復旧<=いまここ
ddコマンドでMBRを0クリアしてしまったために、fdiskコマンドでパーティション一覧が出なくなりました。
このときは冷や汗が出ましたが、データ自体は残っているはず、と信じて復旧方法を検索。
早まってWindows再インストールなどしなくてよかった・・・。

ということで、復旧の手順・参考にしたサイトをまとめておきます。 

復旧に使ったツールはTestDisk です。

このツールはMBRやPBR等の知識を持っていなくても、メニューに沿って操作するだけでほぼ自動でMBRを復旧してくれるありがた〜いものでした。
TestDiskの詳細は以下のサイトが非常に参考になりました。 

ブートしなくなったPCでTestDiskを動作させる環境として、PartedMagicというフリーのツールがあることを発見し、それを利用しました。
CDにisoイメージを焼いてブートさせるとXが起動し、qpartedやその他諸々のツール群を利用できます。
以前は製品として売られていたPartition Magic相当の機能がフリーソフトとして提供されているそうで、開発者・コントリビューターの方々には本当に感謝したいです。
もちろん、参照させていただいた情報を提供者・ブロガーの皆様に も感謝ですね。

ということで、この情報が自分と似た状況にハマってしまった方のお役に立てれば幸いです。

 

[windows] 同名のプロセスを一括強制終了する方法

blogを移動しました。
http://kurokawh.blogspot.jp/2012/01/windows.html を参照ください。


[windows] 同名のプロセスを一括強制終了する方法

メモ。
以下の記事がまさに該当。

http://www.itmedia.co.jp/enterprise/articles/0809/09/news021.html  

taskkill というコマンドで実行できるらしい。 

たとえば開発において。
Visual Studio のプロセスが何個も残ってしまっている場合、
ひとつずつ強制終了させていくのは非常に面倒です。

そんなときには以下のコマンド一発できれいにな状態に。
> taskkill /f /im devenv.exe

(2012/02.21追記) "/f" と "/im" が逆になっているとエラーになりました。

[memo]一定時間で光学マウスの電源がOFFになり、反応が鈍くストレスがたまる・・・

[memo]一定時間で光学マウスの電源がOFFになり、反応が鈍くストレスがたまる・・・


「コントロールパネル >> システム >> ハードウェア >> デバイスマネージャ >> 該当する光学マウスのプロパティ >> 電源の管理」で、「このデバイスで、コンピュータのスタンバイ状態を解除できるようにする」のチェックボックスがクリアされている。

と、

「コントロールパネル >> システム >> ハードウェア >> デバイスマネージャ >> USB ルートハブ(複数あるかも)のプロパティ >> 電源の管理」で、「電源の節約のために、コンピュータでこのデバイスの電源をオフできるようにする」のチェックボックスがチェックされている。


[cygwin] cygwin上でssh-agentを使いたい

blogを移動しました。
http://kurokawh.blogspot.jp/2011/06/cygwin-cygwinssh-agent.html を参照ください。


「cygwin上でssh-agentを使いたい」と考えていたのですが、ようやく実現しました。

ググってwin-ssh-askpassなるものが存在することを知り、
セットアップしたところ、すんなり動きました。
参考にしたのは以下のサイトの情報です。

起動batファイルはそのままだとエラーになったため微妙に修正しています。
set CygPath=C:\cygwin\bin
set SshAgent=%CygPath%\ssh-agent

set BinPath=C:\Documents and Settings\XXX\My Documents\bin
set WinSshAgent="%BinPath%\win-ssh-agent.exe"

rem set WinSshOpt=--hide-console --no-ssh-agent --no-DISPLAY --no-default-identity
set WinSshOpt=--hide-console --no-ssh-agent --no-DISPLAY

start /b /d %HOME% %SshAgent% %WinSshAgent% %WinSshOpt%

修正版win-ssh-agent.bat

一点だけ、微妙にはまった問題が。
.ssh 以下のファイルのアクセス権が全公開になっていると、エラーになります。
linux上と同じようにちゃんと非公開にしてないとダメみたいです。


P.S. 全然別の話になりますがcygwinのemacsがふつうに使えてびっくりです。
Meadowだとcygwinのパスが理解できなかったりshell-modeの動作がいまいちだったのですが、その不満が解消されました!

less の文字化け&スクリーンのクリア抑制

blogを移動しました。
http://kurokawh.blogspot.jp/2011/03/less.html を参照ください。


cygwin上でlessを利用すると日本語が文字化けします。
ですが、lessに"-r"オプションを渡すと、正しく表示できる(こともある)ようです。
自分の環境ではこのオプションにより文字化けが無くなりました(もとネタ )。

lessに関する全然別の話をあと2つ。

lessを抜けるとよるスクリーンがクリアされるのがデフォルトの動作なのですが、
自分にとっては好みの動作ではありません。
lessで表示していた内容を参照しつつ、シェルに戻って作業をしたい場合が
多々あるので、スクリーンはそのままにしておいて欲しいです。
こんなときには"-X"オプションを指定すればよいようです。

これらのオプションを常に利用するには環境変数LESSに"-r -X"を
指定しておけば、less起動毎に指定する必要はなくなります。

[emacs] meadow で UTF8 が表示されない

[emacs] meadow で UTF8 が表示されない

と思いつつ放置していたのですが、google先生に聞いて出てきた
以下のサイトを参照したところ mule-ucs なるものが必要とのこと。


mule-ucs のアーカイブはここのリンクから。
http://www.meadowy.org/~shirai/elips/mule-ucs.tar.gz

インストール・セットアップの手順は以下の通りです。
  1. mule-ucs.tar.gz をダウンロードする
  2. c:/meadow/site-lisp 以下に mule-ucs.tar.gz を展開する
  3. .emacs に以下の記述を追加
  • (load-file "c:/meadow/site-list/mule-ucs-20061127-1/lisp/jisx0213/jisx0213.el")
  • ※パスが異なる場合は、jisx0213.elを見つけてそれをロードしてください
  • ※lisp compileコンパイルした方がよいと思います

以上です。

[excel] セルの背景・フォント色を(別のセルの情報に応じて)動的に変えたい

blogを移動しました。
http://kurokawh.blogspot.jp/2010/10/excel.html を参照ください。


[excel] セルの背景・フォント色を(別のセルの情報に応じて)動的に変えたい

このような場合には、”条件付き書式”を設定すればよいことが分かりました。

  • セルの値に基づいてすべてのセルを書式設定
  • 指定の値を含むセルだけを書式設定
  • 上位または解に入る値だけを書式設定
  • 平均より上または下の値だけを書式設定
  • 数式を用いて、書式設定するセルを決定
上記のようなルールが選べるのですが、他のセルの情報を選択するときには
最後の「数式を用いて、書式設定するセルを決定」を選択します。
で、数式に
     =$a$1="ある値"
と入力すれば$a$1セルが常に参照され、"ある値"のときだけ、
該当セルの書式が変更されます。
 

[excel] エクセルで重複を除いた値を列挙するには

blogを移動しました。
http://kurokawh.blogspot.jp/2010/09/excel.html を参照ください。



[excel] エクセルで重複を除いた値を列挙するには

ピボットテーブルを使いましょう。

excel 2007 でピボットテーブルを作る場合、
それまでのバージョンと違って、
「列ラベル」、「行ラベル」、「値」を
指定する場所が表示されず、困ることがあるかもしれません。
# 実際、10 分ほどハマりました・・・。

「ピボットテーブルのフィールドリスト」ウィンドウの
右上のボタンを押して「エリアウィンドウ」を表示するように
設定すれば、テーブルとは別の場所で
「列」「行」「値」に格納するフィールドを設定できるようになります。
 

[excel] エクセルで複数テーブルのJOIN(結合)もどきを

blogを移動しました。
http://kurokawh.blogspot.jp/2010/09/excel-join.html を参照ください。


エクセルで複数テーブルのJOIN(結合)もどきを

したいと思うことがたまにあります。
そんなときには、MATCH関数を利用しましょう。

参考にしたページ:
http://okwave.jp/qa/q3975916.html
 

[linux][command] ファイルのフルパスとサイズの一覧を表示したい

blogを移動しました。
http://kurokawh.blogspot.jp/2010/09/linuxcommand.html を参照ください。


[linux][command] ファイルのフルパスとサイズの一覧を表示したい

備忘録。

ディレクトリパスを含むファイルパスとサイズの一覧を取得したい場合、
ls -Rl だと、ディレクトリパスが除かれてしまい、嬉しくありません。

find の -printf オプションを利用すると所望の情報が得られます。
% find . -type f -printf "%p\t%s\n"

上記の printf format には以下のディレクティブを指定しています。
これら以外にもpermissionやブロックサイズなど、色々表示できるようです。
%p: ディレクトリパスを含むファイル名
%s: ファイルサイズ
\t: タブ
\n: 改行

[ruby][emacs] emacs の ruby-mode の設定例

[ruby][emacs] emacs の ruby-mode の設定例

(add-hook 'ruby-mode-hook
 '(lambda ()
    (setq tab-width 4)                  ; tab width
    (setq indent-tabs-mode 't)       ; use tab for indent.
    (setq ruby-indent-level tab-width)    ; indent size: tab ("2" or "4" can be set)
    (define-key ruby-mode-map "\C-j" 'goto-line)))         ; shortcut setting
 
備忘録。
 

[fedora] ネットワーク設定ファイルはどこ?

blogを移動しました。
http://kurokawh.blogspot.jp/2010/08/fedora.html を参照ください。


[fedora] ネットワーク設定ファイルはどこ?

fedora (たぶん linux 一般)のネットワーク設定ファイルは
 /etc/sysconfig/networking
以下にあります。
/etc 以下を grep して「ない???」と思ったのは
単にファイルが多すぎて sysconfig 以下のファイルに
辿り着いていないだけでした・・・。
 

[linux] 強制 fsck

blogを移動しました。
http://kurokawh.blogspot.jp/2010/07/linux-fsck.html を参照ください。


linux を利用していて fsck をかけたい、
と思って、普通にコマンドを実行しようとすると

WARNING!!! Running e2fsck on a mounted filesystem may cause
SEVERE filesystem damege.

という怖いメッセージが出てきます。
安全に実行するには?
起動シーケンスの中で fsck をかけるとか?
という疑問が出てくる訳ですが、
shutdown の manual に手順が記載されていました。
以下のコマンドで起動シーケンスの中で強制的に fsck を
実行することが出来ます。

# shutdown -Fr now

ググってみたところ、以下のような手順もあるようです。
http://d.hatena.ne.jp/GOT4416/20090210/p1
 

[xp] タスクトレイにアイコンが表示されなくなった?

blogを移動しました。
http://kurokawh.blogspot.jp/2010/04/xp.html を参照ください。


[xp] タスクトレイにアイコンが表示されなくなった?

以前は skype やその他の常駐アプリが自動起動されて、
タスクトレイにアイコンが表示されていたのですが、
いつの間にか表示されなくなってしまったアイコンが
あることに気がつきました。

アイコンが出ていないだけで、起動はされているため、
必要な機能は一通り使えているのですが、
skype などアイコンで状態変化を通知してくれるアプリに関しては
かなり不便な状態です。

対象のアプリを再インストールすると出てきたりするのですが、
知らないうちにまたでてこなくなったりで、半ばあきらめていました。 

が、今日ググってみるとまさに該当する問題とその解決方法がここに!!!
http://journal.mycom.co.jp/column/winxp/128/index.html
#マイコミジャーナルさん、ありがとう。m(_ _)m

UPnP関連のサービスの影響を受けているらしいです。 
「SSDP Discovery Service」と「Universal Plug and Play Device Host」
を止めると、問題が再現しなくなりました。
 

「顧客の心」岩田聡

プレジデントロイターの記事にWiiを成功に導いた岩田聡氏の姿勢に関するものがあった。
---
  • 岩田は、その「普通のユーザーの心」を正確に見通し、次々に手を打つ。たとえば、複雑化し、近寄り難いものになったコントローラー。彼はこれをワイヤレス化と直感操作という2つのキーワードで、テレビのリモコンと同程度の扱いやすさに改善していく。
  • また彼は、本人だけでなく「家庭内の心理」までも見通して、ユーザー離れを防ごうとする。Wiiの開発コンセプトの1つが「お母さんに嫌われない」であったことは有名だが、場所ふさぎのハードや、夜中のファン音などに辟易する「母親の心」を見通し、省スペース・省電力・静音に十分な配慮をしたことも、Wiiの成功要因となっているのである。
---
とういことなのだが、深い・・・。
ゲームユーザーの1つ向こう側の「家庭内の心理」まで考えているんですね。

 

[linux][xterm] コマンドプロンプトからウィンドウのタイトルを変える方法

blogを移動しました。
http://kurokawh.blogspot.jp/2010/03/linuxxterm.html を参照ください。


以前、-title で xterm のタイトルが設定できない、という記事をポストしました。

コメントアウトすべき、とした
> echo -n "\033]0;${USER}@${HOSTNAME}:${PWD}"; echo -n "\007"
を xterm の起動済みのウィンドウの中で実行すると、
タイトルを動的に変更できます。

例えばウィンドウのタイトルを"NEW-TITLE"に変更したい!
と思ったときには以下のコマンドを実行すればOKです。
> echo -n "\033]0;NEW-TITLE"; echo -n "\007"


という備忘メモでした・・。

Objective-C:カテゴリで「できること」と「できないこと」

blogを移動しました。
http://kurokawh.blogspot.jp/2010/03/objective-c.html を参照ください。


Objective-C のカテゴリについて「できること」「できないこと」をまとめました。

<<できないこと>>
  • 同じクラスの別のカテゴリに宣言されているメソッドを確実にオーバーライドすること
    =>クラスの @interface セクションで明示的に宣言されているメソッドの再定義を避けるべき
    リンク順で呼ばれる関数が変わってしまう・・・
  • クラスのインスタンス変数の追加
  • 既存のカテゴリと同名のカテゴリの追加
  • 同じクラスに定義されている同名のメソッドの呼び出し
<<できること>>
  • クラスへのインスタンスメソッド追加
  • クラスへのクラスメソッド(スタティックメソッド)追加
Appleの「Object C 言語」には「カテゴリの使い方」として以下のような例が挙げられています。
  • 関連するメソッドをグループ化する簡単な方法を提供します。異なるクラスで定義した類似のメソッドを、同じソースファイルにまとめることができます。
  • 複数の開発者がクラス定義に取り組むような大きなクラスの管理を簡素化できます。
  • 非常に大きなクラスについて、インクリメンタルコンパイルのメリットがある程度得られます。
  • よく使用するメソッドについて、参照の局所性を向上するのに役立ちます。
  • 個々のアプリケーションに合わせてクラスを異なるように設定することが可能となり、同じソースコードのさまざまなバージョンを維持する必要性をなくします。
「既存 API の上書きを行わない」ということに注意していれば、それなりに便利に使えるのでしょう。
既存 API の上書きについて、ruby のクラス再定義に近いのかと思いましたが、ruby が「後勝ち」を保証しているのに対し、objective-c では「未定義」となっているので注意が必要です。
ruby は alias を駆使してオリジナルの API を呼ぶための方法が提供されている点も大きな違いです。
 

iPhoneアプリ開発(その4):Interface Builder を使って view 作成

blogを移動しました。
http://kurokawh.blogspot.jp/2010/03/iphone4interface-builder-view.html を参照ください。


iPhoneアプリ開発(その4):Interface Builder を使って view 作成

Interface Builderでviewを新規作成し、xcodeのコードとつなげる手順。

  1. Interface Builderのメニューから[File]-[New]を選択し、表示されたダイアログで[View]を選択してから[choose]ボタンで完了
  2. 表示された空のviewに必要な部品を配置し、メニューから[File]-[Save]を選んでxxx.xibファイルを保存する(このとき表示される「Would you like to add "xxx.xib" to "xxx.xcodeproj"」というダイアログでは追加先プロジェクトを選択して[Add]ボタン押下)
  3. 追加したviewに対応するViewControlerを追加する(xcodeに戻って、メニューから[File]-[New]で表示されるダイアログ中のUIViewController subclassを選択)
  4. RootViewController.h/mに新しいViewControllerを追加する

    RootViewController.h

    #import "XXXViewController.h"
    @interface RootViewController : UITableViewController {
     	XXXViewController* *xxxViewController;
    }
    @property(nonatomic,retain) XXXViewController* *xxxViewController;
    @end
    

    RootViewController.m

    @synthesize xxxViewController;
    
  5. RootViewと新しいViewの画面遷移を実装する

    RootViewCotnroller.m:root view => xxx view

    	View2ViewController *xxxViewController = [[View2ViewController alloc] initWithNibName:@"XxxView" bundle:nil];
    	[self.navigationController pushViewController:xxxViewController animated:YES];
    	[xxxViewController release];
    
  6. View Controller Identityの設定(xxx.xibを選択してInterface Builderの"File's Owner"を選択した上で、メニューから[Tools]-[Identify Inspector]を起動して、"class"のドロップダウンからXxxViewControllerを選択する)
  7. View Connectionの設定([Tools]-[Connection Inspector]を選択して、"New Referencing Outlet"をドラッグして"File's Owner"にドロップする。表示された"view"を選択すればOK)
こんな感じです。
参考にしたblog:
http://icodeblog.com/2008/08/03/iphone-programming-tutorial-transitioning-between-views/


ターミナル上で改行を含む文字をコマンド引数に渡す方法

blogを移動しました。
http://kurokawh.blogspot.jp/2010/03/blog-post.html を参照ください。


ターミナル上で改行を含む文字をコマンド引数に渡す方法
改行を含む文字列、例えば
aaa
bbb
ccc
を echo コマンド一発で表示したい場合。
> echo "aaa\
ここまで入力して[RETURN]キー押下すると、
> echo "aaa\
?
という状態になります。末尾の'\' が重要。 同じことを繰り返せば、所望の振る舞いになります。
> echo "aaa\
? bbb\
? ccc\
?"

Google Chrome 4.0 のブックマーク同期が便利すぎる件

1/25 に Google Chrome の安定版(4.0.249.78)がリリースされました。
このリリースで「ブックマーク同期」という新機能が付いたのですが、これが便利すぎます!
Official Google Blog: Extensions, bookmark sync and more for Google Chrome

複数PCを所有している方(会社と家のPC、デスクトップとノートPCなど)は、それぞれのブラウザに登録されているブックマークが微妙に異なることに苛立ちを覚えたりしませんでしたか?
この新機能によってChromeに登録しているブックマークが特別な操作なしにPC間で同期されるようになります。
デフォルトではOFFになっているので、スパナアイコンの「Google Chromeの設定」から「ブックマーク同期」を選択するか、空ページを開くと最下部に表示されている「新機能:ブックマーク同期」を実行してgoogleアカウントの認証をすれば有効になります。
このブックマークは Google Document 上でも参照・編集することができます。ローカルで「ブックマーク同期」を有効にすると、"My Folders"の中に"Google Chrome"というフォルダが生成されて、そこにローカルと同じブックマークが展開されます。
このGoogle Document上のブックマークはChrome以外のブラウザからも普通に参照できるので、ブラウザをまたいでブックマークも参照できることになります。
 

cygwin を 1.7.x にバージョンアップするとキーボードのマッピングがおかしくなった。

blogを移動しました。
http://kurokawh.blogspot.jp/2010/01/cygwin-17x.html を参照ください。


cygwin を 1.7.x にバージョンアップするとキーボードのキーマップが
英語キーボードのマッピングになってしまいました。
JP106 のキーマップを持っていないのでしょうか?

このファイルを /etc/X11/xmodmap.jp として保存して、
xterm 上で 
> xmodmap /etc/X11/xmodmap.jp
とすることで、正しい状態になりました。

X 起動時に自動的に xmodmap による設定を行いたい場合には、
~/.xstartwinrc というファイルを作成し、
上記のコマンドを記述しておけばOKです。
 

パッケージアップデータのコマンド名は?

blogを移動しました。
http://kurokawh.blogspot.jp/2010/01/blog-post.html を参照ください。


linux の gnome にはパッケージアップデータがあって、
このアプリを使って root 権限で任意のパッケージの更新が可能になっています。
gnome が起動している環境では、メニューバーの中から起動できますが、
コマンドから起動したい場合には /usr/bin/pup を直接実行することもできます。
 
また、その他のシステム管理系のツールは以下のコマンドにマッピングされています。
  • ユーザー管理   /usr/bin/system-config-users
  • Sambaサーバー設定  /usr/bin/system-config-samba 

※実体はどれも consolehelper のようですね。

[excel] ピボットテーブルでヒストグラムを簡単作成

blogを移動しました。
http://kurokawh.blogspot.jp/2010/01/excel.html を参照ください。


ピボットテーブルの機能である「グループ化」を利用することで
簡単にヒストグラムを作成できることが分かりました。

手順は簡単。例えば AppStore 有料TOP50 から
金額範囲毎のアプリ数を集計するような場合は、、、

1. ピボットテーブルを作成する
     行フィールド: 金額
     列フィールド: なし(カテゴリ別に集計したいような場合にはカテゴリを入れる)
     データフィールド: 金額
2. データフィールドにカーソルを合わせてメニューから「フィールドの設定」を選択
     「データの個数」を選択
    →ここまでで、金額毎のアプリ数が表示される
3. 行フィールドにカーソルを合わせてメニューから「グループと詳細の表示」→「グループ化」を選択
     表示されたダイアログで、まとめたい金額の範囲を設定

これでOKです。


ただ気をつけなければならないのは、アプリが1つも存在しない金額範囲が
行項目に現れない点です。
例えば、 500 円毎に範囲を区切った場合に 1000〜1499 のアプリが
存在しない場合、行フィールドにその範囲が表示されません。

この問題の、うまい回避法が1つあります。
上記の1でカテゴリ別の集計を行って、カテゴリが空白で金額が1000 の
ダミーデータを用意することで、アプリ数が0の1000〜1499 の項目が
出せるようになります。
 

cygwin上でX起動時のクリップボード動作の問題(その2)

blogを移動しました。
http://kurokawh.blogspot.jp/2009/12/cygwinx.html を参照ください。


以前の日記にcygwinでX起動時のクリップボードの動作がおかしい問題と
その解決方を書きましたが、別のフリーソフトとの相性問題も絡んでいたようです。
AltIMEというキーバインド変更ツールを利用しているのですが、
そのツールのオプション機能の1つに「クリップボード履歴」というものがあります。
この機能をOFFにすると、X => Windows の向きでのコピー動作が
改善したように思います。
以前は、emacs を使っていると、M-wやC-kなどクリップボードへ
コピーが発生する操作を行うと数秒待たされてしまうような
症状が出ていたのですが、AltIMEのクリップボード履歴をOFFに
することでスムーズに動作するようになりました!

不思議なのは、何のタイミングでこの相性問題が顕在化したのか、
という点です。AltIMEのクリップボード履歴はずっと昔からONのままで、
emacsとの競合もなく普通に使えていたはずなのですが・・・。

似た症状で悩んでいる方はwindows側のクリップボード関連の
ツールとの相性問題を疑ってみるのも一考かと。 

リンクエラーの解決方法: undefined reference to `__gxx_personality_v0'

blogを移動しました。
http://kurokawh.blogspot.jp/2009/12/undefined-reference-to-gxxpersonalityv0.html を参照してください。


リンクエラーの解決方法: undefined reference to `__gxx_personality_v0'

gcc で C++ ソースをコンパイルしたとき上記のリンクエラーが発生することがありますが、
libstdc++(もしくは libsupc++:STLを含まない)をリンクすることで解決できます。

別のの解決法として、例外を使っていないのであれば、
コンパイル時に "-fno-exceptions" オプションを
指定することでも解決可能です。
 

インテル グラフィックスメディアアクセラレーター 4500 搭載 PC にインストールした CentOS 5.3 がブートしない?

blogを移動しました。
http://kurokawh.blogspot.jp/2009/12/4500-pc-centos-53.html を参照ください。


新たに購入した DELL OptiPlex 960 は
インテル グラフィックスメディアアクセラレーター 4500 を搭載しています。
このPCにCentOS 5.3をインストールしたのですが、
ブート時にXを起動するタイミングでハングアップが発生し、
ブートしたりしなかったり非常に不安定な状態でした。

2ch上で見つけた情報に基づいてドライバを"Intel Series 4" から
"vesa" に変えたところ、安定してブートするようになりました。 

"Intel Series 4"自体、experimentalとあったので
まだ安定していないのでしょうね。
 

あるディレクトリ以下のファイルを(特定ファイルを除いて)再帰的にコピーするには

blogを移動しました。
http://kurokawh.blogspot.jp/2009/11/blog-post.html を参照ください。


あるディレクトリ(./src)以下の全てのファイルを ./dst にコピーする。
% tar cf - ./src | (cd ./dst; tar vxf -)
さらにあるディレクトリ(orファイル)だけを除いてコピーする
% tar cf - ./src --exclude=ignored_file | (cd ./dst; tar vxf -)

iPhoneアプリ開発(その3:mac os環境整備)

blogを移動しました。
http://kurokawh.blogspot.jp/2009/08/iphone3mac-os.html を参照ください。


その1
での疑問が少し解決したので、メモしておきます。

Q: emacs がターミナルの中でしか起動しない。"-nw"オプションをつけている訳でもないのに。
  • A: プレインストールされているemacsはターミナルの中でしか起動しないものだそうです。独立したアプリケーションとして別ウィンドウで起動したい場合にはCarbon Emacsをインストールすればよいです(インストールは簡単!)

Q: chshでshellをtcshに変えたがそれが反映されない。
  • ターミナルの設定で変更しないとダメみたいです。メニューからFile=>Preferencesで表示されるダイアログで、以下のように設定すればOKです。
terminal-setting-window
  • ちなみに上記の画像はPreviewというアプリケーションでキャプチャしました。File=>Grab=>Windowでキャプチャ対象ウィンドウを選択できます。あとはFile=>SaveAs..で保存するだけ。


Q: Xcodeのキーバインドは変更できるのかな(ググればすぐにでてきそうだけど)。 
  • A: やはりできるみたい。
  • Xcodeではなくmacそのもののキーバインドですが、[ALT]をCommand Keyに割り当てておくとWindowsの操作感を引き継げて快適です。[ALT]+[TAB]でウィンドウ切り替えができたり、emacs上で[ALT]+[X]でm-xを入力できたり・・・。
modifier-keys
自分にとってはこれがベストです。macキーボードでない、普通のPCキーボードは、[ALT]がオプションキー、[Windows]がコマンドキーに割り当てられています。


私と同じようなWindows/Linuxに慣れきった方がmac osに移行した場合のTIPSになれば幸いです。
 

iPhoneアプリ開発(その2:Objective-C編)

blogを移動しました。
http://kurokawh.blogspot.jp/2009/08/iphone2objective-c.html を参照ください。


今日はObjective-Cの学習をメインに行いました。
C言語を拡張してオブジェクト指向対応させた言語ということでC++と似たものかと思っていましたが、全く別物だということが分かりました。
C++が静的型付け言語であるのに対し、Objective-Cは動的型付け言語になっています。
カテゴリ機能により既存クラスにメソッドを追加できる所などは、ruby等のスクリプト言語を想起させます。
その他、注目ポイントを列挙しておきます。
  • プロトコル(形式プロトコル)は Java の Interface 相当のもの
  • セレクタは Java の Reflection における Method クラスのようなもので、@selector指示子もしくはNSSelectorFromStringメソッドで取得できる
  • 任意のインスタンスにおいて class メソッドで Class インスタンスを取得でき、クラスのメタ情報を取得できる
  • NSObject は以下のようなメソッドを持っていて、Class やセレクタと組み合わせて様々な情報を得ることができる
    • respondsToSelector: 引数で渡されたセレクタが実装されているかどうかを調査
    • performSelector: セレクタで渡されたメソッドを呼び出す
    • isKindOfClass: 継承関係の調査
    • isMemberOfClass: 継承関係ではなくそのクラス直属のインスタンスかどうかを調査
    • description クラス名を文字列で返す
今日の学習は以下のサイトを利用しています。非常に分かりやすくまとまっていて役に立ちました。
http://journal.mycom.co.jp/column/objc/index.html

iPhone自体の勉強はまた明日・・・。

iPhoneアプリ開発(その1:素朴な疑問)

blogを移動しました。
http://kurokawh.blogspot.jp/2009/08/iphone1.html を参照ください。


iPhoneアプリ開発を始めました。
ちなみに私はObjective-Cは初心者です。CとC++についての知識はありますが。
先日購入したmac miniにiPhone SDkをインストールし、まずはサンプルプログラムをさわってみようかなということで、AppleのDevelovper ConnectionからTochesというサンプルプログラムをダウンロードしてみました。
このサイトを参考に環境構築。

そして下記のURLをからサンプルを入手して、ビルド実行してみたものの、根本的なところでつまずいてしまいました。

以下がそのつまずき一覧です。
  • MyViewクラスでイベントに応じた実装がされているのですが、このViewがどこから登録されているのかが分からない。
  • ReadMeを読むとマルチイベントを有効にするにはInterface BuilderかsetMultipleTouchEnabledの呼び出しでフラグを立てる必要がある、とあるがどちらのやり方もまだ分からない。
  • mac上で動作するiPhone Emulatorでピンチ(拡大・縮小の操作)の操作ができない。アイコン操作では無理な気がするのだが可能なのだろうか・・・?
学習が進めばこれらの疑問も解決すると思っているのですが、まだまだいろいろつまずきポイントがありそうです。

初めてのmacなのでmac OS X そのものにつまずいている点もあります。ついでにそれらも列挙しておきます。
  • emacs がターミナルの中でしか起動しない。"-nw"オプションをつけている訳でもないのに。
  • chshでshellをtcshに変えたがそれが反映されない。
  • Xcodeのキーバインドは変更できるのかな(ググればすぐにでてきそうだけど)。 
このあたりも解決したものからエントリにしていきたいです。

ティザリング解禁?

SLASH GEAR に「ティザリング(とMMS)のハックに成功!」という記事が掲載されていました。
http://www.slashgear.com/iphone-os-3-0-tethering-and-mms-hack-released-1847342/
iPhone 3.0 から以下のサイトへアクセスして、「ローカル・キャリア・プロファイル・コンフィグレーション・ファイル」をインストールせよ、とのことです。
http://help.benm.at/help.php

自分は勇気が無くて試せていませんが、ソフトバンクでも使えるのでしょうかねぇ。
# 言うまでもないとは思いますが、試す方は at your own risk で・・・。

おまけ。
YouTubeには設定ビデオが公開されているようです。

Jailbreakじゃないよ。タダだよ。と勇ましいタイトルが・・・。


US NSF がクラウド関連研究に奨学金を授与

DDJ に表記の記事がありました。
http://www.ddj.com/hpc-high-performance-computing/217100376;jsessionid=E4SAZUJLUHNUGQSNDLPCKHSCJUNN2JVN?_requestid=407248

今後ウォッチして行きたいです。
以下の大学の研究室が対象になっています。
  • Carnegie-Mellon University
  • Florida International University
  • the Massachusetts Institute of Technology
  • Purdue University
  • University of California-Irvine
  • University of California-San Diego
  • University of California-Santa Barbara
  • University of Maryland
  • University of Massachusetts
  • University of Virginia
  • University of Washington
  • University of Wisconsin
  • University of Utah
  • Yale University
 研究内容の詳細は元記事を参照のこと。
 

cygwinでX起動時にクリップボードの調子が悪くなった

blogを移動しました。
http://kurokawh.blogspot.jp/2009/06/cygwinx.html を参照ください。


先日cygwinをアップデートしてから、XWinの-clipboardオプションによるクリップボード連携がどうにも調子が悪くなってしまいました。
X上のウィンドウ間では正常に動作するのですが、Windows上(XPです)のネイティブアプリ(秀丸とか)でクリップボードを使おうとすると「クリップボードがオープンできません。」というエラーメッセージが表示され非常に不便な状態でした。
cygwinをアップデートするまでは快適に動作していたのにおかしいなぁ、と思いつつ、ふと気がついて、
xclipboard
をcygwin上からアンインストールすると、 快適に動作するではないですか!
xclipboardはXWinの-clipboardオプションに必要かと勝手に勘違いして追加インストールしてしまったのが運の尽きでした。
みなさん、同じ問題にはまらないようにご注意ください。
 

お引っ越し

はてなブログから引っ越してきました。
http://d.hatena.ne.jp/kurokawh/

こちらの livedoor ブログは、カスタマイズ性が高くて驚いています。
ぼちぼち更新していきますので、よろしくお願いします。

[excel] エクセルのグラフ中の凡例の順序を入れ替える方法

blogを移動しました。
http://kurokawh.blogspot.jp/2009/05/excel.html を参照ください。


エクセル上で挿入したグラフを選択し、右クリックメニューから「元のデータ」を選択すると、ダイアログが表示され、系列の追加削除ができます。

この機能を使って系列の編集を行った際、「この系列を先頭に移動したいのに、移動のメニューがない〜!」と思うことがよくあったのですが、以下の方法で順序の入れ替えができることがわかりました。

グラフのプロット範囲上のプロット(系列)を選択して、右クリックメニューを表示すると、「データ系列の書式設定」という項目があります。

それを選択して「データ系列の書式設定」ダイアログを表示し「系列の順序」タブを選択すると「上へ移動」「下へ移動」というボタンが用意されており、所望の変更が可能になっています。


★「元のデータ」ダイアログからはできません。いくら探してもその機能は見つからないのでご注意を(これまではこの手順が分からず入力し直したりしていました・・・)。

★この「データ系列の書式設定」ダイアログでは他にも次の機能が利用できます。

  • 2軸グラフの作成
  • 特定系列のみを対象とした表示スタイル変更(マーカー、線、ラベル)

★プロット(系列)を選択しての右クリックメニューで「グラフの種類」を選択すると、特定系列だけ別の種類のグラフにできます。

  • 上記の2軸グラフなどで、「折れ線」と「縦棒」を混在させパレート図を作る、といったことも簡単にできます。

[excel] エクセルでヒストグラムを簡単に作るには?

blogを移動しました。
http://kurokawh.blogspot.jp/2009/04/excel.html を参照ください。


ヒストグラムはエクセルで簡単に作ることができます。

1. メニューの [ツール] - [分析ツール] から「分析ツール」ダイアログを表示

2. 「ヒストグラム」を選択して「OK」ボタン押下し、「ヒストグラム」ダイアログを表示

3. ヒストグラムダイアログ中の以下の範囲設定を入力

3-a. 入力範囲: ヒストグラム化したいデータの領域(一列)を範囲選択

3-b. データ区間: ヒストグラムの X 軸のデータ区間を入力

★例えば、10区切りで 3-a のデータを集計したい場合には、自分で 10, 20, 30, 40 ... というデータ入力し、その領域を選択する

3-c. 上記の2項目が最低限の入力ですが、その他必要な項目を設定し OK

以上です。

3-b の「データ区間」が最初は何のことか分かりませんでしたが、X軸の元データと覚えておけばよいと思います。

ruby で picasa


ruby を使って google picasa web API を呼び出してみる。



### for authentiction ###
require 'net/https'
http = Net::HTTP.new('www.google.com', 443)
http.use_ssl = true
path = '/accounts/ClientLogin'
data = 'accountType=HOSTED_OR_GOOGLE&Email=USER-ID@gmail.com&Passwd=XXXXX&service=lh2'
headers = { 'Content-Type' => 'application/x-www-form-urlencoded'}
resp, resbody = http.post(path, data, headers)
cl_string = resbody[/Auth=(.*)/, 1]
headers["Authorization"] = "GoogleLogin auth=#{cl_string}"

### base url ###
picasa = Net::HTTP.new('picasaweb.google.com', 80)


### user data ###
resp, resbody = picasa.get('/data/entry/api/user/USER-ID', headers)
### album list ###
resp, resbody = picasa.get('/data/feed/api/user/USER-ID', headers)

### add new album ###
postheaders = {'content-type', 'application/atom+xml; charset=UTF-8'}
postheaders["Authorization"] = "GoogleLogin auth=#{cl_string}"
body_new_album = '<entry xmlns=\'http://www.w3.org/2005/Atom\' xmlns:media=\'http://search.yahoo.com/mrss/\' xmlns:gphoto=\'http://schemas.google.com/photos/2007\'> <title type=\'text\'>Trip To JP</title> <summary type=\'text\'>JJJ.</summary> <gphoto:location>Italy</gphoto:location> <gphoto:access>public</gphoto:access> <gphoto:commentingEnabled>true</gphoto:commentingEnabled> <gphoto:timestamp>1152255600000</gphoto:timestamp> <media:group> <media:keywords>italy, vacation</media:keywords> </media:group> <category scheme=\'http://schemas.google.com/g/2005#kind\' term=\'http://schemas.google.com/photos/2007#album\'></category></entry>'
resp, resbody = picasa.post('/data/feed/api/user/USER-ID', body_new_album, postheaders)

### update album ###
putbody = 'xxx'
req = Net::HTTP::Put.new('/data/entry/api/user/chocolat.kurokawa/albumid/ALBUM-ID/VERSION-ID')
req['Authorization'] = "GoogleLogin auth=#{cl_string}"
req['content-type'] = 'application/atom+xml'
res = picasa.request(req, putbody)


### show headers ###
resp.canonical_each{|name,value|
p name + ': ' + value
}

### output to file ###
file = File.open("/mnt/c/tmp/response.xml", 'w')
file << resbody
file.close




emacs の gdb-mode でソース追従ができなくなっていた


手元の環境は emacs 22.1.1 / gdb 6.4(改)なのですが、emacs で gdb-mode を起動してトレース実行すると今までできていたはずのソースコード上の実行位置追従が動作しないではありませんか。


訳が分からぬまま google 検索すると、まさに欲しかった情報が出てきました。



emacsかgdbがバージョンアップしたせいで、Emacsでgdbを使ったとき、うまく対応するソースコード行を追従しなくなった。この問題は検索の結果、gdbの--fullnameオプションを指定することが解決すると判る。しかし、これをコマンドファイルで指定するにはどうしたらよいだろうか?


答えは、set annotate 1とコマンドファイルに書けばよい。



http://www.gaku.net/uklog/a11513.html


http://www.gaku.net/uklogtb?msgid=11513





このオプションは gdb のマニュアルに以下のように説明されています。



emacs がサブプロセスとして gdb を起動するときにこのオプションをセットします。


これは、スタックフレームが表示されたときには常に(プログラムが停止した時を含む)、フルパスと行番号を標準の認識可能な書式で出力するよう、gdb に伝えるものです。


この認識可能な書式は 2 つの 32 文字の文字列と、それに続くコロンの改行でセパレートされるファイル名、行番号、文字位置のような感じです。


emacs - gdb インターフェースプログラムは、2 つの 32 文字の文字列を、ソースコードをフレームに表示するための信号として使用します。





880点!


運も実力のうち?


今回のTOEICは会社の団体特別受験です。


63697576.jpg


ちなみに前回(5年前)は760点でした。


前々回も760点でした。


試験内容が微妙に変わっている、ということを聞いていたので、


以下の模試を買ってきて勉強しました。


問題シートと回答シートが本番に近い、というのは意外とポイントかもしれません。


ただ、この本の問題は難易度が若干高めのようです。


本番の問題が簡単に感じられました。





emacs のバッファの文字コード変更

blogを移動しました。
http://kurokawh.blogspot.jp/2009/02/emacs.html を参照ください。



自分への備忘録。


emacs で読み込み済みバッファの文字コードを変更するには、


以下のコマンドを実行すればよい。


M-x revert-buffer-with-coding-system 指定の文字コードでファイルを再読み込み(C-x RET r)


<<似たコマンドリスト>>


M-x set-buffer-file-coding-system 書き込み時の文字コードを指定(C-x RET f)


M-x set-buffer-process-coding-system 編集中バッファのプロセスの文字コードを指定(C-x RET p)


M-x set-keyboard-coding-system キーボード入力の文字コードを指定(C-x RET k)


M-x set-terminal-coding-system ターミナルの文字コードを指定(C-x RET t)


などなど。



etagsコマンドがない?

blogを移動しました。
http://kurokawh.blogspot.jp/2009/01/etags.html を参照ください。



fedora 8 環境で etags コマンドを実行すると、「見つかりません」と怒られてしまいました。


なんで etags が入っていないのかと思ってemacs-common パッケージのファイルリストを見ると・・・



$ rpm -ql emacs-common


...


/usr/bin/etags.emacs


...



というファイルがあります。


なんで etags でなく etags.emacs なんでしょうか?


ちなみに man コマンドも



$ man etags



は NG で、



$ man etags.emacs



とする必要がありました。


最初は気がつかず、"ctags -e" コマンドで代用していたのですが・・・


不思議です。



道後温泉


久々に道後温泉にやってきました。


069e7b9f.jpg




ある意味スゴイ


共通認識が共有されていないとこういうことが起こってしまうんだろうなぁ。


http://blogs.yahoo.co.jp/poppin_96/45173075.html


当事者でない私は笑ってすませますが、


設計者が現場を見たところを想像すると・・・


やっぱり笑ってしまいます。


# 初トラックバックでした。うまくリンクがはれるかな。




ジャパン ドッグ フェスティバル 2008


12/21(日)にビックサイトで開催されていたジャパンドッグフェスティバルに行ってきました。


http://www.j-dog-fes.com/


期待していったのですが、





しつけ教室の様子です。


b4ebe95c.jpg




爆睡中…


緊張感のかけらもありません。


(^ ^;)


ed5d2ba0.jpg




xdm(gdm)が自動起動しない?

blogを移動しました。
http://kurokawh.blogspot.jp/2008/12/xdmgdm.html を参照ください。


fedora 6, fedora 8 で経験したのですが、インストール後に PC を再起動すると


xdm(gdm)が起動しないで、CUI のログイン画面が出る状態になりました。


# ネットワークインストールしたのが原因???


よくよく調べてみると runlevel が 3(Full multiuser mode)になっているのが原因でした。


runlevel を 5(X11)に変えると GUI のログイン画面が表示されるようになります。



id:3:initdefault:

/etc/inittab の上記の行を以下のように修正すると default runlevel を 5 へ変更できます。



id:5:initdefault:

下記に inittab の説明がありました。参考まで。


http://www.atmarkit.co.jp/flinux/rensai/theory10/theory10a.html



xterm -title が効かなくなった?

blogを移動しました。
http://kurokawh.blogspot.jp/2008/12/xterm-title.html を参照ください。


fedora をアップデートしたら xterm の -title オプションが効かなくなった。


どこかで user:cwd に上書きされるらしい。


ということで調べてみたら、/etc/csh.cshrc で上書きされていた(tcsh使いなので)。


# なんともおせっかいな・・・



if ($?TERM) then
switch($TERM)
case xterm*:
alias precmd 'echo -n "\033]0;${USER}@${HOSTNAME}:${PWD}"; echo -n "\007"'
breaksw
case screen:
alias precmd 'echo -n "\033_${USER}@${HOSTNAME}:${PWD}"; echo -n "\033\\"'
breaksw
default:
breaksw
endsw
endif

この部分をコメントアウトしたら、-title でタイトル名が反映されるようになりました!


bash の場合は /etc/bashrc 中の該当箇所をコメントアウトすれば OK。



今日のショコラ。


d7b28e14.jpg


↓おまけ。


1c8eadd3.jpg




TagCloud
livedoor プロフィール
  • ライブドアブログ