サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
qiita.com/ninomiyt
背景 この記事はLIFULL社内で共有された感想文を少し書き換えたものです。 社内でもプロダクトマネジメントやそれを支える組織の話の議論が進んできつつあるように感じる。 そして私も「 『EMPOWERED』の見どころ」でまとめた内容の通り、「ソフトウェア開発チームに制度や体制が必要だ」と思いつつ、それを支える考え方を整理する必要を感じていた。 そこでちょうど『チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計』が発売され、うまく整理するフレームワークやデザインパターンを用意してくれているように思えたので紹介してみる。 この要約では役割分担の話を重視してまとめて、全体設計やチームの分割みたいな話はごっそり抜けているので、興味ある人は自分の目で確かめてほしい👀 この本はどういう趣旨なのか? ソフトウェア企業で働いている人は、「コンウェイの法則」というものを耳にしたことがある
エンジニアには「技術的な議論についていけるようになりたい」とか「自分が伸ばしたい分野の最新情報をちゃんと追いかけたい」とか悩んでいる人が多いと思う。 例に漏れず私も悩んでいて、以前からいろいろ試していたが、同僚が紹介していた「newsletterを購読する」方法が一番ためになった。 まず不足しがちな情報として、コミュニティの最新動向をキャッチアップするためにはnewsletterを購読している。 newsletterとは有志がある技術に関する最新動向をまとめて定期的に配信するメディアで、僕が購読しているものだと https://this-week-in-rust.org/ https://www.cncf.io/kubeweekly/ などがある。 大体は「<技術名> newsletter」で検索するとそれっぽいものが引っかかるのでそれをsubscribeすればよい。 まともなnewsle
「達人プログラマー」に、ラバーダッキングという方法が紹介されています。それは次のような方法です。 ITエンジニアなら問題の自己解決力を高めるラバーダッキング法を覚えよう! ラバーダッキング法とは、問題が発生した際に、ラバーダック(ゴム製のアヒルのおもちゃ)に悩みを話しかけることで、頭の中を整理し、問題の解決を図る方法です。 エンジニアであれば、プログラムのバクなどによるエラー(不具合)に遭遇したとき、一人で考え込んでいても一向に解決しなかった問題が、アドバイスを求めるために誰かに話すことで、案外その場で自己解決してしまった経験がある方は少なくないでしょう。基本的にエンジニア自身でコーディングしたソースのミスを自分自身で探すことは気が付きにくく、第三者に相談したほうが問題解決しやすいというのが一般的ではないでしょうか。 そして、これがまさにラバーダッキング法の効果です。 ここにあるのは、「人
この記事は株式会社LIFULLの数学同好会あなぐま会のための発表資料です。 アナリストやデータサイエンティストが多いので、「彼らが普段使っているPythonで(普段あまりあまり触れないであろう)コンピュータ・サイエンスの数学とつながる話をしよう」という意図です。実は「圏論の初歩をPythonプログラミングで説明する」という資料も用意しつつあったのですが、夜の回(飲み会)の題材にしては重すぎたのと、Pythonでは説明しづらい概念(射の集合など)があったので断念しました。 自己紹介 名前: 二宮健(たけし) 所属: AI戦略室データサイエンスG(嶋村さんチーム) → PE3U4G(須藤さんチーム) 機械科学専攻(修士)から、2015年にLIFULLにエンジニアとして新卒入社。 広告運用自動化(MAM)やAIシステムの実装に従事。 プログラミングや情報科学は就職後に学んだことのほうが多い気がす
qiita.com
私は、情報科学の出身ではないため、プログラマーとして就職して以降にいろいろと学ぶ必要がありました。今では機械学習のチームでバックエンドエンジニアとして仕事して、後輩のコードをレビューしたり教えたりする立場になりました(ビックリですね!)。 ただ学び方は効率良くなく、かなり無駄な時間も過ごしてしまったと思います。後輩に同じことさせるのは忍びないので、なんとかプログラミングしているときに考えていることを言語化して伝えられるようにしようと思ってこの記事を書いています。できる人にとっては当たり前かもしれません。 この記事より先に、プログラマーとしての価値観や心構えについて、まず「ハッカーになろう (How To Become A Hacker)」や「優秀なプログラマーになるためのコツ」を読んでください。 またプログラミング以外にも身につけるべきことは多いですが、キリが無いので別の機会にします。 ど
アプリケーションを実装する際、環境変数の扱いって微妙に面倒ですよね? Pythonで実装する際、pydanticというライブラリを使うと、デフォルト値をセットしたり、int型にキャストしたり、 .env から値を読み込むなどの処理を簡単に実装することができます。今回の記事ではそれらのサンプルコードを紹介します。 ちなみに、pydanticは環境変数を読み込むだけのライブラリでは無く、型アノテーションを利用してクラスを定義できるライブラリで、他にも例えばjson形式のデータをクラスにキャスト・バリデーションすることができます。他の機能についてまとまって読みたい方は、次の記事を読んでください。 Pydantic 入門
友達とPythonのコーディング規約の話をしていて、ふと「PythonのPEP8では関数名は小文字で書けと書かれているのに、なぜ一部のライブラリ( logging など)ではcamelCaseが採用されているのか?」という話題になりました。 # loggingのコードの例。getLoggerなどのメソッド名がcamelCaseです。 import logging logger = logging.getLogger('simple_example') logger.setLevel(logging.DEBUG) 実際、PEP8の「関数や変数の名前」には次のように書かれています。 関数の名前は小文字のみにすべきです。また、読みやすくするために、必要に応じて単語をアンダースコアで区切るべきです。 変数の名前についても、関数と同じ規約に従います。 mixedCase が既に使われている (例:
以前話題になっていたこちらの記事の通りです。…というのも無価値な記事になってしまうので、多少解説をします。 My Python Development Environment, 2020 Edition こちらの記事の著者はWSLを使っていますが、私もOSX環境でもほぼこのまま使えています。 Why? I need to run multiple Python versions, isolated from the system Python. pyenv makes it easy to install, manage, and switch between those multiple Pythons. 様々なPythonのバージョンを切り替えるツールです。ちなみにもとの記事にある通り、pyenvは開発環境用に使い、アプリケーション実行環境にはDockerを利用すべきです。 参考記事
この記事はLIFULL Advent Calendar その3の遅れてきた16日目の記事です。 今までPythonの開発にPipenvを使っていたのですが、こちらの記事「Poetryを使ったPythonパッケージ開発からPyPI公開まで」読んで、Poetryというツールが気になっていました。 Poetryの便利なところは、パッケージをビルドした際にこの設定がそのまま setup.py の console_scripts として記述される。ビルドする時にコマンドとして実行できるようにあらためてsetup.pyを書く必要がない。 そのテストも兼ねて、社内用のPythonライブラリをPipenvからPoetryに移行してみました。また、Rustを少し触っていて遊んでいた(コンパイルが通らずに泣いていた)ときに、開発ツールのcargoが洗練されていて羨ましかったのですが、それに使い勝手が近そうな印
LIFULL Advent Calendar 1日目の記事です。今年もよろしくお願いします。 世間一般の流れと同じく、株式会社LIFULLでも機械学習サービスを中心にPythonを採用することが多くなってきました。ただ、どうしても「リリースしてみないとそもそも機械学習モデルが妥当なのか分からない」ため、本当に最低限のテストだけで運用を始めることも多く、そのせいで分析寄りのメンバーに必要以上に属人化して負担をかけてしまっているように思います。 今回は後輩や同僚のエンジニア or データサイエンティスト向けに、「pytestを使ってメンテナンス性よくPythonを使ってこうぜ!」って布教するための記事です。 今回の記事に使ったライブラリのバージョンはこちらです。もしバージョンが違う場合、挙動が違う場合があるので必要に応じて調べてください。 $ python -V Python 3.6.5 $
これらのグラフと、データの大まかな分布を調べるときに使う「ヒストグラム」の描き方を調べていきます。上の表や本では紹介されていないのですが、「データの偏り」の一部を表現するのに役立つと思っています。 このうち、円グラフ以外の可視化方法を調べていきます。本の中でも円グラフは「積み上げ棒グラフのほうが使いやすい」と主張されていて、他の分析者の方もそういう記事を書かれていますし、自分の実体験上でもそのとおりなのでほとんど使用しません。また実は、seabornのissueでも「Sorry, no, seaborn will never support pie charts.(seabornでは円グラフを実装しない)」とバッサリ明言されているようです。 さて、これらのグラフが簡単に可視化できると私の用途では嬉しいのですが、seabornではどうなのでしょうか? 棒グラフ データの集計をすると必ず使うグ
この記事はLIFULL その3 Advent Calendar 2018の7日目の記事とされている恐れがあります 謝罪 会社の後輩の記事をパクりました。 ワイが個人的に便利だと思っていてよく使っているJavaScriptモジュール(npm)たち ここから本題 ここ1年の中で しまくったgithubリポジトリを年末調整すると同時に、 使っていて個人的に便利だなと思っているものを簡単に紹介しようと思います。 モジュール Poetry 仮想環境の管理から、ライブラリの公開までやってくれる便利な開発ツール 正直、これを紹介するためだけにこの記事を書きました BeProud Advent Calender 2018の『Poetryを使ったPythonパッケージ開発からPyPI公開まで』という記事も読んでください Pipenv 依存ライブラリの管理や仮想(venv)環境も作ってくれる便利なツール ただ
この記事は、LIFULL Advent Calendar 2017の2日目の記事です。 おはようございます。新UX開発部の二宮( @ninomiyt )です。 LIFULLではデータ解析や最適化の用途、もしくはAWS Lambda上の簡易ツール実装用途などでPythonがそれなりに普及してきました。数値計算寄りの(いわゆるデータサイエンティスト的な)メンバーも今はPythonを使うことが多く、コード量としては小規模なプロジェクトが多く、簡単なAPIやバッチ処理の実装までやってもらうこともあります。 そのレビューをやっていく中で、「これ使うともっと簡単に実装できるよね」っていうライブラリがいくつかまとまってきたので紹介します。 click コマンドラインパーサー用のライブラリで、デコレータを使って関数を簡単にCLI化できます。 標準ライブラリのargparseがありますが、clickではバリ
PCに繋いだマイクから簡単にサーバーに音声を送れないか、いろいろと調べた結果のメモです。 社内向けのちょっとしたツール用なので、「とりあえずGoogle Chromeの最新版で動けばいいや」という仕様です。 ほとんど自分用の覚書ですし、私はJavaScriptの知識はほとんどありません。Pythonはサーバーサイドやデータ分析用途でよく使っています。 もしかすると音声通信用の良いJSのライブラリがあり、以下に述べるような作業が一発で終わってしまうかもしれません。もしご存じでしたらコメントで教えてください! ブラウザで音声を取得し、websocketで送信する これは、GoogleのWEB開発者向け記事の『ユーザーから音声データを取得する』が参考になりました。 <script> var handleSuccess = function(stream) { var context = new
結論はタイトルの通りです。公式ドキュメントにも書かれています。 同僚が「pandasのassignメソッドは内部でデータフレームのコピーを作っているから、メモリ食ってしまって遅くて困っているんだよ」という話をしました。 「Python/pandasのデータ処理で再帰代入撲滅委員会」を読み、統計のバッチ処理をメソッドチェーンを使ってきれいに書くことにハマっていました。 ところが、実際のpandasのコードを見ると、 # コメントや他のメソッドは略 class DataFrame(NDFrame): def insert(self, loc, column, value, allow_duplicates=False): data = self.copy() # do all calculations first... results = {} for k, v in kwargs.items
このページを最初にブックマークしてみませんか?
『@ninomiytのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く