読者です 読者をやめる 読者になる 読者になる

orangain flavor

じっくりコトコト煮込んだみかん2。知らないことを知りたい。

Herokuの中の人が書いたWebアプリケーション構築の方法論「The Twelve-Factor App」の日本語訳

2016-01-14追記: 日本語版は随分前に本家にマージされたので、記事中のURLも変更しました。 The Twelve-Factor App はHerokuの中の人 Adam Wiggins氏によって書かれた、モダンでスケーラブルかつ継続的デプロイ可能なWebアプリケーションを構築するための方…

FabricとCuisineを使って簡単に永続的なSSHトンネルを設定する

はじめに インターネット越しにサーバー間で通信する際、通信内容を暗号化する方法としてSSHのトンネル(ポートフォワーディング)があります。autossh を使うと簡単にSSHトンネルを作れますが、サーバー間で 常時使う トンネルを作るための設定作業は意外と…

さくらVPSでLXCを使って安価に複数台構成を実現する

2013年6月7日 22:04更新: Upstartのデフォルトの設定ファイルを書き換えない方法に変更しました。hitoさんありがとうございます。 lxcなどのバージョンを記載しました。 はじめに Chefを使っていると、役割やサービスごとに環境を分離したくなります。 しか…

金融機関の口座集約アプリを少しでも安全にするために

はじめに 金融機関の口座集約アプリの危険性について - プログラマになりたい という記事が話題になっていたので、日頃からアカウント・アグリゲーション系のサービスについて考えていることをまとめておきます。 アカウント・アグリゲーション・サービスの…

DjangoからMySQLにCOMMITしたデータが別のトランザクションから見えない

はじめに Djangoを使ったアプリケーションで、2つのバッチ処理用プロセスA、Bを同時に立ち上げたときに、Aのトランザクションでsave & commitした値をBでは読み取れないという問題に直面しました。 問題の箇所のソースコードはこのような感じです。 実行順 …

かっこいいダッシュボードが簡単に作れるDashingがすごい

はじめに まずはデモを見てくれ!デスクトップPCなどの大きい画面で見るのがおすすめです。 デモ(中) デモ(大) Windows 8風のフラットなデザインで、いろいろ動いていてかっこいいですね。こんな感じのダッシュボードを簡単に作れるライブラリがDashing…

Capistranoでのsudoの書き方

はじめに Ruby製のデプロイツールであるCapistranoを使ってみました。いろいろなレシピを眺めていると、sudoの書き方が次のようにいろいろあって違いがわからなかったので、調べてみました。 sudo "hoge" # (1) sudoアクション run "sudo hoge" # (2) 文字列…

EvernoteのMarkdownをプレビューできるようにしたのでブログを引っ越した

2016-01-14追記: BaraagはEvernoteアプリの仕様変更により動かなくなっています。Markdownでメモをとるのにリアルタイムプレビューは重要でないことに気づき、筆者も使わなくなっているので、メンテナンスする予定もありません。ごめんなさい。 今まではてな…

SkypeのチャットにJenkinsのビルド結果を通知する

はじめに Jenkinsのビルド結果をSkypeのグループチャットに通知したいことがあります。Skype プラグインはあるのですが、ググるとインストールが大変でうまく動かないという声がチラホラありました。とりあえずプラグインだけをインストールして設定を見てみ…

フューチャーホームコントローラーをJenkinsのXFDとして使う

はじめに フューチャーホームコントローラー(FHC)には音声合成の機能があり、WebAPIで喋らせることができます。そこで、Jenkinsのビルド結果をわかりやすく知らせるXFD (eXtreme Feedback Device) として使ってみます。 ※吹出しはイメージです。本当は別に…

Visual Studioでビルド後にZIPアーカイブを手軽に作る

はじめに Visual Studioでのビルド後に、ちょっとバイナリをZIPで固めたいと思っても簡単にはできません。Visual Studioでのビルドに限らず、Windowsで作業を自動化しようとすると、Linuxならzipコマンド一発でできることが、簡単にできなくて困ることがよく…

フューチャーホームコントローラーの音声認識をKinect for Xbox 360に肩代わりさせるまでの手順

はじめに フューチャーホームコントローラー(Future Home Controller: FHC)は、以前の記事で書いたように、家電を音声でコントロールできるようにする未来感あふれるガジェットです。ただちょっと困っているのが、音声をうまく認識してくれないことがある…

Ubuntu Server 12.04.2 LTSでSkypeのボットを動かすまでの手順

はじめに 開発についてのミーティングをSkypeのチャットで行っていると、このチャットに外部からメッセージ送りたくなります。例えばJenkinsからの通知とか、アラートの受信とか。技術的にできることは知っているのですが、非GUIのサーバー環境で動かそうと…

フューチャーホームコントローラーの感想とそこから見るホームオートメーションの未来

fhc

フューチャーホームコントローラー(Future Home Controller: FHC)は、家電を音声で操作できるようになる未来感あふれるガジェットです。先日届いたので、いろいろ楽しんでます。FHCを使うとこんなことができます。 私「ねぇジュイス、ただいま。」 ジュイ…

CucumberとJenkinsを使って、PHPなどで作られたリモートのWebアプリの受け入れテストを自動で行う

WordPressのようにPHPなどでできたWebサイトの振る舞いを自動でテストしたいと思い、仕組みを作ることにしました。きっかけは、設定が間違ってて、トップページは正常に表示されているにも関わらず、個別のエントリページではエラーになってることがあったた…

Linuxコマンドでテキストデータを自在に操る

Linuxでテキストデータを扱うときに、コマンドをパイプで繋げるだけでいろいろな処理ができて面白いのですが、綺麗に整理されていない気がするのでまとめてみます。ここでは、cat, paste, join, grep, head, tail, cut, awk, sed, tr, sort, uniq, wc を取り…

プログラム言語における文字列エンコーディングの扱い方分類

├─バイト列と文字列は明確に区別されてるよ派 │ ├─文字列はUTF-16だよ派 (C#, Java, JavaScript) │ └─文字列はUTF-16かUTF-32かコンパイル時に選べるよ派 (Python3) │ ├─バイト列とUnicodeで別の型があるよ派 │ ├─UnicodeはUTF-16かUTF-32かコンパイル時に選…

Zend_Form をデザイナに優しい形でレンダリングする方法

php

Zend_Formのクイックスタートにあるフォームのレンダリングの節を読むと、フォームのレンダリングは render($view); ?> または によって行い、表示のカスタマイズはデコレータで行うと書いてあります。この方法は確かにスマートですし、デコレータを駆使す…

Pythonでの文字列置換をマスターする

Pythonの文字列置換は、置換の仕方やバージョンによって利用すべきモジュールが異なっており、少しわかりにくいので、Python 2.xでのstrとunicode、3.xでのstrでの置換をまとめます。 文字列による単純な置換 (str.replace) str (2.x) / unicode / str (3.x)…

DD_belatedPNGを使ってる場合でもスマートロールオーバーが動くようにする

はじめに DD_belatedPNGを利用すると、IE6でPNGファイルを透過させることが出来ます。 DD_belatedPNGはITキヲスク | IE6で透過pngを表示させるオススメscript、「DD_belatedPNG.js」で解説されているように、簡単にそして高速に透過PNGを表示できるという特…

PowerPoint 2007で散布図がギザギザになる問題

PowerPoint 2007で散布図を作成すると、編集しているときは次のようにきれいなのですが、 スライドショーで全画面に表示すると次のようにギザギザになってしまいます。 使用しているデータは次のようなものです。 X A B 0 0.5 0.003368973 0.2 0.452418709 0…

PowerPoint 2007 でグラフを操作するとフリーズする問題の修正方法

PowerPointでグラフを多用したスライドでグラフのデータや軸を操作しようとしたときに、PowerPointが応答なしになってしまい再起動を余儀なくされてしまう問題に困っていました。私が使ってる範囲では、グラフを移動させたときや、グラフ上や軸上でコンテキ…

簡単にスライドショーを作れるHighslide JSを使ってみた

デジカメ画像をWebページにアップロードして、フォトギャラリー+スライドショーを作成する仕事があり、簡単に作りたかったのでHighslide JSを使ってみました。まずそもそも、要件としてサーバー側で使えるのはPHPだけだったので、最初はPHPを利用して簡単に…

CentOS5.2にPython2.6+Django1.1+mod_wsgi3.1をインストール

なんかそこら辺に幾らでも情報がある内容だけど、ちょっとずつ情報が違って調べるの面倒なので未来の自分のために書いておく。 はじめに CentOS5.2にインストールされているPythonのバージョンは2.4.3で、古いからアップデートしたいと思ってもrpmが公開され…

Twitterのログインフォームを表示させるためのuser.js

今年7月後半にTwitterのログイン画面が変更されて、ログインというボタンを押さないとフォームが表示されない仕様になったのに腹が立ち、ついカッとなって作りました。http://twitter.com/を開くだけで、以下のようにログインフォームが表示されるようになり…

はてなインターン最初の一週間を振り返って

今年の8月ははてなのインターンに参加させて頂くことになりました。 8月3日から始まったのですが、この1週間を振り返ってみたいと思います。 1日目 1日目はいろいろやったので、箇条書きで。 はてなという会社の説明 大規模ウェブサービスの概要 大規模サー…

DjangoでのURL⇔view関数の正引き・逆引き

DjangoのURLディスパッチャは正引き(URLからview関数への変換)は比較的単純ですが、逆引き(view関数からURLへの変換)はちょっとわかりにくいです。get_absolute_urlメソッド, permalinkデコレータ, urlタグ, reverse関数, url関数, 名前付きURLパターンなど…

Djangoで開発する際にセキュリティについて気をつけること

Webアプリケーションを製作するときに、セキュリティについて気をつけなきゃいけないことはいろいろありますが、使用するフレームワークによって何を気にしなければいけないか、何を気にしなくてもいいのかは変わってきます。そこでDjangoでは何を考えなけれ…

Djangoでの普通の文字列とUnicode文字列の違い

先日はPythonでの普通の文字列とUnicode文字列の違いについて触れましたが、今回はそれを前提としてDjangoでの扱いを見ていきます。Djangoの内部では基本的にUnicode文字列が使用されています。しかし、コードを書くときは普通の文字列ももちろん使用できま…

Pythonでの普通の文字列とUnicode文字列の違い

Pythonで日本語を使おうとすると、エンコードの指定や''とu''の違いなどでよくわからなくなるので文字列型についての解説です。(よくわからなくなるのは自分だけと言う説もあります)なお環境はPython2.5ですが2.3以上なら変わらないと思われます。まず、Py…