僕は発展途上技術者

ssh 接続やリモートホストと何らかのやり取りをおこなおうとして POSSIBLE DNS SPOOFING DETECTED! というエラーが出てしまった時の対処方法

% ssh example.com


といった ssh 接続やリモートホストと何らかのやり取り、たとえば git pull といった git コマンドを実行しようとして、



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for example.com has changed,
and the key for the corresponding IP address 1.2.3.4
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.


といったエラーメッセージがでてしまった時の対処方法をメモしておきます。



サーバーの移行などでリモートのホストの IP アドレスが変わったようなときに発生します。



ホームディレクトリ以下の .ssh ディレクトリに移動し、 known_hosts というファイルを開きます。



example.com で始まる一行(長いのでエディタによっては 何行にも渡って表示されてしまう可能性はありますが、example.com~ で始まって改行で終わる一行という意味です)を削除してください。



その上で、



% ssh kodomo@kodomo-kenkou.com


を実行します。



The authenticity of host 'example.com (1.2.3.4)' can't be established. RSA key fingerprint is aa:bb:cc:dd:ee:ff:11:22:33:44:55:66:77:88:99:00. Are you sure you want to continue connecting (yes/no)?


のような接続の確認を求めるメッセージが表示されるので、yes と答えて下さい。



上記の一連の操作は最初の一回だけで、以降は必要ないのでご安心ください。

c2dm_on_rails gem を利用する rails プロジェクトのサンプル

c2dm_on_rails という gem を利用する rails プロジェクトのサンプルを頼まれて作りました。

せっかくなので公開しておきます。



ブログを WordPress から Lokka に移行しました

記念すべき Lokka からの第一回目の投稿です。 

ようやくこのブログを WordPress から Lokka に移行できました。 

今までの手順の詳細は文末のリンクをたどってもらうとして、ざっくりと移行した手順を書き出してみます。

  1. 素の Lokka が動く環境を用意します。方法は Getting Started - Lokka などを見て参考にしてください。僕はいつも通り Heroku に用意しました。
  2. WordPress のエクスポート機能を利用し、WordPress eXtended RSS と呼ばれる xml ファイルにエクスポートします。僕が使っていた WordPress は古いバージョン(ME2.0.5)でエクスポート機能がついていなかったのですが、ローカルに最新の WordPress 3.2.1 を用意し、そこに mysql のダンプ/リストアでブログのデータを流し込んだところ、自動的にデータ構造がアップグレードされ、エクスポートできるようになりました。
  3. Lokka のインポート機能を使い xml ファイルをインポートします。
  4. 画像などのメディアファイルを WordPress から Lokka に移動します。
  5. lokka-redirect プラグインをインストールし、WordPress 形式の URL を Lokka 形式の URL にリダイレクトするようにします。
  6. 他に必要なプラグインをインストールします。インストールしたプラグインは、lokka-facebook_like_buttonlokka-hatena_bookmark_buttonlokka-redirect_if_herokulokka-tweet_button です。
  7. Heroku の Add-On、Custom Domains でブログのアドレス blog.champierre.com を登録します。
  8. DNS を書き換えて blog.champierre.com へのアクセスが champierre.heroku.com に向くようにします。

一晩経ち DNS が書き換わったのが反映されて、めでたく移行完了です。

今 Lokka から投稿していて何だかうれしいというか安心した気持ちになります。

この安心感は、普段 Ruby を使っているから、Ruby でできている Lokka なら問題が起こっても自分で直せるし、「こんな機能が欲しいなあ」というときに自分でプラグインを作って欲しい機能を簡単に追加できると思えるところから来ているのだと思います。

Lokka はまだまだ荒削りなので、万人におすすめ、というわけではありませんが、僕のようにいつも Ruby を使っているという人だったら WordPress からの移行を考えてもいいと思います。

自分のブログが Lokka になったというのはデカイです。細かくいろんな機能が欲しくなってきました。Lokkathon に参加して、プラグインを作ったり、Lokka 本体へのパッチを送ったりと、引き続き Lokka を応援していきたいと思います。


参考エントリ

WordPress のブログを Lokka に移行(第3部) - Redirect プラグインを作りました

» Lokkathon #11 : ATND


に参加してきました。WordPress で書かれているこのブログを Lokka に移行するプロジェクトの3回目。


これまでやったことは、


» WordPress のブログを Lokka に移行しようとしています(まだ途中) : 僕は発展途上技術者


» WordPress のブログを Lokka に移行(第2部) : 僕は発展途上技術者


に書いています。


今回やりたかったことは WordPress スタイルの URL を Lokka スタイルの URL にリダイレクトすること。たとえばこのブログだと、今月のエントリーが見られる


http://blog.champierre.com/archives/date/2011/09/


という URL は Lokka 移行後は


http://blog.champierre.com/2011/09/


というスタイルの URL にリダイレクトしたい。


正規表現でリダイレクトのルールを作成すれば、その通りリダイレクトされるプラグインを作成することにしました。


lokka-redirect プラグイン


今回も @komagata さんにいろいろ聞いて、相当助けてもらいました。


当たり前ですが、Lokka を開発している本人に聞けばほとんどのことは解決、Lokkathon に参加することでかなり捗りました。


» champierre/lokka-redirect - GitHub


からインストールできます。


redirect プラグインの管理画面で以下のようにルールを設定すれば、WordPress スタイルの URL を Lokka スタイルの URL にリダイレクトしてくれます。


僕は発展途上技術者 - Lokka

次回 Lokkathon


次回 Lokkathon は 10/5(水曜日)。


» Lokkathon #12 : ATND


準備はひと通り整った感じなので、いよいよこのブログを Lokka に移行する日が来ました。


次のエントリーはもしかしたら、Lokka からかもしれません。楽しみです。


WordPress のブログを Lokka に移行(第2部)

» Lokkathon #9 : ATND


に参加して、WordPress で書かれているこのブログを Lokka に移行するプロジェクトの続きをやりました。


前回やった内容は、


» WordPress のブログを Lokka に移行しようとしています(まだ途中) : 僕は発展途上技術者


で書いています。


前回までで残されたタスクは


1. http://blog.champierre.com/archives/928 といった同じ URL のままで個別の記事にアクセスできるよう Lokka 側で URL を Rewrite する仕組みを用意する

2. 画像などのメディアファイルも移行する

3. WordPress では改行2つがpタグに自動的に変換されていたのが、Lokka では変換されないため、段落がまったくなくなってしまうのを何とかする


の3つ。このうち、2 と 3 を片付けました。


画像などのメディアファイルを移行


これはとても簡単。


Wordpress で使っていた画像は wp-content/uploads 以下にあったので、これをゴソッと Lokka の public 以下に移して難なく完了。


TextMate

WordPress の p タグ問題


WordPress では本文中に改行2つがあると p タグに、改行1つを br タグにそれぞれ自動的に変換して表示してくれます。


しかし、これに頼って書かれたエントリーのデータ自体に p タグや br タグが差し込まれるわけではないため、エクスポートしたデータを Lokka にインポートすると、WordPress では段落分けされて表示されていたデータは、ズラッと一行になって表示されてしまいます。


これを何とかしないといかん、ということで最初、rails の simple_format のソースを参考にして、改行2つを p タグに、改行1つを br タグに一気に変換したあとインポートしてみました。


一見うまくいきそうなのですが、これだと例えば pre の中の改行2つや改行1つまで変換されてしまいます。そんな感じで例外を考えていくときりがなくて途方に暮れてしまいました。


一緒に調べてくれた @komagata さんが WordPress のソースを見てくれて、じゃあ WordPress が行っている処理を Lokka に移植すればいいんじゃないかと、なったのですが、実際にみてみると、preg_replace (置換)の嵐でとても移植する気になれません。


p タグや br タグへの自動変換は wpautop という関数でおこなわれていることを @komagata さんが突き止めてくれて、そのソースを見ていたのですが、そこでひらめきました。WordPress のエクスポートの処理に wpautop をはさめば p タグへの変換をしたあとの結果が xml ファイルに吐き出されるんではないかと。


そこで、前回のように wp-admin/includes/export.php を開き、以下の 369 行目の部分を変更、$post->post_content を wpautop で処理した上で xml に吐き出すようにしたところ、うまくいきました。



前回、こんな感じで段落がなかったところが



この通りバッチリです。


lokka.dev

残るは、


1. http://blog.champierre.com/archives/928 といった同じ URL のままで個別の記事にアクセスできるよう Lokka 側で URL を Rewrite する仕組みを用意する


の Rewrite 問題、次回の Lokkathon で取り組みます。


» Lokkathon #10 : ATND


WordPress のブログを Lokka に移行しようとしています(まだ途中)

» Lokkathon #8 : ATND


に参加して、WordPress で書かれているこのブログを Lokka に移行するプロジェクトに取り組みました。


タイトル通り、まだ途中の段階での記録ですが、結構いいところまで行ってます。もうあと数歩といった段階。


Lokka に WordPress のデータをインポートするには、WordPress のエクスポート機能を使って吐き出す WordPress eXtended RSS と呼ばれる xml ファイルが必要です。


ところがこのブログが使っている WordPress ME2.0.5 は結構古いバージョンであるため、エクスポート機能がついていません。


そこで、まずは最新の WordPress 3.2.1 の環境を用意し、そこにこのブログのデータを流し込むという作業から始めました。


WordPress 3.2.1 を Mac で動かす


WordPress 3.2.1 の環境は、ローカルの Mac に用意することにしました。


最初の難関は PHP が動く環境を用意すること。


» Pow: Zero-configuration Rack server for Mac OS X


を使っているため、ローカルへのアクセスはすべて Pow に横取りされてしまい、Apache にアクセスがいかない。


そこで、IPv4 と IPv6 を使い分ける方法で Pow と Apache を共存させます。詳しくは以下の記事を御覧ください。


» Pow and Apache Side-by-Side - Jerod Santo


httpd.conf の



LoadModule php5_module libexec/apache2/libphp5.so

のコメントアウトを外し、http-vhosts.conf に以下を追加。



<VirtualHost *:80>
ServerName blog
DocumentRoot "[home dir]/php/blog"
ErrorLog [home dir]php/blog/log/error.log
CustomLog [home dir]/php/blog/log/access.log common
<Directory "[home dir]/php/blog">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

WordPress eXtended RSS を作成


サーバー側にログインし、ブログのデータを保存している mysql の DB をダンプ、ローカルの DB にリストアします。


WordPress のホームページより WordPress 3.2.1 をダウンロードし、ファイルを http-vhosts.conf で追加した DocumentRoot に置きます。


本当は、テーマファイルなどもコピーしないと完全な移行にはならないのですが、データをエクスポートさえできればいいので、データの移行だけで十分です。


wp-config-sample.php を wp-config.php にコピーし、データベースの情報を書き換えます。


ひとつはまったのは、MySQL のホスト名。


localhost に指定したらうまく接続できず、127.0.0.1 に変えたところ動くようになりました。



/** MySQL hostname */
define('DB_HOST', '127.0.0.1');

http://[wordpress に割り当てた ServerName]/wp-login.php で初めてログインすると、データベースのアップグレードを WordPress 側がよろしくやってくれます。


しばし待つと無事管理画面が開けました。


テーマファイルなどがないため、ブログの表示はまともにはできないですが、管理画面の Tools > Export さえ使えれば OK。


ただし、WordPress のエクスポート機能には


» #15203 (Export function does not properly escape ]]> (CDATA)) – WordPress Trac


でも報告されている をエスケープしてくれないというバグがあり、ソースコードを貼り付けていることが多い僕のブログも影響を受けてしまっていました。


Lokka へのインポートのときに を含むエントリーでインポートが止まってしまい、以降のエントリーがインポートされなくなっていました。


そこで、wordpress の wp-admin/includes/export.php を開き、126 行目の部分を追加。



エクスポートを実行し wordpress.2011-08-31.xml というファイルが吐き出されて一安心。


Export ‹ 僕は発展途上技術者 — WordPress

Lokka にインポート


ようやく Lokka 登場です。


インポート機能は最新バージョンの Lokka に実装されているので、まだ Lokka をインストールしていなければ、



git clone git://github.com/komagata/lokka.git

でインストールしましょう。すでにインストール済みの場合は git pull です。


Lokka の管理画面に入り、左メニューの一番下の方にインポートがあります。


僕は発展途上技術者 - Lokka

WordPress でエクスポートした xml ファイルを選んで、「WordPressからのインポート」を押すとインポートが始まります。


WordPress でドラフト状態の投稿を残したままインポートをおこなうと途中でエラーとなる問題がありましたが、


» Comparing 0fb46d0...718137e for komagata's lokka - GitHub


でコミットを push しておきました。


僕のブログの場合は、以上でインポート無事完了。


以下の感じで一応は Lokka にインポートされました。


lokka.dev

残されたタスク


残されたタスクは以下の通り。



  1. http://blog.champierre.com/archives/928 といった同じ URL のままで個別の記事にアクセスできるよう Lokka 側で URL を Rewrite する仕組みを用意する

  2. 画像などのメディアファイルも移行する

  3. WordPress では改行2つがpタグに自動的に変換されていたのが、Lokka では変換されないため、段落がまったくなくなってしまうのを何とかする


これらを次回の


» Lokkathon #9 : ATND


以降で解決していきます。


WordPress を Lokka に移行したいという方、一緒に参加しましょう。


任天堂の偉大さを感じる「ゲーム&ウォッチコレクション」

ポイントが貯まったのでゲットしたニンテンドーDS用「ゲーム&ウォッチコレクション」が届いた。



「ドンキーコング」「オイルパニック」「グリーンハウス」の3本が収録されているのだが、さっそく「ドンキーコング」にはまるこどもたち。


曰く「昔のゲームは簡単なのに面白い」とのこと。


簡単なのに、というのはグラフィックやBGMが豪華でなくても、という意味だと思う。


おっさんが昔を懐かしがって言う台詞ならそうでもないが、最近のゲームをやりまくって目が肥えた息子たちが言う台詞は重みが違う。


30年経っても「面白い!」と言わせるゲームを作った任天堂の偉大さを感じる。


さらにすごいのは、シンプルであるゆえに、「あとで自分で作ってみよう」とこども達の想像力をかきたてるところ。


スクラッチ(最近はまっている教育用プログラミング)でさっそく自分版ドンキーコングをつくるのだそうだ。


Scratch を使ってデータ処理、夏休み期間中のピーク時電力使用量をcsvファイルより抜き出す

長男が自由研究の題材として電力使用量を調べたいというので、東京電力のホームページより過去の電力使用実績データをダウンロードしてきてグラフにすることにしました。


ちょうどいい題材だと思ったので、Scratch でやったらと提案、数字のリストをグラフ化するところは、いろいろと手助けしながらもなんとか自分で進めていけそうなのですが、


» TEPCO : でんき予報|過去の電力使用実績データのダウンロード


からダウンロードできる csv データから必要なデータだけ抽出するところだけは大人力を発揮 :-)


2011/7/20,18:00,3834


といった形で日付、時刻、電力使用量が並んでいるデータから、ビーク時と思われる 14:00 の電力使用量だけを抽出するという処理を Scratch でやってあげました。



実行するとガシガシデータを処理してくれて、自動で動くさまをこどもたちも、「おー、Scratch が働いてくれてるー」と感心しながら眺めていました。




» 電力使用料を抜き出す(Scratch3 になって動かなくなってしましましたが。。)



文字列処理にも使えて Scratch の強力さを改めて思い知りました。



追記: 上記データを利用して作成された長男のプロジェクトを載せておく。電力使用量と最高気温との関連を調べていたようだ。



» 14時の電力使用量





» 東京 日ごろの最高気温




「かなぶん」が3歳〜小学3年生の女児向け雑誌「ぷっちぐみ」で紹介されました

» 「かなぶん」が3歳〜小学3年生の女児向け雑誌「ぷっちぐみ」で紹介されました | つくる社LLC


ということでさっそく買って来ました。


なんとなく並べてみました、MacBook Air と「ぷっちぐみ」。



おー、載ってる!



小学生低学年の女の子もスマートフォンを使いこなす、すごい時代になりました。


小学館様、「かなぶん」を見つけてくださった担当者様、どうもありがとうございます。


» ことばであそぼう ひらがな知育ゲーム「かなぶん(カナブン)」


» 小学館ファミリーネット|ぷっちぐみ


Scratch.app for iOS : Run any Scratch project on your iPhone/iPad

I made the joke Scratch project below. This is a story that my wish(or curse :-)) might come true a little.



このプロジェクトについてもっと知る


I sent an email to Mr. John M McIntosh(@squeaker68882), the developer of Scratch.app for iOS(Scratch.app existed a while in App Store until it was sadly rejected later) asking if there is a way to personally build the app on my iPhone and iPad. He kindly pointed me where I can get the source code.


I built it with Xcode. At first, the app could just start but any Scratch project did not run. I followed John's advice that probably URL for download the projects might be changed, so I changed the source code and I could finally made it run.



It is very nice that John also published the source on GitHub so that anyone can contribute.


Twitter / @squeaker68882: Scratch.app for iOS goes t ...


» johnmci/Scratch.app.for.iOS - GitHub


Anyone who has iOS Developer Account can git clone the source and build it for iPhone or iPad.


I am sorry that not everyone can do this, but if you have some friends who have the build environment, why don't you ask him/her?


I help a volunteer group that teaches Scratch to kids


» こどもプログラミングサークル‘スクラッチ’


and also hold the following Scratch Meetup.


» 大人のための Scratch 勉強会 #4 : ATND


If you have iPhone or iPad, catch me at that place and ask me to build the app for you.


プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

オンラインコンテンツ: 大人のためのScratch

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ