pip が 19.02 で pyproject.toml から pip install できるようになった

結論 Poetry + pip 19 で快適!setup.py 書かなくても大丈夫! 背景 pip install 可能な python module を作るには、setup.py を作るやり方がある。(他にもあるらしいがよく知らない) 参考: Packaging Python Projects — Python Packaging User Guide python…

fish に移行した感想

今まで zsh を使っていたけど、突然移行したくなったので fish に移行した。移行には1日ほどかかって、思ったよりすんなり移行できたので感想をまとめる。移行手順とかは対象外。 良いところ script が書きやすい POSIX は なぜ if .. fi になってしまった…

EKS を簡単に構築するための CloudFormation

結論 AWS EKS 環境を簡単に構築するための CloudFormation を書いた。 動機 AWS で Kubernetes、EKS のチュートリアルは結構手間が多い Amazon EKS の使用開始 - Amazon EKS aws-cli を駆使して自動化する試みもある qiita.com が、そもそも VPC だの Role …

AWS の Fargate のロードバランサーの設定でめちゃくちゃハマった

AWS のFargate でめちゃくちゃハマった 結論からいうと動かない原因は、ロードバランサーのターゲットの種類はipである必要があった。これは公式ドキュメントにも当然書いてある https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/AWS_Far…

牛耕式ビューワー

ブログを取得したドメインに移行したいけど何もできてない。。。 牛耕式? 先日こんなツイートで牛耕式というのを知った。昨日はこんな感じの夢をみました。 pic.twitter.com/8TDD7mbMo8— Реполов (@REP0L0V) September 9, 2018牛耕式文章とは、簡単に説明す…

alpine に lxml をインストールした docker を構築する

alpine に lxml をインストールしようとするとこんなエラーが出る。 ... ** make sure the development packages of libxml2 and libxslt are installed ** ... ********************************************************************************* Could n…

Docker を調べるのに使ったリンク集

Docker を調べるのに使ったリンクをまとめておくdocker コマンドまとめ https://qiita.com/voluntas/items/68c1fd04dd3d507d4083 https://qiita.com/curseoff/items/a9e64ad01d673abb6866起動中のコンテナのシェルに入る https://qiita.com/sekizo/items/27c…

ドメイン取りました

http://ororog.org を取得した。 色々調べたところ、無料でドメインを設定してくれるところがあるっぽいので、いくつか試してブログ部分が移行できるか試したい。 ホストとしては、次の2つを試す github 有名 netlify 調べてたら知った。CI とかできて便利…

Requests + BeautifulSoup で html から form データの雛形作成他

Requests と BeautifulSoup は忘れた頃に使って何度も調べるのでメモ。小ネタ。Requests を使ってログイン処理をするときはだいたいこんな処理をかく。 s = requets.Session() r = s.get('http://example.com/login') soup = BeautifulSoup(r.content, 'html…

AtCoder ABC 105 D

python に慣れるため久しぶりにプロコンをやってみた。今の AtCoder になってから初だと思う。D: Candy Distribution - AtCoder Beginner Contest 105 | AtCoder code from collections import defaultdict N, M = map(int, input().split()) A = list(map(i…

emacs vue-mode で構文チェックする領域がおかしくなったの対処方

vue-mode で書いていると構文チェックする領域がおかしくなるときがある。vue-mode の、というより mmm-mode で発生する現象なのかもしれない。 具体的には の終端などで改行したときだ。うまい解決策はわかってないが、とりあえず構文チェックの外で C-c C-…

(小ネタ) BetterTouchTool で右ALT、 左ALT の使い分け

自分は右ALTをほとんど使わないので、右ALT を修飾キーに使えたら便利だな〜と思って調べたら、普段から使ってる BetterTouchTool にその機能があった。使い方はこう Add New Shortcut... を押して、左下に出てくる歯車アイコンをクリック ここでDifferentia…

Vue で動的にコンポーネントを追加

Vue で動的にコンポーネントを追加したい よくある TODO アプリで言うと、ボタンを押したらTODO を追加したい。 UIとしたらこんな感じ TODO追加ボタンを押すたびにコンポーネントを追加したい。 new するやり方(正しくないやり方) 先に書いておくとこのやり…

Vue で Uncaught RangeError: Maximum call stack size exceeded

VueJs でコンポーネントを作っていたら真っ白なページが表示されている。 コンソールを見るとこんなエラーが出ていた。 Uncaught RangeError: Maximum call stack size exceeded at Watcher.get (vue.esm.js?efeb:3156) at new Watcher (vue.esm.js?efeb:313…

vue で jointjs を動かす

昨日の react で jointjs を動かすのを vue でもやってみた。初期化は次のようにすすめる vue init webpack vue-jointjs cd vue-jointjs npm install --save jointjs 変更箇所は次の通りApp.vue <template> <div id="app"> <img src="./assets/logo.png"> <JointJs/> <router-view/> </div> </template> <script> import JointJs from '@/components/JointJs' export…

React で JointJs を動かす

React で JointJs (https://www.jointjs.com/) を使う方法がわからなかったので調べた。 https://resources.jointjs.com/tutorial/hello-world のコードが動くようにしたい。 コマンドラインで create-react-app を実行して、雛形からはじめる > npx create-…

vuejs コンポーネントライブラリの github star などを調べた

vuejs のコンポーネントライブラリを調べていて、このサイトにだいたいまとめられていることはわかった。 github.com でもこんどは情報がライブラリが多すぎて調べるのが大変だとわかったので、指標として github star などの情報をまとめた。 docs.google.c…

GCP のプリエンプティブインスタンスで深層学習

深層学習ぼちぼち勉強してます。手元にGPU環境がないので、クラウドGPUをなにか使おうと調べたところ。GCP のプリエンプティブインスタンスがオトクなようです。 GPU のプリエンプティブインスタンスなら、V100 の GPU が使えて一時間あたり0.75ドル程度です…

Riot API を使った League of Legends ウェブアプリを公開するまで

League of Legends のウェブアプリを作ったので、その手順を書いてみます。 Riot APIについて Riot Developer Portal こちらからサインインすることで、だれでも開発用の API を使うことができます しかし、開発用の API は次のような制限があります。 リク…

仮想通貨で有り金全部溶かした人の顔BOT

仮想通貨で有り金全部とかした人の顔がみたいー、あびゃ〜 そんな純粋な子のためにボットをつくりました。twitter.com 動機 仮想通貨暴落したら面白いなーと思ってる自分に気づいてしまったので… 中身 python3 で SqlAlchemy を使って作っています。コードは…

Rebase and merge 運用で merged な branch 一覧を表示する

Rebase and merge な運用でもマージ済みブランチを表示、削除するためのスクリプトを書いた。仕事では github で PR をマージする時、Rebase and merge でマージしている。 Rebase and merge の良し悪しはさておき、Rebase and merge だとコミットのハッシュ…

Stripe の description と metadata

Stripe のオブジェクトの中になんらかのデータを保存したい時がある。たとえば顧客の情報だったり、支払いの補足情報だったり。会社名などを保存しておくと、ダッシュボードから検索できて便利。そんな時にデータを保存するフィールドとして、 description …

Stripe API の IP アドレスとメーリングリスト

Stripe の API サーバーや webhook で使用されるリクエストの送信元はちゃんと定義されているstripe.comセキュリティを高めるのであれば、IP による制限を取り入れるのも大事 これらの IP アドレス情報の更新などはメーリングリストで通知されているgroups.g…

Stripe の webhook でできること

Stripe は webhook を使うことで、イベントの通知を受け取ることができる。stripe.comStripe のような外部のサービスを使うと、アプリケーションの外からの操作によってアプリケーションの状態が変わってしまうことがある。webhook を使うことで、アプリケー…

StripeObject その2

前回の補足。key があるかどうかで to_h するのはどうなの?と言われて keys.include? を同僚から提案いただいた。たしかに。 あいかわらず key は symbol になってるのでその点注意。 pry(main)> s = Stripe::StripeObject.construct_from({id: 1, 'foo' =>…

StripeObject について

最近お仕事で決済サービスの Stripe を使っているので色々メモする。 溜まったらまとめて Qiita に記事にするかな。Ruby で Stripe の API を叩くと StripeObject が返ってくる。StripeObject のドキュメントは http://www.rubydoc.info/github/stripe/strip…

引っ越した。

色々あって仕事も変わったので。

trigraph

C++

2014 TCO Algorithm Round 2B で トライグラフ (trigraph) に軽くハマった。以前にもハマったことがあるので、早めに気づいて致命傷にはならずにすんだけど、スコアをいくらか落としてしまったので対応策をまとめた。 trigraph とは 一部の記号が無いキーボ…

Code Jam Tasting 作った。あと、Qiita 使ってみた。

GCJ

しばらくプロコンから離れていたけど、最近またぼちぼちやっている。楽しい。で、Google Code Jam の過去問を練習するときに、人のソースコードを見るのがたるいので、楽にする Extension を作った。Code Jam Tasting - Chrome ウェブストア作ったあとで気が…

ICPC2010 Jakarta Site 海外派遣のはなし

2010年のICPC東京大会も終わりまして,タイミング的には東京大会の報告なんでしょうけど,その前に海外派遣のお話を. 優秀な次の世代の皆さんは,これからどんどん海外の大会に出られると思います.そこで,今回ジャカルタに行くにあたって経験したことを残…