ISUCON10予選敗退してきました

例年は同僚と参加していたのですが、今年は予選申し込みが始まってから去年のメンバーに打診したら申し込み締め切りに間に合わなかったために、申し込みに成功してメンバーを募集されていた @catatsuy さんにお願いしてメンバーに入れてもらいました。 @cata…

PyPIのTOP 4000 パッケージのsdistをダウンロードする

Deprecate済みの機能をそろそろ削除していいかどうか悩んだときに、Githubのソースコード検索だとソースコードのコピーが置いてある個人リポジトリがたくさんあったりして役に立ちません。 PyPIのミラーを作って全部のパッケージを確認できればいいのですが…

PEP 8騒動について

今週PEP 8の小さい変更についてMLで騒動が起こってしまいました。 該当のコミットはこれです。 PEP 8: Change requirement to adhere to Standard English (#1470) · python/peps@0c6427d · GitHub 変更点はごくごくシンプルなものです。 - When writing Eng…

Python 3.10 の開発(お掃除)に参加しよう

訂正 昔から deprecate されているのにずっと生き残ってるヤツたちはクセモノのぞろいで、全然初心者向けではありませんでした。 代わりに、Docディレクトリを deprecated-removed:: で grep して、 3.10 で削除する予定になっているものを削除する方がずっ…

PEP 623: Remove wstr from Unicode について

今週新しいPEPを作りました。 www.python.org 背景 Python 3.3からUnicodeの内部表現が変わり、文字列に含まれる最大のコードポイントから1byte(ASCII or latin1), 2byte (UCS2), 4byte (UCS4)を選ぶようになっています。 (PEP 393 Flexible Unicode Represe…

バグがあっても接触確認アプリをインストールしてほしい理由

3行サマリー: アプリではなくOSが接触履歴を取っている 今のアプリはOSの接触履歴をONにするだけ。バグがあっても使わなければ問題ない (特に東京では)今週の接触履歴が今後役に立つ可能性がある とうとう接触確認アプリが公開されました。これで今までより…

ISUCON9決勝参加記 (チーム名: ようするにメガネが大好きです)

ISUCON9決勝に参加して fail しました。原因は自分の書いたバグで大分凹んでいます。ピークスコアは14991点でした。 やったこと 自分がやった分だけ。大したことはやれていません。 pprof, stackdriver trace の導入 Docker compose があったのでローカル開…

ISUCON9予選参加記 (5位通過)

mapk0y (インフラ), makki_d (アプリ) とともに「ようするにメガネが大好きです」というチーム名で参加し、2日間を通して5位のスコアで通過しました。 選択言語は Go です。ソースコードはこちらで公開しています。 GitHub - methane/isu9q POST /buy 初期対…

(PEP 584) dict + dict 演算子追加について

注意:この記事は議論中の機能について紹介し自分の考えを述べるものです。 Python 3.8 で追加されるらしいよ!みたいな拡散はしないでください。 Python-ideas で dict + dict が提案され、PEPになった。 www.python.org d3 = d1 + d2 の動作は、 d3 = {**d…

MySQL Connector/C の代わりに MariaDB Connector/C を使う

mysqlclient の Windows 版バイナリ wheel を作るために、以前は MySQL Connector/C を使っていたのですが、しばらく問題があって利用できませんでした。 static link library が提供されない ビルドの仕方がよくわからん。ドキュメントもない。 TLS と sha2…

go-sql-driver/mysql の QueryContext でコンテキストをキャンセルしたら race が起こる

タイトルの通り、 QueryContext の第一引数に渡した Context を、 Rows.Close() を呼び出す前にキャンセルすると、 race が起こる可能性があります。 修正する pull request を作成したのですが、メンテナが作ったプルリクエストは他のメンテナのレビューな…

Sony の SBH90C レビュー

https://www.amazon.co.jp/dp/B07CZQMYKK/ref=as_li_ss_tl?&hvadid=274798673996&hvpos=1o3&hvnetw=g&hvrand=13734372561970267267&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1028853&hvtargid=pla-465703230864&th=1&psc=1&linkCode=ll…

MySQL Connector/C の現状

MySQL 8 が GA になってたときは MySQL がどういうつもりなのかいまいち分からなかったのですが、 8.0.13 リリースを機に改めて調べてみたらこんな感じでした。 従来の MySQL Connector/C は単体提供されない。サーバーをインストールしたらついてくる。 MyS…

Python の repr(float) を高速化する

Python の repr(float) は、 float(repr(float)) が保証される最短の表現を返します。 実装には netlib の dtoa を使っています。 この dtoa より速い実装が世の中にはあって、 V8 なんかで使われているようです。 github.com float の repr の実装をこの速…

ISUCON 8 予選の Go 初期実装に見る初心者コード

会社のBlogにも書いたのですが、ISUCON 8 予選で負けてきました。 さて、 ISUCON の初期実装の定番として、初心者が書いたようなSQLやコードになっている点が挙げられます。 今回の Go の初期実装もその定番にもれず、初心者がやりがちな、Goの良さを殺して…

hub コマンドの BDD がユーザードキュメントとして素晴らしい

OSSメンテナをしていると他人のPRやブランチをチェックアウトして何かを確認したいということは頻繁にあって、いちいち git remote add して fetch してってのが面倒なので Github 製の Github CLI クライアントである hub を愛用している。 でも hub コマン…

Python 目線からの GAE/node.js Standard Environment 発表の解説

Google I/O 2018 で GAE/node.js Standard Environment が発表されました。 www.youtube.com 以下、「Python 3 早く来い!」の視点で注目点をピックアップしていきます。 9:00 頃から、 node.js Standard Environment が in a few weeks で登場すると発表 13…

RHEL 7.5 で Python 2.7 が deprecated になりました

Red Hat Enterprise Linux 7.5 がリリースされ、そのリリースノートで "Python 2 has been deprecated" とアナウンスされました。 Chapter 54. Deprecated Functionality - Red Hat Customer Portal Python 2 has been deprecated Python 2 will be replaced…

Homebrew の Python で何が変わって何がもとに戻ったのか

rcmdnk.com 大分混乱した状態になってしまったので、今年何が変わってきたのか、今回の変更でどこまでもどったのかを整理しておきます。 1/19 python という formula が python コマンドをインストールしなくなりました。 python コマンドを起動すると、通常…

3月1日、Homebrew のデフォルトの Python が Python 3 になります。

以前からアナウンスされていた 通り、 3/1 (日本時間では 3/2 になるかも)にデフォルトの Python が Python 3 に切り替わる予定です。 現在そのプルリクエストがレビュー中です。 github.com 具体的には、今まで "python" という formula は Python2.7 で…

Zenfone 4 を買ったけどスクフェスがダメだった

今のメイン端末は Zenfone 3。 会社の補助制度が使えたのと、最近アズールレーンなるゲームをやっててローディングや一覧画面のスクロールの重さに耐えかねて。 ZF3 の Snapdragon 625 はなかなかいいバランスのSoCではあるのだけれど、シングルスレッド性能…

Python の正規表現で IGNORECASE するときは気をつけよう

Python 3 で文字列が Unicode になりました。というだけで感のいい人は分かるかもしれません。 はい、大文字小文字の判断も ASCII じゃなくて Unicode になります。 In [6]: re.match("[a-z]", 'ı', re.I) Out[6]: <_sre.SRE_Match object; span=(0, 1), match='ı'> この文字は LATIN SMALL LETTER DOTLESS I</_sre.sre_match>…

Go が for ループをやめるために足りないもの

ジェネリクスの話題になると常に出てくるのが、 for ループの代わりに関数型スタイルで書きたいという要望です。 for ループで書くのは、可読性が悪く、筋力がいるとまで言う人もいます。 しかし、ジェネリクスが追加されても、このスタイルのプログラミング…

Re: Re: Go にジェネリクスがなくても構わない人たちに対する批判について

kmizu.hatenablog.com Twitterである程度レスをしたのですが、やはり繰り返される話題なので残る形で書いておきたいと思います。 Goユーザーの中で、ジェネリクスがなくても構わないと主張するユーザーへの批判はしたけど、Goユーザー全てがそうだと思ってい…

Go にジェネリクスがなくても構わない人たちに対する批判について

なんども繰り返される話でうんざりなんだけど、繰り返されるたびに反論するのもアレなので、URL貼れるように記事にしておく。 Goが頑なにジェネリクスいらないというだけ他の言語勢から失笑買ってるというのは自覚して— {{alert()}} (@mizchi) 2017年9月19日…

Heroku 上での Python 3 率

requestsなどの作者として有名な、HerokuのKenneth Reitzさんが、とてもうれしいグラフを公開してくれていたのでシェアさせていただきます。 % of Heroku builds using Python 3: (it's the blue) pic.twitter.com/clUiZd0b01— Kenneth Reitz (@kennethreit…

XPS13 モニター2 (Ubuntu導入編) #DELLアンバサダー

XPS13のQHD+モニターはグレア液晶で、FullHD液晶ならアンチグレア液晶です。 ノートPCを使うのがリビングでベランダを背にする位置が多く、明るい時間帯はかなり反射が眩しくなるのでアンチグレアの方が良かった。 Dellに限らず、2-in-1じゃないクラムシェル…

XPS 13 のモニターに当選しました #DELLアンバサダー

DELLアンバサダープログラムでXPS13のモニターに当選し、今日届きました。これから約1か月モニターしていきます。 モニターに応募した理由は、ちょうど今使っている ThinkPad X 250 の次のノートを物色していたからです。 XPS 13 以外の候補は、 X1 Carbon (…

go-sql-driver/mysql の v1.3 が出たよ

リリース日が去年の12月なんでもう時間経っちゃってるんだけど、一応日本語でアナウンスしておきます。 MySQLドライバの go-sql-driver/mysql が、 Go 1.8 の新機能サポートの前に安定版リリースしようということで、 v1.3 のタグが打たれました。 master ブ…

Windows では2020年を待たずに Python 2.7 が使い物にならなくなっていく

昨日 mysqlclient 1.3.10 をリリースしました。 今までは Windows 版の wheel は Python 2.7 だけに提供していたのですが、 1.3.10 からは 3.5 と 3.6 だけに提供して 2.7 はドロップしました。 そもそも今まで Python 3 に wheel を提供できてなかったのは…

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。