アイデアの作り方
50年以上読み継がれている名書
本編は20分ほどで読み終わる (半分以上が解説やあとがきがあるが読まなくても良い) 断片的に知っていたことを体系立てて頭に入れられることはメリットが多いと感じます
以下要約
アイデアは既存の要素の新しい組み合わせ 別表現) 枯れた技術の水平思考
アイデアの作り方は5つの段階がある
- 資料の収集
- 資料の咀嚼
- 放棄
- ひらめき
- アイデアの具体化 順番が大事で、前段が終了する前に先に入ってはいけない
5段階の詳細
資料の収集 以下の2種類が存在する
- 一般的資料 今回の企画に直接的には関係のない資料 幅広くあらゆることに興味をもつ
- 特殊資料 今回の企画に直接関係する資料 この資料収集を偏執的に行うことが重要ポイントの一つ 生涯にわたる長い仕事になる
資料の咀嚼
- 複数の事実の関係性をあぶり出す
- 1で得られた情報をカードやスクラップ、マインドマップなどのアナログな方法で整理して眺める
- 思いついたことはメモする
- 絶望状態に到達するまで続ける
放棄
- 完全に問題を心の外に放り出す
- 自分の想像力や感情を刺激するものに心を映す ex.) 音楽、映画、読書
ひらめき 何気ない瞬間にひらめきが起こる ex.) 入浴中、睡眠中、髭を剃っているときなど
MeCabをJavaで使えるようにする(OS X Mavericksの場合)
JavaでのMeCab利用についてのとおりにMeCabのJavaバインディングをインストールしたのだが、
以下のように表示が出て進まず。
g++ -O3 -c -fpic MeCab_wrap.cxx -arch x86_64 `mecab-config --cflags` -I/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Headers
MeCab_wrap.cxx:159:10: fatal error: 'jni.h' file not found
#include <jni.h>
^
1 error generated.
[Mac]JAVA_HOME/include以下にjni.hがないというエラーを解決 - tjun memo
このページの通りやってみたけどまだダメで、このままではまだjni.hが見れてない。
Makefileの14行目を書き換えることで成功
JAVA_BASE=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
TARGET=MeCab
JAVAC=javac -J-Dfile.encoding=UTF-8
JAVA=java -Dfile.encoding=UTF-8
JAR=jar -J-Dfile.encoding=UTF-8
CXX=g++
INCLUDE=$(JAVA_BASE)/Headers
LIBS=-arch x86_64 `mecab-config --libs`
INC=-arch x86_64 `mecab-config --cflags` -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers
all:
$(CXX) -O3 -c -fpic $(TARGET)_wrap.cxx $(INC)
$(CXX) -dynamiclib $(TARGET)_wrap.o -o lib$(TARGET).dylib $(LIBS)
$(JAVAC) $(PACKAGE)/*.java
$(JAVAC) test.java
$(JAR) cfv $(TARGET).jar $(PACKAGE)/*.class
test:
env DYLD_LIBRARY_PATH=. $(JAVA) test
clean:
rm -fr *.jar *.o *.dylib *.so *.class $(PACKAGE)/*.class
cleanall:
rm -fr $(TARGET).java *.cxx
最後にlibMeCab.dylibでちょっと詰まったけど、eclipseで動かすならこちらのとおりに
ad libitum: EclipseでMecabを使う(for Mac)
mysqlの不具合色々
なんかmysqlに色々不具合があったのでメモ
1.mysql.sockがないって言われる
new PDO()するとこんなエラーが出る。
[2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) in (略)DB.php on line 39
解決方法:mysql.sockまでのシンボリックリンクを作成
ln -s /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock /tmp/mysql.sock
2.ファイルに書き込みができないって言われる
こんなかんじのSQLを実行したら
こんなエラー
Can't create/write to file '/var/folders/z0/v0gk8gld52q7p9zy8b3__g580000gn/T/#sql564_1_1.MYI' (Errcode: 13)
いろいろためすとGROUP BY句がないSQLではなぜかエラーが出ない。
結構八方ふさがりな感じだったが、コマンドでmysqlを開始した時に、こんなwarningが出ていたことを発見。
Warning: World-writable config file '/Applications/XAMPP/xamppfiles/etc/my.cnf' is ignored
このへんを見ると、my.cnfのパーミッションを660にするといいとのことで、直してみるとworningもエラーも解消。
また無駄なことに時間を使ってしまった。
eclipseのプロジェクト複数言語を扱う
eclipseのプロジェクトで複数の言語(今回はjavaとphp)で扱ってみたのでその顛末を。
ビルドやデバッグのためにjava用とphp用の両方のプロジェクトを用意していた。
モジュールをコピーしてそれぞれに割り当てるのは論外だが、
複数のプロジェクトに同じルートディレクトリを指定することが出来ないので、
ルートはphpで、javaは一段階下を指定することで対応している。
しかし、これだとctrl+shift+rでのファイル検索では同じファイルが二重に出るなど、
いろいろな場面で都合がわるいので、なんとか1つに統合できないかと思っていたのだけれど、
今日ふと思いついて、単純にルートをjavaに変更してみたらちゃんと動いている。
ステップデバッグも問題ない。
この組み合わせの場合、phpがビルドが不要なのでうまくいっているが、
ビルドが必要な言語の組み合わせではだめなんだろうなあ。