Dvorak配列>>>>>>>>>>QWERTY配列

3日ほど前かQWERTY配列からDvorak配列に乗り換えました。

乗り換えてみようと思ったきっかけがいくつかあるので紹介します。

f:id:panchiga:20131115044444p:plain

 

QWERTY配列っていいものではない

この配列ってタイプライターのための配列みたいなんですよね。

タイプライターのキーの衝突を防ぐために入力する速度を落とすためって説が有力らしいです。

つまりこれはその時タイプライターから乗り換えた人に使いやすいって理由で使い始めてそれが普及してしまったがために今も使われてるといっていいと思ったんです。

実際プログラムとか書いてると左手薬指駆使し過ぎでアホかっておもってましたし。

そうおもいません?

 

・乗り換える大変さを知りたかった

QWERTY配列でもツイートとかはなにも苦労なくできている程度にはつかえていました。それでも慣れてないことをする大変さを知るいい機会だと思って。

 

・乗り換えること自体は簡単

Macだったらことえりがサポートしているので何も苦労はいらないです。

linuxだったらそういうパッケージがあるらしいです

Winは知りません

 

ショートカットキーが実は不便なのですが⌘キー押した時だけQWERTYにすることができます。

 

理由はこんなもんですかね。

 

 

使ってどうだったか

・自動ロック注意いります。慣れてないとどこがどのキーか分からないのでうへえってなります。

・ソフトウェアキーボードありがたがる日が来るとは・・・。

・’ー’押すの楽です

・慣れるまでは本当に大変でQWERTYでよくね・・・ってなります。耐えます。

・体が覚えてるレベルのことはだいたい不便ですが慣れだと思って耐えます。

 

何より小指が忙しくない!!

 

しかし親指は相変わらず仕事しなさ過ぎなので次はハードウェアの変更ですね。

 

 

読んでくださった皆さんもQWERTYなんてやめてDvorakに変えて世界標準を敵に回しましょう。

 

 

 

艦これ × Automator -> 育て屋さん

最近艦これに着任した。霧島さんかわいいよ霧島さん

 

経験値を稼いでレベルアップするという行為が必要になってくるのだがこれに時間費やすのもなんか悔しかったのでいつの間にかレベル上がっててくれないものだろうか例えば寝てる時とかにって思ってAutomatorというアプリがあったのを思い出した。

 

 

 

 

f:id:panchiga:20131019033046p:plain

 

Automatorをつかったレベル上げの手順を書くと

  1. 艦これを開いとく
  2. Automatorを開く(/Applications/Automator.app)
  3. workflowを選ぶ
  4. ●REC
  5. 艦これに戻る(注意:ページの艦これに関係ないっぽい白いところをクリックすること)
  6. 旗艦だけで行ってできるだけダメージくらわないで帰ってこれるところを選ぶ
  7. くらわないでいけるとこまで行ったら帰る
  8. 補給する
  9. 5の時に開いていたところに戻る(母港とか)
  10. Automatorに戻り停止をする
  11. あとは再生をするだけ

 

これだけだと1回行かせることしかできないが複製して何個か連結させることができるのでお好きなだけ。

実行中は自分の操作がほとんど受け付けられないので自己責任で。

cookie clickerのときに3000000回クリックさせるまで止まらないようにしたら1日何もできないなんてことになったので本当に自己責任で。

 

結果として朝起きたらレベルがあがってる。

自分的には1-1-1で帰るのがおすすめです。

 

 

本当は「進む」とか「補給」とか「出撃」とかの画像探させて頭良さげにやらせたかったんだけどよくわからなかったので諦めた。よくわかる人は前からやってそうですね。

もっといい方法あったら是非教えて下さい!

 

ふぃっしゅっしゅ

裏サンデー|寿司 虚空編

http://urasunday.com/u-2_09/

 

という漫画でふぃっしゅ数っていう大きい数字を生み出すために生まれた関数の説明をしていた。よくわかんなかったけどちょっとプログラムにやらせてみようって思って書いてあることそのまま書いてみた。

gist6850154

 

実際に動かしてみたら3まではちゃんとやってくれるんだけど4とか5にしてみたら

stack level too deep (SystemStackError)

こんなエラーが出てしまってので無限に再帰されるって判断されちゃったのかなーって

このエラーの解決方法を調べたらバージョン上げればいいって書いてあって自分が最高にザコっぽかったです。

 

 

Cならやってくれるかもしれないって思ってCでも書こうと思ったんですがCの書き方忘れててとてもかなしかったです。

Ruby よくわかんない

 

Rubyちょっとくらい書けるようになってるよなって思ってひとまずAOJのVolume0を解いてたんだけど2問目で早速躓いた

List of Top 3 Hills

 

#最初に書いたコード

highest = 0, higher = 0, high = 0 # top3 highest > higher > high 

 

10.times{ 

x = gets.to_i

 

if x > highest 

high = higher

higher = highest

highest = x

end 

 

if x > higher

high = higher

higher = x

end

 

 

if x > high 

high = x

end

 

}

print highest + "\n" + higher + "\n" + high + "\n"

 

自分ではミスのないコードだって思ったんで実行してみたんだけど

    `>': comparison of Fixnum with Array failed (ArgumentError)

なるエラーが起こって調べてみたら型が違うものを比較してて混乱してるって似たような文面のエラーが出てきた人のブログがあった

ちゃんと整数に初期化してるし比較も整数になってるよな・・・なんでだってなった

 

 

よくわかんないけど試しに配列に置き換えてみようって思って配列にしてみた

#配列に変更したコード

hills = [0,0,0] # top3 highest > higher > high 

 

10.times{ 

x = gets.to_i

 

if x > hills[2] 

hills[0] = hills[1]

hills[1] = hills[2]

hills[2] = x

 

elsif x > hills[1]

hills[0] = hills[1]

hills[1] = x

 

elsif x > hills[0] 

hills[0] = x

end

}

3.times do |i|

puts hills[2-i]

end

 

すると今度はエラーも出ずにAOJにも無事に受理された

Rubyはまだまだわからないことが多い

 

 

追記

失敗した方のコードの初期化してる部分でもしかして?って思って

 highest = 0, higher = 0, high = 0

から

highest = 0

higher = 0

high = 0

にしてみたら通ってその・・・

そういえば1行で多くのこと書きたいんだったら改行か";"をはさまないと行けないんだったなーって・・・

 

じゃあ失敗してるものは横に並べて宣言してるから配列みたいな宣言になってる?よくわからん

Ruby始めてます2

基本的な文法でへ~って思ったところとか

 

リテラル

プログラムの中に直接記述した文字列のことを文字列リテラルという
プログラムの中に直接記述した数値のことを数値リテラルという
 
 
文字列をあたらしく作る時、
String.new("hage")
と書く
この時
・Stringがレシーバー
・newがメッセージ
・プログラムがセンダー
となる
 
表示したい文字列が決まっている場合→文字列リテラルが便利
表示したい文字列がプログラム内で作成される場合→String.newが便利
 
ローカル変数の宣言
小文字、または_から始まる名前
 
ところで
str1 ="hoge"
str2 = 'hage'
もしこれを
str1 = str2
としたらどうなると思う?
 
普通にstr1がhageになった
" "と' 'で区別はないらしい
ウソでした!ありました!
" "は制御文字(\nのようなもの)を意味する通りに使う(\nならば改行)。式展開(?)とバックスラッシュ記法を扱える。
' 'は\'(シングルクオートを表す)と\\(バックスラッシュそのものを表す)以外はその文字のまま解釈される 
 
putsやprintはクラスの指定なく使えるメソッド
こういうのを組み込みメソッド(詳しくはググって)という
 
chop 最後に読み込んだ文字列の最後の文字を取り除く
chop! の方が使いそうだなという印象
(破壊的メソッド)
 
sleep(sec)
sec秒だけプログラムの停止
Arduinoで言うdelay()と同じ
 
p(obj) オブジェクトのデバックに使われる
 
print "hoge
hage
"
こんな書き方しても怒られないの初めて見た
しかもこれで
print "hoge\nhage\n"と同じいみになるらしい
直感的な文字の入力ができる
 
print CLEAR
でターミナルでのctrl+lに相当した事ができる
 
文字列の足し算
puts "hoge " + "hage" 
hoge hage
 
文字列を追加
hoge.concat("hage")
hoge << "hage"
 
0x 16進数
0 8進数
0b 2進数
 
1.234e20
1.234の10の20乗を表す
 
printfとsprintfはCのsprintfにおける書式化文字列もとに作成されてて
%[引数指定$][フラグ][幅][.精度]指示子
 
a = 123
print "a = ", a , "\n"
print "a = #{a} \n"
は同じ
 
日付データを使いたい
require 'date'
日にちが知りたい
→ day = date.today
 
新しい日付オブジェクト
name = Date.new(yyyy,mm,dd)
 
print name
しても
print Date.new(yyyy, mm, dd).to_s
しても同じ結果が出る
 
array[[hoge,hage],[test,test],[uoo,waa]]
hageが欲しかったら
array[0][1]
 
puts array.index("hage")
# nil
 
Rubyの配列は型が違っても入れられる
intとかStringとか入れられる
array = [123, "woo"]
こんなのもOK
 
 
初歩的な文法とか覚えた覚えたとか思ってたけどきのせいでしたね・・・
printの" "内で改行されたものがそのまま改行されたのが一番へーってなった12へーくらい
あとconcatがなんか好き

Ruby始めました

Homebrewを使ってみようってなった

 
インストールが終わったのはいいんだけどiTermではなぜかbrewコマンドが使えず、元々あるターミナル.appだとbrewコマンドが使えた
iTerm上でman brewしてもbrewの情報はしっかり出るのに
brew command not foundになってよくわからない
 
 
readlineとopensslを入れる
readlineはコマンドラインの1行入力を支援してくれる物
opensslはネットワーク通信を暗号化するライブラリのオープンソース
     brew install hoge
 
rbenvも入れる
rbenv 開発者の使いたいバージョンのルビーを切り替えて使うことができる
 
bash_profileの内容をreadlineなどを入れる過程で変えていく

     PATH=/usr/local/bin:/usr/local/sbin:$PATH

     export PATH
     if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
 
ruby-buildをインストールする
     rbenvを使ってRubyをインストールするためのパッケージ
 
これまでにビルドした2つのライブラリを使いたいのでこれらのライブラリの場所を指定
バージョンによって下線部が変わるかも

 

CONFIGURE_OPTS="--with-readline-dir=/usr/local/opt --with-openssl-dir=/usr/local/opt" rbenv install 1.9.3-p194 
 
これらはopensslを入れる時にこんなの↓が出てくると思う
    LDFLAGS:  -L/usr/local/opt/openssl/lib
    CPPFLAGS: -I/usr/local/opt/openssl/include
これの下線部が上の下線部と対応する
 
 
この段階で
     rbenv version
をやってもまだ1.9.3-p194が使える段階にはなっていない
なので
     rbenv versions
で何が利用可能かをしらべて
     rbenv global 1.9.3-p194
     rbenv rehash
でバージョンを切り替える
成功していれば
     ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.3.0] 
こんな表示になるはず
     which ruby
したら
     /Users/name/.rbenv/shims/ruby 
となるはず
失敗したら
     /usr/bin/ruby
とかになってるかも
 
rubyのバージョンが更新されていなかったら
     tail ~/.bash_profile
で修正がちゃんと出来ているか確認
できてなかったら書き加えてターミナル.appを一旦消してもう一度起動
 
これでいつでもバージョンの切り替えができますね(爽やか
 
 
 
Rubyの基本的な文法はIPAが無料配布してるRubyプログラミング入門で多少は覚えたのですがプログラミングの楽しいこと知ってないなって思って作りながら学ぶRuby入門を先日買ってきました。
"はじめに"のところで「プログラミングを学ぶとは」って話があって文法を学んだからってプログラミングのお勉強が終わったわけではないので知ってること使って楽しくものづくりしましょうって書いてあってこれが知りたかったんだな、自分はずっと道に迷ってたんだなあって感動しました。自分の知ってることで遊べるものとか作っていつのまにかRubyマンになってたいです。
 
1日1部ずつ進めるのが目標ですね。
 

今回知ったもの
Homebrewの存在Macportsがいるとめんどくさいこと
brew install hoge
rbenvの存在
versionとversionsは別物
tailコマンド
 
 
 

MacのDock

Dockのいじり方
 
terminalを開きます
(◞‸◟)
 
英語
( ◠‿◠ )
 
入力します
(`・ω・´)defaults write com.apple.dock persitent-others -array-add '{tile-data={}; tile-type="spacer-tile";}'; killall Dock
 

_人人人人人人人_
> 変化しない <
 ̄Y^Y^Y^Y^Y^Y ̄

 
入力します
defaults write com.apple.dock persitent-others -array-add '{tile-data={}; tile-type="spacer-tile";}'; killall Dock
 

_人人人人人人人_
> 変化しない <
 ̄Y^Y^Y^Y^Y^Y ̄

 
楽しい!!
✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
 
 (※正しい文→ defaults write com.apple.dock persistent-others -array-add '{tile-data={}; tile-type="spacer-tile";}'; killall Dock)
 
 
スタック、グリッドのアニメーションを変化

defaults write com.apple.Dock use-old-grid-animation -bool TRUE; killall Dock

治すには
defaults write com.apple.Dock use-old-grid-animation; killall Dock 
 
今⌘+Hで隠れてるのを半透明にする
defaults write com.apple.Dock showhidden -bool TRUE; killall Dock 
治すには
defaults write com.apple.Dock showhidden; killall Dock 
 

f:id:panchiga:20130603031035p:plain

 

 
ドックの感じを3D → 2D

bash-3.2$ defaults write com.apple.dock no-glass -bool true

bash-3.2$ killall Dock
bash-3.2$ defaults delete com.apple.dock no-glass
bash-3.2$ killall Dock
 
ドックに空白を追加
bash-3.2$ defaults write com.apple.dock persistent-others -array-add '{tile-data={}; tile-type="spacer-tile";}'; killall Dock
 f:id:panchiga:20130603031308p:plain
 
ウィンドウの表示を少し変える
defaults write com.apple.dock mineffect suck
治すにはドック上でアニメーションを変える
 
スタックに最近使った項目を追加
defaults write com.apple.dock persistent-others -array-add '{ "tile-data" = { "list-type" = 1; }; "tile-type" = "recents-tile";}';killall Dock 
 
 
リストを追加
defaults write com.apple.dock use-new-list-stack -bool TRUE; killall Dock  
 
マウスオーバーで選択中のが光る(下のはlistにしてる)
defaults write com.apple.dock mouse-over-hilite-stack -bool TRUE; killall Dock 

f:id:panchiga:20130603031508p:plain

 
参照書籍 カンフーマック