銀月の符号

URL:http://d.hatena.ne.jp/fgshun/
RSS:http://d.hatena.ne.jp/fgshun/rss

[変更]
最終更新日2018/12/04 14:35:00

タグ

Python 

記事

KLab Engineer Advent Calendar 2018 3日目

2018-12-04 14:35:00
KLab Engineer Advent Calendar 2018 3日目を書いた。昨日に無事出せている。 Python/C API で Python モジュールを書く方法の復習的な何か、ついでにソースからの Python 3.7.1 のビルド、インストール方法も。

Hatena Blog への移行と生存報告

2018-11-28 01:37:41
移行 2019年春にははてダは終了すると聞いてはいたもののまだ移行していなかったので。そろそろやっておこうかなと思い至ったところ。 2018年11月の様子をメモ 生きてた。なんやかんやあってまだ Python で遊んでいる。わかったつもりがよりわからないことが増える、そんなことの繰り返し。その他の言語、普段使わないツール環境に手を伸ばしてもいるところ。先日は食わず嫌いしていた Docker に入門していたところ。楽しい。あと KLab Advent Carendar の 3 日目に Python/C API でなんか書くといってみたもののコード断片しかできていないので焦っているところ。 PyS…

cjholiday 更新と Python 3.6.5 でも動くのを確認

2018-06-24 22:57:49
生存報告、 2018年も生きている。そしてなんとなく祝日判定 cjholiday (https://github.com/fgshun/cjholiday 時は流れ github に置くようになっていた)の移植元・本家様 AddInBox をみて 2020年東京五輪の影響があることに気づいて追随してみたり。 Python 3.6.5 でもうごかして無事であることを確認してみたり。

cjholiday 更新 Python 3.4 対応

2014-09-21 17:49:04
Python 3.4 対応しました。http://www.lazy-moon.jp/soft/index.html#cjholiday3系になることで、当然ながら C/API にも変更があったためそのままではビルドできず、ちょっとだけ手を入れました。 Py_InitModule3 関数などが無くなっていたりしまして。いや、こいつは名前からしてあれだったし整理されたのはよいことだとおもう、きっと。あとユニコード文字列周りを少々。

cjholiday 更新

2014-09-14 02:32:41
jholiday.py が更新していたので cjholiday.py を追いつかせました。山の日関連。 Windows 用の Python 2.7 バイナリあります。Python C API を数年ぶりに触りました。 ctypes では不足の事態に追い込まれてこれを使う、なんて状況がそうそうあるはずもなく結構忘れていて。今は Python 3.4 でビルドするための調整中です。

生きてるー

2013-06-06 14:03:23
ブログ書かず、いや書けず。仕事はけっこうできているつもりだけれどもプライベートになるとアウトプット量が激減してしまう。あいかわらず残念なブログ。この半年の間に Python は 2.7.5 と 3.3.2 に。マイナーバージョンアップ。あと年始あたりからニンジャヘッズ化しました。過去のツイートオーを読みあさりおわり、今では新しい投稿が待ち遠しい、でも実況には参加していない、そんな程度の高くも低くもない中途半端な重篤度です。たぶん。

口座残高にダメージ

2012-10-23 23:06:44
ソーシャゲームつくる仕事している以上、一度はソシャゲ遊びまくってみようと、とあるゲームのイベントを勝ちにいった。お金かけると熱くなれるのを確認。しかし口座にダメージ。そして無課金プレイに戻る、と。

気がついたら2012年10月(またかよ)

2012-10-21 16:10:49
放置再び。ブログを書くことができない体質にでも変わってしまったのだろうか。この半年はてなダイアリーに書くことはなかったけれども、ほかの人のを読んだり、はてなブックマークしたりとはてなにお世話になっている状態はつづいております。この間 Python は 2.7.3 と 3.3.0 がリリースされ。 What's New よんで新しい要素の情報を仕入れ中。

気がついたら2012年3月

2012-03-19 02:26:20
放置すること1年以上。前書いていたときには、こんなにあいてしまうなんて予想だにせず。仕事急がしいし。でも全力で進みつづけた1年半。後悔はしていない。 Python で日数を数える ところで、何日あけちゃったんだ? Python はこんな調べ物にもつかえます。 In [1]: import datetime In [2]: print datetime.date(2012, 3, 19) - datetime.date(2010, 9, 20) 546 days, 0:00:00 546日だと? すごく残念な答えがかえってきた。datetime.date 同士は減算できる。期間を表すdateti…

SQLAlchemy で Firebird その3

2010-09-20 00:40:50
その0 準備 その1 テーブル定義関連 その2 接続関連 その3 クエリー関連(ORM 版)(いまここ) クエリー関連(ORM 版) 詳しくは Object Relational Tutorial に載っている。とりあえず DB 設定、テーブル設計、セッションの作成を。 from sqlalchemy import create_engine from sqlalchemy import Column from sqlalchemy import Integer, String from sqlalchemy.orm import sessionmaker from sqlalchemy.ex…

SQLAlchemy で Firebird その2

2010-09-12 16:16:51
その0 準備 その1 テーブル定義関連 その2 接続関連(いまここ) その3 クエリー関連(ORM 版) DB 接続まわり。 Engine Firebird を使用するには create_engine にて firebird+kinterbasdb を指定する。次のようになる。 engine = create_engine('firebird+kinterbasdb://user:password@host/dbalias') Firebird に限らない設定は Database Engine Options にて。とりあえず 3 つだけメモ。 connect_args DBAPI の con…

SQLAlchemy で Firebird その1

2010-08-28 01:37:29
その0 準備 その1 テーブル定義関連(いまここ) その2 接続関連 その3 クエリー関連(ORM 版) テーブル定義関連。まずは Object Relational Tutorial 。そのあとに読むべきは Mapper Configuration 、 Describing Databases with MetaData 、 Column and Data Types って多いよ。うれしいけれど文章多すぎるよ。こんなところにも Python らしさがにじみ出ているというかなんというか。しかも英語なのでオレの貧弱な英語力で読み直すには速度に難あり。なのでメモのこしたりリンク張ったりしておく。 …

SQLAlchemy で Firebird その0

2010-08-22 00:34:47
その0 準備(いまここ) その1 テーブル定義関連 その2 接続関連 その3 クエリー関連(ORM 版) まる 1 日かかって Python, SQLAlchemy 経由で Firebird データベースが扱えるようになったけれど、なにを行ってきたのか忘れそうなので覚書を残す。記録をとっておかないと名前に惹かれてつかってみようと思い至ったもののあっさり挫折した 3 年前の自分にすぐ戻りそうだ。今回は環境の準備について。タイトルに反して SQLAlchemy はまだでてこない。 環境 Ubuntu 10.04 (Windows XP Pro の VirtualBox 3.1.4 上) Fireb…

Python レシピ更新 ハッシュの要素を挿入した順に取り出す

2010-08-21 16:31:20
『118:ハッシュの要素を挿入した順に取り出す』を 「PEP 372 で順序つき辞書提案中」という内容から、「標準モジュール collections に OrderedDict があるよ」という内容に更新! collections.OrderedDict 、その実装 collections.OrderedDict の実装は「順序の保持に双方向循環リストを用いる」というものだった。すべてのメソッドの計算量が通常の dict と同じオーダーとなっている*1とのこと。なので「順序の保持に Python 組み込みの list*2 を用いる」実装のものとは特性が異なる操作があったりする。たとえば Ord…

Windows Python 2.7 でも MeCab 0.98

2010-08-10 23:27:33
先週土曜 2010/8/7 に Windows で MeCab 0.98 の Python 2.7 バインディングをビルドしました。方法はやっぱり以前と変わりなしです。 ダウンロード 前々回 形態素解析エンジン MeCab 0.97 とその Python バインディングを MinGW でビルドする - 銀月の符号 前回 形態素解析エンジン MeCab 0.98pre3 野良ビルド - 銀月の符号 つまり、使い方も変わりなしです。そして、『ナイーブベイズを用いたブログ記事の自動分類 - 人工知能に関する断創録』によるとMeCabの本サイトの mecab-0.98.exe と問題なく共存できるみた…

日記かいてない

2010-08-04 23:51:44
Python 2.7 がリリースされたりと世の中は進み続けているのに、オレの日記は1月以上止まっていたようだ。はてダの入力インターフェースも気がついたら新しくなっていたし。さて、なに書こうかな? 今週金曜夜から無事生還できたら、 Python 2.7 で遊ぶんだ…ってなんのフラグだコレ?とりあえず今週末は Python Recipe に OrderedDict を反映させるのと、 Mecab Python バインディングを Windows Python 2.7 環境でビルドをやる予定。

絵文字にマッチする正規表現 Unicode 版

2010-06-28 10:42:11
携帯電話の絵文字に触れる機会があったので、絵文字にマッチする正規表現を。絵文字は Unicode の外字領域にある。なので絵文字以外の外字が使われていないという前提があるならば、こうしてしまえばよい。 import re private_use = re.compile(ur'[\uE000-\uF8FF]') これだとあまりにも乱暴なので、以下の Wikipedia 記事を参考に範囲を狭めると、こうなる。 import re _au = ur'\ue468-\ue5df\uea80-\ueb88' _docomo = ur'\ue63e-\ue6a5\ue6ac-\ue6ae\ue6b1-\…

100,000 ヒット

2010-05-16 22:24:48
今日は引っ越してから11日目。だいぶ落ち着いてきたので1月ぶりに自分のはてダを…と思ったら。アクセスカウンタが 100623 を表示。とうとう 6 桁に到達。 2 年と 2 ヶ月かぁ。このブログを始めたころは、いろいろとあせってたなぁ。なにも経歴が無い、と。なんでもいいから形に残さなければ、とおもったのが始めた理由のひとつ。Python おもしろすぎる、というのも理由のひとつ。名前がないと始まらないのでひねり出したタイトルは「色+月」で厨二病要素全開だけどいまさら変更できないし、するつもりもない。 2 年たった今でも厨二病継続中。不治の病。

MessagePack メモ

2010-03-31 23:24:30
http://msgpack.sourceforge.net/ Python help(msgpack) するとファイルライクオブジェクトに対して入出力する pack, unpack と、 Python 文字列を対象とする packb (= packs), unpackb (= unpacks) の説明あり。 import sys import msgpack msgpack.pack([1, True, 'example'], sys.stdout) import sys import msgpack print msgpack.unpack(sys.stdin) $ python writ…

setup.py install --home=~

2010-03-25 00:09:27
python setup.py install --home=~と export PYTHONPATH=~/lib/pythonの合わせ技を思い出した。今度は忘れないようにメモ。テスト中の Python ライブラリを Python システム外に仮置きする簡単な方法のひとつ。 --home=~ と 8 文字タイプするだけでホームディレクトリ下に置くことができる。そして、このライブラリに Python がアクセスできるようにするには環境変数 PYTHONPATH を指定するのが方法のひとつ。この手法は root 権限が得られないけれど Python ライブラリをインストールしたい時にも使える。この…

スミス数(すみすすう)

2010-03-23 11:15:59
すみすさんの すみす.jp ドメイン取得祝いに、スミス数ライブラリを Python で書いたよ。*1 smithnumber.py version 1.1 (2010/3/24) smithnumber.py version 1.0.3 (2010/3/23) smithnumber.py version 1.0.2 (2010/3/23) smithnumber.py version 1.0.1 (2010/3/23) smithnumber.py version 1.0 (2010/3/23) Python 2.6.4 で作成、動作確認。version 1.0.1 。 Python 2.5…

素因数分解

2010-03-22 11:00:06
割り切れるかどうか試してみる、という力業の方法で。http://tsumuji.cocolog-nifty.com/tsumuji/2009/05/post-af3f.html を参考に作成。素因数分解は素数で割ってみることでできる。しかし、素数を求めることそのものに時間がかかるため単に 2 と 3 以上の奇数で割ってみてしまったほうが早い、そして 2, 3 と 6 * n ± 1 (n は 1 以上の整数)で割ったほうがさらに早い、という内容。 factorize.py # coding: utf-8 u"""素因数分解""" import itertools def _ifactorize…

素数列の生成3

2010-03-22 11:00:05
素数列の生成2 - 銀月の符号 を微修正。3 以上の奇数の生成方法を itertools.islice(itertools.count(3), 0, None, 2) に変更。うちの実行環境 CPython 2.6.4 on Win32 ではこちらのほうが早かった。 CPython 全般でこちらのほうが早いと予想しているが Jython, IronPython でどうかは見当つかず。あと CPython でも長整数の領域に入ったとき、遅いような気がするが、未確認。 prime.py # coding: utf-8 u"""素数列の生成 - 遅延評価によるエラトステネスの篩 """ import…

N 個の組

2010-03-21 18:24:15
L[0:2], L[1:3], L[2:4] …のような値を返すイテレータについてのメモ。ほぼ itertools ライブラリドキュメントのレシピ のまま。 L[0:2], L[1:3], L[2:4] … のようなイテレータ レシピにそのものが載っていたので転載。 from itertools import * def pairwise(iterable): "s -> (s0,s1), (s1,s2), (s2, s3), ..." a, b = tee(iterable) next(b, None) return izip(a, b) L[0:n], L[1:n+1], L[2:n+2]…

gettext モジュールメモ

2010-03-19 22:15:30
Python gettext モジュールと戯れる。多言語対応 Python アプリを作るためのモジュール。しかし、オレには日本語以外まともに使える語がない罠。いや、日本語も怪しいけれど。 前提 次のコードを hello.py とする。実行すると「Hello」と挨拶するだけのスクリプト。これをいろんな語の挨拶に代えられるようにしたい、とする。たとえば日本語環境だと「こんにちは」。 # coding: utf-8 def main(): print u'Hello' if __name__ == '__main__': main() 手順1、マーキング 翻訳対象となる語を _ でマーキングする。次…

md5sum の模倣

2010-03-18 18:54:29
Python で md5sum 。車輪の再発明遊び、兼 C コードリーディング。参考にしたのは GNU coreutils-8.4.tar.gz の md5sum.c 。先日の「md5 のチェックを Python で - 銀月の符号」なんかと違って、ちゃんと各種オプションもある。 得られたもの optparse モジュールのコールバックオプションの使い方 (作成過程における)自己満足(完成品に需要がないのは明らか。先日のは即席でもつくれそうなほど簡単なところがメリットになりえたが、これは無理。) TODO テスト(これはひどい。予定に入っていちゃだめだろ、終わってないと) docstring,…

md5 のチェックを Python で

2010-03-16 18:35:25
md5sum なんて入ってないけれども Python (2.5 以上の 2系)ならある、という奇特なパソコンで役に立つかもしれないスクリプト。 md5sum -b spam.txt っぽい動作をする。 -t や -c 相当の動作はない。引数なし時や - 指定時に標準入力から読むという動作もない。 import sys import hashlib def md5hexdigest(path): ha = hashlib.md5() with open(path, 'rb') as f: while True: data = f.read(8192) if not data: break ha.…

Ubuntu インストール失敗、と騒ぐ前に md5 チェックくらいしようぜ、オレ

2010-03-16 18:35:24
Windows の Virtual Box 3.1.4 に Ubuntu 9.10 (Ubuntu Japanese Team の)をインストールしようとしたときのこと。インストーラの質問にいろいろ答えてファイルコピーを待つのみ、となったのだけれども 80% ほど進んだところで、ディスクへのコピー失敗のダイアログが出現。もう一度繰り返してみたものの同じ症状。その 10 分後、原因判明。ダウンロードした際に CD イメージが壊れただけというオチ。md5: 96423ffca42388c0acb7f45256082e1f 。うん、ちがうね md5: d65b381492153402a7276a85…

自転車パンク

2010-03-16 13:50:55
自転車の後輪がさっそくパンクしてしまった。今年はまだ 3 回しか乗ってないのに。おれが重たいのと、路面が滑り止め用砂利だらけなのと、まだ寒くてゴムの伸縮性が、の 3 つの悪条件が重なったせいだろうなぁ、たぶん。

降雪

2010-03-15 19:12:42
しんしんと降る雪。せっかく自転車に乗れるようになったのに、また乗れなくなった。最近、寒い日と暖かい日の気温差が大きい。風邪引かないようにしないと。