taisablog

taisa's engineer blog

未分類

「PyCon APAC 2018 in Singapore」参加レポートを寄稿した

投稿日:


PyCon APAC 2018 in Singaporeに参加してgihyo.jpさんにてレポートを寄稿した。
今年のレポートはPyCon JPのスタッフと元スタッフメンバーで書いた。カンファレンスのセッションレポートだけでなくカンファレンス参加に関連するコラムも盛り込んでいてめちゃくちゃ読み応えのある内容になったと思う。

Day1レポート

目次

  • Day1
    • PyCon APACとは
    • シンガポールと今年のカンファレンス会場
    • Keynote ~ Tell me your secrets – Privacy in machine learning systems
    • セッション
      • Build a Data-Driven Web App That Everyone Can Use
      • TeaTeaching Computers ABCs: A Quick Intro to Natural Language Processing
      • Better Care and Feeding of Machine Learning Model
    • コラム
      • APACで発表者をしてみて
      • PyCon APACミーティング
    • 終わりに

Day1:プライバシーを機械学習でどう守るか?/機械学習の基礎と応用

こんにちは, taisaです。2018年5月31日(木)~6月2日(土)にかけて行われた「 PyCon APAC 2018 in Singapore 」に参加してきました。本レポートでは最後の2日間に行われたカンファレンスデイの様子やセッション以外の現地滞在の様子などを2回に分けて,当日参加したPyCon JPスタッフや元スタッフのメンバーがお届けします。 PyCon …

Day2レポート

目次

  • Day2
    • keynote
    • セッション
      • Concurrency vs Parallelism
      • Elements of Programming Interviews in Python
      • Streaming data processing pipelines with Apache Beam in Python, naturally!
    • コラム
      • PyCon APACの開催国となったシンガポールについて
      • 海外カンファレンスに参加してみて
      • 2日目の夜について
    • 終わりに

Day2:今すぐ始められる機械学習,”Pythonic”なコードを書くには?

こんにちは, taisaです。第2回となる今回は,「⁠ PyCon APAC 2018 in Singapore 」のカンファレンスデイ2日目の様子をお届けします。⁠キーノート」や「セッション」のレポートの他にも「はじめて海外カンファレンスに参加してみて」や「夜の懇親会について」「⁠シンガポールについて」のコラムもありますので合わせてご覧ください。 (家治亮) 2日目のKeynoteには …

PyCon APACしか参加したことはないけど海外カンファレンスは本当に刺激的でおもしろい。来年が楽しみだし他にも行きたい。

-未分類
-, , , ,

執筆者:

関連記事

2019年の抱負

本業頑張るのはもとより、2019年の抱負がある程度固まってきたので書いておきます。 Google Cloud Platformを使う これまでAWSを自分で多く触るケースはあまりありませんでしたが、GCPを使うケースが増えてきたので今年からはAWSではなくGCPをたくさん触っていこうと思います。 数学をやる 高校3年になるまでは大学行く気もなく全く授業をまともに受けていませんでした。高校2年の終わり頃に少しまじめに授業を受けるようになり、少しずつ数学が楽しくなってきた頃大学進学も視野に入ってきました。そんなときに自分が文系を選択していたことを知り、私立受験は英国社の三教科であることを知り(国立など受験の仕組みすら知らず)、そこで自分の数学学習人生は終わりました。そんなこんなで今までやってきたのですが、ふと最近以下の投稿をみてなんとなくやってみようかなと思いはじめました。記事のようにAIや機械学習の為ということも少しはありますが、自分としてはただの興味ですのでどこまでやれるかはわかりませんが、今小学中学の復習を終え数I・Aをちらちらみはじめています。 文系エンジニアが機械学習に入門するために小学校の算数から高校数学までを一気に復習してみました。 宅建をとる 今の本業が不動産テックということもありますが、これもただ興味が出てきたのでやってみようかなという感じです。宅建みやざき塾というYoutube動画が秀逸なので今はこの動画を移動中などにみています。 体力をつける 小さい子供が2人いると休日にランニングすることもままならないので去年は体重がかなり増えてしまいました。運動ができてないだけでなく、肩こりなど疲れやすい状態になっていたのでこれを今年は改善しようと思います。最近は食事や運動を気にしつつ「長生き味噌汁」をはじめました。 まとめ どこに向かっているのかという感じはありますが、本業で事業を伸ばすことを頑張りつつこれらをやっていこうと思います。

no image

2017年の抱負

2017年になって1Qが終わろうとしているけど、年末に考えた2017年の抱負を書こうと思う。 2017年の抱負 いろんなことはできないので3つ+サブ目標で考えた。 生産性ビックデータビジネス・インテリジェンスサブ目標 フロントエンド 英語 生産性 これまでも開発の生産性を意識した活動をしてきたが、全員の開発効率アップ、品質アップのような守備的な活動が多かった。けど今年はスクラム体制にして攻撃的な面も加えていきたいと思う。 去年までの振り返り 去年までは2人1組のような小さなチームで開発し、できたらリリースするというサイクルで開発していたが、以下の問題が細かく積み重なってきていた。(サービスの規模がそういった状況に陥る状況にまで成長したとも言える。) マネージャーの管理コストが高い要件定義して開発に仕事を振る側の負担が大きい開発者が指示待ちになる開発した機能が属人的になる開発メンバーが他のメンバーが何をしているか把握できない(チーム感がない)開発・営業・運用で足並みを揃えるのが難しい これらの問題を一気に解決する為に2017年からはスクラム体制で開発を進めることした。 スクラムのチーム構成 最初のスクラムチームの構成は以下の7人体制 プロダクトオーナースクラムマスター(自分)開発チーム デザイナー兼コーダー 中堅エンジニア 2~3年目のベトナムメンバー(2人) 新卒エンジニア スクラムを始めるあたり読んだ資料と書籍 Wikipedia まず最初に見たのがWikipedia。スクラム自体はある程度決まった型があるので、ここを見るだけでも大体の流れを確認することができた。また、スクラムガイドがリンクされているので合わせて読んだ(こちらも17ページ程)。 SCRUM BOOT CAMP THE BOOK 次に読んだのがこちらSCRUM BOOT CAMP THE BOOKこの本はスクラムについての概要はわかったけど実際どんな風に進めたらよいかが分からないという方におすすめ。実際の流れを漫画を交えて説明してるので読みやすいし一連のスクラムの流れがわかる。個人的にはスクラムガイドとこの本を読めばスクラムを開始できると思う。 スクラム実践入門 他の書籍も一応見ておこうと思って呼んだのがこちらスクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス (WEB+DB PRESS plus)この本ではいくつかの企業の事例が紹介されている。スクラムを始めるきっかけなどが書かれているので事例を見てみたいという方には良いと思う。 Joy,Inc. ジョイ・インク 役職も部署もない全員主役のマネジメント この本は直接スクラムには関係ないけど、おもしろい取り組みをしていて、開発の生産性をあげたいという意味で参考になっておもしろかった。スクラムを始めるにあたって読んでおいてよかったなという一冊。 ビックデータ 2つ目の目標はビックデータを本格的に扱うこと。数年前にバズワードになったけど、本格的にあたり前のように活用されるのがこれからだと思う。データがたまり、インフラが整いデータを安価で扱いやすい状況になってきている。ビックデータといっても様々な文脈があるが、個人的な活動の目標としては「GoogleBigQuery」、「AWS」を触りつつ手元にあるデータをいろんな形でこねくり回せる状態にする。というのを目安に進めていく。 ビジネス・インテリジェンス 3つ目もビックデータの文脈だが、データから有効な示唆出しをすることが一つのゴールになるのでそこを見失わないようにしたい。いろいろ触って「データサイエンティスト」の雰囲気がなんとなくつかめてきた。という状態にしたい。 サブ目標 いくつもやりたいことをこなすなんてことは自分にはできない。けどサブとしてでもやりたいと思ってるのが以下の2点。 フロントエンド jQuery脱却して一気にモダン化させたい(楽に開発をしたい) 英語 英語の勉強をするというよりは英語を使う環境に身をおける状態にする英語の技術系podcastを聞く 今年の抱負のまとめ 生産性を最大化しつつデータをこねくり回せるようにするできればフロントを最適化して英語も多少はコミュニケーションがとれるようにする

no image

申告と節税について整理した。税率?青色?白色?扶養控除?など

フリーランスではないけど確定申告する機会があったりと税金のことを考える機会が増えたので大分昔に買った「フリーランスを代表して 申告と節税について教わってきました。」という本を読み返しました。かなり昔の本ですが大きくは変わっていないと思うのでまだ大丈夫かなと思っています。ただ間違いがある可能性もあるのでその点はご注意ください。指摘も大歓迎です。税金については、その時理解した気になってもすぐ忘れてしまうので大事なところだけメモとして残しておきます。 フリーランスを代表して 申告と節税について教わってきました。 Amazonより 最終的な納税額はどのように決まるか 最終的な納税額は次のように決まります。 年の稼ぎ 売上(収入)- 経費 = 所得 税金の対象 所得 – 各種控除 = 課税所得 最終的な税額 課税所得 × 所得税率 = 納付税額 所得税の速算表 課税される所得金額 税率 控除 以下 超 195万円 5% 0 195万円 330万円 10% 97,500円 330万円 695万円 20% 427,500円 695万円 900万円 23% 636,500円 900万円 1800万円 33% 1,536,000円 1800万円 40% 2,796,000円 ここで初めて知ったのが、所得に応じて税率はあがっていきますが、限度額を超えた分だけがその税率で納税する対象になるという仕組みでした。つまりそれが「控除」に該当するもの。少し控除はあるものの課税所得の限度額を超えたら全ての所得がその税率で計算されると思ってました。どういうことか具体例をあげてみます。 課税される所得金額が200万円の場合 5%までの金額を計算 195万円 × 5% = 97,500円 10%になった分の金額を計算 5万円 × 10% = 5,000円 5%までのと10%分の金額を足す 97,500円 + 5,000円 = 102,500円 所得金額が200万円の場合は、195万円を超えた5万円分んだけ税率が10%になり、納税額は102,500円となります。これは単純に以下のように控除額を引く計算方法でやっても同じ結果となります。 単純に計算して後から控除額を引く 200万円 × 10% – 97,500 = 102,500円 じゃあ税率があがった場合はどうなるの?というのが疑問になったので同じように計算してみました。 課税される所得金額が340万円の場合 順番に計算した場合(10%の控除額を引く) 330万円 × 10% + 10万円 * 20% – 97,500円 = 252,500円 単純に計算して後から控除額を引いた場合 340万円 × 20% – 427,500円 = …

no image

2017年の振り返り

2017年も残りわずかとなったので年を越してしまう前に振り返る。結論から言うと今年は近年稀に見るいい年になった。というのも今年立てた目標や中長期的に立てていた目標を達成することができたから。今年立てた目標はこちら。これらの内容について簡単に振り返る。 2017年の抱負 2017年になって1Qが終わろうとしているけど、年末に考えた2017年の抱負を書こうと思う。 2017年の抱負 いろんなことはできないので3つ+サブ目標で考えた。 生産性 ビックデータ ビジネス・インテリジェンス サブ目標 フロントエンド 英語 生産性 これまでも開発の生産性を意識した活動をしてきたが、全員の開発効率アップ、品質アップのような守備的な活動が多かった。けど今年はスクラム体制にして攻撃的な面も加えていきたいと思う。 去年までの振り返り 去年までは2人1組のような小さなチームで開発し、できたらリリースするというサイクルで開発していたが、以下の問題が細かく積み重なってきていた。(サービスの規模がそういった状況に陥る状況にまで成長したとも言える。) マネージャーの管理コストが高い 要件定義して開発に仕事を振る側の負担が大きい 開発者が指示待ちになる 開発した機能が属人的になる 開発メンバーが他のメンバーが何をしているか把握できない(チーム感がない) 開発・営業・運用で足並みを揃えるのが難しい これらの問題を一気に解決する為に2017年からはスクラム体制で開発を進めることした。 スクラムのチーム構成 最初のスクラムチームの構成は以下の7人体制 プロダクトオーナー スクラムマスター(自分) 開発チーム デザイナー兼コーダー 中堅エンジニア 2~3年目のベトナムメンバー(2人) 新卒エンジニア スクラムを始めるあたり読んだ資料と書籍 Wikipedia まず最初に見たのがWikipedia。スクラム自体はある程度決まった型があるので、ここを見るだけでも大体の流れを確認することができた。また、スクラムガイドがリンクされているので合わせて読んだ(こちらも17ページ程)。 SCRUM BOOT CAMP THE BOOK 次に読んだのがこちら この本はスクラムについての概要はわかったけど実際どんな風に進めたらよいかが分からないという方におすすめ。実際の流れを漫画を交えて説明してるので読みやすいし一連のスクラムの流れがわかる。個人的にはスクラムガイドとこの本を読めばスクラムを開始できると思う。 スクラム実践入門 他の書籍も一応見ておこうと思って呼んだのがこちら 生産性 今年の大きな目標の柱として、生産性というのをあげていた。これまでも意識していたことではあるが今年は具体的にスクラムという取り組みを取り入れて実践した。生産性を意識する背景は、主に人口減少・人手不足などがある。とにかく時間をかけて仕事すれば結果がついてくるという時代ではなくなっている今、あたらめて生産性を意識して仕事することにした。結果的にはスクラムマスターとして約1年間スクラム開発をし、一定の成果を出すことができたと思う。スクラムがどんなものか、スクラムを導入するとどんな結果が得られるかが把握できたのでこれからに生かせる経験をすることができた。 ビッグデータ ビッグデータに関する知見はほぼ皆無に等しかったが、今年はAWSを利用してビッグデータに関するサービスをやろうと考えていた。そんな折ちょうどその文脈で新規サービスを立ち上げることになり約5ヶ月位かけてスクラム体制で開発をした。ビッグデータに関しては、AWSサミットに参加したことでどのようなアーキテクチャにすればよいかが考えられたのが大きかった。具体的にはデータレイクという手法を取り入れた。サービスについてもスクラム体制がなんとか機能してスケジュールを大きくはずすことはなかった。実際ビッグデータに関してはデータがたくさんたまるというところまではいけなかったが、それでも1年前にはまったくなかった経験と知見を得ることができた。 ビジネス・インテリジェンス ビジネス・インテリジェンスに関しては、ビッグデータとほぼ同様の文脈なので特記することはないが、ただビッグデータを扱うだけでなくしっかり示唆を出せるものをつくることができた。ただ、機械学習やデータサイエンスといったことを取り入れるところまでは至らなかったのでこれらは来年の主軸の目標にする。 フロントエンド フロントエンドは、今年ようやく本格的にモダンな技術を取り入れることを決意してチーム一丸となって脱jQueryを果たした。業務外でVueJS、React、Angularの勉強会などを行い最終的にはVueJSを採用した。VueJSでやったことをすべてjQueryでやってたらめっちゃ大変な上にサービスの更新も大変だっただろうと思う。本当に導入できてよかった。 英語 英語までは絶対手が回らないだろうと思ってサブ目標にしていたが、案の定英語は他と比べると一番手をつけることができなかった。ただ、2017年の目標は以下の2つだったのでこれについてはしっかり達成することができた。そして2018年は2017年よりも時間を割いて、英語を少しでも楽に使えるようにしたいと考えている。 英語の勉強をするというよりは英語を使う環境に身をおける状態にする 英語の技術系podcastを聞く まとめ ここに書いていない中長期的に立てていた目標も今年で達成することができたので総じて2017年は良い年になった。無理に目標を立てすぎないというのがよかったのだと思う。自分の体調やキャパを考えるとできることはどうしても限られてしまうのでその中でできることを来年も考えてやっていこうと思う。

Go言語 GORM+GinでTODOリストのAPIを作ってみた

前回の「Go言語 GORM+GinでTODOリストを作ってみた」に続いて「GORM+Gin」でTODOリストのAPIを作ってみました。ソースコードは前回からの差分だけを記載しています。できたものは下記URLから確認できます。 http://sandbox.taisablog.com/api/v1/ GinのGithub 事前情報 Webフレームワーク:Gin (https://github.com/gin-gonic/gin) ORM:GORM (https://gorm.io/docs) DB:MySQL ルーティングは今回はAPIなので以下としました。モデルをtasksにすればよかったと思いましたが一旦このままにしておきます。 [GIN-debug] GET /todo –> main.main.func1 (3 handlers) // 一覧表示 [GIN-debug] POST /todo –> main.main.func2 (3 handlers) // 新規作成 [GIN-debug] GET /todo/:id –> main.main.func3 (3 handlers) // 編集画面表示 [GIN-debug] PUT /todo/:id –> main.main.func4 (3 handlers) // 編集 [GIN-debug] DELETE /todo/:id –> main.main.func5 (3 handlers) // 削除 ディレクトリ構成 . ├── api │   └── v1 │   └── todo.go ├── controllers │   └── todo.go ├── db │   └── db.go ├── main.go ├── models │   └── todo.go ├── router    └── router.go router.go router.goにr.Group(“/api/v1”)のAPI用のグループを追加してルーティングを追加しました。 package router import ( “github.com/gin-contrib/cors” “github.com/gin-gonic/gin” “github.com/jinzhu/gorm” v1 “github.com/taisa831/sandbox-gin/api/v1” “github.com/taisa831/sandbox-gin/controllers” …