最近herokuをちょろっとだけ触っています。herokuではPostgreSQLが使われてるのでローカルにもインストールしたんですけど、ちょっと間が空いて、Postgresユーザーのパスワード忘れて困ったのでメモ書きです。環境はOSX 10.6です。 ちょっと検索すると本家MLの過去ログからビンゴなスレッドがありました。要はローカルからの接続時に認証を一旦外してパスワード変更後、元に戻すというものです。認証を設定しているのはpg_hba.confというファイルで僕の手元では下記の位置にありました。md5(パスワード認証)となっている認証形式をtrustに書き換えます。 $ sudo vim /Library/PostgreSQL/9.1/data/pg_hba.conf - local all all md5 + local all all trust 設定ファイルを修正後に再起動すると
データベースを使っていると、よくcsvファイルと相互に変換したくなります。MySQLやPostgreSQLでは標準でcsvのインポート/エクスポートができるので、SQLiteでも出来るだろうという事で調べてみました。 結論から言うとSQLiteで使えるCSVのインポート/エクスポートは制約が強くて使い辛いです。というのも、カラムの文字列内にセパレータ(標準ではカンマ)が含まれている場合は、クォートされていても、セパレータとして認識されてしまい、正常なcsvとして扱われないからです。(例えば”Hi, Nice to meet you.”は2カラムとして扱われます。) ちなみにSQLite標準のインポート/エクスポートは以下のように行います。 # 標準で以下のようにインポート/エクスポートできるが、セパレータが上手くパースされない .mode csv table_name # エクスポート S
今年の1月末位から就職活動をしてたんですが、一昨日iHeartRadioにモバイルエンジニアとして採用されまして、来週くらいから働く感じになりそうです。せっかくなので就職活動を始めて採用されるまでの記録を残しておこうと思います。 概要としては6社検討しまして、5社にアプライ、3社落ちて、1社は受かって、1社に途中で断りを入れたという感じです。長いです。 僕のスペック スキルは一般的なモバイルエンジニア(C++/Objective-C)と一般的なWebエンジニア(Django/Python/JavaScript)を足したような感じです。どっちもできるけど、どっちも中途半端な感じは否めません。ドラクエの勇者を目指していますが、今のところFFの赤魔導士です。 githubでは幾つかPythonモジュールを公開していますが、どれも大した事無いです。croniterというモジュールに37個スターがつ
MovableTypeにはXML-RPCインターフェースが準備されているので、外部から新しい記事を投稿したり過去の記事を取得したりできます。MT自体のリファレンスを探せなかったので、コチラのページを参考にさせて頂きました。 さてPythonでXML-RPCインターフェースを叩くのにはxmlrpclibを使います。まず以下でサポートしているAPIの一覧を取得してみましょう。これでXML-RPCのURLを確認できます。 import xmlrpclib rpc_url = 'http://url/to/mt-xmlrpc.cgi' api = xmlrpclib.ServerProxy(rpc_url) print api.mt.supportedMethods() 次に記事の投稿をしたいのですが、その為にはユーザ名とウェブサービスパスワードが必要です。ログインパスワードでは無いので注意してく
ちょっとカレンダーを使った実験をしたくてGoogle CalendarのAPIを叩いてみたのですが、何度かバージョンが変わっている事もあって、少し手こずったのでメモしておきます。 まずAPIを叩く前に、https://code.google.com/apis/console/ にアクセスして使用するサービスを有効にしておきます。 現時点の最新APIバージョンは3なのですが、このバージョンのAPIを叩くにはgoogle-api-python-clientモジュールを使います。gdataという如何にもなモジュールもあるのですが、これは古いバージョンのAPI用なので注意しましょう。 $ pip install google-api-python-client OAuthの認証周りが何となく複雑で面倒な気がしますが、コードを見ると別に特に難しくはないですね。基本的な処理の流れは以下の通りです。OA
最近ではデザイナさんもAppleScriptを使いこなすようで、プログラマの自分がまったく理解してないのはどうかと言うことでかじってみる事にしました。まぁ日常的に使ってるのはTerminalとEmacsとYoruFukuroだけなので、個人的にはあんまり使う機会が無いかもなのですが、ひょっとするとXcode周辺で役に立つかもしれないという甘い期待を抱いています。 中々とっかかりが掴めなかったのですが、とりあえずコードを見るのが早いかと思います。以下のスクリプトはMail.appからテストメールを送るというものです。構文自体はあまり見慣れないですが、ちょっとゆっくり見れば難しくはありません。 on run -- Mail.appに対するブロック tell application "Mail" -- 送信メールオブジェクトを作成 set newMessage to make new outgo
とりあえず最新Stableの3.3をインストールしないと試せないですね。brewだとformulaがまだ無くて、この辺からも普及してなさが伺えますが、仕方が無くMac用のインストーラを使いました。 またPython3.3からはvenvというvirtualenvと似た機能がビルトインされている様なので、そちらを使って環境を作ります。本体はvenvというモジュールですが、コマンドライン用にpyvenvというコマンドが用意されています。venvはデフォルトでdistributeもpipも入らないので、自前で入れる必要があって若干面倒です。まぁ公式モジュールなので仕方ないかもしれません。あとiPythonが3に対応してたので安心しました。 $ which pyvenv-3.3 /usr/local/bin/pyvenv-3.3 $ pyvenv-3.3 py3x_test $ tree . ├──
働き始めて2週間経ちました。個人的な嗜好でいうと、働くのは別に好きでも何でも無いというか寧ろ嫌いなんですけど、環境が新しい事だらけなのもあって今のところ毎日楽しいです。それで実際働いてみてすげー思ったのが、アメリカはやたら余裕があるなという事です。 例えば僕の所属してるチームの労働時間。フレックスなので一定しませんが、皆さん平均すると10:30前後に出社して18:00前後に帰って行きます。ランチもゆったりで作業してるのは6時間位です。僕は今張り切っている事もあって、9:00頃から19:30頃まで働いているのですが、その程度で僕が一番長い時間働いています(全社で)。それなのに、就活記録のエントリでも書きましたが、給料は日本の相場の2倍は楽勝です。そうすると、働く時間半分で給料2倍なら、単位時間辺りのパフォーマンス4倍必要なはずなので、どんなけバケモノぞろいやねんと戦々恐々としていましたが、別
ちょっとGoogle AnalyticsのWebだとやりにくいアクセス集計がやりたくて、Analytics APIを叩いてみました。以前Google CalendarのAPIを使った事があるので大丈夫かと思ったら、結構手間取ったので記録しておきます。 まずコードを書く前に準備が必要です Google APIコンソールでAnalytics APIを有効にする Google APIコンソールからclient_secrets.jsonをダウンロードしておく それで何に手間取ったかというと、Analytics APIにはCollectionとConfigurationとReportingの3つの機能があるのですが、訪問数とかページビューとか取得するのがCollectionだと思い込んでいて、中々機能が見つかりませんでした。欲しい機能はReportingでした。なおドキュメントはコチラ。 それでコー
何度かBeautifulSoupについては書いているのですが、未だに使い方が覚えられずにイライラします。仕方が無いのでまとめて置く事にしました。BeautifulSoupはHTMLから情報を取得するだけ無く、HTMLの編集もできますが、ここではスクレイピング用途のみに絞っています。 使用するのは以下のHTMLです。 このHTMLを使って色々と情報を取得したのが以下です。覚えるべきはfindAllだけです。注意する必要があるのは、textを指定した場合にタグオブジェクトが取れずに、テキストオブジェクトが取れるので、一旦parentで親のタグ取りましょうという事と、正規表現で条件指定する場合は、re.compileで正規表現オブジェクトを渡すという事位ですか。 #!/usr/bin/python # -*- coding: utf-8 -*- import re import urllib f
入門自然言語処理を読んでいると以下のようなコードがやたらでてきますが全然読めるようにならないので覚え書きです。for文が連続して2回来てます。StackOverflowにも同様の質問があがっています。 all_tags = [tag for article in articles for tag in article.tags] これは記事の配列から記事につけられているタグの一覧を取得するコードで、forループを分解して書くと以下のようになります。 all_tags = [] for article in articles: for tag in article.tags: all_tags.append(tag) 何が気持ち悪いかというと左から順にforが処理されているのに、配列の要素になる最後の式が一番左にあることです。一番左のtagが最初のfor ~ inではなく、2つめのfor ~
しばらくベンチマークコードを書いてなくてすっかり忘れていたので、メモ書きです。今回は例題として、yahooのこのページをBeautifulSoupとlxmlでのスクレイピング比較をしてみる事にしました。比較対象の関数は以下の通りです。どちらのコードも入力・出力ともに同じなので、どちらが実行時間やメモリ使用量が少ないのかを知りたくなりますね。 # BeautifulSoup def scrape_with_bs(html): from BeautifulSoup import BeautifulSoup soup = BeautifulSoup(html) rows = soup.find('table', attrs={'class':'channel9'}).findAll('tr') channels = rows[0].findAll('td', attrs={'class':'st
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く