概要 先日こちらの記事でgraphvizを使って状態遷移図を作成する方法をご紹介したのですが、これでもまだ複雑で記述量も多いのでとっつきづらいと思い、このgraphvizのソースコードを自動生成して画像を出力するコマンドラインアプリケーションを作成しました。 このアプリケーションはPyagram(ぱいあぐらむ)といい、その名前から察しがつくかと思いますがPythonを使用して開発されました。開発期間は1日でした。 このPyagramを使うことで複雑な状態遷移図を比較的簡単に作成することができるようになりますので、以下でご紹介したいと思います。 状態遷移図の描き方についてはこちらの記事を参考にしています。 出来上がりの図は以下のような感じになります。 図には幾つかのオブジェクトがあります。 図のタイトル(最上段) ビュー(二重丸) サーバサイドの処理(灰色の背景の一重丸) 画面遷移(破線の矢
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに Python入門系の記事では概して、Pythonのロギング機能の紹介で最初にlogging.debug()といったloggingモジュール付属の関数を呼ぶ方法を案内しています。 Python本家が提供するloggingの「基本チュートリアル」でもこの点で大差ありません。Python本家の基本チュートリアルでは、print()関数を使用する方法もロギングの手段として有効であるとし、タスクに応じてprint()やlogging.debug()を使いわけよう、という流れで記述されています。 コマンドラインスクリプトやプログラムで普通
ECサイト向けのレコメンデーション・エンジンを構築すると仮定しましょう。 構築する方法としては、コンテンツベースか協調フィルタリングを使用する2つの進め方があります。それぞれのメリットとデメリットを見てみましょう。そして、コンテンツベースエンジンを 簡単に実装する方法 について探りましょう(Herokuにデプロイ可能です)。 コンテンツベースを使用するとどのようになるのか先に知りたい方は、ほぼ同じレコメンデーション・エンジンが Groveの商品(紹介)ページで使用 されていますので、見てみてください。 コンテンツベースのレコメンデーション・システムはどのように機能するのか 商品説明や商品名、価格などの実際のアイテムプロパティなどが使用されるため、コンテンツベースシステムで構築されていると周りには思われているのではないでしょうか。これまで一度もレコメンデーション・システムの使用を検討したこと
【新機能】Python Serverless Microframework for AWS(プレビュー版)が登場! こんにちは、せーのです。今日は昨今でのクラウド構築での主流となりつつある「サーバレスアーキテクチャ」を更に効率的に構築できる便利ツールをご紹介します。ちょっとワクワクしますよ。 できるだけ速く、できるだけ直感的に AWSにてサーバレスアーキテクチャを実現するのに一番シンプルな方法は「Lambda + API Gateway」です。要件をREST APIの形に落とし込み、API Gatewayにデプロイ、URLを叩かれたらLambdaが連動して処理を開始する、というものです。Lambdaが自動的にスケールしてくれるので沢山のアクセスがきた時もうまいこと捌いてくれ、EC2無しでシステムの構築が可能となる、というものです。 しかし実際に組んだことがある方はわかるかと思いますが簡単な
どうも、セクションナイン の 吉田真吾(@yoshidashingo)です。 Python Serverless Microframework for AWSという、Serverless Frameworkに似たWeb APIのフレームワークがPreviewリリースされたのでチュートリアルどおり試してみます。 Preview the Python Serverless Microframework for AWS | AWS Developer Tools Blog ※ GitHubはこちら github.com 1. インストール $ sudo pip install chalice 2. 新規プロジェクト作成 $ chalice new-project demo $ cd demo 3. デフォルトの定義のままデプロイして確認する 定義ファイル app.py を確認する $ vi ap
AWS Developer Tools Blog Preview the Python Serverless Microframework for AWS Serverless computing is one of the most talked-about subjects among AWS customers. The AWS serverless offerings, AWS Lambda and Amazon API Gateway, make it possible for developers to create and run API applications with built-in, virtually unlimited scalability without managing any servers. Today the AWS Developer Tools
ShutIt Automation framework for programmers. Learn it in X minutes Quick start guide here Examples Examples are here, including: Gnuplot automation Automation of login with a .json configuration Set up a pre-built Vagrant machine What Next? Step 1: Get ShutIt Run the above as root, and ensuring python-pip and docker are already installed. Step 2: Create a Skeleton hutIt Module As your preferred us
Pythonも同封した、他パッケージへの依存がないsupervisorのRPMパッケージをOmnibusで作成してみました。 github.com 背景 CentOSの各バージョン(5, 6, 7)でSupervisorを使いたい、のだが。。。 CentOSではepelのyumリポジトリからsupervisorのRPMパッケージが提供されているというので、調べてみたのですが、CentOS5と6だとかなりバージョンが古い。提供されているのはバージョン2.xで、今の最新は3.3.0。かといってpythonのpipを使って最新をシステムワイドのpythonパッケージとしてインストールするのはイヤだなあと。 システムへのソフトウェアインストールはyumやrpmなどのプラットフォーム標準のパッケージ管理システムをなるべく使うというポリシーです。特にデーモンなどは、実用するならinitスクリプトやlo
概要 pep8 が pycodestyle というパッケージ名に変わってた Guido氏の提案が事の発端。 https://github.com/PyCQA/pycodestyle/issues/466 pycodelint という案も出てたが、pylint と区別がつかないので却下になってた 同時に pep257 も pydocstyle という名前に変わった https://github.com/PyCQA/pydocstyle/issues/172 自分の周りの影響範囲を軽く調べてみた。 追記(2018/02/27) ツール(ライブラリ)の pep8 の名前が pycodestyle という名前に変わったというだけで、PEP8 そのものには何も変更はないので気をつけてください。 pep8がスタイルガイドのPEP8と一緒だと混同しやすいのでツールは名前を変えようという話です。 pep2
vmprof-flamegraph を作ったのでその紹介をしておきます。 まず、サンプルとして Sphinx を使って Python のドキュメントをビルドしたときの vmprof 結果を flamegraph にしてみたので、どんなものかはこちらを見てみてください。 http://dsas.blog.klab.org/img_up/sphinx-prof.svg flamegraph について flamegraph の一般的な紹介については省略して、リンクだけ置いておきます。 公式サイト: http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html 日本語の紹介記事: http://d.hatena.ne.jp/yohei-a/20150706/1436208007 他にプロファイル結果をビジュアライズするツールとしては cac
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く