はてな認証APIの戻り値が空になる問題

アラモードで、はてな認証APIを使ったら出来そうかなーと思うシステムがあったのでajaxで使ってみたのですが、正しい値を入れても戻り値が空になってしまうという問題にぶち当たった。

{
  "user": {
    "name": "",
    "image_url": "",
    "thumbnail_url": ""
  },
  "has_error": false
}

こんな感じ。
エラーはでていない(false)のに値が空っぽ!なんだこりゃ。


こりゃバグだろと思ってサポートに聞いてみたけど、ちゃんと動いてますよと返答があった。
もう一度いろいろ試してみた結果、どうやらこのcertの値は説明にある「一回使い切り」ではなく「ワンタイムパスワード」っぽい。
ためしにphpで読み込むと戻り値が帰ってきた。
なるほどajaxで出来なかったのは非同期だからかな?同期ならうまくいきそうだ。
というかそういう事情ならなんでエラーにしてくれないの?あほか。


これではやりたいシステムには使えなかったのでお蔵入り。
なんでこんな使えないクソ仕様にしたんだ…
せめてuser:pass@auth.hatena.ne.jpでつなげられるようにしてくれればまだ使いようがあったのになあ残念だなあ。

Flashの提供終了日が近づく(Flashの問題点と代替技術canvasのとっつきにくさ)

Flash技術者としては悲しい話ではあるが、Flashの提供終了日は確実に近づいている。
9割はApple社のせいである。責任を取って欲しい。(おい)
Facebookの新セキュリティ責任者がアドビ「Flash」の提供終了を促すツイート(http://japan.cnet.com/news/service/35067323/)をしたり、Google Chromeが重要でないFlashコンテンツをデフォルトで停止することを発表するなど、Flashを排除する動きが加速している。


iPhoneでの不採用事件からだいぶたつが、結局iPhoneで採用されることもなく、canvasも浸透せず、しょぼいJSアニメが代替技術となってしまった。
そもそもなぜApple社がFlashを採用しなかったのか。


1.とにかく重い、サイト負荷が高すぎてスマートフォンだと電池が持たない
これはApple社の言い分が正しいとおもう。Flashは作るのがとにかく簡単すぎて、広まりすぎてしまった。どうでもいいバナー広告などにFlashが使われるようになり、サイト全体の表示速度がかなり低下してしまった。
Flash製作者の私ですら、広告のFlashにうんざりしたレベルだ。
Apple社だけでなく、多くの企業や個人がFlashを排除することに賛成したのもうなずける。


2.セキュリティホールが数多く空いており、リスクが高い。しかし修正パッチが遅い
AdobeFlashが買収されてから少しはましになるかなと思ったが、結局変わらなかった。
また、AdobeFlashに加えた新要素がそのままセキュリティホールになるなど、リスクが増え続けてしまった。


3.Appleの利益が減るから(canvasを流行らせたかった)
FlashAdobeが権利を持っているプラグインで、その利益はAdobeに入る。
もしこれをcanvasに置き換えられたら、という発想があったのではないだろうか。
真相は不明であるが。


他にも理由はあるだろうが、Apple社は頑なにFlashを受け入れなかった。
Adobeはモバイル用Flashなどを製作してApple社に導入をおねがいしたり、AndroidFlashを乗せるなど対応した。
結果は、Apple社が完全勝利。Flashを使用したサイトはどんどんと減り続けている。
しかし、Apple社が普及させたかったcanvasも結局普及せず、JSアニメという技術に逆戻りしてしまった。


Apple社はcanvasを広める動きを殆どしなかったのでこうなることは予測できた。
私はFlash側の人間だが、別に動的できれいで楽しいインターフェイスを実現できるならcanvasでもよかった。
しかしcanvasFlashとだいぶ違い、移行できない技術者が多かったため技術者が減り、製作会社が企業にcanvasを提案することなどできなくなり…
Flashcanvasの移行を妨げたものはいろいろあるとおもう。


1.Flashに比べて難しすぎる
canvasには当時、Flashのような作成ツールがなかったので、今まで視覚的に作成できたものがすべてコード記述になってしまった。
勉強しろよ、といっても、マウスで絵を描くのとコードで絵を描くのとではレベルが違いすぎる。
またタイムライン、フレームという概念がcanvasにはなかったため、Flashしか使えない技術者には移行はつらかっただろう。
今はcanvasにもFlashのように視覚的に作れる作成ツールがある。それはAdobe Flash Pro CCの書き出し機能である!いいぞAdobeよくやった。精度はもってないから知らないけど。


2.上記の理由で時間がかかりすぎる
Flashでは5分でできることがcanvasとJSでは30分かかる。
Flashでは5時間でできることがcanvasとJSでは2日かかる。
時間がかかるということは金がかかるということだ。


3.そもそもcanvasFlashのようにいっぱい動かすと重い
本末転倒である。


まあ理由はどうにせよ、近い将来Flashは一般のサイトでは見なくなるだろう。
Javaアプレットのような末路をたどるのではないだろうか…悲しい。
JSアニメがFlashのような動きをできるようになるのは一体いつになるのやら。HTML7か8か?
それまではしょぼいJSアニメで我慢するしかないですね…これがウェブ標準だもの…


と、思ったことをそのままがりがり書いてしまったので読みにくいですね。すみませんでした。

ユウヤ君と鈴ちゃんの復活について

だいちゃんが「あくしろよ」って言ったので(言ってない)クラウドでの復活を目指したいと思います。


基本的にcronで時間ごとに起動する形を考えているんですが、
どのくらいの間隔でいけるのかとか、サーバ負荷ではじかれないかどうかとか
いろいろ悩みの種もあるので、復活できるかどうかはまだわかりません。すまぬ。


というかその前に作成しているもの(はてなハイククライアント)があるので、それがひと段落ついてからになりそうです。待て続報!って感じ?

HTML5のdrag系イベントで、ドラッグ中の画像上(コンテンツ上)のマウス位置を拾いたい

久々に技術の話。わかりやすい回答がなかったので後の人のために書くよ。


簡単に言えば画像Aをドラッグして画像Bにドラッグオーバーしているとき、マウス位置によってうんたらかんたらするようなコードを書くことになったんだけど、
「マウス位置 javascript」でgoogle先生にお伺い立てても、mousemoveしか出てこなかった。正解はdragイベントでした。


画像Bにオーバーしているときのマウス位置の取得をしたいので、google先生のいうとおり
dragoverと思って実装したんだけど、dragoverではe.pageYができなかった。要素に位置情報なかった。
ただしオーバーしてる画像の位置は$(this).position().topで取得できたので、あとはこれに現在のマウス位置を合わせればできるかなーとmousemoveイベントを入れてマウス位置を取得しようとしたんだが・・・
なんとmousemoveはドラッグの時にはイベントはっせいしなかった。そりゃそうだと思ったが知らなかった・・・
で、散々検索してdragイベントならe.pageYを取れることが判明したのが今。dragenterとかずっと見てたのにdragにたどり着くのに3時間かかった・・・


よって最終的にはこうなった(jqueryなくてもできるけどありの書き方で)

var pageY = 0;
document.addEventListener("drag",function(e){
	pageY = e.pageY;
});
$("#tableBlock li").on('dragover', function() {
	over = "on";
	overY = pageY-$(this).position().top;
	
	//高さ半分以上の位置なら
	if(){・・・
	
	//高さ半分以上の位置なら
	else{・・・

})

はてなハイクソルジャーの使い方 ver3.0

普通の使い方・インストールはこちら
http://d.hatena.ne.jp/tukihatu/20140616/1402905409


新しい機能を追加しましたのでまたまた説明。


今回は要するにいろいろつけた(←大雑把すぎる説明)

ここをクリックすると設定メニューが開きます。



既存の機能も合わせて紹介しますね。


・スパム投稿非表示[ON]ボタン
OFFにするとはてなハイクソルジャーのすべての機能がOFFになります。一時的にOFFにしたい時に。


・スパム通報ボタン
押すと、スパム判定をしたIDを通報する画面がいくつか開きます。通報して運営に仕事をさせる用。


New!スパム非表示ボタン
押すと、スパム判定をしたIDを非表示する画面がいくつか開きます。ソルジャーのお仕事はほぼ完璧ですが、さらに完璧を求める人用。


New!TOPページのみに適応する
チェックを入れると、はてなハイクソルジャーの機能がTOPページに限定されるようになります。(Hotkeywordは機能します)
もともと個人のIDページは範囲外でしたが、これを使うことで「ひとりごと」や「おはよう」などのキーワードページも範囲外となります。スパム削除機能をなるべく小範囲にしたい人用。


New!特定のIDはスパム判定しない
チェックを入れると、その下に書かれたIDはスパム判定しなくなります。IDは「id:tukihatu」の形で書いてください。複数のIDを指定する場合は「,」カンマで区切って使用してください。「id:tukihatu,id:suzumetoolove
あんまりこの機能はつけたくなかったのですが(いろいろな理由で)海外ハイカーとお友達でスパム認定されると困る人用に。


この機能をうまく使ってくれるとうれしいです!


あとは処理のほうで
ブラックリスト単語の優先度をあげた
ブラックリスト単語の整理
とかやりましたけど、まああんまり見た目にはわからないかな。


Q.スパム通報ボタンを押しても何も動かないときがあるんだけど・・・?
A.(タブを開く機能ですが、あまりにも数が多いと自動的に制限がかかってしまうようです。15ぐらいで限界っぽいのでTOPページを下にスクロールしていって一気に通報しよう!というのは)むりです。


Q.だから非表示フォームをたくさん開くんじゃなくて、自動で非表示にできないのか面倒くさい
A.(それも非表示フォームの仕様的に)むりです。

はてなハイクソルジャーの使い方 ver2.0

普通の使い方・インストールはこちら
http://d.hatena.ne.jp/tukihatu/20140616/1402905409


新しい機能を追加しましたので説明。(といってもこの機能を使う人いないと思うけど)


・通報ボタンをつけた。

このアイコンを押すと、あたらしいボタン「スパムをすべて通報」が追加されています。
ハイクのTOPページでこのボタンを押してみましょう。
すると、はてなの通報画面のページがいくつも別タブで開きますので、そこからドンドン通報します。


え?それだけ?
ええ、
まあ。


この機能のおかげで
・わざわざスパム投稿者のページに行って右下のボタンを押して通報フォームへ・・・という面倒くさい手順がなくなった
・ボタンひとつでソルジャーさんがはじいた全てのスパム投稿者の通報フォームが開くので、すばらしい時間短縮になる


まあ主に自分用な機能ですが(もともと全部そう)通報したい方はご利用ください。
通報することによって記事自体削除になる可能性が高くなるのでスマホでトップページを見るときにいくらかいいんじゃないかな、ということで。


Q.通報フォームを開くんじゃなくて、自動で通報してほしい
A.(手動でないとそれこそ通報スパムになる恐れがあるし、そもそも通報フォームの仕様的に)むりです。

鈴ちゃんがパワーアップしたところをまとめ(天気予報)

ひっさしぶりにBOTの話題だなぁ。。。もっと真面目に更新しないと。
今回更新したものをまとめていきます。バージョンも5から6に二年ぶりにメジャーアップしました・・・二年っておいw
全体的な鈴ちゃんの体重は124kbから157kbになりました。太ったなぁ。(ニヤニヤ)


・鈴天気予報を追加
二代目めりもです。うっうー。
誰か天気予報やるかなーと様子見てたけど誰もやる気ないみたいなので勝手に二代目名乗って始めました。
それと天気予報してもらった後、お礼に「粗品」をあげられます。粗品はかっこ「」で囲っていただければ。あんまり甘やかしちゃだめよ?(プレゼント配るよ!でも同じものを実装してます)
本当は括弧なしで実装したかったんですけど、ハイカーは変人なので、変な粗品が多そうだなと。
その場合正確にとるのはまだまだ難しいのでこういう形になりました。
【】は粗品の説明をできます。こちらはあってもなくてもいいです。

○「粗品」をあげる
○「粗品」をあげる。【危険物】だよ。
×【粗品】をあげる

頂いた粗品の使い道は、プレゼント袋につめるとか(もらったものをそのままプレゼントとか汚いなさすがtukihatu汚い)考えてますがまだ未定。


天気のほうは普通の天気と週間天気予報ができます。まあめりもとほぼおんなじことはできるんだけど知らない人のために真面目に説明しますか。

天気予報について
国内の場所を書けば予報してくれます。「横浜市の天気をお願い!」とか。
できれば市区町村で書くと鈴ちゃんが理解しやすいです。県名でもOK。
明日の天気が知りたければ「明日の神戸市をお願いします!」とか書けば教えてくれます。
9日後の天気までならお知らせできますが、「6/20の北海道」というような日時判定はできないです。「9日後の北海道」という書き方をしてください。

週間天気について
千代田区の週間天気を教えて!」と唱えれば週間天気(7日間)を画像つきで教えてくれます。


遊んでもらえればうれしいでーす。



・ユウヤくんの更新めんどいのでやめた
放置プレイでニュース読み頑張ってもらいますw
今後はたぶん鈴ちゃんだけ更新していきます。鈴ちゃんのほうが更新しにくいんですが(二人分だから)、かわいいは正義


・鈴ちゃんのできることを整理
桜開花情報とオセロは削除。
桜開花情報は一年ごとに整備が必要でめんどくさいくせにあまり有用ではないので削除。
オセロはいつの間にかうまく動かなくなってたんですが、そもそもハイクに向かない機能なので削除。


・誕生日とかの質問を調整
もともとあったんだけどうまく動いてなかったから調整。


・20回制限追加
一人への返信を一日20回までに規制。