done is better than perfect

自分が学んだことや、作成したプログラムの記事を書きます。すべての記載は他に定める場合を除き個人的なものです。

プログラミング

端末(Terminal)からWeblioで検索できるPythonスクリプト書いた(改訂版)

前回の記事で書いたPythonスクリプトが半端過ぎたので、 少しだけアップデートしました。 オプションで動詞だけ出すとか、過去形の単語で引いても意味が出てくるとかまだまだ改良したい部分はありますが、 これ以上改良するなら多分自分のGitHubアカウント上…

端末(Terminal)からWeblioで検索できるPythonスクリプト書いた

端末(Terminal)からWeblioで検索できるPythonスクリプト書いてみました。 非常に簡易的かつ、エラー処理とかも行っていませんが。 #!/usr/bin/env python # -*- coding: utf-8 -*- import sys import urllib.request import urllib.parse from html.parser i…

PythonでNHK APIにアクセスするためのクラスを書いてみた(まだ途中)

NHK APIで公開されているAPIをPythonで使うためのラッパーを書いています。 正直実際どう使うかは余り考えていません(´・ω・`) 今はまだ単純なモジュールだけど、後々ライブラリっぽく書いてみたいです。 こちらからどうぞ

Python(2系列)とsqlite3でハマった話

Python 2.7.3 + sqlite3で少しハマりました。 col_nameというカラム名を持つtableが存在するsqliteのデータベースファイルsqlite.dbがあるとして、以下の様なコードを書くとエラーになります。 from __future__ import unicode_literals import sqlite3 con …

Pythonのtuple内包表記の落とし穴

タイトルは釣りです。というかあると思ってたら落とし穴に引っかかりました。 以下のコードを実行すると…… t = (x for x in range(4)) for x in t: print x for x in t: print x 出力 0 1 2 3 二回目のfor文が実行されていません。なんでやねん。 なまじエラ…

お名前.com VPS を借りたらまずやること(Debian) (2)

code{white-space: pre;} これは前の記事の続きです。 パーティションの設定(/homeを別パーティションに移動) iptablesの設定 を行います。 3. パーティションの設定 この記事は、こちらの記事と こちらの記事を参考にしています。ありがとうございます。 パ…

PEP8 のお話

小ネタ。PEP8のお話。 以下の様なコードを考えます。 def f(x, y = 1): pass def g(z, w=1): pass a = 1 b=1 これを、PythonのコードがPEP8と呼ばれるコーディング規則に則っているか調べてくれる ツールpep8を使って解析してみると、以下の様なエラーが出ま…

Mac + git + githubに起こった問題

小ネタ。githubにpushしようとして、今までエラーにならなかったのに突然エラーに成った時にすること. 上記の状況で唐突にこのようなエラーが出ました。 'Permission denied (publickey). fatal: Could not read from remote repository.' もちろん、sshの公…

Mac+homebrew+Python+SQLiteでハマった。

小ネタ。Mac + Homebrew + Python + SQLite使っている人向け。 最近brew upgradeして、pythonでimport sqlite3したらこんなエラーが出るようになりました。 Traceback (most recent call last): File "<string>", line 1, in <module> File "/usr/local/Cellar/python/2.7.3/</module></string>…

PuttyとSolarizedとlsコマンドのお話

小ネタ.PuttyとSolarizedとlsのお話. Solarized http://ethanschoonover.com/solarizedの配色が好きで,Macのターミナルやmacvim,WindowsでのPuttyのカラースキームなど全てSolarizedのlightを使用しています. 以前から,WindowsのPuttyでsshで接続したL…

数値を桁ごとにリストに格納する方法,またその逆(Python)

小ネタ.プログラミングコンテストなどでよくある数字のn桁目の数を~などに綺麗に対処する方法 プログラミングコンテストなどでは,よくn桁ある数値を右にずらして…などの問題があります.そんなときに,よく行う操作が桁ごとの数値にバラしてリストや配列…

project euler problem4

project eulerの第四問目です 左右どちらから読んでも同じ値になる数を回文数という. 2桁の数の積で表される回文数のうち, 最大のものは 9009 = 91 × 99 である. では, 3桁の数の積で表される回文数のうち最大のものを求めよ. 3桁程度なので,愚直にやってOK…

project euler problem3

project euler3問目 13195 の素因数は 5, 7, 13, 29 である. 600851475143 の素因数のうち最大のものを求めよ. 少し工夫が必要な問題です。単純に数値を1から順番に割っていくような方法では多分終わらないでしょう number = 600851475143 i = 3 factors = […

project euler 始めました

project euler始めました.これはプログラムで解く数学の問題集で,プログラミングコンテストの問題演習にも使えるかと思います.本家は全て英語で問題が書いてありますが,有志が日本語のwikiも作っています. 今problemの1から24までと,67の計25問解き終…

PythonのSQLiteインターフェースを使用するときに、Cursorオブジェクトを作成する必要があるのかという話

小ネタ。Pythonのsqliteインターフェースを使用するとき、cursor()オブジェクトを作成する必要があるかどうかの話。 Pythonのsqliteインターフェースを使用する際、公式のドキュメントなどではConnectionオブジェクトを作成し、それを用いて更にCursorオブジ…

bashからzshに乗り換えたった

zsh始めました。以前bash-completionを入れましたが、やっぱり重いので…… Macにはデフォルトで入ってるみたいですが、いつもの如くhomebrewで最新版を入れます。% brew install zsh 入れた後はchshコマンドでログインシェルを変更します。% chsh vi(m)で設定…

Watch2chをPythonに移植してみた

Watch2chをPythonで書きなおしてみました。 Watch2chは、PHPで作られた2chの監視を目的としたプログラムです。 指定したスレの勢いをチェックし、閾値を超えた場合にスレッドの内容を出力します。 中々に面白いソフトです。mecabなどの形態素解析のソフトと…

MacにHomebrewでbash-completionを入れた

bashをもう少し効率的に使いたくなったので、bash-completionを入れてみました。 以下、その手順についてメモ。 インストール Homebrewを使って入れます。 $ brew install bash-completion 設定 ~/.bashrcに以下のように記述します。 if [ -f $(brew --prefi…

homebrewをアップデートしようとしたらエラーが出た

久しぶりにMacのHomebrewをupdateしようかなと思ったら、エラーが出ました。 $ brew update error: Your local changes to the following files would be overwritten by merge: CONTRIBUTING.md Library/Contributions/brew_bash_completion.sh … Aborting …

XAMPP for Macでのファイルの置き場所について

MacにXAMPPをインストールして、localhostから自分の作ったphpを見ようとしたらハマったんでメモ 環境Mac OS Χ 10.8.2XAMPP ver 1.7.3XAMPP→Apacheと起動し、Webブラウザでhttp://localhost/にアクセスしてApacheが起動していることを確認して下さい。 ここ…

makepass.pyを書いてみた

こちらのソース を参考に、Pythonでmakepass.pyを作ってみました # -*- coding: utf-8 -*- import getpass import hashlib import base64 import re import subprocess def makepass(): seed = getpass.getpass("Hit many keys randomly. ") while len(seed) …

URL Highlighterを更新しました

更新内容は以下のとおりですver 0.0.1としたjquery.highlight.jsを用いることでより分かりやすくハイライトするように変更README.mdを追加バグフィックス。空白行は無視するように変更既知の問題としてはハイライトされないリンクが有る遅いこれくらいですか…

ScribeFireテスト

Google Chrome/Firefoxなどに対応しているScribeFireを試しています。 VimのRePressも良かったんですけど、gVim以外で使おうとするとエラー表示がでるのが難点…… こちらはブラウザの拡張機能なのでマルチプラットフォームで良さそうです。

MacVimからWordPressを更新するテスト

WordPressをMacVimから更新する方法のテストです。 VimRepressというVimスクリプトを使用しています。 上手く更新できたら詳しいやり方などをまとめてみたいと思います。

某スキル評価サービスに解答するためのプログラム(Python)

はっきり言ってあんまり汎用性はありませんが、某サービスの問題を解くために使ったプログラムの一部を紹介します。 問題を解く過程で、括弧を含む文字列をパースして、リスト型にするプログラムを考案しました。 例えば、 AAAA => ['A','A','A','A'] AB(CD)…

SQLiteで少し躓いた(Python)

SQL真面目に勉強したほうがいいかなとか思いつつ…… DBに突っ込んだ表から、あるカラムのレコードを検索して合致するカラムを取り出そうとするSQL文を Pythonで記述してみた。 [python] import sqlite3 conn = sqlite3.connect("./MyDB.db") c = conn.cursor …

SQLite3で、レコードへの追加方法(Python)

SQLiteをPythonから使ってて、やり方が分からなかった方法の備忘録 やり方忘れるたびに調べるの面倒臭いんでメモっておきます。 データベース化する対象は京都大学の黒橋・河原研究室様が提供されているTextual Entailment 評価データです。 今回はこちらを…