Twitter API が動かなくなっていた!


はじめに

Twitter のタイムラインを取得してweb表示しているのですが、
APIの仕様が変わってデータが取得できなくなっていました。

※2012年の10月からの適用みたいですね。

こんなエラーが返ってきます。

{"errors":[{"message":"Sorry, that page does not exist","code":34}]}

そんな動作しなくなった API の修正方法をお教えします。

変更方法

http://twitter.com/statuses/user_timeline/ou_jirou.json?count=5

旧記述のこれを…

http://api.twitter.com/1/statuses/user_timeline.json?screen_name=ou_jirou&count=5

この記述に変更。

これで、うまくタイムラインのjsonデータが取得できました。

最後に

動かなくなってから気が付くなんて…
情報アンテナはいつも張り巡らせてないとね。 ヽ(゚∀゚)ノ パッ☆
 
 

ページ内のスムーズスクロールをたった1行で書く方法


はじめに

最近お仕事で、WordPressのテーマを作成しているのですが、

WEBサイトって
「トップに戻る」ボタン(ページ内リンク)でスムーズに一番上まで戻ると
気持ちイイですよね。

そんなスムーズスクロールをたった1行で書く方法があります。

スムーズスクロール書いてみよう!

サイト内に以下の1行を書いてみてください。

$('.pageTop a').click(function () { $('html,body').animate({ scrollTop: 0 }, 'slow'); return false; });

※ちなみにjQueryが必要です。

・なんだよ!jQuery使ってるじゃないか!
・無理やり一行にしてるだけじゃないか!

という話はさておき…(^ω^)

あとはhtmlでページの好きな箇所に

<div class="pageTop">
	<a href="#">トップへ</a>
</div>

と書いて、クリックするとページの一番上までスルスルっと戻ってくれます。

最後に

手軽にスムーズスクロールしたい人は使ってみてくださいね。(゜∀゜)

他のプラグインとの相性が悪いということもありません。
(私の作るwebサイトには大抵このコードが入っています。)

ではでは。

fatal no SASL authentication mechanisms っていうエラー

CentOS6空メールの設定でハマッたのでメモ。

postfixやらSMTP-Authを設定したにもかかわらず
メールログに

fatal: no SASL authentication mechanisms

と表示されてうまく動作しない場合、
SASL関連のインストールが足りていないのかもしれません。

yum install cyrus*

で空メール処理が動くようになりました。

最後に

CentOS6の最小版インストール(minimal CD)は便利だけどパッケージ不足には注意ですね。
(cron も wget も入ってません >_< )
 
 

あけましておめでとうございます

年賀状どぞー。
2012年、あけましておめでとうございます。
今年もよろしくお願いいたします。

ネットサービスを利用して年賀状を作ってみた

利用させていただいたのは「挨拶状ドットコム」というサイトです。

毎年、自分でデザインしてプリンターで印刷して送っていたのですが
今回はネットサービスを利用して作ってみました。

手抜きのキワミです (・ω<)

http://www.aisatsujo.com/

「挨拶状ドットコム」ネット上で全てが完結

・デザイン豊富
・宛名面の印刷も
・住所一覧CSVのアップロードで一括登録

あと、勝手に郵便局に出してくれたら全てokなのですが
さすがにそのオプションはありませんでした。 (>_<) どんだけー。

最後に

便利な世の中ですねー。
この挨拶状サービスには感動しました!

自分もみんなのお役に立てるサービスを作りたいな。

 
 

SOYSHが届いたよ

皆さん、SOYSHって知ってますか?
あのポカリスエット大塚製薬から発売されている大豆の炭酸飲料です。

SOY+SHって名前だからダイズシュワーって感じですね。

今キャンペーン中で、ネットで申し込むと無料で6本送ってくれます。
http://soysh-cp.jp/

今日、その6本セットが届きました。

これがなかなか美味しいのです。
豆乳と全く違う味で、しかも大豆の搾りカスも一緒に取れるという、豆乳を超えた大豆飲料なのです。
(大豆の搾りカスは「おから」で栄養豊富です。)

ポカリスエットが出たときも新しい驚きだったけど、
SOYSHも新しい!

大塚製薬やるなあ (゜∀゜)
 
 

さくらのレンタルサーバーにAWStatsをインストールする

さくらのレンタルサーバー標準のアクセスログ解析プログラムは「Webalizer」ですが、これは機能が少なくて味気ない。>_<

ということで詳細まで解析できる「AWStats」をインストールしてほしいという仕事依頼がありました。

1日の仕事です。
やったことをざっとメモ代わりに書いておきます。

さくらのレンタルサーバーはみんなの雑居サーバーですから、apacheログもちょっと特殊です。

・夜中の1時に各契約者の/logディレクトリにログが配布されます。
・翌日、古いログは容量を圧迫しないように gz で自動圧縮されます。

1時にログが配られるので、シェルを書いて、 cronで2時に動作するようにしました。

シェルスクリプトの内容

#!/bin/sh
LOG_NAME=`date -v -1d +access_log_%Y%m%d`
/usr/bin/perl /home/<契約者>/www/awstats/utf8_decode.pl < /home/<契約者>/log/$LOG_NAME > /home/<契約者>/log/$LOG_NAME.enc
/usr/bin/perl /home/<契約者>/www/awstats/awstats.pl -config=<契約ドメイン> -update
rm /home/<契約者>/log/$LOG_NAME.enc

Google等の検索ワードがurlエンコードされているので「%02%0D%66%DE」のような表示になります。
このままだと、どんなキーワードでアクセスがあったのか分からないので…

/usr/bin/perl /home/<契約者>/www/awstats/utf8_decode.pl < /home/<契約者>/log/$LOG_NAME > /home/<契約者>/log/$LOG_NAME.enc

の部分でデコードしています。

デコードしたログファイルを AWStats に読み込ませて

/usr/bin/perl /home/<契約者>/www/awstats/awstats.pl -config=<契約ドメイン> -update
rm /home/<契約者>/log/$LOG_NAME.enc

そして変換後のログファイルを削除。
※ログファイルを削除しても、一度計測した AWStats の統計情報は残ります。

最後に

こんな感じに無事動いているようです。
お疲れ様でしたー。
 
 

なつかしのPC98 バイナリデータを解析してCSVにしてみた

PC-98MS-DOSに保存された掲示板バイナリデータからCSVを生成する機会がありました。
しかし、いくつかの問題がっ……!

・20年前のシステムなので、仕様書がありません…。
・ソースコードもないのでバイナリデータの構造が分かりません…。

どうしようかな?

20年前のデータなので…

・データは単にテキストをバイナリにしたような簡易な連続構造ではないか?
・だったら同じバイト構造でループしてるはず…(可変じゃなくて固定だったらいいな…)
・ループのバイトサイズが分かる目印みたいなバイトがあればいいな…

よーく眺めたら128バイトごとに似たようなブロック発見。
固定バイト構造でラッキーです。
これだけできればほぼ完了。解析数も128バイトなら手間も少なそうです。

ASCII部分の発見

ASCII文字の特定範囲(アルファベット、半角カタカナ)のデータを先頭から18バイト発見。
また、終端から100バイトも同じくASCII文字の特定範囲だけが使われているようです。

ということで、単純に、これらは「ニックネーム」「本文」に決定。
「゜」「゛」濁点の変換に注意して、ASCIIから全角文字に変換してやればよさそう。

残りの10バイトは何を保存しているの?

掲示板のデータだから、まず思い浮かぶのが日付。
とりあえず日付を表していそうなバイトを探していく…。

月(1-12)は4ビットでも表せるから探すのが面倒なので後回し。
データをだーっと眺めて、最大値がきっちり31(1F)までのバイトを"日"と判定。
次バイトが24(18)を超えていないようなので"時"としてみた。
(夜間にデータ記録されていないので実際の最大値はもっと低いです)
次バイトは59(3B)が最大値だったので"分"と仮定した。
次バイトも59(3B)が最大値だったので"秒"と仮定した。

この2つは逆の可能性があるけど、並び順的に多分合ってるはず。
もし間違っていたとしても「0分59秒」と「59分0秒」で誤差1時間以内なので。(>_<)

"日"の前バイトが1-12だったのでこれを"月"と判定。

確認のため、月が2,4,6,9,11のとき、31日のデータがないのを確認。
同様に"年"も確定。

実際には6バイト分の各バイトで「年月日時分秒」を表しているようでした。

そして、最後に残りの4バイトを128バイトごとに比較すると、1ずつ増加していたので連番を記録していると判定しました。

あとは、このバイナリデータを読み込んで
解析して、ASCII→全角文字変換して、文字列や日付としてCSVに出力するようにプログラムを書けばツールの出来上がり。

※ASCII→全角文字変換は「゛」とか「゜」があるからちょっと面倒だった (>_<)

最後に

資料が無くても何とかなる!(こともある)

お疲れ様でした。