Googleが新しいハッシュ・アルゴリズム「CityHash」を考案したようです。 Introducing CityHash - Google Open Source Blog このハッシュ・アルゴリズムを考案したGoogle社員は、「Geoff Pike」氏と「Jyrki Alakuijala」氏で共にSoftware Engineering Teamに所属しているようです。 「CityHash」は特に文字列に対して有効なハッシュ・アルゴリズムで、文字列から64bit、128bitへのハッシュを生成してくれます。 このアルゴリズムは暗号化処理などに向いているわけではないそうですが、ハッシュ・テーブル用として有効だそうです。 もともと「Austin Appleby」氏が考案した「MurmurHash」というハッシュ・アルゴリズムがあり、それに着想を得て改良を加えたものが「CityHash」
ついこの前、JSONデータを整形するWebサービスを作りましたが、この勢いに乗ってXMLデータの整形サービスを作りました。 XML整形サービス 入力フォームにXMLデータを書いて、「変換」ボタンを押せば、XMLをキレイにインデントして整形してくれます。 前回のJSONデータを整形するWebサービスもそうだったのですが、これらのWebサービスはPythonでできています。 小さなWebサービスなので、最小限の機能を持つWebフレームワーク「web.py」を利用して、サービスを稼動させています。 もしXMLを手軽にキレイにしたいときは、このサービスを使っていただけたら幸いです。 前回作成したJSONデータを整形するWebサービス同様、よろしくお願いいたします。 XML整形サービス JSON整形サービス
軽量なMarkup Languageとして、Movable TypeやGitHubなど、いくつかのコンテンツ管理システムでも利用されている「Markdown」を、Pythonから使ってみました。 Python版の「Markdown」は、PyPI内の以下のリンクからダウンロードできます。 Python Package Index : Markdown 2.0.3 プロジェクト自体のページは、以下のリンクをたどって行くことができます。 Markdown in Python: Overview このライブラリを自分のスクリプトから使う方法には、以下のようにします。 #!/usr/bin/env python # -*- coding: utf-8 -*- import markdown def main(): md = markdown.Markdown() md.convertFile(inp
Twitter API「ChirpUserStreams」 Twitterが新しいAPI「ChirpUserStreams」を発表しました。 このAPIを使うことで、Twitterの自分のメインページで流れてくるようなつぶやき情報が、リアルタイムにストリーミングとして取得できるようになりました。 普通、TwitterのAPIは使用回数に制限があるため、つぶやき情報やユーザーの情報を得ようとして何度もAPIを使っているうちに、制限に引っかかることがしばしばありました。 しかしながら、このストリーミングAPIは基本的にTwitterのサーバにつなぎっぱなしです。 つなぎっぱなしで、次から次へとフォロワーのつぶやき情報、Retweet情報、ダイレクト・メッセージ情報、Favorite情報などが流れてきます。 まるでこのAPIは、情報の波が次から次へと押し寄せてくるかの如くで、何か新しい可能性を感
Python 3.x系では、まぎらわしいライブラリが整理され、名前変更や統合が行われました。 そして、それは「urllib」と「urllib2」にも行われたようで、これらのライブラリは「urllib」として新しく生まれ変わりました。 正直、これまでの「urllib」と使い方も変わってしまったので、ここで記しておこうかと思います。 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib.request def open(url, proxy=None): opener = urllib.request.build_opener() if proxy: proxy_dict = {'http':proxy} proxy_handler = urllib.request.ProxyHandler(proxy_dict) opener
PythonにはWebブラウザを操作するライブラリとして、「webbrowser」というモジュールがあります。 このモジュールを使うと、Explorerやその他ブラウザを起動できるのですが、少々クセがあるようなので、少し解説します。 ちなみに、実行環境はWindowsです。 通常の「webbrowser」の使い方は以下のように行います。 これを行うと、 Windows環境であればデフォルトのブラウザが起動するはずです。 import webbrowser url = 'http://www.google.co.jp/' webbrowser.open(url) 特定のWebブラウザを起動したいときの方法が、ちょっとややこしいです。 本当は以下のように書くと、動作しそうなのですが、これが動きません。 import webbrowser url = 'http://www.google.co.
モジュールをインポートするときの問題点 Pythonで同名の別ファイルをインポートしようとすると、あとにインポートしたファイルがきちんとインポートされません。 なぜなら、 Python側がすでにインポートしているファイルだと勘違いしてしまうからです。 この問題を解決するために、先にインポートしているモジュールをアンインポートして、別の場所にある同名ファイルをインポートできるようにしましょう。 問題の検証 ここからは、問題の検証をしようと思うので、結論を急ぐ方は「アンインポートの解決策」を見てください。 まず例えば、以下のような2種類のスクリプトを用意しましょう。 以下のスクリプトは「Test.py」というタイトルのファイル。 このファイルは「A」というフォルダと、「B」というフォルダの2つに入れておきましょう。 ちなみに、Python 3.x系を使っているので、2.x系を使っている人は、p
Googleで検索したときに検索候補を表示してくれる「Google Suggest」、大変便利ですよね。 この機能は、現在入力したキーワードを元に、javascriptを使って別の候補を取得しています。 実はこの機能は、特定のURLにクエリを投げることで、検索候補を取得できるようになっています。 この機能をPythonから利用できるように、スクリプトを組んでみました。 #!/usr/bin/env python # -*- coding: utf-8 -*- import urllib import urllib2 import re class GoogleSuggestAPI: def __init__(self): self.base_url = 'http://www.google.co.jp/complete/search?output=toolbar&q=' self.xml_
Googleからまた新しい開発言語が登場してきました。 その名も「Go」です。 The Go Programming Language 長い年月、コンピュータの開発を支えてきたC/C++言語は、最近の並列処理プログラミングやスタックオーバーフロー、軽快な開発スピードの点で、やや問題視されがちでした。 その点で言うと、新しく登場してきた「Go」は、C/C++に似たような構文を持ちながら、多くの魅力を持った言語のようです。 ガベージコレクタを持つ 並列処理の抽象化 Pythonのような開発スピードが期待できる コンパイル時間が短い このリストの最後に挙げた「コンパイル時間が短い」という点は、「Go」のページでも紹介されているYouTubeのビデオでも実感できるはずです。 ラップトップPCで、「Go」の標準ライブラリ全体(約12万行)をコンパイルしたとしても、だいたい9秒ちょっとでmakeが終了
以前、こちらの記事で「PythonでTinyURLを作成するスクリプト」を作成したので、最近人気の「bit.ly」でも短いURLを作成するスクリプトを作成しました。 bit.ly, a simple url shortener 「TinyURL」から短いURLを手に入れる場合は、特定のURLにパラメータを付けるだけで良かったのですが、「bit.ly」の場合はAPIを使うためのアカウントとAPI Keyが必要なようです。 また、送信した後のデータ・フォーマットとしては、XML形式とJSON形式を選べまして、今回の例はXML形式を返すようにした場合のスクリプトになります。 #!/usr/bin/evn python # coding: utf-8 import urllib2 import re class Bitly: def __init__(self): self.re_node = r
Windows環境のPythonで、EXEファイルやDLLファイルのバージョンを調べようと思ったとき、ctypesをうまく使うことで、簡単にバージョン情報を手に入れることができたので、記述しておこうと思います。 そもそも、WindowsでC++プログラミングをしていても、バージョンを取得するにはversion.libをソフトウェアに抱えるか、version.dllを呼び出す必要があるようです。 version.dllには、バージョンを扱うための関数GetFileVersionInfoSize、GetFileVersionInfo、VerQueryValueが含まれています。 これをPythonで利用することで、EXEやDLLのバージョン取得を容易に行うことができるようになります。 #!/usr/bin/env python # coding: utf-8 import array from
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く