taisablog

taisa's engineer blog

Cpl

投稿日:

-

執筆者:

関連記事

no image

2018年の英語振り返り

毎年英語力向上を目指して何かしらやったりやめたりしていますが、今年の英語はどうだったかなと振り返ってみます。そもそも海外で働く予定もなく日々英語でコミュニケーションを取るという状況にはすぐにはならないのでゆるゆるとやっています。とはいえ年1で海外に行った時に簡単なコミュニケーションくらいはできるようになりたいというのが今年の目標でした。 PyCon APAC 2018の参加の為シンガポールへ 今年は5月にシンガポールへ行きました。PyCon APACへの参加は去年のマレーシアに続き二年目です。マレーシアに行った時はひたすら英語を聞き続けるのに疲れ果て、コミュニケーションもままならなかったのですが、今年は比較的余裕を持って聞いたりコミュニケーションをすることができた気がします。ただそれは話している人の英語の癖がたまたま少なかったからとかそういうのもあったかもしれないのでなんとも言えません。それでも今年は gihyo.jp に参加レポートを寄稿することができたのはよかったです。 「PyCon APAC 2018 in Singapore」参加レポート 2018年5月31日(木)~6月2日(土)にかけて行われた「PyCon APAC 2018 in Singapore」。後半の2日間に行われたカンファレンスデイの様子やセッション以外の現地滞在の様子などを,当日参加したメンバーが2回にわたってお届けします。 DMM英会話 DMM英会話は、去年マレーシア行った後に来年のシンガポールに向けてと思いはじめました。はじめは普段できない英語でのコミュニケーションができるというのがあって、ある程度時間をさいてやってましたが、通勤時間が長い、仕事がある程度忙しくなる、子供が2人になるというのがありシンガポール行った後に退会しました。ただそのおかげもあってか上記の通りシンガポールには比較的リラックスして望むことができました。 Podcast 今年もPodcastは「Talk Python To Me」だけ通勤中にだらだらと聞いていました。ここはスクリプトを全文公開してくれるので嬉しいです。来年は他の技術系Podcastも聞いてみようと思っています。 Talk Python To Me Podcast Talk Python To Me is a podcast for developers who are passionate about Python. Learn about the language and related technologies. 語彙力 語彙力アップにはDuo 3.0を選びました。同期としてはCDがついてて例文を移動中に聞き流すことができるから。これまで色々試してみたけど単語帳で単語を覚えるのは日常的に英語を使わない人間にとっては厳しいものがあるのがわかったのでこれもだらだら聞き流せるものをチョイスしました。 DUO 3.0 / CD復習用 英語ブログ コミュニケーションをする機会がなくインプットばかりになってしまうので書くことで英語に慣れる為に英語でちょっとしたことを書くことをはじめました。これはほとんど書けていないので来年はもうちょっと書いていこうと思います。 たいさのライフログ – taisa’s life log I’m Masaki Sato. 34 years old.I’m a engineer of cocolive.inc for about 4 years. It&#8217 … まとめ 英語を使わない環境で英語を頑張るってのは無理があることがここ数年で分かってきたので、なんとなくモチベーションが湧いた時に少しずつ楽しみながらやっていき来たる将来に向けての準備をしていけたらなと思っています。

「AIPyハンズオン#1」開催レポート

第1回AIPyハンズオン勉強会を開催したのでその開催レポート AIPy (アイパイ) ハンズオン #1 (2018/04/12 19:30〜) この勉強会について 仕事で機械学習などを活用したいけど何からはじめればよいか分からないような方向けのハンズオン形式の勉強会です。まず初めは 仕事ではじめる機械学習 の「7章 映 画の推薦システムをつくる」をハンズオン形式で行う予定です。みんなで集まって意見を交換したり協力したりしながら一気に機械学習に関する知見を深めていこうというの … 結論から言うと第1回ながら合計8名の方に参加して頂いて、専門ではないけどよく知っている方もいて、想定していた以上にすごくためになる会になった。当日はハンズオンというか輪読会で、しっかりハンズオンがやれるようになるまではまだしばらく時間がかかりそう。 開催動機 去年くらいから機械学習をやろうと思い本を読んだりしつつ、今年は本格的にやって何かしらアウトプットをしようと決めたものの、自分一人では到底無理だということにそうそうに気づいたのがきっかけ。他もそうだけどみんなで集まって話しながらやると学習曲線が一人でやるより圧倒的によいので、皆さんの力を借りながら少しずつ進めていくことにした。 当日の流れ 当日は以下のスケジュールでやった。前座LTがあることで少し和やかに進められたかなと思う。次回以降も同じスケジュールでやっていく予定 19:30- 簡単な趣旨の説明 19:40- 自己紹介 19:50- 前座LT(@tomonari_s 中国深セン渡航レポート) 20:00- ハンズオン開始(担当:@taisa831) 21:30- 終了 21:30- 行ける人だけで懇親会 LT風景 第1回勉強会の題材 「仕事ではじめる機械学習」の第7章の「映画の推薦システムをつくる」を題材にした。この章では前半から後半にかけてどのようなアプローチで映画の推薦システムをつくるかという説明がされ、何から手を付けたらいいの?という自分にとってはとてもよい内容だった。 一人で読んでいるとどのワードが重要なのかすらわからず、軽く読み進めてしまうところやよく読んでもいまいち理解できないところがあったけど、勉強会を通じてコミュニケーションをすることで、いまいち理解できなかったところがクリアになり、ようやく機械学習のとっかかりが分かった気がした。 「仕事ではじめる機械学習」の「映画の推薦システムをつくる」を実践してみる 「仕事ではじめる機械学習」の映画の推薦システムをつくるを実践してみる 本書のソースコートは以下にあがっている。本記事はchap07が対象。 事前準備 サンプルコードを実行できるように、あらかじめ以下をインストールしておく。Pythonは3系を使う想定。 参考:Mac環境へのPython3系インストール jupyter notebook が用意されているから以下からソースの実行をすることができる ホワイトボードを使って解説してもらう また、当日出てきたよく使うワードや考え方を後日まとめて頂けたので、こちらと本を合わせてもう一度見直す。 Topics in aipy the first from Tsugunori Okuda 懇親会 勉強会後は表参道とは思えないビール210円、チューハイ130円という破格の居酒屋である中西で懇親会をした。こんな流れで今後も開催を続けて少しずつレベルをあげていってアウトプットできるところまでもっていきたい。

Gitの参照 – HEADとheadsとtagsとremotes

Gitの参照についてまとめました。また別記事にてGitの内側について記載しています。 配管(Plumbing)と磁器(Porcelain)Git オブジェクト Gitの内側についておさらい 「git init」すると「.git」ディレクトリができるがその中についてがテーマ普段は使わない配管コマンドと呼ばれる下位レベルのコマンドがある4つのオブジェクトがある blobオブジェクト(ファイルに相当) treeオブジェクト(ディレクトリに相当) commitオブジェクト(commit情報を保持) tagオブジェクト(Tagを保持) Gitの参照って? ここで取り上げるGitの参照は「HEAD」ファイルと「.git/refs」配下のことを示します。「git init」した直後「HEAD」ファイルは「refs/heads/master」を参照し(初期化直後はなにも存在しない)、「.git/refs」配下には、headsとtagsディレクトリがあります。ブランチにcommitするとheads配下にブランチ名のファイルができ、HEADファイルはheads配下のブランチ名を参照します。 # masterにcommit後 # HEADファイル ref: refs/heads/master # refs配下の構造 └── refs ├── heads │   └── master └── tags Gitの参照の種類 Gitの参照の種類は次の通りです。 heads:作業中ブランチのcommitを参照tags:commitをわかりやすくする為の名前付け用remotes:リモートブランチのcommitを参照HEAD:作業中のブランチに対するシンボリック参照。HEADは基本的にheadsを参照しているので、他の参照と区別する為シンボリック参照と呼ばれます 動作確認の為の事前準備 次のような3つのcommitがあるリポジトリを用意しremoteへpushしておきます。 % git log –pretty=oneline master 1f36229bc26825222b191dcd63929392d9d8e2fd third commit 543ee947f5a865e1a998f793120667c3bf89fc80 second commit 23391397b4316d334e9293c4f7d1d601c1f24c4c first commit % git remote add origin git@github.com:taisa007/internal-git.git 次からはこのリポジトリを利用します。クローンする場合はこちらを利用してください。 構成 構成は次の通りです。「.git/refs」ディレクトリ配下にそれぞれheads, remotes, tagsというディレクトリが作られています。 % tree .git └── refs ├── heads │   └── master ├── remotes │   └── origin │   └── master └── tags Gitの参照の解説 「refs」配下にあるファイルはそれぞれ最後のcommitをファイルに記録しています。例えば現在masterは「third commit」にいますが「git log –pretty=oneline master」とすると次のようなcommit履歴が確認できます。 % git log –pretty=oneline master 1f36229bc26825222b191dcd63929392d9d8e2fd third commit 543ee947f5a865e1a998f793120667c3bf89fc80 second commit 23391397b4316d334e9293c4f7d1d601c1f24c4c first commit …

PHPによるDBUnit超入門

例えば簡単なWebサービスでMVCのフレームワークを使っていてビジネスロジックを書く用にコントローラとモデルの間にサービス層を追加して開発している場合、コントローラやサービスはモックを駆使しながらテストを書いていくことができます。ただ、例えばフレームワークをバージョンアップしたい、PHPをバージョンアップしたいなどの場合に既存のモデル層に影響がないかをテストで確認したいなんてことがあります。そのような場合には、DBUnitを導入してみてもいいかもしれません。ということで本記事ではPHPによるDBUnitの使い方を書いてみます。 事前情報 今phpunit/dbunitをインストールしようとすると以下の文言が出力されます。詳しくはこちらのissueに書いてありますが、どうもSebastianさんはdbunitのメンテナンスをやめるようです。ただそれを受けてforkしたプロジェクトが出てきているようなので大丈夫かと思います。今回はSebastianさんの純正dbunitを使っています。 Package phpunit/dbunit is abandoned, you should avoid using it. No replacement was suggested また、DBUnitに関する詳しい情報はマニュアルにありますのでご確認ください。https://phpunit.de/manual/6.5/ja/database.html#database.implementing-getdataset 作成したサンプルプロジェクト 今回は、dbunitの確認だけをしたいので、dietcakeのmessage-boardというサンプルプロジェクトを利用しました。今回作成したDBUnit用のサンプルプロジェクトは GitHub からダウンロードして確認できます。 git clone git@github.com:taisa831/phpunit-dbunit-sample.git cd phpunit-dbunit-sample composer install # mysqlサーバを立て`app/config/sql/board.sql`を実行する(SQLは下記に記載しています) # テスト実行 ./vendor/bin/phpunit PHPUnit 7.5.8 by Sebastian Bergmann and contributors. ….. 5 / 5 (100%) Time: 207 ms, Memory: 4.00 MB OK (5 tests, 14 assertions) アプリ用のDDLです。開発用DBとは違うのでboard_dbunitというテーブル名にしています。 — — — Create database — CREATE DATABASE IF NOT EXISTS board_dbunit; GRANT SELECT, INSERT, UPDATE, DELETE ON board.* TO board_root@localhost IDENTIFIED BY ‘board_root’; FLUSH PRIVILEGES; — — Create tables — USE board_dbunit; CREATE TABLE IF NOT EXISTS thread ( id INT UNSIGNED …

私はこうしてGoogleに入社/退社しました系記事まとめ

  ここ最近少しブームになっていた、「私はこうしてGoogleに入社/退社しました」系の投稿が、どれも興味深い内容だったので、あとから見返しやすいようにまとめてみました。 記事一覧 Google退職します|eqsan|note2019/3/15が最終出社日でした。インターン期間も含めると4年ちょっと勤めたことになります。 ちょうど昇進してプロジェクトも一区切りついたタイミングで他にすごくやりたいことができたので転職という形です。 素晴らしい環境なのに情報が少なくて、入ると良さそうなのに敬遠している人を何度か見たので、この記事が参考になれば幸いです。辞める人が言うのも変な話ですが。 … 私はこうやってGoogleに入った (ソフトウェアエンジニア、中途採用編)( 人にお願いするだけじゃなくて自分も貢献しろよということで昔話を書いてみました。 kazawa フォーマット に従っています。) 学生時代 … 私はこうやって(12年前) Google に入った書け、という天の声 が聞こえたので書いてます。 私は修士まで物理学を専攻していて、情報系の勉強は特にしていませんでした。ただ、実験結果をまとめるために awk を使ったり(256倍本とか知っています?)、シミュレーションをするために Fortran 書いたり(関数名の長さに制限ありました)はしていました。 … 私はこうして Google に入った (SWE・新卒編) – ふしみのブログ最近、 Google や大学が開催しているキャリアイベントなどに参加する機会がおおかったので、そこで話したことをまとめて書いてみました。2017年4月入社なので、現在2年目が終わろうとしているところです。 なるべく汎用的に、具体的な対策を中心に書いたので、他の 外資 系企業の採用面接にも役立つかもしれません。参考にしていただければ幸いです。 こうしてGoogleに入社した(kumagi編) – Software Transactional MemoTL;DR AtCoder やろうぜ Google の(僕から見て)偉い人が立て続けにブログを書いており ここ数件の僕のブログへの反響を読んでも「Googlerだから特別」みたいな意見が散見され、入社へのハードルが変に高く見られてしまっている気がするので、僕が Google に入社する準備として取り組んでいた事とそのレベルを紹介する。程度の低さに安心して欲しい。 英語 … こうしてGoogleに落ちた – Easy to typeTL;DR Leetcodeをもっとやる必要がありました Googleの社員が選考過程についてブログを書いています。ちょっと前にNTTブームを引き起こした id:kumagi さんとか。 ところで、僕も Google … 私はこうやってGoogleに入った(新卒ソフトウェアエンジニア) – n-yoda’s blog長い記事を書く人が多いので短くて簡潔なものをと思って書きました、が、思ったより長くなりました。 小さい頃からやっていたところが強みです。周りに聞ける人が一人もいなかったので ググる のが得意。大学で習う以上の強そうな知識とかはあまり無いです。 研究室の先輩方がホームページに載せているものを参考にして書きました。 何もしませんでしたが、何度かやった TopCoder は多分役に立ちました。 TOEFL ITP 547/677点。 私はこうやってGoogleに入りました(Reiko編)プログラミングスキルは? プログラミングは仕事用のコードを自己流で書きちらかしてるだけだったのでコーティングには全く自信がなく、そのリクルーターさんからいくつか資料が送られてきたので、参考にして勉強しました。Cracking the Coding Interview、プログラミングコンテストチャレンジブック、あといくつかアルゴリズムの本(思い出したら書きます)などをやりました。 … Google に入るまでの話Google に入るまでの話. GitHub Gist: instantly share code, notes, and snippets. いかにしてわたしは Google に入社し、そして退職したか – The Decisive Strike長山です。2019 …