本書はCC-BY-NC-NDライセンスによって許諾されています。ライセンスの内容を知りたい方はhttps://creativecommons.org/licenses/by-nc-nd/4.0/deed.ja でご確認ください。
テニスの動画解析ツールでできること 動画解析ツールでは以下のことをできるようにしています。 動画をシーン毎に分割 スコアを記録(15-15 30-15など) エース、ストロークウィナー、ストロークエラーなどのポイントの種類を分類して記録 サーブの着地点座標をマウス操作で記録 テニスのスコアを記録するツールは多くあると思うのですが、サーブの着地点を記録するようなツールはないため、つくってみたら面白そうだなと思い、やってみた次第です。 github.com/taikoma/TennisVideoAnalysis 操作画面やデータ分析結果 操作画面、データ分析結果(サーブの着地点の記録、ポイント種別のグラフ化)は↓のようになります。 (錦織とデルポトロが対戦した試合を分析した結果です。詳しくは自作したテニスのビデオ分析ツールで錦織・デルポトロ戦を分析してみましたをご覧になってください。) 操作画
連載「Visual Studio Codeで始めるPythonプログラミング」 前回は、Visual Studio Code(以下、VS Code)でPythonするために必要となるPython拡張機能のインストールを中心に話をした。今回は、これを利用して、実際にPythonコードを記述、実行する方法を見ていこう。 なお、本稿ではWindows版のVS Code(64ビット版)を使用し、venvモジュールを用いて作成した仮想環境を使用している。 ファイル操作はここで:[エクスプローラー]ビュー 前回も簡単に述べたが、VS Codeでは「フォルダを開いて、そこに含まれるファイルをエディタと呼ばれる領域(タブ)で編集する」のが基本だ(単一ファイルを開いて、編集することも可能ではある)。ここではvscpython_02フォルダを開いている。開いたフォルダに含まれるファイル群はサイドバーと呼ばれる
4/30 公開 5/1 増補改訂: 大幅加筆しました。 この記事では、2018年以降に実現可能になったモダンなPythonプロジェクトのはじめかたを整理して紹介します。 PythonにもPipenvという公式推奨の高機能なパッケージマネージャーが登場し、さらに2018年に入ってからの機能向上で、npmやyarnのような開発体験が得られるようになってきました。 私はここしばらくはフロントエンドやNode.jsに携わっていて、npmやyarnに慣れきっていたせいか、pipenv導入以前はvirtualenvやpipを組み合わせた開発が面倒で仕方なかったですが、Pipenv導入によって一変しました。 これからはPythonのプロジェクトがよりクリーンかつ簡単にはじめられるようになり、開発体験も向上するでしょう。 それでは、まずはPythonのインストールからです。 Pythonのインストール P
- はじめに - 最近はWebスクレイピングにお熱である。 趣味の機械学習のデータセット集めに利用したり、自身のカードの情報や各アカウントの支払い状況をスクレイピングしてスプレッドシートで管理したりしている。 最近この手の記事は多くあるものの「~してみた」から抜けた記事が見当たらないので、大規模に処理する場合も含めた大きめの記事として知見をまとめておく。 追記 2018/03/05: 大きな内容なのでここに追記します。 github.com phantomJSについての記載が記事内でありますが、phantomJSのメンテナが止めたニュースが記憶に新しいですが、上記issueにて正式にこれ以上バージョンアップされないとの通達。 記事内でも推奨していますがheadless Chrome等を使う方が良さそうです。 - アジェンダ - 主に以下のような話をします。 - はじめに - - アジェンダ
今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のような本だったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ
pyspaの統合思念体の渋川です。 「pyenv使いましょう!」系の記事、全部ゴミ — Yoshifumi YAMAGUCHI (@ymotongpoo) September 29, 2016 これはpyenvがダメではなくて、pyenvをとりあえずインストールしておきましょう記事がダメという意味だそうです。すでにとんぷーが5年前にこの問題について書いています。これを読んで分かる人には不要です。 この記事では「便利」と「必要」は分けて考えています。後者にフォーカスしています。 前提知識 Environment Isolation Tool(環境分離ツール)というカテゴリの開発補助ツールがあります。pip install Sphinxとか書いたら、ライブラリはグローバル空間に入っちゃいます。複数バージョン入れられません。そんなときに使うのが、この環境分離ツールです。最近はいろいろな言語がこれ
2016-12-09追記 「Pythonクローリング&スクレイピング」という本を書きました! Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド- 作者: 加藤耕太出版社/メーカー: 技術評論社発売日: 2016/12/16メディア: 大型本この商品を含むブログを見る 2015年6月21日 追記: この記事のクローラーは動かなくなっているので、Scrapy 1.0について書いた新しい記事を参照してください。 2014年1月5日 16:10更新: デメリットを修正しました。 以下の記事が話題になっていたので、乗っかってPythonの話を書いてみたいと思います。 Rubyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - 病みつきエンジニアブログ 複数並行可能なRubyのクローラー、「cosmicrawler」を試してみた - プログラマにな
Python Advent Calendar 2013 の4日目です。 Python 3.4 で標準ライブラリに追加される asyncio を触ってみます。 なお、 Tulip とは asyncio のリファレンス実装のプロジェクト名です。 背景 Python はよく非同期 I/O プログラミングに使われます。 Twisted, Tornado, gevent, eventlet, pyuv などのフレームワークがあります。 これらのフレームワークの問題点として、ライブラリの再利用性の低さが挙げられます。 たとえば Twisted 用に書かれた XMPP ライブラリは、そのままでは Tornado で 利用することができません。 この問題の解決策として、良くイベントループの乗り入れが行われます。 GUIアプリケーションに組み込む場合などを考えて、多くのフレームワークが最初から イベントルー
http://patshaughnessy.net/2013/10/24/visualizing-garbage-collection-in-ruby-and-python Pat Shaughnessyが、ブタペストで開催されたRUPY2013でのプレゼンの前半を自らのブログで紹介しています。 ガベージコレクタは、「ゴミを集める」という行為だけでなく、「新しいオブジェクトのためにメモリをあてがう。」「不要なオブジェクトを見つける」「不要なオブジェクトからメモリを取り戻す。」という、人間の心臓が血液を浄化するような働きをしている。 この簡単なコードサンプルを見ると、RubyとPythonの記述はよく似ているが、それぞれの言語の内部でのインプリの仕組みは違う。 1) Rubyのメモリ Rubyは、コードが実行される前に、数千のオブジェクトを先につくり、それをリンクされたfree listに置
日本マイクロソフト株式会社 Digital Sales 事業本部 Digital Cloud Solution Architect 上坂 貴志 クロスプラットフォームに対応した .NET Core、.NET 5 を得てリリースされた .NET 6は待望の LTS (Long-term Support)です。新規開発であれば .NET 6 での開発を検討できますが、.NET Framework で作成された既存のシステムはどうすれば良いでしょうか。 .NET Framework は version 4.8 を最後に新機能の追加予定は今のところありません。今後のことを考えて .NET 6 へのアップグレードを検討したいところですね。 このセッションでは .NET Framework から .NET 6 へのアップグレードについての様々な情報をお伝えします。
Pythonユーザーが集まり、情報交換し、交流するためのカンファレンス「PyCon APAC 2013」が9月13日、14日に都内で開催されました。PyCon APACはこれまでシンガポールで開催されており、今回初めて日本で開催されました。 Pythonは日本ではあまり利用事例が多くありませんが、海外ではGoogleやDropboxなどで使われていることが知られ、人気のあるスクリプティング言語の1つです。Pycon APAC 2013の2日目の基調講演には、そのDropboxの3番目の社員であるRian Hunter氏が登壇、Dropboxの社内事例も交えてPythonの大規模開発について紹介しています。 基調講演の内容をダイジェストで紹介しましょう。 One Million Lines of Python このカンファレンスに呼んでいただけて大変光栄です。日本には初めて来ました。 僕が初
普段、Pythonのコードは何となく速かろうという、言ってみれば勘で書いているのだけど、その勘とやらは往々にしてウンコードを生むものである。そこで、プロファイラを使っていきたいと思う。 使えそうなツール そういうわけで、いくつか使えそうなツールをリストアップした。 経過時間のプロファイラ ツール名 メモ profile ビルトイン, ピュアPythonの決定論的プロファイラ cProfile ビルトイン, C拡張の決定論的プロファイラ line_profiler 行単位の決定論的プロファイラ Plop 統計的プロファイラ, Dropboxの人が作ってる statprof 統計的プロファイラ, 開発停止? yep 拡張モジュール用の統計的プロファイラ, バックエンドにgoogle-perftools メモリのプロファイラ ツール名 メモ memory_profiler 行単位でメモリ消費量の
POST /post HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: 7 foo=bar 1行目は request-line で、 method URI HTTP-version の形をしています。URIはホストを含めた絶対URIの場合と、ホストを含めない絶対パスの場合がありますが、絶対パスの方が一般的です。 2行目から空行までが request-header です。各行は field-name: field-value の形をしています。 field-name は大文字小文字を区別しません。 request-line から request-header とそれに続く空行まで、改行は CR LF になってます。Windowsでよく見る改行コードですね。 meth
pythonワンライナーでテスト用のsmtpサーバーを立てる方法 python -m smtpd -n -c DebuggingServer localhost:20025 telnetで接続してみる $ telnet localhost 20025 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 macbookpro.local Python SMTP proxy version 0.2 HELO 127.0.0.1 250 mackbookpro.local MAIL FROM: foo@example.com 250 Ok RCPT TO: bar@exam
pythonの補完は、vimが標準で配布している物で事足りるかなーとか思ってたけど浅墓すぎた。 今日見つけた jedi-vim は良い。 davidhalter/jedi-vim - GitHub Using the jedi autocompletion library for VIM. https://github.com/davidhalter/jedi-vim 何が良いって精度が良い。そして標準配布の pythoncomplete がモジュールとそのモジュール内関数しか補完出来ないのに比べ、jedi は評価値を補完出来る。 そしてスゴイのが構文を仮実行しているのではなく、パースしている点。jedi というモジュールを使って、構文解析している。 davidhalter/jedi - GitHub Awesome autocompletion library for python. I
渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 PythonのAPI設計の中で、たまに思い出したように話題が出てくるのが、配列に入った文字列を結合するメソッド。Pythonではstr.join(iterable)です。他の言語(僕がよく知っているRubyとJavaScript)はArray.join(String)となっています。どちらでもありえる話ですが、個人的にはPythonの方が自然だな、と感じていました。ですが、他の言語の方がいいという人も多く、Pythonプログラマーの中でも好き嫌いが出たりもします。せっかく、弾さんがPerlの国からやってきて適度にガソリンをまいて炎上したところなので、Pythonの歴史を紐解いてみました。 軽くjoinの歴史について語っているサイトはないか探してみる 軽くぐぐってみると、何箇所か
1. ソフトシンセを作りながら学ぶ Pythonプログラミング 2012-09-15 Python Conference JP 2012 Ransui Iso Strategic Technology R&D / X-Listing Co, Ltd. Copyright (c) 2011 Ransui Iso, All rights reserved. 2. おまえ誰よ? Ransui Iso (磯 蘭水) Work at X-Listing Co, Ltd. http://www.xlisting.co.jp/ Pythonは1998年から使っています。E-Commerceエンジンやサーチエンジンの開 発、Zopeを用いたWebサイト開発、その他色々を経て、今はネット広告配信シス テムについての研究開発をしています。最近はCommon Lispでシステム開発をし ていますが、Python
ノンブロッキング Web サーバ Tornado を利用したサーバをデバッグモードで起動している場合、インポートしているファイルが変更されるとサーバは自動的に再起動する仕組みがある(autoreload)。 $ [I 120825 10:26:20 autoreload:175] /path/to/file.py modified; restarting server Tornado ではどのようにして実現されているのか調べてみた。 処理の流れ 処理の流れは以下のようにシンプル。 I/O イベントループインスタンスを作成 ファイルの最終更新日をチェックするコールバック関数を定期実行スケジューラーに登録 インポートしているファイル群をワッチリストに追加 I/O イベントループを開始 インポートしているファイルの最終更新日が変更されると、スケジューラーの定期実行時に前回との更新日時の比較が行わ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く