読者です 読者をやめる 読者になる 読者になる

Bird's tech

23歳エンジニアのアウトプット

雑感

https://wirelesswire.jp/2016/01/49784/

 

この記事を読んだ。

これ書いた人、ツイッターで有名な人だと思う。

 

これが正しいか正しくないかはどうでもいいというか、所謂「主語が大きい問題」で片付いてしまうと思うんだけど、

周りを見てるとこういう人が多いのも事実だと思った。

capybaraでurlとりたい時に3分くらいハマったこと

忘れないうちにもうひとつ

 

capybaraで現在のURLは

current_urlでとれる、

 

しかし

expect(current_url).to eq ('とれると思われるurl')

と書いたんだけど、なんか上手くいかなかった。原因は不明なので、要調査。

 

どうするか

uri = URI.parse(current_url)

expect('#{uri.path}').to eq ~

でいけた。

 

何故3分かかったか

 

もっとかかりそうだったけど、ググったらすぐ出たので3分

capybaraを実装してる時に5分くらいハマったこと

忘れないうちにメモ

・slimに対してcapybaraで画像リンクを叩かせたい

・画像リンクにはidはなくclassがありaltはない

 

どうするか

.class_name

  i.image_name

みたいに(たぶん)なってるので、

 

find(class_name).click

とする。

 

何故これに5分かかったか

 

slimを見慣れていないことが原因っぽい。今後はハマらないと思われる。

apacheのドキュメントルート変更が反映されなかった

apacheでgitからcloneしたphpのプロジェクトを動かしたかったのに動かせなくてややハマったのでメモ.
php関係ないです

最初にやったこと

cd /etc/apache2
vi http.conf
でhttp.confを

  <Directory "/path/to/project">

のように変更

しかし,apacheのデフォルト画面が出るだけなので,指定がおかしい,もしくは設定ファイルが間違っている.

直し方

which apachectl

の結果が
/usr/sbin/apachectl
でなかった.
macにはapacheがデフォルトで入っている.上記のパスはそのデフォルトのapacheを示す.
これをデフォルトに戻してやればOK.
私の環境では,brew uninstall httpd24でいけました.(以前brewから入れたapacheが悪さしていた.)

Web界隈について思ったこと

anond.hatelabo.jp

 

これを読んだ.

 

個人的に,仕事で使うのが一つの言語だけだとしても,複数の言語を学んでおいたほうがいいと思う.違いを知らないと,本当の意味でその言語の特徴とかを知れないと思う.

なんだかんだでオブジェクト指向は偉大なので,オブジェクト指向言語を一つ,それ以外の言語,今だったら関数型がいいと思うけど,を学ぶといいと思っている.うちの会社の若い技術者も,Javaしかちゃんとやったことないせいで,全てJavaベースで考えてしまっていることがある.

 

会社としても同じで,テストのやり方とか,会社によって違う.自動テストを行うかとか,テストの粒度とか,レビューどのくらいやるかとか,だいぶ違う.

そういうのは,なるべくいろんなやり方を知っていたほうがいい.これは多分絶対にそう.SIerのテストとWeb系の会社のテストはだいぶやり方が違うけど,別にどっちがいいということもない.テストはバグを潰す手段でしかないから,自動テストをたくさん書くとか,カバレッジをあげるとか,本質じゃない.

 

swift3でToDoアプリの逆作ってる

github.com

 

まだ完成していない.

できたらお知らせしたい.

時間が足りない.

 

Swift3,

言語仕様変わりすぎててほぼ別言語になっていた,

知っていた知識ほぼ無駄な感じになってる.

 

Javaとかはメジャーアップデートのたびに機能が追加される感じで,

あっても従来のメソッドがDuprecatedになる感じなんだけど,

Swiftは言語仕様まるごと変えてくる.

でもその結果Javaがあんな感じになっているので,どっちがいいかというと

よくわからない.

RubyでHaskellのiterateを実装した

なぜ標準ライブラリにないのか

def iterate(init, &block)
  Enumerator.new do |y|
    loop do
      y << init
      init = block.call(init)
    end
  end
end

p iterate(1, $:succ).take(10)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

便利.標準であるべき.