2015年10月17日土曜日

Evernote Webでtextを貼り付けると、行頭のスペースが削除されてしまう

Evernote Webで、テキストエディタからcopy & pasteすると、行頭のスペースが削除されてしまう。
Wordに入力したり、bloggerに一旦入力したものを貼り付けると、書式付きの貼り付けとなってスペースも残る。

2015年9月30日水曜日

TED: Alix Generous: How I learned to communicate my inner life with Asperger's を見て

TEDの「Alix Generous: How I learned to communicate my inner life with Asperger's」を見た。

アスペルガー症候群(ASD)の人の話。
ASDの人のコミュニケーションの訓練をするためのアプリを作っている
明晰夢を見る事が出来る
明晰夢の中では何でも思い通りになって楽しい
でも、明晰夢よりASDの人が能力を発揮できるのを助ける事の方が素晴らしい

フォトリーディング at Trump Soho In New York を見て

Youtubeの「フォトリーディング at Trump Soho In New York」を見た

[フォトリーディングの手順]
目的: 何の為に読むのか
予習: 本を買う前にやっている様な事。どんな情報が得られそうか
集中: 深呼吸やミカン集中法
見る: パラパラと全ページめくる。ところどころ抜けてもOK。見るだけ
トリガーワード: 適当に拾い読みしながら、気になる言葉を書きとめる(10-20個)
質問: 書き留めた内容から、自分が知りたい事を質問リストにする(10-20個)
(休憩)
拾い読み: 質問の答えを拾い読みで探す、マインドマップにまとめる

[ポイント]
読み方の選択肢を増やす
目的、本の種類によっては通し読みが必要な場合もある
パラパラと見る事で、その後の読みにくさを軽減する効果もある
トリガーワードも拾い読みで探す
拾い読みの方法の一つ?
記憶に残らない様な所まで読み込んでも意味が無いと言う事?
記憶に残るのはポイントだけだから、そこだけ読もうと言う事?

2015年9月17日木曜日

主観、客観、そして、主観

人は主観から始まり、客観的になろうとするが、結局主観に帰ってくると言う気がしてる。

幼い時は当然自分中心で、他人の事を意識する事はしない。
主観的で自分の視点からのみ世界を見ている。

少し大きくなって思春期も近くなると、他人を強く意識する様になる。
他人から自分がどう見えるのか、どう思われているかなどが気になる。
自分と他人を比べて、どちらが得をしている、損をしているとか考える。
公平性を求めて客観的なれるのが理想だと考えたりする。

年を取って色々な経験を積んでくると、そもそも自分と他人が比較出来ない事に気が付く。
自分が自分である以上、完全に客観的になる事も出来ないし、完全に他人を理解したり、理解されることも無理だとわかる。
人は主観的にしかなれなくて、頼れるのは自分の価値観だけだ。
自分の価値観が確立出来れば、自分とは異なる、他人の価値観を受け入れたり、尊重したりも出来るようになる。

その先は。。。?

2015年8月19日水曜日

英語tips

[too short a time]

a short timeのshortをtoo(副詞)が修飾するために語順変更

[toward, towards]

意味は同じ、towardがアメリカ、towardsがイギリス英語

[his or her, their]

his or her の代わりに、theirを使える(くだけた言い方)

2015年8月2日日曜日

Windows 8.1からVagrant⇒Virtual Box⇒Ubuntu経由でOctaveを使う

(0) 使用したソフトウエア

Windows 8.1 64 bit
Virtual Box 4.3.28
Vagrant 1.7.2
Ubuntu 14.04 LTS 64bit
Octave 3.8.1
Xming 6.9.0.31
PuTTY 0.64

UbuntuとOctave以外は既にインストール済だったものを使ったので、インストール方法は省略。


(1) 最小限のVagrantfileを生成する。
> vagrant init -m
Vagrantfileの中身はたったこれだけ。。。
Vagrant.configure(2) do |config|
  config.vm.box = "init"
end
VagrantfileはRubyで書かれているので、制御構造や変数、配列などはRubyのまま使える。


(2) ベースにするboxを設定する。

Vagrant Cloudにあるオフィシャルのubuntuの64bit版を使う。
Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"
end
boxインストールされていない場合のURLも指定できるが、defaultのVagrant Cloudから持ってくる場合は省略可能。

ホストとゲストで64bit/32bitが異なるときは、他にも設定しないと上手く動かないらしい。
ここではホスト、ゲストとも64bitなので問題なし。


(3) とりあえず、vagrant upしてみる

ダウンロードが始まったが、残り時間が一時間弱。。。
> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'ubuntu/trusty64' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'https://atlas.hashicorp.com/ubuntu/boxes/trusty64'
    default: URL: https://atlas.hashicorp.com/ubuntu/boxes/trusty64
==> default: Adding box 'ubuntu/trusty64' (v20150609.0.10) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150609.0.10/providers/virtualbox

    default: Progress: 50% (Rate: 95875/s, Estimated time remaining: 0:33:10)
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

Recv failure: Connection was reset
ダウンロードに失敗してしまった。タイムアウト?


(4) upの前にbox addで追加してみる。
> vagrant box add ubuntu/trusty64
==> box: Loading metadata for box 'ubuntu/trusty64'
    box: URL: https://atlas.hashicorp.com/ubuntu/trusty64
==> box: Adding box 'ubuntu/trusty64' (v20150609.0.10) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150609.0.10/providers/virtualbox.box
==> box: Box download is resuming from prior download progress
    box: Progress: 88% (Rate: 47705/s, Estimated time remaining: 0:02:58)
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

Recv failure: Connection was reset
同じメッセージが出て今度は88%で失敗。


(4) ローカルファイルからbox addする。

下記を参考にして、Chromeでダウンロードしてからローカルファイルからaddする方法を試してみる。
http://hayachi617.blogspot.jp/2013/09/windows8-provargrant.html

vagrant box addの時に表示されたダウンロード元の下記を、Chromeでダウンロードする。
https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150609.0.10/providers/virtualbox.box
> vagrant box add ubuntu/trusty64 trusty-server-cloudimg-amd64-vagrant-disk1.box
今度は無事にaddできた。


(5) もう一度upしてみる。
> vagrant up

(6) 更にゲストOS(ubuntu)にsshで接続
> vagrant ssh
ただし、Windowsのデフォルトではsshクライアントが入っていないので注意。
ここではGit Shellのsshクライアント使って接続している。
PuTTYの他のsshクライアントを使って、vagrant up時に出力されたアドレス/ポートに接続する事も出来る。
vagrant sshは上手く行かない事も多いようなので、PuTTYの方がおススメ。


(7) この状態でもゲストOSから外部ネットワークにはアクセス出来る。

例えば、下記の様にgoogleからwgetする事も出来る。
vagrant@vagrant-ubuntu-trusty-64:~$ wget http://www.google.com

(8) octaveを入れてみる。
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get update
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get install octave
300MB必要と言ってくるが構わず進める。ここもダウンロードに時間はかかるが成功。
vagrant@vagrant-ubuntu-trusty-64:~$ octave
で、octaveのcliが上がる。versionは3.8.1。
最新は4.0.0。aptのrepositoryを指定するとさらに新しいバージョンが取れるというのでやってみる。
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-add-repository ppa:octave/stable
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get update
vagrant@vagrant-ubuntu-trusty-64:~$ sudo apt-get upgrade octave
versionは3.8.1のまま。ppaもまだ4.0.0には更新されていない様子(2015/8/1)
ソースからコンパイルする方法も紹介されていたが、今回は省略。
http://askubuntu.com/questions/645600/how-to-install-octave-4-0-0-in-ubuntu-14-04
sudo apt-get build-dep octave
wget ftp://ftp.gnu.org/gnu/octave/octave-4.0.0.tar.gz
tar xf octave-4.0.0.tar.gz
cd octave-4.0.0/
./configure
make 
sudo make install

(9) X経由でGUIを使えるようにしてみる。

Vagrantfileの内容は config.ssh.forward_x11 = true 一行追加のみ。
Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.ssh.forward_x11 = true
end
Windows側のXserverにはXmingを使う。
無償版は少し古いがR6.9ベースのVer6.9.0.31が最新。
有償版ならR7.5ベースのモノがある。
XmingからPuTTYを使用してssh port forwardingを行うため、PuTTYも必要。
Xmingに付属しているXLaunchを使ってXmingを設定済の状態で起動する.xlaunchファイル作成する事が出来る。
中身はただのxmlファイル。
下記をoctave.xlaunch等の名前にして保存すれば、octaveのguiをいきなり起動出来る。
<?xml version="1.0"?>
<XLaunch xmlns="http://www.straightrunning.com/XmingNotes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.straightrunning.com/XmingNotes XLaunch.xsd" WindowMode="MultiWindow" ClientMode="StartProgram" Program="octave --force-gui" ClientStart="PuTTY" RemoteHost="127.0.0.1" RemoteUser="vagrant" ExtraSSH="-P 2222" Display="0" Clipboard="true"/>

(10) octaveのインストールをVagrantfileのprovisionで実行できるようにする。

octaveのインストール用shell scriptをsetup.shに書いてVagrantfileと同じdirに置く。
Vagrantfileでprovisioning時にsetup.shが呼び出される様にする。

Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.ssh.forward_x11 = true
  config.vm.provision :shell, privileged: false, :path => "setup.sh"
end
setup.sh
#!/usr/bin/env bash

sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave

(11) 公開鍵暗号を使った接続(PuTTY)

下記を見て設定を行う。
http://www.kuins.kyoto-u.ac.jp/news/47/putty-gen.html

PuTTYgenで公開鍵(id_rsa.pub)、秘密鍵(id_rsa.ppk)を作成。
pscpで公開鍵をWindowsからUbuntuに転送。
Ubuntu上のssh-keygenでid_rsa.pubからauthorized_keysを生成。
authorized_keysのパーミッションを600にする。
id_rsa.pubは削除しておく。
PuTTYのカテゴリの『接続』-> 『SSH』-> 『認証パラメータ』->『認証のためのプライベートキーファイル』に秘密鍵(id_rsa.ppk)を指定。
PuTTYのPagaentに秘密鍵(id_rsa.ppk)を指定しておけば、パスフレーズの入力をPageant起動時の一回のみに省略できる。

仮想サーバへのSSHログインは、PC内部ネットワークを使っている。
したがって、外部ネットからログイン時にパスワードを盗聴されるリスクは低い気がする。
何にせよ、やり方を知っておくのは悪くない。


(12) TODO

Vagrant=>Virtual Box=>Ubuntu=>Docker=>Octaveにしてみる。
Vagrant=>Docker=>Octaveにしてみる。

2015年6月28日日曜日

ipythonをgnupack-11.00にインストール

ipythonをgnupack-11.00にインストールした。
cygwinのバージョンが古いためかipythonも古いバージョンを入れたら動いた。

(1) eazy_install (setuptool 18.0.1)のインストール

下記からez_setup.pyをダウンロード
https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

# python ez_setup.py

(2) pip 1.4.1のインストール

# easy_install https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz

(3) pyreadline 2.0のインストール

# pip install pyreadline==2.0

(4) ipython 1.2.1のインストール

# pip install ipython==1.2.1

(5) インストール状況
# easy_install --version
setuptools 18.0.1

# pip freeze
freeze==1.0.9
ipython==1.2.1
pyreadline==2.0
rdiff-backup==1.2.8
six==1.9.0
wsgiref==0.1.2

# pip list
freeze (1.0.9)
ipython (1.2.1)
pip (1.4.1)
pyreadline (2.0)
rdiff-backup (1.2.8)
setuptools (18.0.1)
six (1.9.0)
wsgiref (0.1.2)


[ipython notebook インストール失敗]
次にnotebookのインストールも行ったがこちらは上手く行かなかった。
以下やった事のメモ。

# pip install https://pypi.python.org/packages/2.7/p/pyzmq/pyzmq-14.7.0-cp27-none-win_amd64.whl#md5=db1836d115dd25f9ba3ea2cd2bbd5d16
# pip install jinja2
# pip install tornado-4.2-cp27-none-win_amd64.whl
(http://www.lfd.uci.edu/~gohlke/pythonlibs/#tornadoから.whlをダウンロード)

2015年2月16日月曜日

IMEの中国語入力

IMEの中国語入力をインストール
中国語(簡体字、中国): 簡体字中国語 - Microsoft Pinyin New Experience
中国語(繁体字、台湾): 中国語(繁体字) - New Phonetic
-> Property -> keyboard -> HanYuPinyin
Alt+Shiftに言語を切り替える => このキーバインドは無効に設定した方が良い。
中国語ではShiftで直接入力とpinyin入力を切り替える

2015年2月9日月曜日

TEDx Sappro: 思うは招く: 植松 努 を見て

TEDx Sapproの「思うは招く(植松 努)を見た。
http://tedxtalks.ted.com/video/Hoping-Invites-%7C-Tsutomu-Uemats

北海道の赤平でリサイクル用のマグネットを作っている。
本業とは別にロケットも作っている、人工衛星も飛ばした。
宇宙の開発は夢ではなく手段。
お祖母ちゃんの教え: お金は紙切れになるかもしれないから、本で知識を貯めるべき。
お金をはらって手に入れる => サービス => してもらう
自分で出来る => してあげる => 仕事に出来る
夢と言うのは出来ない事をやろうとする事
出来ない事をやろうとするのは孤独 => 本の中の偉人に励まされた
初の経営 => 大成功 => 調子に乗り過ぎて大失敗 => さらに孤独になった
どーせむり => 諦めてしまう事は楽な事
自信無くした人 => 他人の自信を奪おうとする => より弱い物から奪おうとする
宇宙開発は無理 => やった事がないひとが言っている => 本当??
足りない => 助け合える。
中途半端 => 何もならやないよりまし。
教育 => 失敗を体験ためのもの
やった事がないことをやる
失敗したら逃げる => 苦しい => 成長中
失敗はより良くするためのデータ
「どーせむり」ではなくて「だったらこうしてみたら」と言おう。

人は自分より可能性がある人を潰そうとする性質がある。
自分の存在を脅かす可能性があるから排除すべきと言う防衛本能。
自分が「諦めた」理由の正当性を脅かすから。
自分が自分自身に対して諦めない事が重要。
そうすれば他人の「諦めない姿勢」にも肯定的になれるはず。

2015年1月31日土曜日

Three good things program

ここ一年半位毎日続けている「毎晩その日にあった良い事を3つ思い出して記録する」活動について、良さそうな解説記事を見つけた。
http://www.president.co.jp/pre/backnumber/2009/20091116/12730/12737/

良い出来事を意識して探すことで良い事に気が付きやすくなる。
物事の良い側面をとらえようとする思考が身につく。

と、ポジティブ思考のトレーニングとしての効果が大きいと思う。

Final Project of Learning How to Learn

MOOC CourseraのLearning How to Learnと言うコースのAssignment 2 Final ProjectをPreziと言うオンラインプレゼンツールを使って作成してみた。
https://prezi.com/yvfvgpdy4lq_/tips-for-learning-a-foreign-language/

Prezi自体は思ったより難しくなかった。中々良さそう。
内容を考える事自体は結構大変だったけど。。。

Courseraの課題は通常は今後コースを受ける人の事を考えてネットには上げないものだが、このコースのFinal Projectについては公に積極的にsharingされている。
https://sites.google.com/site/howthebrainlearn/home

2015年1月21日水曜日

プレゼン作成ツール

PPT以外にもonlineのプレゼン作成ツールが沢山ある

Powtoons, Pinterest, Prezi, slideshare, emaze

Preziだとカッコいいプレゼンが出来そう。
Powtoonsだと子供向けのアニメが簡単に出来るかも?

2015年1月20日火曜日

emacsでreformat

fill-paragraph (M-q) で特定の行幅で改行しなおすことが出来る
幅は set-fill-column で指定する (default 70文字)

2015年1月17日土曜日

三洋の食洗器DW-S2000の水位センサの分解掃除

三洋の食洗器DW-S2000の水位センサを分解掃除した。
給水が止まらなくって水が漏れる(溢れる)問題が直った。
参考にしたサイトは下記。
http://yuyu-sasa.blog.so-net.ne.jp/2011-11-20

2015年1月14日水曜日

英単語記憶

場所法とストーリー法を使った英単語の記憶術適用を試行した。

[概要]
20words / 20場所
74words / 21場所
192words / 24場所
88words / 11場所

[覚える速度]
概ね1単語覚えるのに1分程度使っている気がする。
単語を定着させるのに何回か記憶<=>思いだしを繰り返すのを含めて

[思い出す速度]
概ね10語思い出すのに1分程度掛かる感じ。
思ったより時間が掛かっている。
これは途中で突っかかったりするからかも。

[定着率]
74words / 21場所を10日ぶり位で復習した。
トータル52/74, 前半43/46, 後半9/28
特に後半の複数場所に多くを割り当てた所がダメだった。
一つの場所に一単語なら長期間覚えられるかもしれない。
ストーリー、イメージを工夫する。場所を細分化する。
後半は単純に復習の繰り返しが少なかったせい? interval repeating?

[思い出す練習として]
思い出すと行為が記憶の定着に非常に有用。
記憶術で思い出すキッカケを作っておけば思い出す練習を繰り返すのは簡単になる。
この目的なら練習の前に見直して覚えなおしても意味はあるかも。

[改善案]
一つの場所に一単語、もしくは今より少ない単語にする。
ベースを増やす。場所を細分化する。部屋=>体の部分、の様に2段階にする。
マインドマップを書き出す。
ストーリー、イメージを意味と直結させる。インパクトを強くする。
繰り返し学習を行う。間を空けた繰り返し学習を行う。

2015年1月13日火曜日

プログラムは矛盾に弱い

会社で仕様記述の形式言語導入について少し議論した。
そこで出てきたのが「形式言語を使うには論理的思考が必要」と言う話。
そもそもプログラムを開発するためには論理的思考が必要なので、論理的思考が弊害にはならない気はするが。。。

では、どうしてプログラムの開発に論理的な思考が必要なのか?
それはプログラムが矛盾に弱いと言う性質があるからだと考えられる。当たり前の事だが。
少しでも矛盾があるとそこから綻びが生じて想定外のトンデモナイ動作をする可能性がある。
多少の矛盾に折り合を付けてそこそこの動作をするということが出来ない。

日本人は矛盾に強い。矛盾している状態を受け入れられる。
欧米人は矛盾に弱い。ローコンテクスト、異文化は矛盾に弱い。
どちらがソフト開発に向いている?

一般的には矛盾が無い様に、将来矛盾が生じにくい様に気を付けて作成する必要あり、矛盾に対して敏感である必要がある。
普段からそうした論理的思考に慣れていれば形式言語も使いやすい。

ただ、一方で世の中矛盾だらけであり、矛盾に如何に折り合いを付けてプログラムに落とし込めるかの方がハイレベルな課題とも考えられる。

2015年1月9日金曜日

記憶術に関するHP

記憶術に関する基本的な事が掛かれているサイトを見つけた。
http://brain-create.net/index.html

単なる記憶術の宣伝ではなくて、訓練には時間が掛かるなどデメリットも書いてあり信頼できそう。

[記憶術の基本]
イメージ結合法: 二つの事柄を忘れにくい視覚的イメージで結びつける
基礎結合法: 場所法の様に忘れないベースの各部分にイメージ結合法で記憶対象を結びつける
イメージ変換法: 記憶対象とベースを忘れにくい視覚的なイメージに変換する

と言うことで、基本的には「場所法」が王道らしい。
ベースの各部分に別のベースを結び付けて、ツリー状に記憶を増やしていくと言うことも出来るらしい。

[忘れにくい視覚的イメージ]
イメージを巨大化する
イメージを擬人化する
イメージ同士を直接的に結び付ける
他の似たものと混同しにくいイメージを選ぶ
数字などの抽象的なモノには語呂合わせでイメージ化する

[その他]
ベースの効率の良い作り方、増やし方については書いていなかった。
数百のベースを持つことも可能とあったので、やはり相当数のベースを使う事を想定している。
ベースにはストーリも使えるかも知れない。
今自分で行っている英単語192個の暗唱はイメージと記憶対象の結びつきが弱いし英単語を語呂合わせなしでそのまま覚えているので効率が悪いのかもしれない。

「つぶやき」の利点

twitterの凄い所は情報発信の負荷を「独り言をつぶやく」レベルまで軽減したと言う事。
「独り言をつぶやく」と言うのは、他人に何かを伝えるためではないので、話し手の都合のみで行える。
価値が高い必要も、発言に責任も義務もない。
でも、そのつぶやきを聞いた人が、聞き手の都合で何かに役立てられればそれでいい。
役に立たないなら単に無視すれば良い。

普通の相手を意識した情報発信であれば、相手に受け取って欲しいという気持ちや、受け取ってももらえない事に対する恐怖などから発信を躊躇してしまう事が多くなる。
この心理的な負荷を乗り越えるのは結構エネルギーがいる。
これを「独り言をつぶやいているだけ」と捉えられれば、期待や不安が軽減して気軽に発信出来るようになる。

2015年1月5日月曜日

場所法とストーリー法の組み合わせ

場所法とストーリー法の組み合わせで一日に116英単語の暗唱を行った。
駅の中の15カ所の場所で短いストーリーを作成して8個の英単語を割り当ててみた。
記憶にかかった時間は2時間程度。

一カ所に8個の英単語というのは少し多い気がする。
さらにその中のストーリーで3分割して覚えている感じ。

流石にこの数だと明日起きた時まで覚えている自信はないが。。。

場所をさらに細かく分割して使えれば記憶定着率やスピードを上げられるかもしれない。