ゴミ箱の中のメモ帳

まだ見ぬ息子たちへ綴る手記

Python

Pythonではてな記法っぽいパーサ

このブログを始めた当初ははてなブログを使っていた。だがはてなの対応が悪いのと、はてなのやり口が気に入らなくて使うのをやめた。だが「はてな記法」はなかなか便利だと思っている。ドキュメント記法ではMarkdownやreStructuredTextもよく使われているが…

Python Bottleのコードを読んだ

なんか最近は何にもやる気が起きない。なので最近は雑務のような作業ばかりしているのだけど、今日はその延長としてPythonのBottleマクロフレームワークのコードを読んでみた。 「今日は」といっても実際に読んだのは1時間半ほど。そのほかは今現在まで結局…

Pylfanがなんとなく動くようになった

多分。 https://github.com/kmasaya/Pylfan つい今しがた寝ようとしても寝れないので仕方なくコード書いたら動くようになった。 暇な人は確認してください。 但し不具合が主だと思うのでもちろんコピーしたディレクトリで確認してください。 ImageMagick逆引…

PythonのBottleとPeeweeのサンプル

だいぶ前にPythonのBottleとPeeweeを使ったサンプルとして「bottle.peewee.sample」を試しに公開していた。 本当に簡単なサンプルとして作ったのでいい例ではなかったと思うのだがたまにアクセスが有る。なのでもう少しまともなサンプルを作ることにした。 …

kivy_table_widgetをPython3に移植

わけあってKivyを使い始めたのだけど、公式のテーブル(表)ウィジェットが見つからない。 誰か作っている人が居るだろうとGitHubを探すとやはり先駆者は居るもんだ。その名もズバリ「kivy_table_widget」。 だがシェバンを見てからもわかる通りPython2が前提…

PyCharmで /usr/bin/env: node: No such file or directory

PyCharmを使い始めたのは最近だし、機能の1%程度しか使っていないがたまにPyCharmについて聞かれる。 聞かれると言っても私よりもドキュメントを読んでいない人たちからの質問ばかり。 何度も何度も言うように人に聞く前に自分で調べろ、調べる前にドキュメ…

Python BottleでURLの最後にスラッシュをつける

前々から書いているように、私はWebシステムを制作するのにPythonでBottleとPeeweeを使っている。あまりこの組み合わせで制作しているシステムを見ることはないが非常に便利だ。 私はWSGIを理解していないのでCGIモードとしてBottleを動かしているために恩恵…

Pythonでpip管理のパッケージを全て最新版にアップデート

今までPythonのpipでインストールしたモジュールは全て手動で管理していたが、OSを新しくインストールしてから面倒くさくなった。 確かに手動で管理して置かなければどのバージョンを使っているのか理解せずに使ってしまうが、とりあえず全て最新版としてお…

Python2とPython3は、迷うこと無くPython3だろ

今までにも何度か「Python2かPython3かどちらを使うべきか」と言う記事を読んだことがある。これが5年前であればまだしも、ここ3年、ましてや去年以降もなぜそれで悩むのかが理解出来ない。そして、つい最近にも同じような記事を読んだ。どの記事に置いても…

Amazon API 検索CGI

昨日書いた今年の目標に「毎月一つのフリーソフトウェア」と書いたが、早速作った。延べ行数50行もない弱小なCGI。これがフリーソフトウェアと呼べるかどうかはわからないが必要なので作ったものを公開しておく。内容としてはタイトル通り、AmazonAPIを使っ…

PyCharmの学割アカウントを購入した

PyCharmには過去に何度もトライしてきてあまりの遅さに挫折してきている。なので結局はずっとEmacsを使い続けてきているのだが、やはりEmacsでは不便なことがある。pep8なんかと連携させることである程度のコーディング規約を適用させることはできるが、結局…

各プログラミング言語のベンチマークとその無意味さ

世間ではよく各プログラミング言語の優位性が語られているようだが、私はそのような会話はアホの副産物だと感じている。Rubyだろうが、PHPだろうが、Perlだろうが、Pythonだろうが、それらプログラミング言語の速度差を比較するなんてほとんど無意味。確かに…

DreamHostでWSGIを動かす

前の記事に書いた通りWSGIを使うべくDreamHostを契約したわけだが、Python Bottleを動かすまでに色々と悩んだので後発に続くであろう若者のためにメモを残しておく。これはわからないながらに動作させた記録であるため、誤りや問題があるかもしれない。詳し…

DreamなHost、DreamHostを契約した

いやぁ、まさに夢のレンタルサーバDreamHost。存在は10年弱前から知っていましたが、当時から日本国内のレンタルサーバに比べるとバブル的なストレージ容量やDBの接続価格などまさにDreamなHostでした。だがいかんせんアメリカにあるため日本からの接続が遅…

Rubyのweakrefが重い

たまたまweakrefのサンプルコードを書いていたら、Rubyのweakrefが非常に重いことに気がついた。なんで。weakrefってただの弱参照リファレンスじゃないの。参照カウンタを回さない参照じゃないの。Rubyに詳しくないからわからないけど、ちょっと調べてみた。…

そういえばPython3に移行してるよ

書き忘れてたけど、やっとこさPython2からPython3に移行した。「移行した」とは今作ってるのは全てPython3と言う意味で、今まで作ったアプリケーションはメンテナンスをする度に順次3に移行している。なのでメンテナンスの必要のないものはそのままPython2で…

direnvを使う

最近なぜかdirenvが流行っているようでよく耳にする。direnvは今どき注目されるようでもないような気がするが、非常に便利なツールだ。Pythonにpyenvやvirtualenvwrapper、Rubyにrbenv、PHPにphpenvの様に「*env」を別々に使っている方、それが不便で全てを…

最短経路探索アルゴリズムを考えて

とある問題を解いたのだが、そこで今までに考えたこともない事を考えたのでまとめておく。その問題は規約の都合上出典を明かすことが出来ないのだが、簡単に言えば「転職サイト」。その転職サイトではプログラマ向けの問題が出されており、その問題を解くコ…

もしもドロップシッピングのデータCSV展開時の注意

もしもドロップシッピングを始めようとしている人に質問されたのでメモしておく。もしもドロップシッピングからデータを取得するにはAPIを利用する方法とデータCSVを使う方法がある。APIはアイテムを表示毎や一覧表示毎にAPIから取得してキャッシュしておく…

DeprecationWarning: Absolute template path names are deprecated.

PythonでBottleとPeeweeを使ってアプリケーションを書いていると以下の警告に出くわした。 /usr/local/lib/python2.7/dist-packages/bottle.py:3320: DeprecationWarning: Absolute template path names are deprecated. fname = self.search(name, self.loo…

PyCharmを使おうと思う

本日より真面目にプログラミングにとり込もうと思っている。これまでの10年間Emacsを使ってきたわけだが、現在はではいろいろなエディタが作られ、各プログラミング言語やフレームワークに特化したエディタも作られ販売されている。WindowsではVisualStudio…

Pythonのenum型(列挙型)

先日Ubuntu12.04にPython3.4をインストールしたわけだけど、そのPython3.4にはいくつか便利な機能が追加されている。それはリリースノートを読んで欲しいところだが、その中でも異色になるのがenumの導入になる。PHPやRuby、Perl等のLLに標準でenumが導入さ…

Ubuntu 12.04にPython3.4をインストールする

Python3.4が2週間ほど前の3月16日にリリースされた。Ubuntu12.04はデフォルトではPython2.7しかインストールされていない。私は現在もPython2を書き続けているのだが、そろそろPython3に乗り換えなければビッグウェーブに乗り遅れてしまう。ということで、Py…

smtplib.SMTPServerDisconnected: Connection unexpectedly closed

前の記事に「Pythonでメールを送信する(SMTP)」を書き、そのなかで「送信は簡単」と言うような内容を書いた。だが実際は1時間以上タイトルのエラーに困った。結果から言うと、SMTPサーバにログイン処理が漏れていたため詰まったものになる。初めてのPython …

Pythonでメールを送信する(SMTP)

前の記事に「Pythonでメールを受信する(POP)」としてPythonでメールを受信するサンプルを書いたが、次に今回は送信する方法を書く。送信は受信とは違い、相手の環境に合わせた文字コードの変換処理などが必要ないため非常に簡単に書ける。一点アホほど詰まっ…

Pythonでメールを受信する(POP)

プログラミングを勉強した10年ほど前のトラウマで私はメール関連のプログラムを書くことに恐怖を感じている。当時はPerlでメールを書くことが非常に難しく、文字コードでゲロを吐く思いを何度もしていた。それからというものメール関連のコードを書くことを…

PythonからのAmazon Product Advertising APIのテスト

Amazonのマーケットプレイスから中古価格の一覧を取得しようと思ったのだが出来ない様子。方法を知っている方は教えてください。Amazon Product Advertising APIをPythonから扱うにはbottlenoseとamazonproductと言うモジュールがあるみたいなのだが、どちら…

Python Bottleでテキストファイルをダウンロードさせる

はてなブログのエクスポーターを作っているとBottleでファイルをダウンロードさせる方法に悩んだ。簡単に解決したが同様の記事が見つからなかったため記事にする。まずタイトルで「テキストファイルをダウンロードさせる」としている通り、この記事は既存の…

はてなブログの記事の編集モードを一括で変更する

昨日の記事で「はてなブログ エクスポートスクリプト in Python」を作ったが、その中で「エクスポートしたものをはてなブログにインポートすると編集モードが見たままモードでインポートされる」と書いたが、それの対策スクリプト。これははてなブログの仕様…

はてなブログ エクスポートスクリプト in Python

はてなブログにはなぜかエクスポート機能が実装されていない。私がこれを知ったのは最近のことだが、検索するとこれに対する不満が多いようだ。エクスポート機能がないという事はバックアップができないという事で、不慮の事故や誤操作に保険をかけておくこ…