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>
と書いて、クリックするとページの一番上までスルスルっと戻ってくれます。
よろしければこちらの記事もどうぞ
あけましておめでとうございます
年賀状どぞー。
2012年、あけましておめでとうございます。
今年もよろしくお願いいたします。
ネットサービスを利用して年賀状を作ってみた
利用させていただいたのは「挨拶状ドットコム」というサイトです。
毎年、自分でデザインしてプリンターで印刷して送っていたのですが
今回はネットサービスを利用して作ってみました。
手抜きのキワミです (・ω<)
「挨拶状ドットコム」ネット上で全てが完結
・デザイン豊富 ・宛名面の印刷も ・住所一覧CSVのアップロードで一括登録
あと、勝手に郵便局に出してくれたら全てokなのですが
さすがにそのオプションはありませんでした。 (>_<) どんだけー。
最後に
便利な世の中ですねー。
この挨拶状サービスには感動しました!
自分もみんなのお役に立てるサービスを作りたいな。
さくらのレンタルサーバーに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-98のMS-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→全角文字変換は「゛」とか「゜」があるからちょっと面倒だった (>_<)
最後に
資料が無くても何とかなる!(こともある)
お疲れ様でした。