2016年12月1日 Ogaki Mini Maker Faire 2016 に参加してくるであります 🚄 💨
3行まとめ
- 見積もりで5日でできそうなんてのは嘘とみなすべき。一般的なエンジニアは半日位の規模感しか見積もりしかできないもの。
- 久しぶりに serverspec のコードを書いたり puppet のマニフェストをいじったりした。
- if 文で書くか、三項演算子を使うか、エルビス演算子を使うかで迷った。それぞれの条件に合わせてメリデメを明らかにしたら自ずと選択肢が決まった。
- mysql2 はMySQLに接続するためのべんり君。アダプタみたいな役割。MySQLとは別物なのであった。
- rails の generate コマンド便利なことを思い出した
- bin/rails generate テーブル名 user model email:string
- ghq コマンドと peco を組み合わせるとポジトリ間を瞬間移動できるゾ
- bundle exec rake route でルーティングが見れるのであった。忘れていたぁ。
- pry-byebug 便利
- CLIで github を操れる hub コマンド良さそうだった。使っていこう。
- gist コマンドも入れなそう。新しいPCになってから色々便利ツールが消えてしまいっている。再発防止として .dotfiles で管理もしよう。
今日のひとこと
- 最近はどう書くと一番処理が早くなるのか、今の条件に対する設計としてどう書くと最適なのかといった判断ができなくて悩むことが多い。
- それだけ見えるものが増えてきたということだろうけど、そろそろデザインパターンを学ぶときが来たのかな?
やっていき
明日から会社の 同僚メンバー5人 で作ったかわいいかわいい migaco(ミガコ) を Ogaki Mini Maker Faire 2016 に出典するため岐阜に行ってきます 🚄 💨
2016年11月30日 migaco が可愛くて可愛くてたまらんのです ❤(ӦvӦ。)
3行まとめ
- PHPStorm を使いこなすぞ!
- IDE を使い初め半年。だんだんできることが分かってきた。
- やりたいことが明確になってきたのか、自分が想像している機能はないかな?と設定を自発的にいじるようになった。
- 用意されている便利機能をまだまだ全然使いこなせていないので使いこなすぞ!!
- 色弱なので、カラースキーマを自分用に染めるのは本当に大事なことだと思えてきた。
- 試しに少し設定いじってみたら、想像以上に分かりやすくなったのでこれはやっていきましょう。
- 英語表記でミスリードすることがよくあったのでもういっそ日本語にしようと思った。
- そんな訳で日本語表記にする便利君があったので使ってみた。
- https://github.com/yuuna/IDEA_resources_jp
/Applications/PhpStorm.app/Contents/lib/resources_jp.jar
を書き換えて上げればよいだけなので簡単!
- IDE を使い初め半年。だんだんできることが分かってきた。
- 配列の初期化は null を入れるのでなく array() を入れてあげる。
- smarty の trancate はマルチバイト非対応のため、日本語文字は2バイト文字なので真っ二つになって文字化けしてしまうことがある。
ひとこと
緊急度が高くて重要度が高いものはすぐやるけど、緊急度が低くて重要度が高いものはなかなか着手できない。これを意識的に普段のタスクの中に組み込みやっていくことで圧倒的成長をバーンとしていこう。
宣伝
会社の開発合宿で黒瀧電機というチームで作った歯ブラシスタンド型IoTデバイス 『migaco (ミガコ)』をGUGEN2016コンテストに応募しました。
100万円を獲得して黒瀧電機を成長させ、なんやかんやで東証一部上場にまで持っていく予定ですので、皆様応援をお願いいたします!(ӦvӦ。)🌟
2016年11月25日 ミュータブルな foreach
3行まとめ
で括ると詳細を表示できる。更にマークダウンを上手く使って Github 上で表現できるようになるぞ。 - 今まで背を向けてきた$GLOBALSと向き合うことにした。$GLOBALSを撲滅するためには$GLOBALSを知らなければいけないのだ。
- 変数の初期化
- 将来的に誰かがコードを書いたときに、自分が書いた処理に影響してしまうことがある。それを防ぐために、初期化が必要となる。
- 関数定義の冒頭に書くか、初期化対象となる処理のすぐ前に書く
- JSはどちらかというと前者の傾向が強い
↓ php.net 先生
PHP では変数を初期化する必要はありませんが、そのようにするのはとてもよいことです。 初期化されていない変数の値は、状況に応じたその型のデフォルト値 - boolean なら FALSE、integer や float ならゼロ、 文字列 (echo で使う場合など) なら空の文字列、配列なら空の配列となります。 初期化されていない変数のデフォルト値に依存すると、そのファイルを include している別のファイルで同名の変数が使用されていた場合などに 問題を起こします。また、register_globals が on の場合には重大なセキュリティリスク を抱えることになります。初期化されていない変数を使用すると、 E_NOTICE レベルのエラーが発生します。 しかし、初期化されていない配列に要素を追加する場合はエラーにはなりません。 変数が初期化されているかどうかの判断には、isset() を使用します。
- エルビス演算子の事例を覚えた。適材適所で使うとエレガントぽい。
- 破壊的なメソッドとforeachの挙動をごっちゃにして勘違いしていた。
- 配列を扱う処理を書くときに複雑になってきて分からなくなってきたら、もう扱っている配列全てを print_r 等で書き出すと理解できる。
- 参照渡しは値を代入したあと違う番地にデータを作る。そしてシンボリックリンクのように元々のデータが参照渡しされるため結果的に破壊的な処理となり上書き処理が実現できる。
- free() という関数の定義元が追えなかった。
フリースペース
問題解決素早く行うマンになると気持ちが高ぶり集中力も上がってどんどん正のスパイラルを作り出せるので、問題解決素早く行うマンに俺はなる。と毎日朝会社に来たら心の中で呟くようにする。
まずは体調を崩しているので早く解決しよう。
2016年11月24日 焦るのいくない
3行まとめ
- サービス内のCSSのコーディング思想をちょっとだけ理解した
- COUNT(*)はフェッチした全ての行をカウントするが、COUNT(col)ではcolがNULLでない値の場合だけカウントされるという違いがある。
- date関数をいい感じに操つることができた
フリースペース
今日は今やっているタスクのリリースが遅れてしまっていることに焦って、やりたいことを明確にしないままスピードだけを意識してPRのレビュー依頼を出してしまった。 結果、何がしたいのかが分からないPRだったためレビュアーさんを困らせてしまった。 焦るのいくない。ほんとうにいくない😂
2016年11月21日 開発日直バディ制度始まった
3行学びまとめ
- gtihub上で?を押すとショートカットでてくる
- t でインクリメントサーチ
- ただし現在 Vimium に乗っ取られているので使えていない...
- webi の Export capfile を見るとレシピの内容が見れるので docroot を確認できる
フリースペース
今日は先輩エンジニアさんと二人で開発日直対応を行いました。 二人で一緒の作業をすると自分よりも抽象的な問題解決方法が見えてきて本当にためになりますね。
暫定的な対応ばかりでなく根本解決ができる日直対応を行えるようになりたい。 コードを追っていく力と問題を正確に把握する力を身につけないとなぁ。
2016年11月18日 オブジェクトと配列をぐるぐる沼
3行学びまとめ
- エラーの内容はなんとなくではなくしっかり把握して問題の因果関係を解くことが大事
- 配列を表示したい場合は print_r の方が見やすい。ソースで見るとさらに見やすい!
- 配列の操作が身についていない
- 頭の中でなんとなくこうなるというイメージを実際に対話シェルやファイルを実行する等をして結果を確認し、処理を正しく厳密に追う癖をつけよう
- この方法ならいけるかも!と考えた仮説が技術的に可能なのかどうかを確かめるときにも使えそう
- エンジニアは手を動かせとはこういうことなはず
- 最初は時間がかかってしまうけどこれを高速にできるようになれば力がつくはず
php -r 'print_r(array("a", "b", "c"));'
- 今まで用意されている関数については必要になったら適宜調べればいい。覚えるなんてナンセンスだと思っていたが、こういうことができるなというイメージを持っているとコードで実現しようと思ったときに早い段階で選択肢の幅が広がるし素早く実装することができるので、最低限頻繁に使う関数の名前と内容くらいは覚えておくと良さそうだなぁと思った
- 値渡しと参照渡し
- アンバサンド&をつけると参照渡しになる
- 参照渡しは同じメモリアドレスを返す
- 値渡しはぐるぐる回すと違う番地を作る
- jsの参照渡しは勝手が違うので注意
- 破壊的という意味が肌で分かった
- そういえばなんでオブジェクトとして扱う場合があるのだろう。常に配列でデータを持っていた方がコードを書くときにデータの処理をしやすいと思うけど。オブジェクトとして扱った方が処理が早かったりするのかなぁ。
- オブジェクトで処理した方が早い。配列で処理されると配列の要素分メモリを食ってしまう。
- 昔はメモリの少ないマシンで運営していたこともあり、今もオブジェクトで書かれているコードが多い
- 地道に変数の中に何が入っているのかを見ていく作業を高速に実行できると理解のスピードとタスクの消化率が上がりそう
- フルスクラッチで書くとなるとめっちゃ工数を食ってしまう
- 値の受け渡し時になんとなくこうなるといった感覚で作業していると全然やりたいことが実現できない
- attr() HTMLのカスタムデータ属性(data-*)を読み書きする 値は常に文字列として扱われる
- data() jQuery内のキャッシュのデータを読み書きする(ただし、取得時に該当キャッシュが無ければカスタムデータ属性を取得する) 値には自動で型が設定される(文字列、数値、Bool値、オブジェクト、配列)
- smaerty の {section} は、データが格納された数値添字配列をループさせる
- MVCではないレガシーな構造でも、ファイルの中だけくらいはMVCごとに役割を分けて書くべし
- tpl側でloop処理を書くべきではないという考えだったが間違っていた
- 基本的にPHP側で配列を作ってあげてその配列をhtml側で対象毎に描写する
- 何が正しいもので何が悪いものなのかの判断をつけられるようにするため、フレームワークが整っているコードを見る習慣をつけなければ..。
- 前にララベルやawsのコードを見ようとしてたけどアクションに起こせていなかったので Trello で管理してやろう。
- global になっているものの対処法は今のところメンバー変数を使ってClass内だけのスコープで収めること
- 本来MVCが整っていれば特に必要はないのだが暫定的対応
- while と fechRow はセットで使われることが多い
- while はtrueの状態ではずっと回り続ける
- fetchRow は全部実行するとfalseを返す
- もちろんforeachでも互換が可能。foreach と while どちらも使える場合は foreach を使うべき
- なぜならwhileは下手すると無限に回り続けるというリスクがあるため
フリースペース
力が欲しい。
いや!大丈夫。強くなってる。。はず!
2016年11月16日 沼にはまった....。
3行まとめ
- 型変換でハマった
- オブジェクトと配列がごっちゃになってハマった
- getAllを学んだ
- http://www.phppro.jp/phpmanual/pear/package.database.db.db-common.getall.html
- DB_resultクラスのfetchRowを学んだ
- 難しい....。
フリースペース
2016年11月15日 サブクエリを学んだ
3行まとめ
- 業務が忙しかった日はヘトヘトになってしまいブログを書かない傾向がある
- メモを取りながら業務を行っているので、業務が終わると同時にブログがほぼ完成している状態にしていこう
- canonical属性
- AMP(Accelerated Mobile Pages) : GoogleやTwitterなどが共同で参加しているAMPプロジェクトが構築した仕組み、もしくはそのためのHTML規格
- Googleは2016年2月からスタート
- assertequals と assertsame
- equals はゆるい比較
- 1.0 ~ 2.0 までみたいな範囲指定もできたりする
- same は厳密な比較
- 特に理由がない場合は same を選択すると良さそう
- equals はゆるい比較
- iterm2 の ビープ音がうるさかった
- Preferences->Profile->Terminal->Notification のSilence bell のチェックを入れたら鳴らなくなった!
- create構文の()の中のものがindexされているもの
- サブクエリを学んで格闘した
- SQLを実行したら全然結果が返ってこなかった
- ExPlane して Extra に不穏な文字が入っているとやばい
- Using where: indexだけではwhereを解決できないことを示している
- Using temporary: テンポラリーテーブルを作成することを示している。あまり良くない
- Using filesort: レコードがクイックソートされていることを示す かなり良くない
- rows の中の数が異常だったらやばい
- ref もconstは一番はやいとか分かるので見ると良い
- ExPlane して Extra に不穏な文字が入っているとやばい
- FROM句の中では相関サブクエリが使えない
- マルチカラムインデックス?
- MYSQL側で100回実行するよりもサーバー側で100回実行して1回SQLを実行のほうが格段に早い
- ex. ネットワーク通信100回, 変数読み出し100回 -> 負荷が大きすぎる
フリースペース
勉強になりそうなのでテーブル設計してみようと思った。
2016年11月7日 開発日直Day
3行まとめ
- レビューは少し時間かかってしまうけどいつも新しい学びがあって刺激的
- 要件に対してこう書けば良いのかというお手本が見られる
- この要領で他の人の issue をもっと見ていくと成長が更に加速しそう。何か Action を決めねば。
- 日直作業はなんとか解決できるフェイズを登ることができた感あるので今度は解決までのスピードを上げるフェイズに移行してみよう
- 日直日は定時に帰れることが少なくなってしまっている
- 今週から日直作業が二人一組バディ制度になるので工夫していこうぉ
- なんでもホイホイ「やります!」と言ってしまうの良くないのでスケジューリング考えてやっていこぉ
フリースペース
家に帰ってお金を作り出すプロダクトの作成をしていくぞぅ! と思ったけど今日はもう疲れてしまった + 明日健康診断なので寝ます( ˘ω˘)スヤァ
土曜日に「マネー・ショート 華麗なる大逆転」をみました。
最近経済の勉強をしているのですが恥ずかしながらリーマンショックのことをあんまり理解できていなかったので良い学びとなったぁ。
2016年11月2日 ふりかえりをしていくぞ〜!
3行まとめ
- 評価面談用の評価シートにこの4ヶ月間の実績をまとめてたけど、結構色々なことやってきたんだなぁとしみじみ...。目標達成できるようにあと2ヶ月やっていき!
- 並びに、また月に一度のふりかえり会をやっていきたいなぁと思った。
- サービスに新しいエンジニアさんがたくさん入ってきているのでその方々を巻き込んでふりかえり会を開催すると良さそう。
フリースペース
業務ではフロント周りのことやっていきたいなぁと思ったので勉強するぞう。
1週間後に VR の技術系イベント開催します。 ありがたいことに色々手伝わせていただいているので、成功するようにスケジューリング調整しながらやっていこう。 社内にイベント開催の知見をダンプしていくぞう。
2016年11月1日 SQLインジェクション対策わいわい
3行学びまとめ
- vim でビジュアルモード時にUで大文字変換uで小文字変換だったのか...。
<!-- //-->
はjs未対応ブラウザへの配慮- テーブルは勝手に幅を広げたり狭めたりしてしまう
- 301リダイレクト、302リダイレクト
- SQLインジェクション対策
便利
- print_r を覚えた
- MySQL Workbench 6.3 を install した
- httpie を brew install した
フリースペース
コピーしたものを貯めておける機能欲しいなぁ。 クリップボードに保存したものがリストになっていてそれをシュッと選択して貼り付けられたりする君が欲しい。 既にあったりするのでしょうか? なかったら作ってみたいなぁ。
2016年10月31日 SQLと奮闘した日
経済セミナーに参加した
- 経済セミナーに参加して、人口動態やこれからの企業形態の変化、テクノロジー、税金、年金、医療保険、経済的格差、日本の未来予測等の話を聞いた。
- 時代の流れは刻々と変化しつつあるため、読書と傾聴、情報収集と咀嚼に力を注いで将来の自分を鑑みて行動していかねばなぁと思った。今の自分が置かれている状況を信用できるリソースから正しく認識して、時代の変化をグローバルな観点から認めて受け入れていこう。このままではまずい感。
- 歳を取ればとるほど自由度は低くなっていくため20代という貴重な時間を将来の投資につぎ込んでいこうという意識が高まった。そして、10年後20年後に多大な損失とならぬよう今から対策を講じて、自分と自分の周りにいる大切な人達を苦しめないように生きねばなぁと真面目なことを思った。
読もうと思った本
神田さんの本は好き。先週中国に行ってきたのでその経験と照らし合わせながら読んでます。
7つの習慣は派生本なら読んだことあるけど原本は読んでいないなぁと。 booklog.jp
ワーク・シフトの続きとのこと。
2016年10月28日(木) ダイアリーってホントに大事なんだから!
## 3行まとめ
- 香港、深圳ツアーから帰ってきて1日目の業務
- 自分がいなかった1週間の間で何が起きたのかの状況を把握して、たまりにたまったタスクを粛々とこなしながら開発日直といった日であった
- 一旦日本から離れて日々の当たり前の日常を俯瞰するような時間をとると考えることが変わるので大事〜と思った。考えについては香港深圳ツアーのブログを書くので期待
## フリーコーナー
3ヶ月間3行まとめブログを書いていない日々が続きました。
その3ヶ月間はふりかえりの場も設けませんでした。その期間に自分が何をしたのかはぼんやりとしか覚えてません。
これはもったいない。だからまた書きます。
ブログを書く1日10分間という時間は毎日誰でも捻出できるはず。
目的を持って香港と深圳に行ってきます
## 目的
- 英語のシャワーを浴びて自分がいかに遅れをとっているかを実感してくる
- maker faire shenzhen 2016 に参加し、世界最先端のIoT系開発の技術を見て視野を広げる
- 海外旅行が子供の時以来なので、海外旅行ノウハウを熟練者と同行することで身につける。吸収する。
- 海外を経験することで海外勤務でも生きていける道の敷居を下げる
- 海外インターネット事情を経験する
- 中国を知り日本を知る
- 怪我した足を治す
とにかく洗礼を受けてくるぞぉ!
ちゃんと帰ってこれるといいな(๑>◡<๑)🌟
行ってきます!