Hatena::ブログ(Diary)

Assemblr このページをアンテナに追加 RSSフィード


12-02-02 (Thu)

[] さくらインターネットVPS で cron で rubyスクリプトが動かない

rvm で 1.9.3-p0 をインストールしたがトラブルが…。

libyaml の警告を消す

It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

yum ではインストールできないようなので、

$ wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
$ tar xzvf yaml-0.1.4.tar.gz
$ cd yaml-0.1.4
$ ./configure
$ make
$ sudo make install

その後、

$ rvm reinstall ruby-1.9.3-p0

tlsmail の警告を消す

/usr/local/rvm/gems/ruby-1.9.3-p0/gems/tlsmail-0.0.1/lib/net/smtp.rb:806: warning: already initialized constant SMTPSession

smtp.rb と pop.rb を直接修正する必要があるらしい。

  Net.instance_eval {remove_const :SMTPSession} if defined?(SMTPSession)
  SMTPSession = SMTP
  Net.instance_eval {remove_const :POP} if defined?(POP)
  Net.instance_eval {remove_const :POPSession} if defined?(POPSession)
  Net.instance_eval {remove_const :POP3Session} if defined?(POP3Session)
  POP = POP3
  POPSession  = POP3
  POP3Session = POP3
  (snip)
  Net.instance_eval {remove_const :APOPSession} if defined?(APOPSession)
  APOPSession = APOP

コマンドラインから実行すると動作するが、cron で実行すると動かない

<internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError)

GEM_HOME や RUBYLIB を設定しないといけない。crontab -e で先頭に以下の行を追加した。

GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p0
RUBYLIB=/usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/x86_64-linux/:/usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/

RUBYLIB は正解かどうかわからない。アーキテクチャ依存パスを書く必要があるのかいまいちスッキリしない。

12-01-25 (Wed)

[] rdesktop で ubuntu から Windows XP接続してクリップボードを共有する

desktop -5 REMOTE_SERVER_NAME -f -k en-us -r clipboard:CLIPBOARD

11-11-11 (Fri)

[] Rubybit.ly などの短縮 URL の展開

ググって調べて書いてみた。

require 'net/http'
require 'uri'

def expandShortenURI(s)
  uri = URI(s)
  Net::HTTP.start(uri.host, uri.port) {|http|
    response = http.head(uri.request_uri)
    case response
    when Net::HTTPRedirection
      expandShortenURI(response['location'])
    else
      return s
    end
  }
end

11-10-02 (Sun)

[] ibus + mozc

自分用の Mozc カスタマイズ。

Mozc の最新版 (PPA)

sudo add-apt-repository ppa:japanese-testers/mozc

ibus

1.3.9 が自分環境では安定していた。1.4.0 はトリガーキー最初の1回そのまま送信されてしまう。しかし、有効/無効キーバインドは使いたいのでパッチは当てる。

git checkout 1.3.9
git cherry-pick e3140b7206d409419faa0c8bfa50f25ad3644cd0

失敗するので↓のような感じで直す

https://gist.github.com/1256975

追記

修正していただきました。↓コメント参照

11-09-25 (Sun)

[] emacsテキストモードで Shift+Tab を実現する

秀丸のような Shift+Tab のバックタブ(逆インデント)を emacs で実現してみた。

タブ位置の調整

emacs ではインデントの考え方が特殊で、テキストモードで (setq tab-width 4) としても効果がない。tab-width に従うのは C 言語モードの Tab キーに割り当てられている c-indent-line-or-region で、テキストモードの Tab キーに割り当てられている tab-to-tab-stop は tab-stop-list というインデント位置のリストに従う。例として幅 4 のソフトタブの設定を以下に示す。

(add-hook 'text-mode-hook 
          '(lambda()
             (define-key text-mode-map "\C-i" 'tab-to-tab-stop)
             (define-key text-mode-map [backtab] 'backtab)
             (setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124 128))
             (setq indent-tabs-mode nil)))

バックタブ

超汚くて恐縮だが、以下のように (backtab) を実装した。

(defun backtab()
  "Do reverse indentation"
  (interactive)
  (back-to-indentation)
  (delete-backward-char
   (if (< (current-column) (car tab-stop-list)) 0
     (- (current-column)
        (car (let ((value (list 0)))
               (dolist (element tab-stop-list value) 
                 (setq value (if (< element (current-column)) (cons element value) value)))))))))

追記(リージョン対応

やっつけ実装ですが、複数行まとめてタブを入れたり、タブを抜いたりできます。

(defun backtab-line-or-region ()
  (interactive)
  (if mark-active (save-excursion
                    (setq count (count-lines (region-beginning) (region-end)))
                    (goto-char (region-beginning))
                    (while (> count 0)
                      (backtab)
                      (forward-line)
                      (setq count (1- count)))
                    (setq deactivate-mark nil))
    (backtab)))

(defun tab-to-tab-stop-line-or-region ()
  (interactive)
  (if mark-active (save-excursion
                    (setq count (count-lines (region-beginning) (region-end)))
                    (goto-char (region-beginning))
                    (while (> count 0)
                      (tab-to-tab-stop)
                      (forward-line)
                      (setq count (1- count)))
                    (setq deactivate-mark nil))
    (tab-to-tab-stop)))

11-09-24 (Sat)

[] emacs で dired でディレクトリを移動してカレントディレクトリを変更する

function emacscd {
    export EMACS_DIR_FILE=$HOME/.emacs.dir.$$
    emacs .
    if [ -f $EMACS_DIR_FILE ]; then
        cd `cat $EMACS_DIR_FILE`
        rm -f $EMACS_DIR_FILE
    fi
}
(defun dired-set-current-dir-and-exit()
  "Set viewing directory to the current directory"
  (interactive)
  (write-region (expand-file-name dired-directory) nil (getenv "EMACS_DIR_FILE"))
  (save-buffers-kill-terminal))

(add-hook 'dired-mode-hook
          '(lambda()
	     (define-key dired-mode-map "\C-x\C-c" 'dired-set-current-dir-and-exit)))

11-09-19 (Mon)

[] ubuntuネットワークトラブルで使うコマンド

ネットワークトラブルの調査で良く使うコマンドメモ

ethtool

  • sudo ethtool ethX
  • sudo ethtool -s ethX speed [10|100|...]
  • sudo ethtool -s ethX duplex [half|full]
  • sudo ethtool -s ethX autoneg [on|off]
  • sudo ethtool -a ethX
  • sudo ethtool -A ethX [rx|tx|autoneg] [on|off]
  • sudo ethtool -s ethX msglvl 255

arp

arping

mii-tool

11-09-17 (Sat)

[] URL正規表現マッチさせてブラウザを分岐させる

会社などで IE 専用のサイトがあったり、Firefox 推奨のサイトがあったり、Chrome 推奨のサイトがあったりして、うっかり違うブラウザで開いて、また開きなおすといった場面が多かったので支援ツールを作りました(ずっと前に)。

デフォルトブラウザとして登録することで、設定ファイル正規表現に従ってブラウザを切り替えます

コンセプト説明用の LT

http://www.slideshare.net/iwagaki/make-and-love-your-own-tool

バイナリソースコード

http://github.com/iwagaki/BrowserSelector

インストール方法

[] LC_MESSAGE / LANGUAGE / LANG の階層

http://www.itmedia.co.jp/enterprise/articles/0605/16/news027.html

LANGUAGE > LC_ALL > 機能別の LC_* > LANG

LANGUAGE=en_US.UTF-8 LANG=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 VTE_CJK_WIDTH=1 gnome-terminal

これでエラーメッセージ英語で、日本語も表示できる。

11-08-27 (Sat)

[] Android メモ

新しいリリースや、リリース間の違いを確認するために特定リリースの manifest を確認したい

manifest.git の clone を作る

git clone https://android.googlesource.com/platform/manifest.git # 初回
git pull # 更新
git branch -a # manifest のブランチ状況
git checkout origin/android-4.0.3_r1 # 特定のリリースの manifest の取得

複数のリリースソースコード効率的に取得したい

Mirror を作って、cron 等で repo sync しておく。新しい repo をする場合は --reference=mirror をつける。

cd mirror
repo init -u https://android.googlesource.com/mirror/manifest --mirror

11-08-26 (Fri)

[] Redmine の新規チケットの開始日に当日の日付が入らないようにする

新規チケットの発行で開始日にその日の日付が自動で入るため、未着手なのに開始日が過ぎているチケットが多く発生してしまう要因になっていた。app/controllers/issues_controller.rb で以下をコメントアウトすることで空欄のままにできる。

    if request.get? || request.xhr?
#      @issue.start_date ||= Date.today
    else

11-08-24 (Wed)

[] Redmineチケット監視者のチェックボックスデフォルトを checked にする

「新しいチケット」でチケット監視者のチェックボックスを全員オンにする。ちゃんと設定があるのかもしれないが、ひとまず app/views/issues/_form.rhtml に :checked => 'true' を追加することで対応した。

<label class="floating"><%= check_box_tag 'issue[watcher_user_ids][]', user.id, @issue.watcher_user_ids.include?(user.id), :checked => 'true' %> <%=h user %></label>

11-08-15 (Mon)

[] YouTube でリピート再生ループ)させるブックマークレット

↓をブックマークレットとして登録しておいて、YouTube動画再生画面で実行すると、リピート再生ループ)するモードに入る。

javascript:(function(){ if (location.href.match(/http:\/\/www\.youtube\.com\/watch\?v=([^&]+)/)) { var url = "http://www.youtube.com/v/" + RegExp.$1 + "&loop=1&autoplay=1"; location.href = url; }})()

参考

http://blogwp.whiter.jp/?p=21

11-08-14 (Sun)

[] libomxil-bellagio-0.9.3 で case value ‘2130706435’ not in enumerated type でビルドエラー

cc1: warnings being treated as errors
omx_base_component.c: In function ‘omx_base_component_GetParameter’:
omx_base_component.c:991:3: error: case value ‘2130706435’ not in enumerated type ‘OMX_INDEXTYPE’
omx_base_component.c:918:3: error: case value ‘2130706436’ not in enumerated type ‘OMX_INDEXTYPE’
make[3]: *** [libomxbase_la-omx_base_component.lo] エラー 1

などとエラーが出る場合は、-Werror を外す。

CFLAGS="${CFLAGS} -Wall"
#CFLAGS="${CFLAGS} -Wall -Werror"

11-08-12 (Fri)

[] Sharepointリッチテキスト編集欄が小さい

Microsoft Sharepoint + Internet Explorer で、タスクリストリッチテキスト編集欄を大きくしたい。

色々検索して調べた方法はうまくいかなかったが、自分環境では↓のスタイルシートに落ち着いた。

.ms-rtelong {width:800px !important; height:800px !important;}

11-08-06 (Sat)

[] 無料ラブひなを一括ダウンロードする python スクリプト

import os

for i in range(1,15):
    os.system("wget http://dl.j-comi.jp/download/book/1%02d/hq/LH%02d_hq.pdf" % (i, i))

[] ビルドサーバの設定メモ

https://help.ubuntu.com/community/NFSv4Howto

apt-get

# apt-get install portmap nfs-common nfs-kernel-server

service portmap restart が動かない場合は、マシン再起動する。

/etc/exports

/target_dir  192.168.0.1/255.255.255.0(rw,rync)

ワイルドカードドメイン名の省略なので、IP 指定の時は↑のようにする。

/etc/default/nfs-common (Server/Client 側両方)

NEED_IDMAPD=yes

client からマウント

mount -t nfs 192.168.0.1:/target_dir /mount_point

公開鍵

client の id_rsa.pub を host の .ssh/authorized_keys に追加(なければ作成

sudoers

/etc/sudoers.d に sudoers_local として root:root 440 として、

username ALL=(ALL) NOPASSWD: ALL

11-05-13 (Fri)

[] ファイルデスクリプタから逆にファイルパスを得る

こんなのしか思いつかなかった。

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

#include <stdlib.h>
#include <assert.h>
#define VERIFY(x) if (!(x)) { assert(x); abort(); }

int main(int argc, char *argv[])
{
    pid_t pid = 0;
    int fd = 0;
    char proc_path[1024];
    char path[1024];

    VERIFY(argc == 2);

    fd = open(argv[1], O_RDONLY);

    pid = getpid();
    sprintf(proc_path, "/proc/%d/fd/%d", (int)pid, fd);
    int size = readlink(proc_path, path, 1024);

    VERIFY(size > 0);

    path[size] = 0; // for null-termination

    printf("fd = %d, path = %s\n", fd, path);

    return 0;
}

実行例

$ ./a.out main.c 
fd = 3, path = /home/admin/fd_to_path/main.c

11-04-27 (Wed)

[] Linuxブートディスクとしてフォーマットした HDDデータディスクとして使う

パーティションテーブルの修正

fdisk でスワップ領域等を削除して、メインのパーティションブート可能フラグを落とす

Bootstrap の移植

これだけだと外付け HDD の bootstrap が読み込まれた時点で止まってしまうので、データディスク用?の bootstrap を移植する。実際に起動ディスクの bootstrap とデータディスクの bootstrap のコードは異なっていて、内容はいつか調べる必要がありそう。

  1. 適当USB メモリ (/dev/sdc とする) を EXT3フォーマットする
  2. 念のためデータディスク化したい外付け HDD (/dev/sdb とする) の MBR を sudo dd if=/dev/sdb of=~/mbr_backup bs=512 count=1 でファイルバックアップ
  3. sudo dd if=/dev/sdc of=~/mbr_datadisk bs=512 count=1 でデータディスク用の MBRファイルに保存する
  4. sudo dd if=~/mbr_datadisk of=/dev/sdb bs=446 count=1 で bootstrap の部分だけ書き変える

11-04-03 (Sun)

[] ubuntu 10.10ブラウズすると一部の漢字アンチエイリアスがかからず汚い

Google Chromeブラウズした時に、入力フォームの中などでフォントが汚くなっていた。一部の TrueType フォントが優先されているせい。検索したところ諸説あったが自分は以下を削除した。

実質的に ttf-arphic-uming の削除で直ったようだ。Linux再起動が必要。

11-04-02 (Sat)

[] git clone --bare で clone したレポジトリに remote を設定する

git clone すると通常は clone 元が origin に設定されるので、git pushパラメータなしで push できるが、git clone --bare で clone すると origin の設定が必要なようだ。

$ git clone --bare git@github.com:<username>/<project>.git
$ cd <project>.git
$ git push
fatal: No destination configured to push to.
$ git remote add origin git@github.com:<username>/<project>.git
$ git push
Everything up-to-date

[] CQPerl で Rational ClearQuest API を利用した場合に The following characters are invalid で強制終了してしま

Windows 上で CQPerl を使って Rational ClearQuest の自動クエリーなどのスクリプトを書いた場合に、以下のエラースクリプトが強制終了して困っていた。

String returned from the CQPerl is not in the local code page, "932 (Japanese (Shift-JIS))".
The string is "(略)" (98 characters in total).
The following characters are invalid:
U+2013 at 14

http://www-01.ibm.com/support/docview.wss?uid=swg21266293

上にサポート記事があるが、スクリプト側での対象方法が明確でない。試行錯誤して以下のコード回避できた。

my $cq = CQClearQuest::Build();
$cq->SetPerlReturnStringMode($CQPerlExt::CQ_RETURN_STRING_UNICODE);

http://publib.boulder.ibm.com/infocenter/cqhelp/v7r0m1/index.jsp?topic=/com.ibm.rational.clearquest.apiref.doc/c_execution_mode.htm

11-03-28 (Mon)

[] ubuntuadb を実行すると no permissions と表示されて接続できない

ubuntu では root 権限で adb server を実行する必要がある。面倒なので、オーナーroot にして sticky bit を立てる。一般ユーザroot 権限で adb を実行できる。

sudo chown root:root adb
sudo chmod u+sx adb

上記の対処前に adb を実行していた場合は、adb kill-server が必要です。

[] Android Project をソース共有するときに必要なファイル

EclipseAndroid project を作ってアプリケーションを開発した場合に、Git に commit すべきファイルを忘れるのでメモ

ワークスペースフォルダに見えるファイル

.classpath
.project
.settings
AndroidManifest.xml
assets/
bin/
default.properties
gen/
proguard.cfg
res/
src/

共有すべきファイル

AndroidManifest.xml
res/
src/

共有しなくてよいファイル

.classpath
.project
.settings
assets/
bin/
default.properties
gen/
proguard.cfg

Checkout した場合

Eclipse では File->New->Android Project で Create project from existing source で上記のファイルのあるフォルダを指定すればプロジェクト作成できる。

CUI では、

android update project --name <Project Name> --target <Target ID> --path ./

のようにしてプロジェクトを作れば、build.xml *.properties proguard.cfg が補完されて、ant debug とか ant release でビルドできるようになる。Target ID (android-10, etc) は android list target で一覧を出せる。

http://developer.android.com/guide/developing/projects/projects-cmdline.html

11-03-21 (Mon)

[] ubuntu 10.10Growl の代わりに notify-send + notification-daemon を利用する

libnotify-bin パッケージapt-get すると notify-send が利用できるが、バックエンドが notify-osd場合だと問題がある。

  • 通知が画面に積み重なって表示されない(一度に表示されるのは1つだけ、消えたら次が表示される)
  • 時間指定の -t や重要度の -u オプションが効かない

notify-osd はまだ完成度が低い。バックエンドを notification-daemon に切り替えると解消される。


notify-osd から notification-daemon に切り替える

ただし WiFi接続通知などすべての通知のスタイルに影響する。

sudo apt-get remove notify-osd
sudo apt-get install notification-daemon

通知の色を変える(テーマを変える)

デフォルトだと -u critical でも控えめで目立たない。notification-daemonテーマを standard にする。

$ gconftool-2 --type string --set /apps/notification-daemon/theme 'standard'

インストールされているテーマは /usr/lib/notification-daemon-1.0/engines/ を見ると分かる。

make; notify-send -t 0 -u critical "Build Successful" `pwd`

オプションで -t 0 とするとクリックするまで消えない。

11-03-20 (Sun)

[] iOS 4 で 1 click のラウンチャーを作る

iOS Developer Program に参加してほやほやです。やったことのまとめ。

作りたいもの


メーラーの起動

アプリケーション間の通信の手段として、カスタム URL スキーマを使う仕組みがある。メーラーならば mailto: を開けば起動できる。to, subject, body が指定できる。自分アプリにも URL スキーマ定義できるらしい。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto:?to=宛先&subject=題名"]];

アプリケーションの終了


アプリケーションライフサイクル


ビューを作らない最低限の構成


main.m
int main(int argc, char *argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, @"MailButtonAppDelegate");
    [pool release];
    return retVal;
}

MailButtonAppDelegate.h
  • View だけじゃなく、Window も削除
@interface MailButtonAppDelegate : NSObject <UIApplicationDelegate> {
}
@end

MailButtonAppDelegate.m
  • 以下、主要部分のみ
#import "MailButtonAppDelegate.h"

@implementation MailButtonAppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    return YES;
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto:?to=foo@bar.com&subject=NEW%20TASK"]];
}

- (void)dealloc {
    [super dealloc];
}

@end

スクリーンショットw

f:id:mtv:20110320234001p:image

そもそも特定サイトへのリンクはホーム画面に置けるのだから、mailto: も置けそうな気がしますが・・・。

[] Xcodeファイルヘッダの Created by と Copyright を変更する

コマンドラインから以下を実行して設定できる。

defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{FULLUSERNAME = "hogehoge"; ORGANIZATIONNAME = "hogehoge";}'

GUI でやりたい or 確認したい場合は、open com.apple.Xcode.plist など。

11-03-19 (Sat)

[] iPhone での Provisioning Profile の登録

http://www.facebook.com/note.php?note_id=138500006215364

こちらの 6. 以降を参考にしました。それでも少しハマったのでメモ

11-03-02 (Wed)

[] vlc (ubuntu) で字幕トラックオフにして起動する

vlc --help を見ても載っていないが、vlc --sub-track=99 とするとデフォルトオフにすることができた。

11-02-19 (Sat)

[] Mac OSUQ WiMAX D03NA を挿入してもすぐ接続されない

Try WiMAX などで D01NA を借りて、その後 D03NA を購入したのだが、USB に挿入してもすぐ反応せず困っていた。古い D01NA のドライバが残っていて衝突していたようだ。

Warning - kext jp.co.nec.UQWiMAX.UD01NA_2 has immediate dependencies on both com.apple.kernel* and com.apple.kpi.* components; use only one style.
Warning - kext jp.co.nec.UQWiMAX.UD03NA_2 has immediate dependencies on both com.apple.kernel* and com.apple.kpi.* components; use only one style.
Warning - kext jp.co.nec.UQWiMAX.UD03NA_1 has immediate dependencies on both com.apple.kernel* and com.apple.kpi.* components; use only one style.
Warning - kext jp.co.nec.UQWiMAX.UD01NA_2 has immediate dependencies on both com.apple.kernel* and com.apple.kpi.* components; use only one style.
OSMetaClass: Kext jp.co.nec.UQWiMAX.UD01NA_2 class NecatWiMAX_2 is a duplicate;kext jp.co.nec.UQWiMAX.UD03NA_2 already has a class by that name.
Kext jp.co.nec.UQWiMAX.UD01NA_2 start failed (result 0xdc00400a).
Kext jp.co.nec.UQWiMAX.UD01NA_2 failed to load (0xdc008017).
Failed to load kext jp.co.nec.UQWiMAX.UD01NA_2 (error 0xdc008017).

/System/Library/Extensions/UQWiMAXUD01NA_1.kext と UQWiMAXUD01NA_2.kext を root 権限で削除したところ解消した。

[] Macbook の設定メモ

11-02-11 (Fri)

[] Windows 7英語キーボード日本語キーボードの切り替え

Windows の不便なところで USB キーボードだと自動で切り替わらないのでレジストリエディタで書き換える。

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters

10-10-07 (Thu)

[メモ] MacbookWiFi ルーター化した場合ubuntu から接続できない

iPod Touch接続できたが、ubuntuWindows 7 から接続できず困っていた。クライアント側の認証方式をオープンシステムから共有鍵にする必要があったらしい。ubuntu場合

10-09-20 (Mon)

[] Creative ZEN の復旧方法

MBR を書き換えてしまった場合などに以下のツールでリカバリできる。

http://www.creative.com/products/mp3/MP3PlayerRecoveryTool/welcome.asp

10-07-25 (Sun)

[] 動機ドリブンタグ付け

見たい情報が溢れてしまっていたので整理方法をブレストしてみた。

対象

原因

  • 「得られるかもしれない知識」への期待値を高く見積もりすぎている

基本原則を考え直してみる

  • 情報を読むことで理解できると考えることが根本的に浅はか
  • やったことしか理解できない。読んだ知識はまやかし
  • 情報は実は料理しないとまったく食べられない(腹をこわす)ものと考える
  • 素材を使って何か行動をおこすことで知識は得られる
  • 情報収集ではなく情報消化を優先して、実際に身につく“筋力”情報量を最大化する問題ととらえる

何のために情報を集めるのか

  • 興味があるだけでは発散してしまう
    • 集めて本当に使っているのか?タグ付けしてどうしているのか?
    • 話題についていきたいだけ?
    • 何かできるようになりたいのか?
    • その分野について詳しくなりたいのか?(○○ならば○○さん)
  • よくある「何が得られるのか?」という考えはフィルタとしては機能しない
    • 興味を持った情報なのだから何かしら得られるに決まっている
    • より踏み込んで「何が作れるようになるか」「何ができるようになるか」
  • 情報収集は「○○をするための“準備”」という意識でやる
    • ブックマークは「○○をするための準備」であり、「○○をする」時期が来たら、効率よく開始できるようするのが目的
    • 実際にやるときに動機毎に検索できなければ意味がない
    • やる予定がなければクリップしない
    • 一般知識増強という意味ならば、サラっと読んで捨てる
    • 検索したらまたすぐ調べられることも捨てる
    • 動機のない情報収集、後で動機で検索できない情報の保存法はムダ

情報タグ付け方法の見直し

  • delicious などで登録時に種別や分野でタグをつけるとよくあること
    • 登録時のタグが足りない→何気なくタグを追加→タグが増える一方
    • 登録して満足、情報が発散するだけで終わってしまう
  • タグ付けは「○○をするため」と自分のどの動機につながっているのかでカテゴライズすべき
    • 適切なタグがない→ 情報をキープする動機が不十分ということ。行き先のない情報

動機を絞り込む

  • やりたいことを絞る
    • ムダを削減するのは誰でも納得できる当たり前のことだが、「やりたいこと」を削減するのは難しい
    • やりたいことを削るのは夢を削るようなもので心理的には納得しづらい
    • しかし必要なのは「夢の中でどれが一番大事なのか決めること」「夢を削る技術勇気
  • 重要なものをまっさきにやる
    • おいしいものを最後に残すタイプは損をする。
      • × じっくり読みたい本を最後にして、まずサクっと読めるものを先によむ
      • × 雑務から片付けて、本腰をいれてメインをやる
    • 意志決定に影響することを早く確定させることがコツ
      • メインの本をまず読む
      • 周辺知識があればこそメインがスラスラ読めることもあるが、何が分からないのかをまっさきに知る上でもメインをまず読む(見る)
      • 何が困難なのか感覚を得るのはすごく重要見積もりにつながる)
  • 集中するための土壌を作る
    • やりたいことが、いちばん魅力的なことはまれである
    • やりたいことが、いちばん楽しくなるように、他をつまらなくする、さわらない、そういうコントロールが必要
  • 読書ブログの読み方
    • 同様に動機ドリブンで絞る。自分の動機を 5 つ程度に絞って、関係する本だけを買う etc
  • 分野を絞る
    • 何が必要なのかを、考える
      • 職業上一番必要なはコレとコレ
      • 今の自分を助けてくれる技能や知識を優先する
    • 他人に任せる分野を決める
      • 自分が先陣切って掘り下げる分野
      • 自分が一応は理解する分野
      • 他人に任せる分野

情報の深度とフィルタリング

  • 簡単に手に入る情報は深度が低い
  • 何度も同じ情報を読み直している事実
  • 雑誌から学べることは実は少ない
    • 表面的なものが多い。とっかかりとして利用するだけ。とっかかりばかり読んでもだめ
  • ネットの使い方
    • やりたいことがないときにネタを探すとき
    • やりたいことがあるけど詰まっているときに解決策を探すとき
    • やりたいことがあるときはネットなんてやらずにまずそれをやるべき

情報ツールの選び方

  • 情報の登録先を絞ることが意味がある
    • カテゴリによっては多少登録しずらくても集中させる
    • ○○の保存ならば○○がベスト、と考えるのは局所効率化にすぎない
    • 「登録しやすさ」を「使いやすさ」と勘違いしない
    • ログ野郎にならない
    • 読んだ本、観た映画などをリストにして何が楽しいのか?

まとめ

  • 情報は材料であり、材料で何をしたいのか動機を意識する
  • 情報を動機別にタグ付けする。この習慣が動機を整理し、内なる動機の再発見につながる
  • 情報メタボにならない為のシンプルなチェックポイント
    • やることが前提ですか?やれることは少ないですよ?
      • 動機別にタグ付けされているか
      • 動機別に引き出せる保存の仕方をしているか

10-07-19 (Mon)

[] BEHRINGER USB Audio Device を Mac OS で使う

いつも忘れるのでメモ