サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
tell-k.hatenablog.com
最近興味があってBoxenを調べています。BoxenはMacで開発するための 環境をよしなに整えてくれるツールなんですが、その中で気になったのが下記のヤツ dnsmasq w/ .dev resolver for localhost via https://github.com/boxen/our-boxen はて?dnsmasqで.dev resolver for localhostてどんな事してくれるんじゃろかい? 何してくれんの? 端的に言うと dnsmasqでローカル向けにDNSサーバを立てる .dev のドメインはローカル(127.0.0.1)で名前解決できるようにする あぁ上に書いてある説明どおりですね。ていう事をやってくれます。 もう少し噛み砕くと、ローカルでの開発用に hoge.dev, fuga.devみたいなドメインが欲しくなった時って、/etc/hostsに一個一個定
Androidのブラウザでiframe利用してコンテンツを表示した時に困った時の話。別にキレてないです。 前提 Android OSは 4.0.3 iframeで読み込むコンテンツはサブドメイン iframeのコンテンツは親frameに収まらずにスクロールする。 iframeのコンテンツはフォーム的なもんが表示 現象 スマホ(Android 4.0.3)でiframeが存在するページを表示してフォームが表示されていた。 画像の通り、radioボタンが並んだ縦長のフォームを表示している。 初期表示では、radioボタンをポチポチチェックできる。 送信ボタンを押そうと下に引っ張ると、iframeの中がスクロールする。 ここで問題が発生する。送信ボタンが押せないどころか、その状態でradioボタンを押すとチェックが入らない!!! 原因 そもそもAndorid4とiframeは相性悪いらしい An
割とどうでもいい話。python2.7 の 標準ライブラリのemail/message.pyの中で"^L"ていう制御コードを見つけた時の話。 そもそも "^L"てなんだっけ。。。から始まり、調べてみたら改ページだった。 vimエディタの印刷で改ページ : サイト更新停滞ちうっ [ 名無しのVIM使い ] それは良いとしてなんでこんな所に改ページの制御コード入ってるんだろうと思ってさらに調べたら、下記のような同じような疑問をもったヒトが書いたスレを見つけた。 Issue 7513: many source files contaminated with form feed (\f) characters - Python tracker こんな事が書いてあった。 ivank 「Python 2.7の r76831 をチェックアウトしたら、大量のファイルに改ページが入ってるんやけど(震え声)
ltsvloggerで warn("%s %s", spam, ham) という手出しができないところにあるログ出力を受けたいんだけど、どうすればいいんだろう。— shirou - しろう (@r_rudi) February 10, 2014 元ネタ。コレをを見た時、確かにどうやったらいいんだろう? と思ってちょっと調べてみた。 やりたい事 ライブラリやらなんやらで書き出してるロギング部分を、自前で用意したロガーというかハンドラーに差し替えたい。 手出し出来ない例 例えば下記のような、hoge.py は手出しできないスクリプトだったとして、以下のようにログ取りになっていたとします。 # hoge.py # -*- coding: utf-8 -*- from logging import warn spam = u"スパム" ham = u"ハムの人" warn("%s %s", spa
Dockerが0.8でMac OSXのサポートをしたみたいな事をどっかでみたので、思考を停止してやってみた。触ってみただけなので全然ドカッと触れてない事に留意してください。言ってみたかっただけです。 あ。あけましておめでとうございます。 http://blog.docker.io/2014/02/docker-0-8-quality-new-builder-features-btrfs-storage-osx-support/ Dockerはそれまでは、Dockerを動かすためのVagrantfileを配布していて、VagrantでVM起動、そのVM上でdockerを使ってくれよな!よろしくー!的な感じだった。 それがMac上から直接dockerコマンドを使えるようになったぜ!ヒャッハー!ていう話らしい。 0. 前提 Mac OSX 必要 virtualboxが必要 1. boot2doc
reST書いてる時に、いい感じでプレビューしてくれるのないかな。って思って見つけたヤツをメモる 便利!MarkedをreStructuredTextのプレビューワーとして使う - F13 やってみたら割と便利だった。 rst2html.py のパスをMarkedのCustomProcessorに設定するだけでいいらしい。 あと毎回Marked 起動するのめんどいので、こんな感じで、.bashrcにaliasとして設定しておいた。 alias rstpreview='open -a Marked'これでいつでも好きなファイルをMarkedで開ける $ rstpreview hoge.rstMarkedは保存した内容を即座にプレビュー画面に反映してくれるので嬉しい。あとは僕のreST書きたい欲を待つだけ。
yuheiさんが書き残してくれたありがたい記事を参考にゴニョゴニョしてて気になって事があったので、調べてみた時のメモ Djangoでテストを速くするためにいろいろやってみた - brainstorm この記事には以下の対応が書かれていました。 対応2 sqlite3のin-memory databaseにしてみる 対応3 southでテスト時にmigrateを使わず、syncdbでテーブル作成を行わせる この記事の結果を見た時に、あれ?これってそんなに効果ないんだっけ?て気になったのでちょっと調べてみた次第。 前提&環境 Djangoは1.4系 South(DBマイグレーションツール)を利用 Migrationファイルは79ファイルある テストランナーはカスタマイズして、Django本体&サードパーティライブラリのテストは動かないようにしている。 MySQL5.6.13を使用(homebr
python で複数プロセス立ち上げてそれぞれのコマンドの結果を非同期に処理するのどうやったらいいんだろ— ねじめ (@drillbits) October 3, 2013 ていうのを見かけたので殺伐とした心を癒すためにやってみる心。 やりたい事 Pythonスクリプトから複数外部コマンドを実行 実行結果を非同期に処理する 割とお手軽にやりたい。 よしググる(クズやろう) asynchronous - How can I run an external command asynchronously from Python? - Stack Overflow あった。 試してみる それぞれ 1秒, 2秒, 3秒まってprintするようなスクリプトを3つ用意 # こんな感じ from time import sleep sleep(1) print "echo1" これを参考のまんま下記のよう
さてこの前下記のようなエントリを書いたら、エアリプライが大好きな、戦国大名の人が「同一のキーの値の加算」だったら、Counterオブジェクトでいいのにねぇ。。。みたいな事を、そうエアリプライで教えてくれましたw エアリプライでw ありがとうございます。 この前のヤツ 辞書のマージ(同一キーの値は加算) - Study08.net 対シンバシ殲滅用人型機動兵器 こんな感じ #!/usr/bin/env python #-*- coding:utf8 -*- from collections import Counter d1 = {'a': 1, 'c': 3, 'b': 2} def merge_dict_add_values(d1, d2): return dict(Counter(d1) + Counter(d2)) print merge_dict_add_values(d1, d1
とある開発環境でCelery + RabbitMQを動かしてたら、いつのまにかtask.delay()が息をしてないというかハングアップしてる感じになった時の調査と対処のメモ 環境 Debian squeeze RabbitMQ 3.1.3 (apt-getでinstall) 現象 DjangoアプリからCelelyのtask.delayでジョブを実行してるけど処理された気配がない 特にアプリ、Celery、RabbitMQで目立ったエラーは出ていない Celery起動時にRabbitMQの接続は出来てるというログは出てる [2013-07-25 16:08:55,270: WARNING/MainProcess] celery@hogehoge ready. [2013-07-25 16:08:55,284: INFO/MainProcess] consumer: Connected t
やほー。こんなにいい天気なのにインターネッツの世界にどっぷりな不健康の皆たちー。 この前作った、sphinxテーマをアップグレードしたよー。 ぶっちゃけ殆ど使われてないだろうけど、なんとなく使ってるBootstrapとかがバージョンアップしてたので、もろもろそれに併せてバージョンアップした感じです。 sphinxjp.themes.basicstrap 0.3.0 : Python Package Index あたらしくinner_themeとしてgeo-bootstrapとbootswatch-flatlyというのが利用できるようになりました。 geo-bootstrap例 - http://pythonhosted.org/sphinxjp.themes.basicstrap/ bootswatch-flatly例 - https://browsereload-macvim.readt
というわけで久しぶりのブログ更新。 あれですね2012年いつのまに終わってたんですかね。2012年12月に世界が終わるとかなんとか言ってた人たちは今どんな気持ちで生活してるんですかね。ちょっと話てみたいですね。 sphinxjp.themes.basicstrap 0.3.0 : Python Package Index Basicstrap style theme sample for Sphinx — sphinx theme for basicstrap style documentation そんなわけでSphinxというドキュメンテーションツールのデザインテーマをこさえてみました。Twiter Bootstrapという、今や猫も杓子も使い始めるほどの人気のアレをベースにしてみたテーマです。(実際、猫も杓子も使えるわけではない) 制作に当たっては、面識はございませんが@shkuma
こんにちわこんにちわ。唐突ですが、皆さんvirtualenv 使ってますか?今まではvirtualenv を使うときにシステムに入ってるsite-packagesを使わないように、以下のようなオプション指定していました。 $ virtualenv --no-site-package hoge ところが、社内の先生 id:shimizukawa (社内で先生とは不思議な表現だが、先生は先生なので大丈夫だ問題ない) に正しくは「--no-site-packages」だよ。と教えてもらいました。 え?けど期待するように動いてましたけど?て言ったら、「愛されゆるふわプログラマー」で皆さんおなじみの id:feiz 先輩が「オプションが前方一致なんじゃない?」と教えてもらいました。 えーまじかー。と思って、調べてみたら確かに「前方一致」だった・・・orz 一番短くて、「--no」だけでも 「--no
数日前に「自転車 x エンジニア」のkey3の こんなツイートを見かけた。 connpassって検索ないの。。— Mitsukuni Sato (@key3) October 2, 2012 connpass - 人が集まる。人と繋がるイベントサイト。 connpass は確かに検索は出来ないが、APIを提供してくれている。 APIリファレンス - connpass これを使ってお手軽にイベント検索を作ってみた。 ConnpasSearch | Connpass イベント、勉強会、セミナー 検索 検索オプションとか、ページングとか対応してないので、何か要望・ご意見があればいってください。
しかしcollections.pyのnamedtupleのところ見ると目を疑いたくなる— 芦屋ひろ (@kk6) September 28, 2012 こんなツイートを数日前に見つけた。脊髄反射的にcollections.pyを見に行ったら、確かに凄くて色んな意味で感動した。見てもらえれば、分かると思うけど、端的に言うと下記のような事をしてた。 そういえば標準モジュールとか中身全然見た事なかったので、ちょこちょこ見てみようと思った。 # -*- coding: utf-8 -*- classname = "Saiyan" saiyan_name = "Kakarot" template = """ # -*- coding: utf-8 -*- class %(classname)s(object): def __init__(self, name): self.name = name d
これは最近Djangoを使い始めた人の話しなんですけどね。Djangoは複数DBが扱えるんですよ。ええ。それでMaster/Slaveなレプリケーションを扱いたいなーなんて思ってたんです。 ところがね。ドキュメントに書いてあるMasterSlaveRouterを使った時に不思議な現象に遭遇しちゃったんですよ。 https://docs.djangoproject.com/en/dev/topics/db/multi-db/ ドキュメントに書いてあるとおり「MasterSlaveRouter」を実装しておそるおそるsyncdbして、そーと見たら、フッと出た。出たんですよ!エラー $ python manage.py syncdb . . django.db.utils.IntegrityError: (1062, "Duplicate entry 'contenttypes-contentt
ふとPythonで利用可能なモジュールの一覧を取得したくなったのでメモ。 条件 ここでいう利用可能なモジュール および パッケージ一覧とは、以下のようなものとする。 ビルトインで組み込まれてるやつ site-packages にインストールされてるやつ virtualenvなどの仮想環境などにインストールされてるやつ というかパスが通ってて、モジュール、パッケージとして認識されるヤツ全て 確認したいのじゃなくてリストとかのデータとして扱いたい こんなん僕が求めてるのとちゃう 求めてるものとはなんか違った夢の残骸達 sys.builtin_module_names 文字通り、ビルトインで入ってるやつの一覧。足りない http://www.python.jp/doc/release/library/sys.html#sys.builtin_module_names import sys pri
Vim で OSのクリップボードを共有する時は、.vimrcに 「set clipboard=unnamed」と書けば良い。 set clipboard=unnamed これで vim上でヤンクしたものとかが、Command + V とかで張りつけできたりする。 ところが、ある日ふと家の Mac OS X(Lion)で出来てない事にきづいた。vimrcを見直してみたけど、特に問題なさそうというか、会社でも同じvimrcの設定使ってるのに旨くいってるし。。。 良くわからないのでググったら、答えが見つかった。 Macのvimでクリップボードを使用する。 - 0xDB なんとデフォルトでインストールされてるvimだと 「-clipboard」て書いてあって、つまり無効。F○○K!! ~$ /usr/bin/vim --version VIM - Vi IMproved 7.3 (2010 Aug
唐突ですが、Python の Coding Style について参考になりそうなものをまとめてみるテスト。 主にベースとなるPEP8の他に、僕が見聞きしたWebフレームワークのCoding Styleを列挙しています。 PEP 8 Style Guide for Python Code http://www.python.org/dev/peps/pep-0008/ (和訳) http://oldriver.org/python/pep-0008j.html PEP 8 は Pythonを書く上で大体みんなが参考にするCoding Styleです。以下にあげる Coding Style達は、PEP8 に従い、その中で独自のCoding Styleを定義しているものがほとんどです。 PEP が初耳という人は、下記エントリーが参考になるでしょう。 http://www.oreilly.co.j
昨日の続き。色々なんか眠いので端折るでしかし。 昨日の話 http://tell-k.hatenablog.com/entry/2012/01/18/224126 面倒な事 昨日までの話だと、こんな感じに、ブランチを切り替えながら作業しなければなりません。 Sphinxドキュメントを編集する -> gh-pagesブランチに切り替えて作業 アプリを開発する -> masterブランチに切り替えて作業 これはめんどくさいですね。そこで「git submodule」を利用して、masterブランチ上に、gh-pagesのブランチをsubmoduleとして持ってしまいましょう。 これにより、ブランチを切り替えることなく、ドキュメントを編集する事が可能になります。 git submodule をつかう git submoduleは、svnの外部リポジトリのような事ができます。実際に下記コマンドを入
mkdpreview-vim は Markdown記法で書かれたテキストを書きながら、別ウィンドウ上でプレビューも一緒に確認できる便利プラグイン。 mattn/mkdpreview-vim - GitHub Big Sky :: Vimで編集中のMarkdownをプレビュー出来るプラグイン書いた Markdown以外に、reST と textile にも対応している。 これを利用してMacOS X 上で reSTructuredTextのプレビューを見てみる。 以下 プレビューを表示するまで。 環境 MacOS X pyqtのインストール 時間かかるんで最初にインストールしておく。 面倒なのでhomebrewでまるっとインストール $ brew install pyqt Qt と sit と PyQT4 を一気にインストールするから、多分 20~30分くらい時間かかる。 インストールが完了
今日は bpmappers というライブラリが、すごく便利で感動したという事を書く bpmappers ドキュメント — bpmappers v0.5 documentation 良くJSONを返すようなAPIを作るときに、オブジェクトの必要な部分だけを、辞書に変換してからJSONにするなんて事をすると思う。オブジェクトのプロパティが、数値やテキストなどリテラルなものであれば良いが、別のオブジェクトだったりすると、そもそもオブジェクトから辞書への変換は面倒くさそうだ。 これをよしなにやってくれるのがbpmappersである。詳しくはドキュメントを見てもらうとして、簡単な例を紹介しようと思う。 前提 まず SQLAlchemyで下記のようなモデルがあるとする。Entry と Comment は 1:N の関係にある。 # declare models class Entry(Base): _
そういえば、どこかでタイトルのような話をどこかで見た気がするけど忘れた。 Djangoでは、runserverや、カスタムでコマンドを定義したいときに、manage.pyを使うらしいが、それと似たような事ができる、エクステションもある。Flask-Scriptというヤツだ。 http://packages.python.org/Flask-Script/ 以下覚え書き インスール pip install Flask-Script 簡単な例 manage.pyとかいうファイル名でこんな感じのを作る from flasksample import app は 自分で作ったりアプリで、app はFlask()のインスタンスとする from flaskext.script import Server, Manager from flasksample import app manager = Ma
FacebookのOAuthのトークンについての覚え書き。 最近では、Facebook や Twitter の OAuth認証を介して、ログイン機能を提供するWebサービスが大分増えてきましたよね。しかも、ID/PASSでのログインとは別に、おまけ程度にあるのではなく、Facebook or Twitter でしかログインできないなんてサービスもちらほらあります。 FacebookのOAuth認証を通して手に入るユーザーのアクセストークンは、ユーザーがパスワードを変更したタイミングとかで無効になるので、認証するたびに新しいトークンになってたら、差し替えておいた方が良いんじゃないかなという話を長ったらしくします。 Facebook のOAuth認証のフロー 割と適当に書いたシーケンス図(ぽい)もので確認しましょう。 アプリケーションの要件によって、異なると思いますが、Webアプリケーションだ
大分前にこんな感じの事をしたので、その時の覚え書き。githubで管理されているOSSなんかでは良く、下記のようなURLでドキュメントを公開しているプロジェクトがありますよね。 http://[account_name].github.com/[repository_name]/ account_name(アカウント名)がサブドメイン repository_nameが対象のリポジトリ名 これどうやってんだろう?と思ってたのがきっかけです。以下手順を見てみましょう。前提として既にgithub上にリポジトリを持っていることとします。 GitHub Pagesを用意する そもそも、上のURL体系でページが参照できるのは、Github Pagesのおかげのようなので、まずはこれを用意します。Github Pagesを利用していないリポジトリで上のようなURLにアクセスすると、ご丁寧にページの作り方
最近 http://pypi.python.org が良く落ちる。そんな時にはどうしたらいいんだろうとか思ってた。そしたら今まさにTwitterでこんなやり取りが見れられた。 なんと!「~/.pip/pip.conf」でかけばいいのか! 恥ずかしながら「python.jp」にミラーがあるのも初めて知った!ww [install] index-url=http://pypi.python.jp/ refs: https://twitter.com/#!/voluntas/status/158544204975448064 直接教えてもらった訳ではないけど、@methane さん、@voluntas さん ありがとうございました。助かりました。 追記(2011/01/16) コメントで しみずかわ先生(id:shimizukawa) に「--use-mirrors」オプション使えよ。このゴミく
今日はこのネタです。タイトルの通りなんですが、PythonでそもそもAPIリファレンス的なドキュメントをどうやって作ったら良いのか知りませんでした。 他の言語であれば下記のようなツールを過去に使った事がありました。 Java なら Javadoc Perl なら pod2html PHP なら PHPDocumentor (今ならもっと賢いツールありそうだけど。。。) Pythonなら? ではPythonであればどのような選択肢があるでしょう。調べた限りではまず下記のような選択肢がありました。 pydoc -w でHTML生成 (pydocで簡単なPythonファイルのドキュメントを作成する) Epydocを利用する (Epydoc - 偏った言語信者の垂れ流し) javadocやらphpdocmentorやらのように、まるっとソースからHTMLを生成するだけであれば、これで十分かもしれま
昨日 XMLTestRunnerで標準出力を結果に出すやつを書いたら、@aodag 先生から、こんな指摘をもらった。 @aodag 「なんで自分XMLTestRunnerなんて使ってん? noseならオプションで標準出力の制御できんのに。」 という事で、使った事のある noseのオプションの覚え書き。 昨日のヤツ XMLTestRunner の 標準出力(stdout) どこいった? - Study08.net 対シンバシ殲滅用人型機動兵器 標準出力の表示(-s or --nocapture) $ nosetests -s -v -w apps これで print文で出力した内容が結果として表示される。 -v と -w とかはググれば出てくるので説明割愛 一緒にXUnit系のXMLも吐き出したい (--with-xunit) $ nosetests --with-xunit -s -v -
新年あけましておめでとうございます。昨年一年は自分の(体重の)成長を実感できて大変残念ですね。この野郎。今年一年は減量の方ももうちょっと頑張ろうな。俺。 というわけでタイトルの話です。既にSphinxドキュメントで「.rst」ファイルが更新されたら、自動的にビルドを走らせる方法は偉大なる先人達の手によってとっくに道が開拓されているのですが、あえてまた開拓したいと思います。というか他の方法を僕がちゃんと理解できなかったので、僕の知ってる一番簡単な方法でやってみました。 先人達の足跡 特にやり方が決まってるいる話ではないので、omakeが好きな人、Makefileだけでやりたい人とかは下記記事が参考になると思います。 OMakeでSphinxドキュメントをビルドする - 偏った言語信者の垂れ流し omake を使わずに、Sphinx ドキュメントの継続的ビルド: Addicted To Ind
次のページ
このページを最初にブックマークしてみませんか?
『Study08.net 対シンバシ殲滅用人型機動兵器』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く