タグ

ブックマーク / coreblog.org (21)

  • 遺伝的アルゴリズムを使って数独を解く | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Solving Sudoku with genetic algorithms(遺伝的アルゴリズムを使って数独を解く) というブログエントリを読んで,遺伝的アルゴリズムの入門記事として面白かったので紹介。 遺伝的アルゴリズムとは,生命の遺伝の仕組みを模した方法を使って解を探索する手法のこと。データを遺伝子で表現した個体を複数用意し,適応度によって個体を選択し,遺伝子に突然変異を起こしたりして解を探索してゆく。実装例としては,PostgreSQLが問い合わせを最適化するのに遺伝的アルゴリズムを使っている。上記エントリでは,この遺伝的アルゴリズムを使って数独の問題を解く手法を紹介している。

  • 入門 自然言語処理を禁書にすべき10の理由 | TRIVIAL TECHNOLOGIES on CLOUD

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 「入門 自然言語処理」はヤバい書籍なので禁書にすべきだ。 タイトルは釣りじゃない。その理由を10個挙げる。 自然言語処理のかなり基的なことからそこそこ高度なことについて解説されてあり,自然言語処理について理解が深まり過ぎる ボリュームがあるのに書き方が平易でついつい読みふけってしまう 演習問題があり,自分の理解度を確かめられたりするのもケシカラン 原著は欧米語のための言語処理について書かれた書籍なのに,日語の形態素解析などについても解説してあって我慢できない 必要ライブラリのインストールなど環境構築に時間が取られそうでヤバい 書籍の応用でBotとか人工無能とか作ったらどうかな−,と

  • pythonモジュールmechanizeでWeb上の作業を自動化する | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー mechanizeはWeb上の操作を自動化してくれる便利なPythonのライブラリ。Pure Pythonなのでいろんなところで動くよ。PerlのWWW::Mechanizeにinspireされて作られた。RubyにもMechanizeという同種のライブラリがある。Perl偉い! 「Web上の操作を自動化する」っていうのは,例えばどこかのサービスにログインしてあれこれするとか,そういったことをプログラマブルに行える,ということ。フォームの操作などもオブジェクトを使って実行できるのでとても手軽。Webアプリの開発などではテストに使われたりするんだけど,結局僕がなにをしたかったかというと,

  • Pythonでファンシーなデバッガを手軽に利用する方法 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 以前pudbというCUIベースのソースコードデバッガを紹介した。コンソール環境で利用できてなかなかファンシーなのだが,デバッガをいちいち立ち上げる必要があるので少々面倒だ。今回はより手軽にCUIベースのデバッガを起動する方法を紹介する。 方法は簡単。debugというパッケージを「pip debug」などでインストール,デバッグを開始したい場所に「import debug」とするだけで,プログラムのその位置でシンタックスカラーリングの効いたファンシーなデバッガが立ち上がる。 「n」を押して実行を進めたり,print文を使って実行中の変数の中身を表示したりできる。実行中のプログラムも表示し

  • iPhone, iPadで動くPython(脱獄不要) | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー PyPadはiPhoneiPadなどiOS上で動くPythonインタプリタ。App Storeに正式登録されているアプリなので,稼働に脱獄する必要がない。Python 2.7.1がベースになっている。学習用ということで,機能は限定されているが,いつでもPythonを学びたい人は使ってみるといいかもしれない。 なお,AndroidにはフリーのPythonインタプリタ(Ruby,JavaScriptなども動く)がある。Android端末を持っている人はこちらもチェックするといいかも:-)。

  • Web開発にお役立ちな30のハイクオリティなグラフ描画ライブラリ | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 みんなのブロックチェーンは,ブロックチェーンの入門書。暗号やハッシュなどを含め,基礎からブロックチェーンの仕組みを学べる書籍です。 いろんな方に「新しい技術を学ぶことの楽しさ」を感じ取ってくれたら著者として嬉しいです:-)。お金技術的にどのように定義されるのか。 みんなのIoTは,モノのインターネットと呼ばれるIoTの入門書です。IoTの基について,読者に寄り添って優しく解説しました。裏テーマは一番とっつきやすいPython入門書。サポートページはこちら みんなのPython 第四版は,より分かりやすい入門書を目指し,機械学習やデータサイエンスの章も追加して第三版を大幅に書き換えました。Python 3.6にも華

  • シンプルで覚えやすい仕様,パワフルなPythonのWebアクセスモジュール request | TRIVIAL TECHNOLOGIES on CLOUD

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonには「後方互換性を大切にする」というモットーがあって,時にはそれが裏目に出ることがある。PythonでWebにリクエストを送る時の手法は,目的に応じて複数存在するが,これも後方互換性を守るがために起こっている現象といえる。当初はシンプルな機能を持つモジュールが利用されていて,その後より高度な機能を持つモジュールが追加されたのだが,後方互換性を守るために古いモジュールが残されているのだ。 たとえば,普通にhtppでGETリクエストを送って結果を取得するなら簡単で from urllib import urlopen src = urlopen('http://www.exam

  • Pythonの定番モジュール集 — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー wiki.python.orgにはUsefulModules(Pythonの定番モジュール集)というリストがある。「開発者に有益な情報を提供するため」と注意書きがあるだけあって,これがなかなか網羅的で便利なので,翻訳しながらご紹介しましょう:-)。 リストを見ると,Web開発やテキスト処理はもちろん,数値解析,ビジュアライズ,ゲームGUIライブラリなどバリエーション豊かで,Pythonの全方位ぶりがよく見えてくる。他のカテゴリページへのポインタは,適宜リストをインラインに展開してあるものもあります。べたっと訳しちゃったので,間違いなどあるかも。コメントなどでご指摘いただけるとありがた

  • Pythonのメタプログラミング (メタクラス) を理解したい人のための短いコード片と禅問答 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonのメタプログラミング手法の一つ「メタクラス」は,初心者にとっては「なんか強そう/経験値たくさんもらえそう」なアイテムの最右翼だと思う。反面「どうすればいいか/なにができるか」ということがなかなか理解しづらい。 英語のブログを見ていたら,メタクラスの理解に役立ちそうなちょうどよいサンプルを見つけたので,紹介がてら独自の解説を付け加えたいと思います。 メタクラスを簡単に説明すると,「来コードを書かなければ実現できないような処理を黒魔術的な処理でなんとかしちゃう」ためのテクニックです。コード量を(時には劇的に)減らすことができたり,すっきりした見通しの良いクラス設計を実現できま

  • Pythonを使ってgoo.glの短縮URLを得る | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー こちらのブログから:-)。Pythonを使ってgoo.glの短縮URLを得る方法。 オリジナルのコードを変更して,かつ少し短くしてあります。simplejsonをインストールする必要があります。goo_gl.pyのようなファイル名で保存しておいてください。 #!/usr/bin/env python def shorten(url): from re import match from urllib2 import urlopen, Request, HTTPError from urllib import quote from simplejson import loads try:

  • FlaskならApp EngineのTwitter Botが15行で書ける — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 関連 : microneを使ったらApp EngineのTwitter botが14行で書けた Flaskというフレームワークを使って,Google App EngineでTwitterのBotを作ってみたら15行で書けてしまった(あと5行短くなるけど,PEP 8というPythonのスタイルガイドを破ることになるのでそこまで短くしない)。 まずはコードを見てもらいましょう。 #coding: utf-8 from random import choice from twython import core from flask import Flask app = Flask(__nam

  • PythonプログラマのためのErlang入門 — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 例によって翻訳です。Erlang for Python Programmersという英文記事の翻訳です。 Pythonを使っている人が関数型言語の考え方を学ぶのによい記事になってます。 Pythonはコードが分かりやすいので,Pythonistaだけでなく,RubyPerlPHPそしてJavaのような命令型言語を使っている人にとっても有益な記事だと思います:-)。 初めに ここ数年,Erlangへの注目が高まっている。Erlangのプログラミングモデルはプロセス間でメッセージをやりとりするだけで実行する並行プロセスに根ざしている。それぞれのプロセスはとてもシンプルな関数型言語で作ら

  • いろいろな言語のコーディング規約,スタイルガイドのリスト — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 みんなのブロックチェーンは,ブロックチェーンの入門書。暗号やハッシュなどを含め,基礎からブロックチェーンの仕組みを学べる書籍です。 いろんな方に「新しい技術を学ぶことの楽しさ」を感じ取ってくれたら著者として嬉しいです:-)。お金技術的にどのように定義されるのか。 みんなのIoTは,モノのインターネットと呼ばれるIoTの入門書です。IoTの基について,読者に寄り添って優しく解説しました。裏テーマは一番とっつきやすいPython入門書。サポートページはこちら みんなのPython 第四版は,より分かりやすい入門書を目指し,機械学習やデータサイエンスの章も追加して第三版を大幅に書き換えました。Python 3.6にも華

  • モダンなPythonの開発環境の構築方法 — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー インストール Windows以外の多くのプラットフォームではすでにPythonが入っている。バージョンを調べて,使いたいバージョンより古いならインストーラやパッケージを使ってインストール。パッケージは「〜devel」をインストールしておく。 easy_installのインストール easy_installは標準ライブラリに含まれていないサードパーティモジュールをインストールする時に便利なので,入れとく。 ここからez_setup.pyをダウンロード,Pythonのスクリプトとして実行すると,自動的にコマンドがインストールされる。 $ easy_install pachage_name

  • Python 2.7に搭載の新unittestモジュールはスーパークール — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 先日リリースされたPython 2.7がなかなかいいかんじ。set型のリテラル,set/辞書内包表記やviewなど3.xからのバックポートを多く含んでいる。細かいところではネットワーク系モジュールのIPv6対応が進んでいたり,Python 2系最後のリリースとうたわれているだけあって,かなり意欲的なリリースとなっている。 なかでも,標準のunittestモジュールがものすごく大きな進化を遂げていて,かなり魅力的になっているので簡単に紹介したいと思う。 テストディスカバリ 単体テストは,たいていモジュールやクラス,または機能ごとに個別にファイルを作り,テストコードを書く。大抵のプロジェク

  • Python用のユニットテストツールまとめ — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー みなさんテストしてますか? Pythonには沢山の便利でステキなテストツールがあります。標準ライブラリに入っているunittestアジャイルドキュメンテーションとも呼ばれるdoctestなど,標準の機能だけでもかなり強力なのですが,外部のツールを使うとより快適なテストライフが送れるのです。 python.orgにあるPython testing tools taxonomy(Python用テストツールのまとめ)というページがあり,ここに有益な情報が集まっているので例によって超訳してみました(ユニットテスト関連のみ)。 ツール カテゴリ 作者 ツールが含まれるフレームワークなど 特徴

  • Google App Engineでテスト駆動開発を行うための3つのTips | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    Google App Engineの開発ではPythonを使います。GAEを使ったWebアプリの開発でテスト駆動開発を行う際にも,Python的なユニットテストの文脈を活用できます。 ただし,GAEでユニットテストを行うためにはいくつかのツールやトリックが必要です。ここでは,そのテクニックを簡単に紹介します。 その1 : NoseGAEを使う Pythonのテスト用ツールにNoseがあります。このツールは,複数のディレクトリを渡り歩いて,複数のテストコードを一気に実行してくれる便利なツールです。 NoseのプラグインNoseGAEをインストールすることで,GAEアプリのテストを楽に行うことができます。「nose --with-gae」というようにオプション指定をすることでNoseGAEを利用できます。NoseGAEでは,テストコード上でGAEのモジュールやパッケージをインポートするために必

  • Python-twitterが欧米仕様だったので日本仕様に直したでござるの巻 — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 半裸Botを作ったとき,PythonTwitterAPIをほげほげするのにPython-twitterを使ったんだけど。ちょっと長いTweetをPostしようとすると,「140文字以上あるよ!」という例外が発生してしまう。実際Tweetは60文字くらいしかないんだけど,おかしい。 なんでだろうと思ってソースを見てみたら原因が判明。ユニコードの8ビット文字列を,バイト列として見ている。これだと日語のマルチバイト文字列が3倍の文字数と判別されてしまう。ASCII圏のことしか考えないのは欧米製のライブラリにはよくあることで,ひょっとしたらとは思ってたけど。 ソースコードをちょっと書き換え

  • Pythonで生エクセルファイルを読み書きするpyExceleratorを使ってみた — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 普段自らこういうことはやらないんだけど,やむにやまれず大量(500個ほど)のエクセルファイルをCSVファイルに変換する必要があった。RubyではSpeadsheetというのがあるみたい。PerlではSpreadsheet::WriteExcelとかSpreadsheet::ReadExcelとか使うのかな。 まあ僕はPythonな人ということもあり,Pythonでできないかと思って調べてみたらpyExceleratorというモジュールを発見した。Pure Pythonで書かれたモジュールなのでインストールが簡単。生のエクセルファイルを直接読み書きできるので,プラットフォームを問わず動か

  • Pythonを使ってiTunesを操作する | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 昔に買ったMac MiniをiTunes再生専用マシーンにしているんだけど,普段はモニタを消しているので,再生開始するときや停止するときに,モニタをつけたりなんだりしなければならなくて面倒だと思っていた。Mac Miniはネットワークに繋がっているのだから,ネット経由でコントロールできればステキだ。iPhoneのアプリ「Remote」を使うと,WiFi経由でローカルネット上のiTunesを遠隔操作できるんだけど,しばらくすると接続が切れたりして使えない。 しょうがないので,PythonからiTunesのコントロールをできるようにしてみた。appscriptというバインディングをインスト

    dotred
    dotred 2009/06/18
    Pythonを使ってiTunesを操作する: 昔に買ったMac MiniをiTunes再生専用マシーンにしているんだけど,普段はモニタを消しているので,再生開始するときや停止するときに,モニタをつけたりなんだりしなければならなくて面倒だ