Raspberry Pi 2 Model B でPythonを使ってLチカ

Raspberry Piを買ったのはかなり前だったりするんですが、放置してたのを動かしてみました。 とりあえずはLチカ youtu.be コード main.py from RPi import GPIO import time def main(): GPIO.setmode(GPIO.BOARD) GPIO.setup(12, GPIO.OUT) try: state = Tr…

Xubuntuを14.04から16.04にアップグレードした

2010年のMacBookAir(メモリ2GB)にXubuntuをインストールして使ってるのだけど、14.04LTSのデスクトップ版から16.04にアップグレードした。 $ sudo apt update $ sudo do-release-upgrade -d Firefoxを起動しててもメモリ使用量は1GB以内ぐらいで収まってるの…

オープンソースカンファレンス2016 HokkaidoというイベントでDjangoの紹介をしました

6/18に北海道のオープンソースカンファレンスでDjangoの紹介をしてきました。 www.ospn.jp 説明が急ぎ足になったり、デモが中途半端に終わってしまって申し訳ない感じですが、聞きに来てくださった方はありがとうございました。 いくつか面白いセミナーもあ…

はてなブログに移行しました

使い慣れた『はてなダイアリー』から、『はてなブログ』に移行した。 そろそろMarkdown記法に慣れといたほうがいいだろうなーと思ったりしてるけど、はてな記法やreSTに比べると貧弱だし、サイトやソフトウェア毎の方言が強くてつらみがある。 やっていく。

dockerとdocker-composeの使い方メモ

プライベートで使ってるVPSの環境をdocker-composeで動かしたのだけど、忘れてもいいようにメモを残す。 ホストOSは、Ubuntu16.04。 インストール dockerは手順通りaptでインストールすればよい。 Installation on Ubuntu docker-composeは、dockerとは別途…

通信料金の計算2016夏

前回の計算以降、プランの見直しや通信回線の解約、契約を行ったので、メモを残す。 現状の使い方 auガラケー、Nexus4、モバイルルーター(Aterm MR04LN)の3台を持ち歩いてる Nexus4はデータ通信専用、So-netの0 SIMを挿してるが、できるだけモバイルルーター…

pyftpdlibを使って1ユーザー専用のFTPサーバーを作った

pyftpdlibを使って、1ユーザー専用のFTPサーバーを作ってました。 でかいデータの受け渡しなんかに使ったりするのにFTPサーバーがやっぱり便利なんで。 ついでにDockerを試したりしてた。 GitHub - tokibito/soloftpd: FTP server application. soloftpd 0.4…

DjangoのDeprecationWarningを確認する

Djangoフレームワークでは、APIが変更、廃止される場合には、次のバージョンですぐに変わってしまうのではなく、警告を上げた上で2つ先のバージョンで削除されることになっています。 Deprecation policy Pythonの組み込み例外であるDeprecationWarningを継…

cx_Oracleをマルチスレッドで使う

PythonでOracle Databaseに接続するには、cx_Oracleを使う。 マルチスレッド環境下でcx_Oracleを使う場合にハマったのでメモを残す。 Oracleのクライアントライブラリは、マルチスレッドで使う際には、OCI_THREADEDというモードで使わないといけないらしい。…

concurrent.futures.ThreadPoolExecutorを使ってみる

Python 3.2から追加されたconcurrent.futuresモジュール。 ThreadPoolExecutorを使うと、スレッドプールで処理を実行できる。 コード main.py import time import threading from concurrent.futures import ThreadPoolExecutor def spam(): for i in range(…

スレッドが終了するタイミングについて検証

Pythonでスレッドをしばらく使っていなくて、どういう動きするのだったか忘れてたので、検証したメモを残す。 試した環境は、Ubuntu 14.04、Python 3.5.1。 検証に使ったコード main.py: import threading import os import sys import time import signal d…

funkload-friendlyというモジュールを作りました

FunkLoadはPythonで作られたWebアプリケーション向けの負荷試験ツールです。 レポートがわかりやすいので、負荷試験の際によく利用してます。 便利ではあるのですが、いくつか使いづらい点があったので、funkload-friendlyというラッパーモジュールを作りま…

テンプレートからプロジェクトを生成できるcookiecutterを試す

cookiecutterは、テンプレート(雛形となるファイル群)を元に、プロジェクトファイル(ディレクトリやファイル)を生成できるコマンドラインツール。 Pythonで作られている。 GitHub - audreyr/cookiecutter: A command-line utility that creates projects fro…

unittest.mock.patchの使用例

Pythonの標準ライブラリに含まれるunittest.mockモジュールの使い方メモ。patchのみ。 試したバージョンは、Python 3.5 テスト対象 main.py import subprocess def say(message): """echoコマンドでmessageを実行する """ return subprocess.call(['echo', m…

Pythonコードを3-way mergeする場合にKDiff3とP4Mergeのどちらを使うか検討

もう何年もKDiff3ユーザーですが、無料のマージツールならP4Mergeも良いよと聞いたので、少し試してみました。 MercurialやGitのマージツールとして使うため、3-way mergeが前提です。 できるだけ自動解決したいので、うまく自動解決する手段があればそちら…

Djangoで複数のデータベースを使う際に、モデルごとに使われるデータベース名を取得する

Djangoで複数のデータベースを使う際に、データベースルーター(Database router)を設定すると、モデル毎にデータベースを切り替えたりできます。 Multiple databases | Django documentation | Django データベースルーターが設定されている場合に、アプリケ…

複数のレコードをまとめて更新する際にdjango-bulk-updateが便利

既存の複数のレコードをまとめて更新する際にdjango-bulk-updateというパッケージが便利だったので紹介します。 GitHub - aykut/django-bulk-update: Bulk update using one query over Django ORM 通常のDjangoのORMを使ったレコードの更新 Djangoで既存の…

jedi-vimのrpcフォークをWindowsで使ってみた

メモ書き。jedi-vimのjedi部分をRPCで動かすforkを@nakamurayが作ってくれたのでWindowsで動かしてみてた。 https://github.com/nakamuray/jedi-vim/tree/rpc https://github.com/nakamuray/jedi-vim/tree/rpc2 そのままではWindowsで動かなかったので、手元…

作業のお供にノンアルコールビール(主にドライゼロ)

この記事はpyspa Advent Calendar 2015の2日目の記事です。 Python温泉は主催者の意向により、酒を飲むのは禁止となってます。 ノンアルコールビールは、酒としてカウントされないのでOKとなっています 。 前回のPython温泉で、「ノンアルコールビールでもド…

Delphiでインターフェースを使う

久々にDelphiを少し触ってました。かなり忘れてる。 Delphiのインターフェースを使って2つの実装クラスを作り、実行時にどちらのクラスを使うか決定してる。 試したバージョンはDelphi XE4。 Main.dpr program Main; {$APPTYPE CONSOLE} uses System.Classes…

通信料金の計算2015年秋

通信料金がいくらぐらいかかっているのか計算などやってたので、メモを残す。 現状の使い方 auガラケー、Nexus4、PocketWifi(GL10P)の3台を持ち歩いてる Nexus4はデータ通信専用、SORACOM AirのSIMを挿してるけど、できるだけPocketWifiのほうを使ってる。 b…

dulwichを使ってPythonでGitのカスタムコマンドを作る

Gitのコマンドがわかりづらくて好きになれないんですが、気に入らない部分はカスタムコマンドを作ればいいよね。 ということで方法を調べてました。 カスタムコマンドの作り方 Gitのカスタムコマンドは、「git-コマンド名」のような実行可能ファイルを用意し…

A5:SQL Mk-2が便利だった

A5:SQL Mk-2はER図の作成やSQLの実行、結果の表示などができるGUIのツール。Windows用。 ちょっとしたSQLを書くときや、ER図作成のためにWindows用のツールがほしくて、探してたところ見つけた。 しばらく使ってみて、そこそこいい感じだったので紹介する。 …

PyPy3 2.4.0を使ってみた

最近、仕事でPyPy3を試したりしているので、メモを書き残しておく。 PyPy - Welcome to PyPy インストール 今回はUbuntu 14.04LTSで試した。PyPy3はPPAリポジトリに無いので、Linux向けのコンパイル済みバイナリをダウンロードして使うことにした。 利用する…

Mercurialのextensionを作る

Mercurialのextensionは、hgext/モジュール名.pyというレイアウトで作ればいいみたい。 Python 2.7、Mercurial 3.5.2で試した。 $ hg hello Hello world!GitHub - tokibito/mercurial-helloworld: helloworld mercurial extension

PyConJP 2015に行ってきた

タイトルの通り。PyConJP 2015に一般参加で行ってきました。 PyCon JP 2015 in Tokyo | October 9th – October 12th CfPに応募はしていましたが、今年は倍率が高いせいもあってか落選したので一般参加。 聞きたいセッションをいくつか聞いて、それ以外はオー…

オートバイで福島、山形、新潟へ行ってきた

シルバーウィークの旅行のまとめ。 オートバイで福島、山形、新潟へ行ってきました。 日程: 2015年9月23日(水)〜9月25日(金) 2泊3日 行き先: 福島県、山形県、新潟県 総走行距離: 1002km 1日目 自宅から米沢方面へ 外環自動車道→東北自動車道で福島飯坂ICを…

Pythonでプログラムの終了コードを指定する

Pythonでプログラム(プロセス)の終了コード(終了ステータス)を指定して終了するには、sys.exitの引数に数値を指定する。 試したのはPython3.4。 29.1. sys — システムパラメータと関数 — Python 3.4.3 ドキュメント コード main.py import sys def main(): #…

PythonでUnixドメインソケットを使って通信する

サーバー側 サーバー側のプログラムは、指定したファイルパスにソケットファイルを作ってクライアント側からの接続を待ち受けます。 server.py この例では、 /tmp/myapp.sock というパスにソケットファイルを作成します。クライアント側から送信されたデータ…

ISUCON参加で使う資料などリンク

ISUCON5のオンライン予選に参加するので、使うかわからないけど準備。 資料のリンクだけまとめといた。 nginx nginx documentation Module ngx_http_uwsgi_module Python 27.4. Python プロファイラ — Python 3.4.3 ドキュメント Flask Welcome to Flask — F…