きょくちょ日記 -THERE'S ONLY MAKE!-

頭の中にあるうちは何だって傑作

2016年12月6日 もういくつ寝ると

今年中にやろうと思ってたこと。

 

できましたか?

 

僕はまだできていないことがたくさんあります。

 

2016年終了までもう1ヶ月切ってます。

 

残タスクを消化する時間は、実際にはどのくらい残されているのでしょう。

 

...。

 

なるほど。

 

 

 

 

やっていきしかない!!!!!(*゚▽゚*)

 

 

2016年12月3日 やっていき!

今年は Maker Faire Tokyo で衝撃と感銘を受け、Maker Faire shenzen で頭がおかしくなり、Ogaki  Mini Maker Faire に出展を果たしました。まさに2016年は自分の make 魂が目覚める年となりました。導いてくれた全ての人に感謝〜😌

 

でも、まだ今年やり残したことがあると思うんです。

 

それは、自分1人の力でプロダクトを作りきること!誰かと一緒に作るのはとても楽しいのですが、個人の力だけで0から1を生み出すことができていないんです。

 

せっかく make への目覚めを果たした僕にとっての make  元年の締めくくりとして、最後にバーンと何か作ってアウトプットするところまでやって覚醒しようと思いました!

 

今のところ僕が興味があるものは、機械とのコミュニケーションと、愛着が持てるような可愛さの2点で、これらを掛け合わせたものが作れると楽しく熱を込めて没頭できるのかなぁとイメージしてます。 

というわけで、今年中に何か一つ作ります!!!

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 便利
  • CLIgithub を操れる hub コマンド良さそうだった。使っていこう。
  • gist コマンドも入れなそう。新しいPCになってから色々便利ツールが消えてしまいっている。再発防止として .dotfiles で管理もしよう。

github.com

dev.classmethod.jp

今日のひとこと

  • 最近はどう書くと一番処理が早くなるのか、今の条件に対する設計としてどう書くと最適なのかといった判断ができなくて悩むことが多い。
  • それだけ見えるものが増えてきたということだろうけど、そろそろデザインパターンを学ぶときが来たのかな?

やっていき

明日から会社の 同僚メンバー5人 で作ったかわいいかわいい migaco(ミガコ) を Ogaki Mini Maker Faire 2016 に出典するため岐阜に行ってきます 🚄 💨

ommf.iamas.ac.jp

2016年11月30日 migaco が可愛くて可愛くてたまらんのです ❤(ӦvӦ。)

3行まとめ

  • PHPStorm を使いこなすぞ!
    • IDE を使い初め半年。だんだんできることが分かってきた。
      • やりたいことが明確になってきたのか、自分が想像している機能はないかな?と設定を自発的にいじるようになった。
    • 用意されている便利機能をまだまだ全然使いこなせていないので使いこなすぞ!!
    • 色弱なので、カラースキーマを自分用に染めるのは本当に大事なことだと思えてきた。
      • 試しに少し設定いじってみたら、想像以上に分かりやすくなったのでこれはやっていきましょう。
    • 英語表記でミスリードすることがよくあったのでもういっそ日本語にしようと思った。
      • 翻訳を誰かに任せることでミスリードするよりも自分で翻訳した方がミスリード回数が多いと判断したため。
    • そんな訳で日本語表記にする便利君があったので使ってみた。
  • 配列の初期化は null を入れるのでなく array() を入れてあげる。
  • smarty の trancate はマルチバイト非対応のため、日本語文字は2バイト文字なので真っ二つになって文字化けしてしまうことがある。

ひとこと

緊急度が高くて重要度が高いものはすぐやるけど、緊急度が低くて重要度が高いものはなかなか着手できない。これを意識的に普段のタスクの中に組み込みやっていくことで圧倒的成長をバーンとしていこう。

宣伝

会社の開発合宿で黒瀧電機というチームで作った歯ブラシスタンド型IoTデバイス 『migaco (ミガコ)』をGUGEN2016コンテストに応募しました。

gugen.jp

100万円を獲得して黒瀧電機を成長させ、なんやかんやで東証一部上場にまで持っていく予定ですので、皆様応援をお願いいたします!(ӦvӦ。)🌟

f:id:yutokyokutyo:20161130200733j:plain

『migaco(ミガコ)』快適な生活をサポートする歯ブラシスタンド

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() という関数の定義元が追えなかった。
    • Pear ライブラリが用意している DB_result::free() のことだった。サービス内のコードを見ても見当たらないのはこのためであった。
    • PHP で用意されているものでもなく、サービスコード内で定義されたものでない場合はライブラリで定義されているものの可能性が高い。という知見を得た

フリースペース

問題解決素早く行うマンになると気持ちが高ぶり集中力も上がってどんどん正のスパイラルを作り出せるので、問題解決素早く行うマンに俺はなる。と毎日朝会社に来たら心の中で呟くようにする。

まずは体調を崩しているので早く解決しよう。

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ごとに役割を分けて書くべし
    • 今後MVC化する際にMVC化しやすくなる
  • tpl側でloop処理を書くべきではないという考えだったが間違っていた
  • 基本的にPHP側で配列を作ってあげてその配列をhtml側で対象毎に描写する
  • 何が正しいもので何が悪いものなのかの判断をつけられるようにするため、フレームワークが整っているコードを見る習慣をつけなければ..。
    • 前にララベルやawsのコードを見ようとしてたけどアクションに起こせていなかったので Trello で管理してやろう。
  • global になっているものの対処法は今のところメンバー変数を使ってClass内だけのスコープで収めること
    • 本来MVCが整っていれば特に必要はないのだが暫定的対応
  • while と fechRow はセットで使われることが多い
    • while はtrueの状態ではずっと回り続ける
    • fetchRow は全部実行するとfalseを返す
    • もちろんforeachでも互換が可能。foreach と while どちらも使える場合は foreach を使うべき
      • なぜならwhileは下手すると無限に回り続けるというリスクがあるため

フリースペース

力が欲しい。

f:id:yutokyokutyo:20161118214328j:plain

いや!大丈夫。強くなってる。。はず!

2016年11月16日 沼にはまった....。

3行まとめ

フリースペース

先輩に勧められて使ってみてはや2ヶ月。 気合が入るのでとてもオヌヌメGoogle拡張です。

新社会人必須。Chrome拡張「社会人ブラウザ」 | なかよしインターネッツ

2016年11月15日 サブクエリを学んだ

3行まとめ

  • 業務が忙しかった日はヘトヘトになってしまいブログを書かない傾向がある
    • メモを取りながら業務を行っているので、業務が終わると同時にブログがほぼ完成している状態にしていこう
  • canonical属性
    • URLの正規化
    • リンクポピュラリティ
    • ページランク
    • rel=canonical の指定は1ページで1つとし、かつページのheadタグ内で指定する。
    • http://やhttps://がついていない場合は、相対URLとして判断されます。
  • AMP(Accelerated Mobile Pages) : GoogleTwitterなどが共同で参加しているAMPプロジェクトが構築した仕組み、もしくはそのためのHTML規格
    • Googleは2016年2月からスタート
  • assertequals と assertsame
    • equals はゆるい比較
      • 1.0 ~ 2.0 までみたいな範囲指定もできたりする
    • same は厳密な比較
      • 特に理由がない場合は same を選択すると良さそう
  • iterm2 の ビープ音がうるさかった
    • Preferences->Profile->Terminal->Notification のSilence bell のチェックを入れたら鳴らなくなった!
  • create構文の()の中のものがindexされているもの
  • サブクエリを学んで格闘した
  • SQLを実行したら全然結果が返ってこなかった
    • ExPlane して Extra に不穏な文字が入っているとやばい
      • Using where: indexだけではwhereを解決できないことを示している
      • Using temporary: テンポラリーテーブルを作成することを示している。あまり良くない
      • Using filesort: レコードがクイックソートされていることを示す かなり良くない
    • rows の中の数が異常だったらやばい
    • ref もconstは一番はやいとか分かるので見ると良い
  • FROM句の中では相関サブクエリが使えない
  • マルチカラムインデックス?
  • MYSQL側で100回実行するよりもサーバー側で100回実行して1回SQLを実行のほうが格段に早い
    • ex. ネットワーク通信100回, 変数読み出し100回 -> 負荷が大きすぎる

フリースペース

勉強になりそうなのでテーブル設計してみようと思った。

2016年11月7日 開発日直Day

3行まとめ

  • レビューは少し時間かかってしまうけどいつも新しい学びがあって刺激的
    • 要件に対してこう書けば良いのかというお手本が見られる
    • この要領で他の人の issue をもっと見ていくと成長が更に加速しそう。何か Action を決めねば。
  • 日直作業はなんとか解決できるフェイズを登ることができた感あるので今度は解決までのスピードを上げるフェイズに移行してみよう
  • 日直日は定時に帰れることが少なくなってしまっている
    • 今週から日直作業が二人一組バディ制度になるので工夫していこうぉ
    • なんでもホイホイ「やります!」と言ってしまうの良くないのでスケジューリング考えてやっていこぉ

フリースペース

家に帰ってお金を作り出すプロダクトの作成をしていくぞぅ! と思ったけど今日はもう疲れてしまった + 明日健康診断なので寝ます( ˘ω˘)スヤァ

土曜日に「マネー・ショート 華麗なる大逆転」をみました。

最近経済の勉強をしているのですが恥ずかしながらリーマンショックのことをあんまり理解できていなかったので良い学びとなったぁ。

eiga.com

2016年11月2日 ふりかえりをしていくぞ〜!

3行まとめ

  • 評価面談用の評価シートにこの4ヶ月間の実績をまとめてたけど、結構色々なことやってきたんだなぁとしみじみ...。目標達成できるようにあと2ヶ月やっていき!
  • 並びに、また月に一度のふりかえり会をやっていきたいなぁと思った。
  • サービスに新しいエンジニアさんがたくさん入ってきているのでその方々を巻き込んでふりかえり会を開催すると良さそう。

フリースペース

業務ではフロント周りのことやっていきたいなぁと思ったので勉強するぞう。

1週間後に VR の技術系イベント開催します。 ありがたいことに色々手伝わせていただいているので、成功するようにスケジューリング調整しながらやっていこう。 社内にイベント開催の知見をダンプしていくぞう。

vrtokyo.connpass.com

2016年11月1日 SQLインジェクション対策わいわい

3行学びまとめ

  • vim でビジュアルモード時にUで大文字変換uで小文字変換だったのか...。
  • <!-- //--> はjs未対応ブラウザへの配慮
  • テーブルは勝手に幅を広げたり狭めたりしてしまう
  • 301リダイレクト、302リダイレクト
    • 301
      • ドメイン移転、検索エンジンに有効?
        • 301 と 302 を用途に応じて区別することで重要なステータスに対して重み付けを行う
      • 恒久的に転送する301リダイレクトでは新URLにかわり、一時的に転送される302リダイレクトでは古いウェブサイトのキャッシュを引き継ぐ
    • 302
      • 一時的な転送に使うくらい
      • 検索上位にあげるべきではないエラーぺージやメンテンナンスページには良い
    • ペンギンアップデート
  • SQLインジェクション対策
    • mysql_real_escape_string
    • プリペアードステートメント
    • ' OR 1=1--
      • ' 文字列定数の外に出る
      • OR 1=1 常にTRUEとなるよう、検索条件をねじ曲げる
      • -- それ以降の内容をコメントとして無視させる

便利

  • print_r を覚えた
  • MySQL Workbench 6.3 を install した

MySQL :: MySQL Workbench

  • httpie を brew install した

blog.glidenote.com

フリースペース

コピーしたものを貯めておける機能欲しいなぁ。 クリップボードに保存したものがリストになっていてそれをシュッと選択して貼り付けられたりする君が欲しい。 既にあったりするのでしょうか? なかったら作ってみたいなぁ。

2016年10月31日 SQLと奮闘した日

3行学びまとめ

  • SQL は読めるようになったけど一から書くとなるとちょっと苦戦するなぁ
    • SQL文書いて構文エラーぽい文がでたらSQLをvar_dumpしてSequelproに突っ込んだりするとエラーの詳細が分かったりするので便利
    • SQLを書くときはできるだけ絞り込んでからSELECTするようにする
    • SQLの実行計画はデータ量によって全然違う挙動を示すので注意
    • EXPLANE と SHOW の術を覚えた
    • サブクエリの学習はもう少しできるようになってからにする
      • 便利だけどORマッパーへの移行がしにくくなったり..
      • 調査時等に一時的に使ったりする場合には良さそう
  • PHPのコンストラクタは、コンストラクタが存在しない場合もし基底クラスのコンストラクタが存在すればそれがコールされる
  • 配列に配列を挿入する場合、普通だったらarray_merge を使うが、要素ひとつだけなら[]も使える。

フリースペース

ようやく機能開発を一人でできるようになってきたかなぁと思ったり😊

バイルの開発への興味がでてきたので本を買ってみた。

booklog.jp

経済セミナーに参加した

  • 経済セミナーに参加して、人口動態やこれからの企業形態の変化、テクノロジー、税金、年金、医療保険、経済的格差、日本の未来予測等の話を聞いた。
  • 時代の流れは刻々と変化しつつあるため、読書と傾聴、情報収集と咀嚼に力を注いで将来の自分を鑑みて行動していかねばなぁと思った。今の自分が置かれている状況を信用できるリソースから正しく認識して、時代の変化をグローバルな観点から認めて受け入れていこう。このままではまずい感。
  • 歳を取ればとるほど自由度は低くなっていくため20代という貴重な時間を将来の投資につぎ込んでいこうという意識が高まった。そして、10年後20年後に多大な損失とならぬよう今から対策を講じて、自分と自分の周りにいる大切な人達を苦しめないように生きねばなぁと真面目なことを思った。

読もうと思った本

神田さんの本は好き。先週中国に行ってきたのでその経験と照らし合わせながら読んでます。

booklog.jp

7つの習慣は派生本なら読んだことあるけど原本は読んでいないなぁと。 booklog.jp

booklog.jp

booklog.jp

booklog.jp

ワーク・シフトの続きとのこと。

booklog.jp