2019年4月3日水曜日

[替え歌シリーズ]クソリプ野郎 垢BAN





あなたのちょっとしたツィートがクソリプで溢れた時に。


クソリプ野郎 垢BAN

リプなんだろ? クソリプするなよ
リプの内容に 火をつけろ
それは知ってる ひと足お先
光の速さで なんどもクソリプさ
クソリプ クソリプってなんだ ゴミのリプのことさ
リプってなんだ ためになることさ
炎上! あばよ投稿
炎上! よろしくブロック
クソリプ野郎 垢BAN!

クソリプは 天使の顔して
心で俺を マウントするものさ
おれもお前も フォロー外リプを
噛みつきさえならない リプをするのさ
クソリプ クソリプってなんだ あきらめないことさ
リプってなんだ くやまないことさ
炎上! あばよ投稿
炎上! よろしくブロック
クソリプ野郎 垢BAN!

クソリプ クソリプってなんだ ゴミのリプのことさ
リプってなんだ ためになることさ
炎上! あばよ投稿
炎上! よろしくブロック
クソリプ野郎 垢BAN!

2019年3月23日土曜日

[替え歌シリーズ]ポリゴンがいっぱい

掃除してたらダンボール型のVRグラスをみつけてその時使っていた端末をいれてみたあなたに。


ポリゴンがいっぱい

古い端末の中に 隠れてデータがいっぱい
低画質な3Dの中の
画質ははるかなメモリー
データは無限のつながりで 終わりを思いもしないね
手に届くVRは 限りなく地平線
視界を包んでいた
大人の階段昇る 君はまだポリゴンさ
高画質は誰かがきっと
作ってくれると 信じてるね
デプスだったといつの日か 想う時がくるのさ
キラリ アセットのような
まぶしいデータがいっぱい
ひとりだけ横向く VR空間だね
ARを夢みる頃
ガラスの階段作る ガラスの靴不透明さ
踊り場で描画を止めて
レンダリング 気にしている
温度だったとなつかしく 時間置く日があるのさ
大人の階段昇る 君はまだポリンゴンさ
高画質は誰かがきっと
作ってくれると 信じてるね
デプスだったといつの日か 想う時がくるのさ
温度だったとなつかしく 時間置く日があるのさ

2018年11月20日火曜日

[替え歌シリーズ] U.S.B.

※ファンの方すいません

USBの話題を議会で質問された方に。


U-U-U.S.B.
U-U-U.S.B.
C'-C'-C'-C'-C'-C'-C'-C'mon, jack
C'-C'-C'-C'-C'-C'-C'-C'mon, memory
U.S.B.
オールド政治家観たハツゲン (ハツゲン ハツゲン)
U.S.B.
専門家発言 真似した (真似した 真似した)
U.S.B.
事前 聴いてた言葉 (言葉 言葉)
U.S.B.
質問が突然だった (だった だった)
数十年で手書き書類 だいぶ変化したようだ
だけれど僕らは日本人
同じ時代の旅人さ
C'mon, baby サイバー
セキュリティの見方を inspired
C'mon, baby サイバー
交差する情報 セキュリティリスク
C'mon, baby サイバー
憧れてた大臣の席が
C'mon, baby サイバー
混乱してく ジパングで
C'-C'-C'-C'-C'-C'-C'-C'mon, jack
U.S.B.
発言踊った議会 (議会 議会)
U.S.B.
質疑応答された (された された)
U.S.B.
仲間の古い知識 (知識 知識)
U.S.A.
あのこは発言した (した した)
パシフィック・オーシャン 一飛び
情報はいつもファーストスピード
記事というテキスト交わし
System Error 書かれるのさ
C'mon, baby サイバー
閣僚の味方 organizer
C'mon, baby サイバー
ニューウェーブ待つ 有権者
C'mon, baby サイバー
どっちらが正解か秘密
C'mon, baby サイバー
ユナイテッドする 興ざめ
C'-C'-C'-C'-C'-C'-C'-C'mon, jack
C'-C'-C'-C'-C'-C'-C'-C'mon, memory
C'mon, baby サイバー
セキュリティの見方を inspired
C'mon, baby サイバー
交差する情報 セキュリティリスク
C'mon, baby サイバー
憧れてた大臣の席が
C'mon, baby サイバー
混乱してく ジパングで
C'-C'-C'-C'-C'-C'-C'-C'mon, jack
C'-C'-C'-C'-C'-C'-C'-C'mon, memory

2013年12月24日火曜日

[替え歌シリーズ] バグが散々苦労する

※ファンの方すいません

テスト前夜にきっとこんな事も起こってるはず。


昔 となりのおしゃれな プログラマは
結合テストの前日 私に云った
今夜 8時になれば サンタが家にやって来る
ちがうよ それは帰宅したいだけのおはなし
そういう私に ウィンクして
でもね テストになれば あなたもわかる そのうちに
バグが散々苦労する 本当に散々苦労する
余計な仕様追い越して
バグが散々苦労する 難度高い散々苦労する
仕様の外から来た
あれから いくつ冬がめぐり来たでしょう
今も彼女を 思い出すけど
ある日遠い街へと バグがつれて行ったきり
そうよ 明日になれば
私も きっと直せるはず
バグが散々苦労する 本当に散々苦労する
仕様変更をかかえて
バグが散々苦労する ありそうに散々苦労する
顧客から来る
バグが散々苦労する 本当に散々苦労する
予算追い越して
バグが散々苦労する 難度高い散々苦労する
私の家帰れない
バグが散々苦労する 本当に散々苦労する
仕様変更をかかえて
バグが散々苦労する ありそうに散々苦労する
仕様の外から来た
バグが散々苦労する

[替え歌シリーズ] クリティカルなバグの頃には

※ファンの人すいません。

年末進行で焦って修正して確認せずコミットしたあなたへ・・。



Subversionに
コミットする頃には
君と僕のマージで
バグが 出ているだろう
バージョンログが
流れる頃には
誰がバグを出したか
今はわからなくても

このバグを
少し 直せば
届いていたのに
1秒前
何か 足りない
コードのすれ違い

お互いを管理してなさすぎて
コードがよそ見できないのさ

プロジェクトマネージャが
出社する頃まで
マージ前に戻って
もっと ローカルでいよう
プロジェクトマネージャが
出社する頃まで
何が 大切なのか
一人 考えたい

誰かが
コード修正するのは
助かるけれど
バグを
無理矢理に
直せないから

近すぎて見えない修正は
マージが発生すればわかるらしい

クリティカルなバグが
発生する頃には
君と僕の答えも
きっと 出ているだろう
起動しないプログラムが
発生する頃には
何が原因なのか
今は見えなくても

年末進行が
流れる頃には
どういう君と僕に
チケットは降るのだろうか?
顧客検証が
行われる頃には
どういう君と僕に
チケットは降るのだろうか?

[替え歌シリーズ] クリスマスイブの夜にみんなから取り残された人へ

※ファンの方すいません・・・。

クリスマスイブ。
楽しく飲んでいてふと周りを見たら誰もいない。
そんなあなたへ。



金は夜更け過ぎに
ゼロへと変わるだろう
記憶ない、ほらない
きっと誰も来ない
ひとりだけの三次会
さてぇは、うぉぉ、おいてかれた

懐深く 秘めた小遣い
叶えられそうもない
必ず今夜なら
みんなで飲める気がした
タクシー、ウォーォたぶん、乗れない

まだ消え残る 酒への想い
夜へと飲み続く
街角には泥酔者
汚物のきらめき
際限ない、うぉーお、酒がない

金は夜更け過ぎに
ゼロへと変わるだろう
記憶ない、うほほほほ、ほらない
きっと諭吉はいない
ひとにぎりの100円玉
そりゃない、うぉーでも、ほかない
牧瀬里穂かわいいわ・・。

2013年10月6日日曜日

Youtubeのビデオを見出しのタイトルから自動的に拾って埋め込んでくれるJS

Youtubeの動画をブログなどで埋め込む時に1つとかなら動画の共有のコードをコピーしてくれば楽なのですが、html5jの勉強会のように数があると色々面倒なので、自動で埋め込むJSを作りました。
原理は単に"H4"タグに書かれたタイトルを元にYoutubeに検索に行ってヒットしたら埋め込むというものです。

例:
-----------------------------------------

Webアプリのマネタイズのこれまで

menue株式会社 成田守さんの講演でした。

プリペイド電子マネー『ウェブマネー』決済について

ウェブマネーの担当者さんの講演でした。
-----------------------------------------

という形でタイトルを書いただけで埋まってくれます。
とりあえず、Blogger的にはH4になる「準見出し」にすると勝手に取ってくるという形にしています。Hx系はいろんなところで使われるのでかぶってないものをチョイスしたいところですが、なかなか良いのが選べないというのがこの手のブログツールの悲しいところ。
とりあえず、つらつら書いて見出し設定したら勝手に埋まるというらくちんさを目指しました。
ただ、問題なのはブログ書いてる時にコピペなどすると変な文字列とかこっそり入ったりするので、そこは綺麗になるようにしてねとしか言えないのが悲しいです。
Bloggerはこの辺のコードを埋めても動くから便利ですが、onloadのタイミングの空気が読めない時があるので、あえての1秒後に実行にしてあります。

ソースコードは
<script type="text/javascript">
    var APIKEY=※https://cloud.google.com/consoleから取得したもの※;
    var CHANNELID="UCGiSzzfTs7s3dHy3xWkSQ0g"; // 絞り込むためのチャンネルID
    var TARGETTAG="h4"; // 対象となるタグ名
    var tTags;
    var isYTLoad=false;
    setTimeout(function(){
        tTags=document.getElementsByTagName(TARGETTAG);
        viewYoutube();
    },1000);
    function onJSClientLoad() {
        gapi.client.setApiKey(APIKEY);
        gapi.client.load('youtube', 'v3', function(){
            isYTLoad=true;
            viewYoutube();
        });
    }
    function addVideo(insDom){
        var tTitle=insDom.textContent?insDom.textContent:insDom.innerText;
        var request=gapi.client.request({
            path:"/youtube/v3/search",
            params:{
                maxResults:1,
                q:tTitle,
                channelId:CHANNELID,
                type:"video",
                order:"date",
                "part":"id"
            }
        });
        request.execute(function(resp) {
            if(!resp.error && resp.items[0]){
                var insEl = document.createElement("div");
                insEl.innerHTML = '<iframe width="560" height="315" src="//www.youtube.com/embed/'+resp.items[0].id.videoId+'" frameborder="0" allowfullscreen></iframe>';
                insDom.parentNode.insertBefore(insEl, insDom.nextSibling);
            }
        });
    }
    function viewYoutube(){
        if(isYTLoad && tTags && tTags.length>0){
            for( var i=0; i<tTags.length; i++ ) {
                if(tTags.item(i))
                    addVideo(tTags.item(i));
            }
            tTags=null;
        }
    }
</script>
<script src="https://apis.google.com/js/client.js?onload=onJSClientLoad"></script> 
です。
YoutubeのAPIのOnloadなどなど見計らっちゃってるので一部面倒なコードになってますが、直接読むようにするなどすればもうちょっとすっきりするかな。
運用方法として、上記コードをブログに埋め込むか基本動画が埋まってるというのであればブログパーツにするかという所でしょうか?
ここのブログは常に動画が埋まるものでもないので、ブログのソースにして貼付けるというめんどくさい形にしています。。。orz



2013年6月19日水曜日

UTCamera風 jQueryプラグイン作った

UTCamera風な画像をブラウザでできるプラグイン作った。
※WebRTCの機能が対応してて、有効設定されてるブラウザのみで動作します。ご注意ください。
※PC版のChromeなら動きます。

以下にソースを公開してあります。

https://github.com/wakasamasao/bcam/

使い方は以下のソースを参照ください。
https://github.com/wakasamasao/bcam/blob/master/bcam.html

流れとしては
  1. WebRTCの機能を用いてブラウザがWebCamにアクセスを試みる
    -> ブラウザから使用許可を求められるので許可が必要です
  2. 200ms毎(ブラウザの処理によって遅延することが多い)にカメラ画像を取得
  3. 10回撮影したら画像を合成しGIFアニメに変換
  4. base64にエンコードした文字列が返ってくる
という形です。
設定で撮影秒間や回数、ループするしない、フィルムロールのようにコマ撮り写真にするなどいろいろ変更できます。

とりあえず、こんなのが作成できます。
GIFアニメのはループリバースがかかってるため、自然に繰り返してるように見えます。



なお読み込み時のJSですが、GIFアニメ化するかしないかで必要とするプラグイン変わるのですが、
<script src="js/gifencoder/b64.js"></script>
<script src="js/gifencoder/LZWEncoder.js"></script>
<script src="js/gifencoder/NeuQuant.js"></script>
<script src="js/gifencoder/GIFEncoder.js"></script>
に関してはGIFアニメ化するのに必要なライブラリです。読み込まなかったらGIFアニメにはできず、フィルムロールタイプしか生成できません。

パラメータは以下のような感じで設定すると色々変わります。

width:200, // 生成される画像の横幅
height:200, // 生成される画像の縦幅
times:10, // 繰り返し回数
timing:200, // 取得タイミング(ms)
type:"animation", // 出力タイプ animation:GIFアニメ , pict:Film roll風
playtiming:100, // GIFアニメの場合の再生スピード
format:"png", // typeでpict指定の場合の出力フォーマット png | jpeg
layout:"horizontal", // 現在使ってないが設定
reverse:true, // アニメーション終了後に逆再生して繰り返しに違和感無いにするかどうか
videoObj:null, // ここにvideo tagのオブジェクトを指定するとそこにカメラ画像を表示
insertvideo:false, // 実行してるdomにキャプチャ用のvideoを表示するかどうか
oncomplete:null,  // 終了後のイベント
onend:null, // キャプチャ終了後のイベント
onstart:null, // キャプチャ開始のイベント
onerror:null, // エラー時のイベント
onwarning:null, // 警告時のイベント

万華鏡タイプのエフェクトとか色々やろうとは思ってるんですが頓挫中。
他にフィルムロール状態が縦並びとか正方形とか色々並べ替えたり・・いやなんでもない。
そもそもこれを使ったサービスを先に作れ・・と・・・・・・。ゴフゥ(吐血
あ、アイディアはあるんですよ?つ、作ってたら凝りだして・・いや・・ね・・(汗


2013年6月11日火曜日

html5のVideoタグでLive配信をするApple

Appleの基調講演の配信ページがsafari限定になっていて、何をやってるのか見てみた。

埋め込みタグは
<video id="movie" class=" video" src="http://p.events-delivery.apple.com.edgesuite.net/13oygadvoyibawefpiuawefpiuawdf6/sl_mvp.m3u8" x-webkit-airplay="allow" autohref="true" width="848" height="480" autoplay="autoplay" jsonurl="/apple-events/scripts/ac_media_jsons/june_2013_event.json" expectingmoviejson="true" spec="" style="width: 848px; height: 480px; "></video>
となっています。
おおお!Videoタグ!
たしか前回はObjectタグでQT呼び出しだったはず。
コントローラーは<div>で自作されていた。ShadowDOMな感じではない状態で。

srcには .m3u8 という拡張子のファイルを呼び出しています。
このm3u8はプレイリスト用のよくあるフォーマットです。
http://ja.wikipedia.org/wiki/M3U 
src指定されてるものは最初の画面関連の動画プレイリストのようです。
あと気になるところとして jsonurl という謎のアトリビュートが設定されています。
このjsonファイルも見てみると、これもm3u8のプレイリストを呼び出しています。
で、m3u8のファイル辿ってみると約9秒毎の .ts ファイルを連続再生させています。
中の .ts ファイルは srcで指定されてるのは開始タイミングで行われていたものが定義されています。jsonurlで指定されてるものは、常時更新されているようです。

この配信方法はhttpのライブ配信では王道のアルゴリズムではあるが、将来Videoタグでライブ配信するときに使われるスタンダードになっていくのだろうか?
W3CなどでLive配信についてはどう議論されてるか追えていないのでよくわかってはいませんが・・後で調べてみます。
DRMかけてセッションがないとDLできない、帯域をデバイスやネットワークなどで常時変更しまくったり、共有しようとしても細切れまくってるから共有するのがめんどくさくなるなどは実現できそうな気はする。
あと、プレイリストの生成をどうなるかがわからないけど、WebRTCな感じでP2Pな方法で動画ファイル送りまくるという方法がうまく使えるかな?

ただ、どうも不安定なようで、再生中に突然src属性で指定されていた最初の動画が流れてしまったり、動画の切替で1フレーム程度白いものが入って変にフラッシュするような挙動になったり、取得できなかった動画をスキップしまくったりしていました。

追記:
HTTP Live Streaming ですねと教えてもらいました。
http://en.wikipedia.org/wiki/HTTP_Live_Streaming
この方法にはiOS時代になって(Flashがないので・・)一気に普及した方法です。
YoutubeLiveもiOS対応になるのがこのあたりで時間かかった感じだったと思います。
videoタグにもとうとうHTTP Live Streamingがやってきたかというのが胸熱。

2013年5月14日火曜日

日の丸ブラウザはIEコンポーネントという方向に・・


※このエントリは書いてる途中で変な方向に進んでるとわかっていながら書き進めたものになります。

企業内でIE6は使われ続けてもいい。ただアクセスを外に出さないでほしい。
http://bathtimefish.hatenablog.com/entry/2013/05/14/165411

というエントリーをふんふん。確かに出てかなければどうでもいいや。と読んでいたんだが、ある事実に気づいてしまった。
元ネタの記事は


双日システムズ、Windows XPから7/8への移行向けにIE6互換ブラウザを開発
http://news.mynavi.jp/news/2013/05/10/168/index.html

からであり、このニュースを超ポジティブに捉えてみよう。
ニュース記事からの抜粋のため内容は確実ではないが

Internet Explorer互換ブラウザを新規開発
自社開発ブラウザであるためユーザ環境やアプリケーションに合わせた改修も行うことができる
なんと!!新規開発ということはこれは双日システムズさんが

日の丸独自ブラウザを作った
※ただしIE6互換の

ということに他ならないということか!
これは一大事ですよ。

では、プレスリリースちゃんと見みてみよう。

双日システムズ、アプリケーション仮想化の専門組織を立ち上げ、Windows®XP からの移行支援サービスに本格参入
~独自のIE 互換ブラウザでWindows®7/8 へのアプリケーション移行をフルサポート~
https://security.sojitz-sys.com/virtualization/news/pdf/20130510.pdf
双日システムズでは、通常IE コンポーネントブラウザと呼ばれるIE 互換ブラウザを新規開発
 ぬぬ。


IEコンポーネントブラウザ - Wikipedia
http://ja.wikipedia.org/wiki/IE%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6
IEコンポーネントに含まれるHTMLレンダリングエンジンの機能を使えるため、新たなHTMLレンダリングエンジンを開発するのに比べると容易にウェブブラウザの開発を行うことができる。
ぬぬ。

これをWebkitのブラウザ達と"文字列上"で比べてみよう。

[ IEコンポーネント ]を[ 利用 ]した[ 双日システムズのブラウザ ]
[ Webkit ]を[ 搭載 ]した[ NetFront Browser NX ]

これはぱっと見一緒ではないか。
やはり日の丸独自ブラウザができたと祝杯をあげるべきという事だな。

うん。
うん。


うん・・・・・・・・・・・・・・・・・。

違う・・。
これは世界に戦いにいけるものではない・・・。

2013年5月6日月曜日

HTML5ロゴに空気をいれて爆発させるアプリを作った

HTML5ロゴに空気をいれて爆発させて運動不足解消を狙ったアプリを作ってみた。
音声を出すようにしてもらえると、マサオ隊長から激励を聞く事ができ、やる気がどんどん出てくることでしょう。
HTML5ロゴを使ったクレイジーな何か。 に応募したものです。

HTML5PUMP
http://wakasa.org/project/html5pump/
※iPhoneでご覧ください。一部のAndroid端末では正しく動作しません。
※音声が出るコンテンツですので音を出してお楽しみください。


技術的に何をしてるかというと
  • three.jsを用いてロゴを3D変形させて膨らんでるような変形をさせる
  • 重力加速度を取得してある一定速度を超えたらイベントを発生
  • 一定の計算とランダムで応援音声を再生させる
という感じです。

苦労した点としては
  • ロゴが膨らんで破裂するというものを動的に絵を作成させる方法の検討
  • iPhoneでは音声データの読み込み制限があるため、バットノウハウで乗り越えた
という所でしょうか?
ちなみに、膨張してる絵を作るところは球体にテクスチャで貼付けています。
Canvasで生成したテクスチャを最初は小さく、カメラで拡大して表示し、どんどんカメラをひきながらテクスチャサイズを変えて変形させるという無理矢理な感じでアニメーションさせています。
本来ならオブジェクト自体を変形させれば良いのですが、計算上面倒な事が多々あったため、この方法を採用しました。

HTML5ロゴが来襲してくるというアプリを作った

HTML5は皆さんのすぐそばまで来てるというのを実感(嘘)するために、視覚化を考えました。
このアプリを使えばもう見るからにすぐ来てるというのが実感できるものです。
HTML5ロゴを使ったクレイジーな何か。 に応募したものです。

HTML5来襲
http://wakasa.org/project/html5attack/
※位置情報の提供を許可してください
※携帯端末で幹線道路とか付近で閲覧を推奨

※実際にはモザイクはかかっておりません。見る楽しみが減るので加工しています。

技術的に何をしてるかというと
  • 位置情報を取得して、最寄りのGoogleストリートビューがある緯度経度を探す
  • スマホが向いてる方位を取得し、Googleストリートビューを表示
  • Canvasを重ねてモノリス的なロゴと空を飛ぶアニメーションロゴ群を500ms毎に追加
という感じです。

苦労した点としては
  • 空を飛んでくというアニメーション計算が非常にしんどいし、実際作り込み失敗。
  • iPhoneで0.1とか移動させてもうまく移動してくれないのでカクカクするのを回避で妥協する箇所が多い
  • 最寄りのストリートビューを探すというのがAPIの性質上、何度も叩かないと取れない
  • 最寄りを探すのがある程度の範囲内のストリートビューなので、どこかわかりにくいのでUI作り・・なおす気力なし。
とかかな・・いろいろ問題ある状態ではあります。

ちなみに、最初はバイファムの最終回からインスピレーションを得て
  • 紙飛行機を飛ばして地図上に飛行距離を出す
  • みんなで飛ばしたものをシェアして紙飛行機が飛び交うのを見る
という幻想的できれいなアプリだったのですが、作ってる最中に"飛ばす"というアクションが無くなり、地図上のプロットも無くなるという、完全に原型を留めていないものになりました。(涙)
おかしいな・・・・。
※4分30秒付近からのイメージ

2013年5月5日日曜日

HDDの容量が足りなくなって調べたらAdobeさんが確信犯だった件

ディスクの空き容量も見なくて使ってたら、いきなり容量が足りないと言われた。
残り1GB・・だと!?!?
それも何で気づいたかというと、iPhoneのiOSのアップデートかけようとしたら容量足りないって、iOSの方がか?と思ったら自分のHDDだったという悲しすぎるオチ。

とりあえず、容量が足りないと言われた時にまず疑うのがキャッシュ系。
そのキャッシュ系はユーザーライブラリにあることが多い。
うーむ・・と探したら、さすがAdobeさん。

ハードディスクの空き領域が徐々に減っていく (Premiere Pro/Encore)
http://helpx.adobe.com/jp/x-productkb/multi/cpsid_84648.html
問題点 (Issue)
Adobe Premiere Pro や Adobe Encore を使用していると、ハードディスクの空き領域が自然に減っていきます。
やっぱりお前か・・・。力強く仕様ですが何か?とドヤ顔で書いてやがる。
自分で悪いと思ってるのか対処方法が公開されていた。
解決方法 (Solutions)
この問題を解決するには、以下の場所にあるキャッシュデータを、作業終了後に削除します。
やはり力強い。自分では消さないので消してくれと。
ほいほい。わかった。消せばいいのね。
と思っても、OSX 10.7以降はユーザディレクトリにはライブラリが存在しないと思っていたらその対処法もあった。
さすがAdobeさん。確信犯。

非表示のユーザーライブラリフォルダーにアクセスする方法(Mac OS X 10.7 以降) http://helpx.adobe.com/jp/x-productkb/global/cpsid_91195.html

とりあえず表示してないと何かと面倒なので、表示する設定をターミナルから流し込む。
で、Adobeフォルダみたら・・ 50GB 超え。
おぃ。俺のHDDの半分もっていってやがる!!
※HDDの容量は120GBです。

で、さっくりここの対処方法から削除してやっと復活。

他にもいろいろクリーニングしたいけど、クリーニングアプリの良さげなものをもわからず一旦これで終了。

みなさんもAdobe製品にはお気をつけを・・。

2013年5月1日水曜日

HTML5ロゴを愛する人のためのChrome機能拡張を作った

HTML5ロゴが好きで好きでしょうがない人のためのChromeの機能拡張を作った。
HTML5ロゴを使ったクレイジーな何か。 に応募したものです。

● We Love HTML5 LOGO! more. ●
https://chrome.google.com/webstore/detail/we-love-html5-logo-more/ipldhmeiifmgbfdjkonnpjcgegilpmmk?hl=ja

これを入れるとあら不思議。
すべてのWebページに 5HTML5 という文字があったらHTML5ロゴになります。



!注意!
サイトの作りによっては適応されない場合があります。
例:amazon.com、google.com

上記が少々使いにくいと感じたり、普通にサイトを使いたいという方用に抑えたフォントサイズのものもご用意してあります。

● We Love HTML5 LOGO! ●
https://chrome.google.com/webstore/detail/we-love-html5-logo/dccieefclmgoommkpjjdppmdpbpgecim?hl=ja

!注意!
かなり自然に溶け込むサイズにしたため、忘れてこのまま画面キャプチャを送って大惨事にならないようにお気を付けください。

技術的に何をしてるかというと
  • HTML5ロゴのSVGデータをSVGフォント用に変換
  • Chrome機能拡張でロードされた時に「SVG FONTが含まれるSVG」と「bodyに対してfont-familyを適応するcss」を追加
だけです。

細かい情報はあまりないので以下を参考に試行錯誤して微調整しました。
http://www.w3.org/TR/SVG/fonts.html
アイコンをFireworksでSVG出力してWebフォントに対応させる方法

ちなみに苦労したのがSVG FONTの作り方で、普通のSVGをFONTとして使うにはかなり厄介でIllustratorなどから吐き出した複雑な図形のSVGだとpathタグで吐き出されるためそのまま使えません。
SVG FONTの場合、svgのパスで d アトリビュートで作れる図形じゃないとだめなようで、変換が必要でした。
最悪手動で作ろうかと思ってたのですが、 IcoMoon App というサイトでうまいこと変換してくれるというのを知ってそこで変換しました。

2013年4月30日火曜日

hat.ioで開催されてた「10キー電卓 or 時計のスマホアプリデザイン・大募集!」に応募した。

hat.ioというリクルートさんがやってるサイトでコンテストがあったので応募してみた。

10キー電卓 or 時計のスマホアプリデザイン・大募集!
https://calclock.hat.io/

応募したのは以下の5作品
多少はJSで実装してどうなんかな?とか検証はしてみたけど、基本1枚絵を作るだけのものです。
脳内の妄想のみが主な作業なので、アイディア考えて絵に起こすという作業を無限ループしてたばっかりに、コンテストを荒らすのか?並に応募してしまいました・・。
※ @yukio_andoh さんも怒涛の追い上げで投稿しまくってた。逃げ切り応募すればよかった・・。

さて、僕の Golden Hat Prize の賞品 MacBook Air はいつ届くのかな?待ち遠しいです。
※ !注意! 発表はまだです。(4月30日時点)

「え?レッドブル狙いだろ?
色物扱いのものばっかりじゃねぇか!」


そんな声もちらほら聞こえますが、そんな気はまったく無いです。
見るからに力のこもった MacBookAir狙いのものしかないじゃないですか!!

2013年4月6日土曜日

マカンコウサッポウもしくは波動拳写真をHTML5技術で強化するCanvasアプリ

どうも以下のような写真が流行ってるらしい。
女子高生を中心に「かめはめ波」「マカンコウサッポウ」が流行中!吹っ飛び画像まとめ

だが、どうも破壊力があまり感じられない。
何が足りないんだ・・・と考えた結果が GIFアニメ だ!と結論に達しました。
で、Canvas使ってGIFアニメ作るJS作りました。

HADOOOO
http://wakasa.org/project/hadoooo/
※iPhoneで動かそうと思ったけど、最終的に重過ぎて作り込み断念。PCのChromeかFirefoxで使ってください。

何ができるかというと
というかわいらしい写真をあっという間に

という、悪っぽいGIFアニメができます。

使い方は
  1. 画像をドラックして読み込ませる
  2. パワーをためたい箇所でマウスダウン
  3. 十分たまったらそのままマウスを発射したい方向に動かす
で、出来上がりです。


技術的に何をしてるかというと
  1. Canvasに画像を表示
  2. マウスダウンで最初のパワーをためる箇所を取得
  3. マウスが描画してる円から外に飛び出るかを監視
  4. 円から出たらマウスアップを監視してビームを作る
  5. jsgif を利用して画面プルプルさせたGIFアニメを出力する
というものです。
ぜひマカンコウサッポウとかをもっと効果的にしたいという時にお使いください。




2013年3月2日土曜日

40の夜 - FBアプリを消したあの方へ -


※ファンの方すいません・・・。

とあるネットの有名人の方がフェースブックアプリにいらついて削除していらっしゃったので、ついつい作りました。

聞いてください。


40の夜......


ヤフトピのニュースとFBばかり見てる俺
インターネットの上の空 届かない電波探してる
やり場のない読み込みのイライラ破りたい
アプリの表示 煙草をふかして待っても動かない

しゃがんでかたまり 画面タッチしながら
心のひとつも解り合えない スマホをにらむ
そして仲間達は今夜フェースブックで計画を立てる

とにかくもう さっさと表示を してほしい
友達からの通知が何なのかさえ 解からず震えている
40の夜

ブラウザ起動で走り出す 動くかも解からぬまま
PC用のURLのサイトへ
誰にも縛られたくないと 逃げ込んだHTML5に
自由になれた気がした40の夜

動かないアプリ 熱くなるスマホ 電池恋しくて
夢見てるあの操作感の横を サヨナラつぶやき削除長押し
アイコンの上 ぽつんと光る バツの印
85円で買えるアプリ 熱くなるスマホ握りしめ

動くかも解らないけど
HTML5と俺は将来さえ ずっと夢に見てる
大人達はアプリを入れろ入れろと言うが 俺はいやなのさ

読み込まないアプリが俺達の全てならば
なんてちっぽけで なんて意味のない なんて無力な
40の夜

ブラウザ起動で走り出す 動くかも解からぬまま
PC用のURLのサイトへ
覚えたての操作感味わい 星空を見つめながら
自由を求め続けた 40の夜

ブラウザ起動で走り出す 動くかも解からぬまま
PC用のURLのサイトへ
誰にも縛られたくないと 逃げ込んだHTML5に
自由になれた気がした 40の夜

2013年3月1日金曜日

iPhone用Google Mapsアプリで[サーバに接続できませんでした]と表示された時の対処法


先日からこっそり悩まされた iPhone用GoogleMapsアプリで起動して地図を動かす、検索すると
 [サーバに接続できませんでした]
 とアラートが常に出てアプリケーションとして使い物にまったくならないという状態になったので、それの回避方法を。
※画面キャプチャ忘れてた・・・

結論として症状が出るのは

  • アカウントのパスワードを変更した
  • 2段階認証プロセスを設定していない
場合に起こるようです。
どうやら、このGoogleMapsアプリは「アプリ上ログイン状態になってるけど認証が通らない場合は通信をまったくさせない」という仕様になってるみたいです。
なぜ地図タイル取得時にもアカウントの認証が必要なのか少々気持ち悪いですが、まぁそこはおいておこう・・。
※アカウントに紐付けてみてる地図の位置でも傾向を取ってるのか・・?

で、対処方法は
  • いったんログアウトして再度ログインさせる
という方法で解決しました。
ログアウトさせる場所は少々わかりにくいですが
  1. 検索バーの横の人アイコンをタッチ
  2. 右上の設定アイコンをタッチ
  3. アカウント名が表示されてるものをタッチ
の操作でできます。

アラートのメッセージ内容をどうにかしてほしいな・・・。ネットワークのせいかと疑ってしまっていて解決策に気づくのに時間がかかってしまいました・・。
パスワードかえてからものすごい日付経って気づいたのでアカウントのせいだと気づくのに時間かかった・・。
p.s.
日ごろGoogleMapsアプリをほぼ使ってない生活なんだと気づいて人間らしいぞ!と変な誇らしさを感じている今日この頃です。

2012年11月30日金曜日

JavaScriptのファイル結合をSublimeTextから簡単に実行する方法

最近のJavaScriptのつくりとして、jQuery等のプラグインを使ったりしてると複数のJavaScriptを読み込まないといけなくなります。
これに対応するために import.js というスクリプトを作って<script>タグをdocument.writeしたりもしますが、数が多くなるとレスポンスが悪かったり、いろいろジレンマが発生してきます。

これらをSublimeTextでショートカット一発で解決する方法を考えてみました。
と、いっても、ものすごいレガシー感いっぱいの内容ですが・・
  1. JS圧縮ライブラリ (UglifyJS等) をインストールする
  2. それを使うためのバッチファイルやシェルスクリプトを書く
  3. SublimeTextでショートカットキー一発で呼び出す設定を書き、設定
1 はインストールなのでここでは特に説明しませんが、UglifyJSの場合、node.jsインストールしてnpmコマンドでインストールするのがが2ステップで入れれるので一番楽だと思います。例はUglifyJSになっています。

2 は単に3で書く部分を簡略化するためです。ファイルを追加したりする場合にSublimeTextで編集しやすかったり、テストも楽なので、この方法が便利です。
いざとなればこのファイルをたたけば結合してくれるのも便利。
例:
以下は該当のjs群がある同一ディレクトリに __build.bat というファイル名で作った場合のサンプル。
PC用import.jsとスマホ用import-sp.jsの2ファイルを作成しつつ、各ファイルはそれごとに指定の複数のJSファイルを1つのファイルに結合したい。

__build.bat
call uglifyjs -o import.js hoge1.js jquery.js jquery.hoge2.js jquery.hoge3.js hoge4.js
call uglifyjs -o import-sp.js jquery.js jquery.hoge2.js jquery.hoge3.js hoge5.js
3 はSublimeTextで [Tool] > [Build System] > [New Build System...] を選ぶと、Build(Ctr+B)で実行できる設定ファイルのテンプレが開きます。それに 2 で作ったファイル名を書くだけ。
保存先は上記で作った場合は保存時のデフォルトでOKです。
例:

CallBuildbat.sublime-build

{
"cmd":["__build.bat"]
}

 他のBuildSystemを使ってる場合は3は結構作りこむ必要がありますが、使ってない場合は上記だけでOKです。

で、この準備ができたら [Tool] > [Build System] >[CallBuildbat] (3 で保存した名前)を選びましょう。
そして、該当のJSファイルを開いて Ctr+B を押すと、さくっと複数ファイルが結合した import.js と import-sp.js が出来上がってるはずです。

なんて簡単!

ほかにも、いろいろ設定がかけますが、自分で使いやすいようにカスタマイズしてみてください。

2012年6月16日土曜日

IPv6とInternetExplorer

World IPv6 Launchを過ぎてもみなさんのがんばりで問題なく接続できている今日この頃、いかがお過ごしでしょうか?
ちょっと気になることがあって、ISPさんではなくブラウザ絡みの視点からちょっと調べてみました。

ブラウザでHappy Eyeballsが実装されている(ChromeとFireFoxは実装済み ※追記)とIPv6で接続を失敗して次はIPv4でというフォールバックをせず、IPv6+IPv4を一気に送って早く帰ってきた方を採用!となる事で回避(ただのトラフィック増やしてる方法とも言えなくはないが・・)したりと意外とブラウザレベルでもがんばってるようです。
※今まで知らなかった・・・(汗)

でも、よくよく見てるとやっぱりここでInternetExplorerさんの文字が・・

  • Microsoft Internet Explorer (IE7, IE8)ではフォールバックの回数の上限が5回となっているため、これを超える数の IPv6 アドレスが名前解決の際に得られた場合、IPv4へフォールバックせずに通信が終了してしまう。回数はレジストリで制御可能となっており、デフォルト値が 5 回となっている


な、なんですと・・・。
これの影響でHTMLは読み込むけど、画像読もうとした時には上限数超えてて読み込まないとかあるようです。
とりあえず、IPv4時代が青春だったIEさんには相当IPv6は重荷のようです。そりゃそうですが。

とかにもまとまってますね。

たぶん今の時点で特に話題にも出てこないので大丈夫だとは思いますが、XPでIE8等を利用してるクライアントから突然 「画像がちょっとしか出なくなった!」 とかあった時に、クライアントさんの社内ネットワークがIPv4からIPv6対応に変わってたりした場合には、この手のIPv6がらみも疑ってみるというのが必要かもしれません。
※上記は間違った話かも。僕そんな知識ないんす・・・。
とりあえずChromeで見てみてください。と。。。。。

ま、たぶんもう大丈夫でしょうけどね。