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

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

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

2016年10月28日(木) ダイアリーってホントに大事なんだから!

## 3行まとめ

- 香港、深圳ツアーから帰ってきて1日目の業務

- 自分がいなかった1週間の間で何が起きたのかの状況を把握して、たまりにたまったタスクを粛々とこなしながら開発日直といった日であった

- 一旦日本から離れて日々の当たり前の日常を俯瞰するような時間をとると考えることが変わるので大事〜と思った。考えについては香港深圳ツアーのブログを書くので期待

 

## フリーコーナー

3ヶ月間3行まとめブログを書いていない日々が続きました。

その3ヶ月間はふりかえりの場も設けませんでした。その期間に自分が何をしたのかはぼんやりとしか覚えてません。

これはもったいない。だからまた書きます。

ブログを書く1日10分間という時間は毎日誰でも捻出できるはず。

目的を持って香港と深圳に行ってきます

## 目的

- 英語のシャワーを浴びて自分がいかに遅れをとっているかを実感してくる

- maker faire shenzhen 2016 に参加し、世界最先端のIoT系開発の技術を見て視野を広げる

- 海外旅行が子供の時以来なので、海外旅行ノウハウを熟練者と同行することで身につける。吸収する。

- 海外を経験することで海外勤務でも生きていける道の敷居を下げる

- 海外インターネット事情を経験する

- 中国を知り日本を知る

- 怪我した足を治す

 

とにかく洗礼を受けてくるぞぉ!

ちゃんと帰ってこれるといいな(๑>◡<๑)🌟

行ってきます!

エンジニア実績システムを解除していくゾぃ!!!!1

昨今では、Web 企業各社でエンジニア実績システムなるものが蠢いているようです。

developer.hatenastaff.com

ペパボでも1年前位からエンジニア実績システムを行なっているのですが、当時の自分は実績を解除することは雲の上のようなことだぁ。もっと他にやることあるから目の前のことに集中だぁ。ほえぇ。と思っていて、これに関しては何もアクションを示してませんでした。

でも、やってみることにしたんです!!

その目的とは....

目的

  • どういった工程を辿るとすごいエンジニア達がやっていることができるようになるのかが知りたい。
    • そのためにまずは簡単で身近なものから体験学習的な意味を込めてやってみる。
  • 技術力がちゃんとついてきて「何かやりたい」と思ったときにすぐに行動を起こせるようにしておきたいし、結果に辿り着くためのプロセスを把握しておきたい。
  • やってみないと分からない今まで見えなかったものが見えてくるはず!

そんなこんなで、まずは自分にも解除可能そうな実績だけ抽出してみました(中には願望も混じってます)。

自分でもなんとか解除できそうなエンジニア実績

  • プライベートでWebサービスを運営している【PaaSやShared Hosting】
  • プライベートでWebサービスを運営している【VPS
  • プライベートでWebサービスを運営している【IaaS】
  • プライベートでWebサービスを運営している【自宅サーバなどの自前管理】
  • Webサービスの課金機能を実装
  • プライベートでモバイルアプリを公式ストアへリリースする : 1
  • プライベートでモバイルアプリを公式ストアへリリースする : 1000
  • 自分のプロダクトのGitHubリポジトリのスター数 : 10
  • 自分のプロダクトのGitHubリポジトリのスター数 : 50
  • 自分のプロダクトのGitHubリポジトリのスター数 : 100
  • OSSへのコミット・プルリクエスト : 10
  • OSSへのコミット・プルリクエスト : 50
  • OSSへのコミット・プルリクエスト : 100
  • コントリビュートしたリポジトリGitHubスター数 : 100
  • コントリビュートしたリポジトリGitHubスター数 : 500
  • プライベートな開発での1年間のGitHubアクティビティ数【100】
  • プライベートな開発での1年間のGitHubアクティビティ数【500】
  • プライベートな開発での1年間のGitHubアクティビティ数【1000】
  • 言語の公式モジュールリポジトリに登録する【RubyGems
  • 言語の公式モジュールリポジトリに登録する【npm】
  • 言語の公式モジュールリポジトリに登録する【CocoaPods】
  • 言語の公式モジュールリポジトリに登録する【その他】
  • 技術ブログ・スライド等のはてブ数 : 300
  • 技術ブログ・スライド等のはてブ数 : 500
  • 月間技術エントリ・スライド数 : 5
  • 月間技術エントリ・スライド数 : 10
  • 月間技術エントリ・スライド数 : 30
  • 社内勉強会の主催
  • 社外勉強会の主催
  • 社外勉強会・カンファレンス等での発表 : 50人以上
  • 社外勉強会・カンファレンス等での発表 : 100人以上
  • 海外のカンファレンスでの発表
  • LPIC レベル1
  • 情報処理技術者試験 レベル1
  • TOEIC 600
  • TOEIC 730
  • Web媒体に寄稿
  • 雑誌に寄稿
  • 共著書籍刊行

もう少し具体的に Action を決めてみる

  • 自己紹介ページをPaaSやSharedHostingを使って運営してみる
  • ブログをVPSを使って運営してみる
  • Raspbery Pi を使ってサーバー構築してリモコンや監視カメラ等を作成する
  • 簡単な自分のプロダクトを作ってみる
  • 運営しているコミュニティサイトのモバイルアプリを作る
  • 1000 以上のGithubスター数を保有するプロダクトにコントリビュートする
    • まずは一度もOSSコミットしたことないので小さいところから体験してみる?
  • 簡単なものでもいいから Gem を作って RubyGmes に登録する
  • PHPBLT を主催する
  • 何かテーマを決めて社内勉強会を主催する
    • 教える系ではなく一緒に勉強するスタイルのものが良いなぁ
  • 500人以上が参加するカンファレンスに応募する
    • まずはどんなカンファレンスがあるのか調査
    • そのためのネタを考えよう!
  • LPIC レベル1 を取得する
  • TOEIC 600点以上をとる
  • 執筆の機会があれば飛びつく

はい!

やっていきます!!!!(>ω<)/

これは自分なりの やっていく宣言 なので、監視をお願いいたします!