夜フクロウが起動できない: 起動直後にずっと読み込み中になって固まる

キャッシュ貯め過ぎ問題(多分)

解決方法

  • キャッシュを消す。
$ sudo rm -fr ~/Library/Containers/com.YoruFukurouProject.YoruFukurou/Data/Library/Caches/com.YoruFukurouProject.YoruFukurou

やったこと備忘録

ググってキャッシュ消せば動きそうな気配だけはわかっていた。
が、 ~/Library/Caches の中に夜フクロウのキャッシュがない!

  1. 夜フクロウ起動 → 固まる
  2. Ctrl+space で spotlight からアクティビティモニタを起動
  3. アクティビティモニタに表示される夜フクロウをダブルクリック
  4. 開いているファイルとポート を見る
  5. よくわかんないけど一番上のとこを今読んでる気がする(勘)
    • ~/Library/Containers/com.YoruFukurouProject.YoruFukurou/Data
  6. 夜フクロウを強制終了(→強制終了)
  7. sudo mv ~/Library/Containers/com.YoruFukurouProject.YoruFukurou/Data ~ して起動
  8. 夜フクロウを強制終了
  9. ↑のディレクトリの中を見ていった
    • Library/Caches があった、まちがいない!
  10. sudo mv ~/Library/Containers/com.YoruFukurouProject.YoruFukurou/Data/Library/Caches/com.YoruFukurouProject.YoruFukurou ~ して起動
    • 起動できた!!!
  11. rm -fr ~/com.YoruFukurouProject.YoruFukurou

Sendagaya.rb のこと #sendagayarb

Sendagaya.rb #100 Drinkup - Sendagaya.rb | Doorkeeper
おめでとうございます!!

100回おめでたいDrinkupのときのこと

急に思い立ってふらっと東京に行ってみたい、という気持ちをずっともっておりまして

この日の札幌はとても天気が良くて気持ちがよくて… 前々日の運動による筋肉痛が残っていて脱力感でフワフワしていたり、前日に弟の誕生日会があってフワフワしていたり、朝7時前におきて実家から自宅に戻って寝不足でフワフワしていたりで、もうずっと現実感がフワフワしていて、そこへタイムラインで #sendagayarb 情報が流れてきて、

ちょっと羽田から渋谷までの交通調べてみては?
ついでに飛行機の時間も調べてみては?
今から行けば間に合うのでは? (14:30)
東京行かなくても空港に行って作業すれば良いのでは? (普通に仕事)
とりあえずこの快速エアポートに乗ってみれば良いのでは?
1時間前だし航空券予約してみると良いのでは?
もう時間だしとりあえず飛行機乗ってみては?

という感じで東京にたどりつきました。フワフワ〜!

fukajunさんとtkawaさんがお化けを見たみたいな感じで へっ!? って言ってて驚きとドン引きがみてとれました。スミマセン。あたたかく迎えてくれてありがとうございます(><)
一緒にお祝いできて嬉しかったです!!

ついでに参加した Sendagaya.rb ふりかえりする

Sendagaya.rb #45

2013-04-15(月)19:00 - 21:00
千駄ヶ谷.rb #45 #sendagayarb - Facebook
#sendagayarb #45 - Togetterまとめ

初参加。すごい、私のツイートから何も読み取れない!
時間を勘違いしてた上に新宿駅で30分くらい迷って帰りたいって嘆いていたのを覚えております。なのに到着直後のツイートが「#sendagayarb なごむ〜!」で、よかったね(^ω^`) という感じ…

この日はppworksさんが用意してくれたテストコードを題材に良いテストの書き方を話しました。私は全然Railsのテストを書いたことがなかったので、みんながワイワイしてるのを眺めていました。
普段使っている人同士が話しているのを見るのは楽しいなあ、願わくばこの輪に入って一緒にお話できますように、みたいな思いをいだきました。Railsの仕事をはじめた頃だったのでより強くそう思った気がする。
当日のハッシュタグなしの関連ツイート。
ハッシュタグつきよりそれっぽいこと書いてる、なんでこっちにつけなかったし




懇親会は大戸屋で、温野菜と豚しゃぶ定食食べた気がする。

Sendagaya.rb #81

2014-05-26(月)19:30 - 21:30
Sendagaya.rb #81 - Facebook
Sendagaya.rb #81 - Sendagaya.rb | Doorkeeper

仕事でうまく書けなかったコードの相談をしたりパンくずツールを比較して選んでいた。Gretel 良いねっていう話に。どっちも翌日からの仕事がはかどりました! 便利!
勉強会で仕事の相談して良いのかちょっと悩んだけど、私の理想の勉強会ってこんな感じだなぁと思いました。初参加の時もそうだったけど、普段使ってる人が使ってて思ったこと悩んだことを話せる場で、知識持ち寄ったり調べたりして一緒に解決するの。まさに勉強会! ステキ!
Railsで仕事をはじめてから丸一年以上経っていて、前回と比べてコードの話が少しできるようになっていて嬉しかったです。

懇親会は鳥貴族でみんなに関西弁を喋ってもらいました!! 至福!

Sendagaya.rb #88

2014-09-15(月)19:00 - 21:00
Sendagaya.rb #88 - Facebook
Sendagaya.rb #88 - Sendagaya.rb | Doorkeeper

tkawaさんのRubyKaigiの発表リハーサルでした。豪華!
発表ききながらわかんないわかんないって1人だいぶわからない感じで質問重ねていた気がする…。多分きいてるひとの中でダントツ知識が少なかったと思うのだけど、色々説明してくれてすごく面白かった! わからないのを意見として拾ってもらってありがたかったです。勉強不足でもあるので、勉強します🙇
WebAPIをうつくしく作った時の、うつくしく作れたわー感はくせになりそうな気がする(フワフワ認識)。WebAPIとやら勉強してみるかー! (って言って半年以上経ってる……)

Sendagaya.rb #100 Drinkup

2015-04-13(月)19:30 - 22:00
Sendagaya.rb #100 - Facebook
Sendagaya.rb #100 Drinkup - Sendagaya.rb | Doorkeeper

凸した。

Sendagaya.rb は集まる人が、サービスとJSと人間とAPIに興味がある感じ(?)。技術とかサービスとか人のことを親しい目で見て話していて、懐深い感じがする。ppworksさん, fukajunさん, tkawaさん 3人の良いとこ混ぜたのがひろがってる感じが好きです! また飲みに行きますーーー!(ちがう)
技術トークに全然ついていけないのでそこに入れるようになりたい…APIとか勉強するといいのかな。RESTか? Reactか! (Rubyは?)

北海道から来たんだから とおごっていただいてしまった……
驚かせた上にタダ飯食らいに行ったみたいになってスミマセン…!
またバタサンもっていくのでおゆるしをーー🙇

Sendagaya.rb #100 Drinkup

101回目 - Facebook
Sendagaya.rb #101 - Sendagaya.rb | Doorkeeper
#sendagayarb #101 - Togetterまとめ
sendagaya.rb #101 でActionDispatchを読んでみた - fukajun - DeepValley -

Railsソースコードリーディング Ustしていただいて視聴しておりました。
参加者の反応のはやさがすごかった。普段コード読んでいる人ほどコードみたときの理解がはやいのかなーと思いました。
くわしくはリンク先をご参照ください! 私のすべては Togetter においてきました。

いじょ!

コマンドで複数のファイルに対していっぺんに置換をかけたい

$ sed -i '' s/(置換前の文字)/(置換後の文字)/g (置換するファイルパス)

`-i` のオプションではsed変換後に吐き出されるファイル名につく文字列が指定できる。
`-i ''` だと変換後も同じファイル名になるので、上書きになります!

HOKKAIDO アイデアソン&ハッカソン2014 に参加した

本番の2日間の話をさらっと

テーマ

「1タップ(1クリック)で価値を生み出すもの」
話をきいてみると、1タップというより1アクションだった。
たとえば「ツイートする」とか。1タップだと私はそんなに価値生めなくて一発屋みたいなことして終わりだなと思っていたので、少し気持ちが楽になった感じがした。

1日目

流れ

11時オープニングで午後にデモタイムが2回ある。デモの間は1時間半か2時間くらい。
チームごとにアイデア出しからはじめて、開発をしてデモに入る。
何かを聞き逃したのか去年の先入観のせいか、1日目はアイデア出しだけするのかと思っていたのだけれど、実際に作り始めて作ったものでデモするのね…ってことにデモの50分前くらいに気づいた。

イデア出しと作り始めたもの

私はひとりチームなのでひとりアイデア出しをしていた。
なんとなく、困っていることを解消するアプリをつくろうと思って、日々の困っていることを書き出していった。自分が必要とするアプリなら帰っても触ってみたりするかなと思ったのだ。(このへんの課題から出すというアイデアの出し方は、アジャイルリーンスタートアップの研修の影響を受けている気がする)

色々困っていることを出してみて、最終的に私が選んだ課題は「唐突にひとを傷つけたくなる」というものだった。これ多いのだ。一人でいるときはひとりごとで発散しているんだけれど、publicな方向に向くと危ないんだよなぁと常々おもっているので、それを解消するアプリをつくることにした。

どういう形にしようと考えていた時に「悪意をすてきな言葉に変換して世界に放出する」っていう素敵なアイデアをもらったのだけれど、この時点で気持ちが後ろ向きだったので、悪意の壺という「悪意を吐き出してキャラクターを凹ませるアプリ」をつくることにした。

1stデモ

画面遷移して悪意の雰囲気を感じる画像が貼ってあるだけのウェブページをつくる。2画面。
時間も無かったし、アイデアを見せるには多分これで良いだろうと思った。掴みはオッケー!

デモ間の作業

掴みはオッケーだったんだけど私の気持ちがオッケーじゃなかった。デモをした後で悪意を吐きためるというコンセプトに興味を失ってしまった。ネガティブなパワーは持続に向かない。
他のものをつくろうか悩んだけど、デモまであと1時間時点で作りたいものがなかったのでこのまま行くことにした。どうしてもコードを書く気は起きなかったので、最初に作ったキャラクターを段階的に進化させてストーリーをつくろうと思ってずっと絵を描いていた。うまく逃げたって誰かに言われたけど、その時できることをやっていただけなの!

2ndデモ

正直にデモ後の心境の変化と、コード書く気がおきなかったということをお話して、できた絵をざっと流した。絵は色調暗いけどちょっと明るくなる感じになったので、それを生かす何かができたら良いなぁ…… というのを話して、デモと1日目が終わったのだった。

幕間

1日目の終わりにピザ食べた

アンチョビのおいしかった

2週間

1日目と2日目の間は2週間あった。

  • 生活リズムがすごく後ろにずれていてからだがしんどかった。同じCDを聴き続けて頭から離れなくて寝る時も脳内で流れ続けていて興奮して眠れない みたいな状態が続いていた。
  • 何も作れないんじゃないかという絶望みたいな不安が消えない
1日目から1週間後くらいのツイート



バックレるなんて表現10年ぶりくらいに使いました(年甲斐なし)

前日のツイート



ご心配をおかけしました…

背中を押してもらって少し不安が解消して、寝る直前にCDの曲が流れている脳内で考えていたら作るものを思いついた。音なら興味が持てるなって思った。
ふたつ思い浮かんで、ふたつのうち、楽しさまでの距離が近そうな方を選んだ。

2日目(2週間後)

会場に行っただけで褒められた
(ご心配をおかけしました…)

流れ

11時から。朝イチでチームごとに発表する。前回やったことと、2週間のうちにやったことがあればアップデートを。2日目も午後にデモタイムが2回ある。デモの間は2時間くらい。1日目とおなじ。

最初の発表

2週間の間に悪意が浄化されたのでこの前のは忘れて、今日は円周率のメロディを生成するものを作りたいと思います。という話をした。
"自由…" と言ってもらったので嬉しい。掴みはオッケー!(ちがう)

円周率のメロディ?

0-9に音を当てはめてメロディにするというもの。低いシから高いレまで。
10代の頃、MIDIでひたすら打ち込んでいて、最近もやったんだけど結構大変なので自動生成したくなった。
(ちなみにコレ→ https://github.com/imaz/ennui-web/blob/master/music/pi.mp3)

数値を入れたら音が出るやつをつくる。
コンパクトだけど1日でやるにはギリギリのボリュームではないかと思ってつくることにした。
なにより音を出すことに興味がある。楽しい。
音を出せるライブラリを知っていてとっかかりがあったのも大きかった。
知っているけれど触ったことがなくて使ってみたかった。おお、ハッカソンにピッタリ!
(ちなみにコレ→ https://github.com/mohayonao/timbre.js)

1stデモ

デモまでにやったこと

Getting Started やその周辺のコードを動かしてみて、ライブラリを触ってみる。
それから「数値を音に置き換える」という目的に必要な以下の機能から調べていった。

  • これを呼べば再生開始できる というもの
  • 音階もしくはHzを指定して音を出す方法

また、デモ用にブラウザにサンプルを組み込むあたりも行った。
最初のデモの目標

  • ブラウザ操作から音を再生/停止できる
デモで流したもの

「ウェブブラウザでボタンを押すとサンプルコードが動いて音が流れる」というところまで。
ボタンで再生はできたものの、停止がどうにもうまくいかないという状態だった。
しまださんからコメントいただいて、停止はとりあえず置いといて、数値を変換できる方法で進めましょうか と方針が決まってデモが終了した。

2ndデモ(最終デモ)

デモまでにやったこと
  • 数値を入力すると対応する音が流れる
    • ここいちばんロジック書いた気がする! 基礎練みたいで楽しかった。
  • 停止できる
    • ブラウザ操作からの停止方法がわからなかったけれど、最後まで再生したら止める というのはできた。

ここまでが最初目指していたところ。50分ほど余したので他にやりたいことを考えた
1. 転調できる
2. 音をもっとパキッとさせる

2はなんとなくすぐできそうだけど楽しみも少なそうなので、先に時間がかかりそうな1に手をつけることにした。

それぞれの音のHzを調べて、調ごとに音を登録しておけば良い! と思ってデータベース化しようと整形をしていて、30分くらい経ってからものすごく時間がかかりそうな雰囲気を感じてあきらめた。

それから2を10分くらいで調べて適用して、日本語ライブラリをみつけてショックをうけたところで2ndデモになった。

デモで流したもの

最終デモということで、最初つくろうと思っていたもの、どこまでできたか、どういうふうに進めたかを話して、今の状態をデモした。

  • 最終的に当初の目標だった「数値を入れるとメロディが流れる」というのはできた
  • 50分余った時にやったことと判断した時間とか
  • git log をざっと(見せようと思ったけど自分が把握してなかった)
  • メモっておいた円周率をコピペして音を流した

ふりかえり

ひとりで参加するメリット・デメリット

メリット
  • 方向転換がいくらでもできる
  • 誘って断られることがない
デメリット
  • 周りがチーム開発をしていると孤独感めちゃ強
  • 気持ちが落ちたら落ちっぱなし
  • 付箋でも盛り上がれない
  • しっかり興味が持てるものを考えて作りはじめないと止まる
    • チーム開発をするとそれ自体がモチベーションになるので止まることがない
  • 知ってる範囲でしか作れない
    • 1人なのでハマったらオワタ状態
    • チームならだれか1人でも進んでいれば進捗大丈夫です

イデア出ししてわかったこと

困っていることを出すより好きなもの出したほうがいいかも

課題駆動はけっこう難しいなぁと思った。出した課題の上っ面だけみてシステムで解決しようとするとねじまがった形になって生まれてくる。そうすると途中で課題を解決しないことに気づいて興味なくなっちゃう。はっ それみたことある! (1日目)
難しいのもあるし、そもそもシステムで課題を解決することに興味無いかも。
なので、楽しさや興味で作り始めるのが良さそうだなぁと思いました。そのほうが短時間で小さく価値を生み出しやすそう。

デモの良さ

2日目1stデモの前に、必要な機能を探すのと、デモ用にブラウザで動かせる状態にするというのを短時間でいっぺんに行った。
「外側から叩いて使える」という部分はひとりで開発してると最後にまわしがちなのだけれど、ざっくり作った方が見通しがたって良いなぁと思った。
そういえば去年のアイデアソン&ハッカソンでも、デプロイするところから始めたなぁ。あれと一緒だった。去年の私の方が賢いのでは……

あとは、ハマる時間がそこで切れて方針が定められるのが良かった。
区切りをいれるのは一人だと難しいけど、中間地点があるのは良いなあ。

デモの苦手

デモ前に「ピリピリしてきましたね」「あと何分です」っていうの、みんなそれに盛り上がったり集中したりしていたけれど、あの時間がすごく嫌だった。わたしはああいう雰囲気や、時間のプレッシャーを感じる状態が本当に苦手みたい。デモの準備は大体数分前にできていたのだけれど、「あと何分」っていう言葉を聞くだけで心がどす黒くなって血の気が引く感じがした。ビョーキかょ。はー!ハッカソンだめかもー!(思い出しナーバス)

もっとこうしたかった

開発のすすめ方

2日目2ndデモ直前50分、「転調ができる」という機能をいれようとしたところ。
これはアプローチが間違ったなと思っていて、まずは「イ短調に変換できる」とかで良かった。
全部の転調をサポートするにはデータを入れるのに時間がかかりすぎるし、そこまでやるならHzとかで計算して出した方が楽そうだ…でも1hでできる量ではぜんぜんなかったのであった…(--;)
スバラシイコードじゃなくても最小で効果が出るところを目標にするのは、ハッカソンの最初だけじゃなくて、何かをはじめる時に都度考えないといけないですね。気づいたらやり過ぎなことが多い。

デモのやり方

しだらさんが最後に「僕達のチームはxx時くらいには機能開発をやめて、あとはデモのやりかたを考えていました」って言っていたのを聞いて、それやればよかったなーと思った。先に言ってょ!! (←何度も聞いて毎回忘れている…)

最終デモで円周率をコピペして音を流した時、しまださんが「できたんですね…全然わかんないですけど(笑)」って言っていて、そういえばこれが円周率を変換してできたメロディなのかどうかって他の人に伝わらないよなって気付いたのでした。
もっと簡単な数字とか、きらきら星のメロディとかを、その場で打ち込んで流してみる っていうのをやればよかったなぁ。
そしたらきっとデモをもっと楽しめたな。

ハッカソンの時、作ることや作り続けられることを重要視しがちなのだけど、リリースする瞬間ってもしかしたら一番大事なのかなぁと思った。ハッカソンだけじゃなく、多分、普段からないがしろにしていそう。もしくはそういう機会をもっていない。いや、両方だ! うっ…

よかった

  • はじめて、ハッカソンで書いたコードを家でさわりたい気持ちになっている
  • 1年前とちがってRailsでひっかかることがなかった
    • 仕事のおかげ
  • こころのおもむくまま方向転換できた
  • わいわいしてるとこでひとりでやるもんじゃない って気づけてよかった
    • 離れてソファでコード書いて癒えた
  • 自分のモチベーションのことちょっとわかった
    • 何よりも強いのは好みにあったプロダクトで、心が安定するのは良いチーム

ハッカソンのこと

ハッカソンは、やっぱり苦手です。特にコレ

何も作れないんじゃないかという絶望みたいな不安が消えない

はじまる前もずっと不安で、案の定1日目はうまく乗らず。
ものつくるの好きだけどつくりたいものがない、ほしいものない、みたいな気持ちで、ハッカソンというか、ものつくる人としての問題というか、問題とは思ってないんだけど、やりづらいところみたいなやつ。
ハッカソンに出て毎回抱える悩みな気がする。
この不安を解決しようとしてないからかな…

あとやっぱり時間に追い立てられるというのが、苦手だ。
苦手というかつらい。どす黒い気持ちになってしまう。

どっちもチームになればまた違うのかもしれないけど
チームつくろうとして断られるのももうつらい…
ハッカソンつらい……?

つらい?

これ以上書くと落ちていきそうだからもう終わろう!
ナーバスナーバスゥ!

おわりに

つらい感じで〆てしまったけれど、良いとこあった。1年前と比較して所々成長もあった(はず)。
(……1年前との違いがあんまり自覚できていないからそんなに変わっていないかもしれない…)

あとよかったのはほんのいちぶに出会ったこと。すごくすてき
ほんのいちぶ - 気になるフレーズから新しい本と出会う

あとはあとは……あとはやっぱり、もの作ってる時は楽しい。
つくりたいものとか、使いたい技術とかないんだけど、ものづくりするのを楽しいと思えてよかった。

にわか感( °_°)

存在しないデータのページにアクセスした場合は 404 NotFound に飛ばしたい

find_by_* メソッドには例外を投げるメソッドがある

こういう action があったとする

# config/routes.rb
resources :users
# app/controllers/users_controller.rb
class UsersController < ApplicationController
  def show
    @user = User.find_by_name(params[:name])
  end
end
この部分!
@user = User.find_by_name(params[:name])
# => nil
@user = User.find_by_name!(params[:name])
# ActiveRecord::RecordNotFound: ActiveRecord::RecordNotFound

Rails は action で ActiveRecord::RecordNotFound が発生すると 404 と紐付けてくれるので、下のケースでは 404 ページに飛ばすことができる。
リソース必須なページはこれを使うと良い!

Rails の Helper メソッドを rails console から試したい時

$ rails console
[1] pry(main)> ActionController::Base.helpers.number_to_currency(300)

number_to_currency が定義されているのは ActionView::Helpers::NumberHelper だけど、module だから include しているところを指定してやらなきゃいけない。