12/29/2012

CSS3 によるローディングアニメーションを生成する jQuery プラグイン jquery.cssloading.js をリリースしました

CSS3 によるローディングアニメーションを生成する jQuery プラグインを作ってみました。iOS や Android といった、スマートフォン用のプラグインという位置づけです。cssloading() でアニメーション開始、stopcssloading() でアニメーション停止を行います。アニメーションの形やスピードなどは、プロパティを与えて設定します。
GitHub: jquery.cssloading.js

☆確認環境
iOS/Android

☆プロパティ一覧
  • type:アニメーションの形(dot/line/square/block/eddy)
  • width:表示されるアニメーションのサイズ(数値)
  • color:色(CSSで定義できる値)
  • size:表示されるひとつひとつのサイズ(数値)
  • items:表示されるアイテムの数(数値、「type」が「dot」の場合は円を構成する数、それ以外は1行の数)
  • speed:アニメーションのスピード(ミリ秒)
  • clockwise:右回りか左回りか(「true」が右回り、「false」が左回り)
  • direction:アニメーションを行う起点の方向(「left」「right」「top」「bottom」)
  • shape:表示されるひとつひとつの形(「circle」「square」)

☆使用できるプロパティの種類
  • dot:direction/shape以外
  • line:width/clockwise以外、「direction」は「left」または「right」
  • square:width/direction以外
  • block:width/clockwise以外
  • eddy:width/direction以外

☆ファイルの読み込み
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.js'></script>
<script type='text/javascript' src='jquery.cssloading.min.js'></script>


☆html
<button>Play/Stop</button>
<div id='loading'></div>


☆JavaScript(dot)
// 開始
var option = {
  type: 'dot',
  width: 100,
  color: 'rgba(0, 102, 255, .9)',
  size: 3,
  items: 30,
  speed: 1000,
  clockwise: false
};
$('#loading').cssloading(option);

// 終了
$('#loading').stopcssloading();


☆結果
flugel.bizでご確認ください。


☆JavaScript(line)
// 開始
var option = {
  type: 'line',
  color: 'rgba(255, 255, 255, .9)',
  size: 5,
  items: 10,
  speed: 1000,
  direction: 'left',
  shape: 'square'
};
$('#loading').cssloading(option);

// 終了
$('#loading').stopcssloading();


☆結果
flugel.bizでご確認ください。

その他のサンプルは jquery.cssloading.js | Archives | Flügel にて公開しています。

12/13/2012

徴兵制うんたらについて

Facebook で流れてきた徴兵制に関する世界地図を見ました。
ぼくとしては、徴兵制自体に賛成ではありません。

【ここから個人的見解】
しかし、その地図を最初に投稿した人の wall をざっと読みましたが、その人は所謂「反戦・反原発」という、「玄関に強盗お断りと貼っておけば強盗は来ないんだよ」っていうお花畑思想と理解できました。
その地図へコメントしている人々やシェアしている人々には「子どもや自分が徴兵されたくない」というあまりにも感情的な文言が並んでいました。
確かに徴兵されるということは、戦地に赴くことにつながるでしょう。しかしここで皆が反対を唱えていると、侵略された際に、我々は座して滅びることを待つしかありません。戦地へ赴いても日本を守ることができないかもしれません。しかし、守ることもできるかもしれません。その可能性を自ら壊すように拒絶反応をしていいのでしょうか。なお、徴兵制の復活を公言する人たちのように書かれていますが、彼らのうち一人でも、「戦争したい」と言っているでしょうか。「徴兵する=戦争をしかける」と曲解するのは勝手ですが、それは彼らの真意ではないと思います。

かつて、菅原道真は「China Free!」と声高に叫び、遣唐使を廃止させました。その結果、国風文化が生まれ、それまで漢文体だった文字から日本独自のひらがなやカタカナなどの文化が生まれ育ちました。執権北条時宗は、日本を守るために、断固とした外交を行いました。
現在、日本は侵食されています。今こそ、外交と自衛をしっかりと考え、実行しないといけないと思っています。アメリカさんに守ってもらう?そう思うのもいいでしょう。しかし果たして、アメリカは有事の際に「本当に」日本の代わりに闘ってくれるのでしょうか。それは疑いないものなんでしょうか。「日本を守るために俺たちはいるんだ!」というぐらいに、日本という国に愛着があるでしょうか。我々日本人は彼らよりその意識が少ないのでしょうか。ぼくは違うと思います。日本という国を愛し、守れるのは、最後はぼくら日本人だと思います。

徴兵制に賛成ではないぼくが思うのは、防衛費の増額と防衛省が自衛官に興味を持ってもらうようもっと努力することが先だということです(マスコミ含む)。自衛隊へ入隊している人々は、国を守るという意識が少なくとも我々よりも強いと思うのです。その自衛官への予算を増やすことは、国防にとってプラスになると考えています。

ぼくが言いたいのは、徴兵制ヒャッハ-ということではありません。重複になりますが、ぼくは、徴兵制自体に賛成ではありません。しかし、徴兵制という言葉だけが踊り、その言葉への拒絶反応を示すことはどうなんだろうと思っています。

12/07/2012

jquery.twitter.widget.js をリリースしました

Twitter のウィジェットを仕事で使うことになったんですが、Twitter API が 1.1 になったので、既存のウィジェットを使うと 来年 3 月 5 日以降サポートがされなくなる らしいのです。そこで、本家のウィジェット も新しくできたらしいので見てみたら、カスタマイズしづらいって思ったので、その案件専用のウィジェットを作りました。でもこれを汎用的にしておくと、他の案件でも使えるかもしれないし、これを使って幸せになる人もいるかもしれないので、jQuery プラグインとして作りました。

wings1685/jquery.twitter.widget.js


【使い方】
ダウンロード後(必要であれば解凍後)に生成された「jquery.twitter.widget.min.js」をhtmlに指定します。
<script type='text/javascript' src='http://code.jquery.com/jquery-latest.js'></script>
<script type='text/javascript' src='jquery.twitter.widget.min.js'></script>
また、生成された「twitter.php」をどこかのディレクトリにアップロードします。ここではサンプルとして、「/api/」にアップします。


【機能詳細】
「$(selector).twitterWidget()」でターゲットとするTwitterユーザのツイートを取得し、表示します。表示する内容やツイートを表示する速さなどはプロパティを設定することで変えられます。

プロパティ一覧
  • screen_name:対象とするTwitterアカウント名
  • count:最大表示件数(最大200件)
  • speed:ツイートを表示していくスピード(秒)
  • exclude_replies:リプライのツイートを表示するかどうか(「true」で排除、「false」で表示)
  • include_rts:リツイートを表示するかどうか(trueで表示、falseで排除)
  • dateformat:日付のフォーマット(「Y年M月D日 h時m分s秒」など)
  • path:「twitter.php」までのパス(「./api/」など)
  • src:表示する部分のソース
  • src.header:ヘッダ部分
  • src.body:本体部分
  • src.footer:フッタ部分
  • src.reply:リプライ部分
  • src.retweet:リツイート部分
  • src.favorite:お気に入り部分

src内で指定できる予約文字列
  • $icon$:アイコン(a要素で囲まれたimg要素として書き出します)
  • $screen_name$:アカウント名(a要素で囲まれて書き出します)
  • $name$:表示名(a要素で囲まれて書き出します)
  • $description$:プロファイル文章(Twitterの設定で「URL」を指定している場合はこれも書き出します)
  • $text$:ツイート文章
  • $created_at$:日付(a要素で囲まれて書き出します)
  • $logo$:ロゴ(ツイッターロゴをa要素で囲まれたimg要素として書き出します)
  • $reply$:リプライアクション(「src.reply」で指定していればこの内容で書き出します)
  • $retweet$:リツイートアクション(「src.retweet」で指定していればこの内容で書き出します)
  • $favorite$:お気に入りアクション(「src.favorite」で指定していればこの内容で書き出します)
  • $action$:上記の「$reply$」「$retweet$」「$favorite$」をまとめて書き出します
※「src.header」「src.body」「src.footer」で指定できる予約文字列です。
必ず「$」で囲んでください。



【使用例】
ヘッダは「tw_header」、本体は「tw_body」、フッタは「tw_footer」というクラスを持ったdiv要素の中に書き出されます。
任意で指定したソースで書き出されるので、CSSでお好みのスタイルを付けてください。

html:
<div id='twitter'></div>

JavaScript:
サンプル1
ヘッダとフッタなし、リプライ等のアクションはテキスト表記、スピードが5秒ごとのサンプルです。
var option = {
  screen_name: 'wings1685',
  speed: 5,
  dateformat: 'Y/M/D h:m:s',
  path: './api/',
  src: {
    body: "<div class='tw'><span class='tw_text'>$text$</span> <span class='tw_date'>$created_at$</span><div>$reply$$retweet$$favorite$</div></div>",
    reply: 'Re:',
    retweet: 'RT',
    favorite: '★'
  }
};
$('#twitter').twitterWidget(option);


サンプル2
ヘッダとフッタあり、リプライ等のアクションは画像指定、スピードが10秒ごと、リプライのツイートなし、リツイートなしのサンプルです。
var option = {
  screen_name: 'wings1685',
  speed: 10,
  exclude_replies: true,
  include_rts: false,
  dateformat: 'Y年M月D日 h時m分s秒',
  path: './api/',
  src: {
    header: "<div class='clearfix'><strong>$icon$</strong><span>$screen_name$</span><span>($name$)</span></div><p>$description$</p>",
    body: "<div class='tw'><span class='tw_text'>$text$</span> <span class='tw_date'>$created_at$</span><div>$action$</div></div>",
    footer: "<div class='tw'>$logo$<span>Twitter</span></div>",
    reply: "<img src='./reply.png' alt='' title='' />",
    retweet: "<img src='./retweet.png' alt='' title='' />",
    favorite: "<img src='./favorite.png' alt='' title='' />"
  }
};
$('#twitter').twitterWidget(option);


【サンプルソース】
ひとつのhtmlにまとめた例をサンプルソースをとして以下に挙げます。
<!DOCTYPE HTML>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>jquery.twitter.widget.js</title>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script src="./js/jquery.twitter.widget.min.js"></script>
  <script>
    $(function() {
      var option = {
        screen_name: 'wings1685',
        speed: 10,
        exclude_replies: true,
        include_rts: false,
        dateformat: 'Y年M月D日 h時m分s秒',
        path: './api/',
        src: {
          header: "<div class='clearfix'><strong>$icon$</strong><span>$screen_name$</span><span>($name$)</span></div><p>$description$</p>",
          body: "<div class='tw'><span class='tw_text'>$text$</span> <span class='tw_date'>$created_at$</span><div>$action$</div></div>",
          footer: "<div class='clearfix'>$logo$<span>Twitter</span></div>",
          reply: "<img src='./reply.png' alt='' title='' />",
          retweet: "<img src='./retweet.png' alt='' title='' />",
          favorite: "<img src='./favorite.png' alt='' title='' />"
        }
      };
      $('#twitter').twitterWidget(option);
    });
  </script>
</head>
<body">
  <div id="twitter"></div>
</body>
</html>


【確認環境】
jquery.twitter.widget.js は下記のブラウザでお使いいただけます。
  • Chrome
  • Safari
  • Firefox
  • Opera
  • Internet Explorer 7 以降

【実行結果】
flugel.biz でご確認ください。

12/03/2012

FaceTime で自分側の映像を隠す方法

みなさん FaceTime は使ってますか!?ぼくは使ってませんでした。

でも最近、普段は Skype で連絡を取ってた人と「どうせだから FaceTime でやろうぜ」って話になり、実際やってみてるんですが、別に顔見て話すわけじゃないし、お互い「恥ずかしいぜ///」って言ってたので、もしかしたら同じように思ってる人もいるんじゃないかって思ってエントリーを書きます。

偶然見つけた、っていうか「あれ?映像消えてますよ?」って言われて初めて消せることに気づきました。相手にも同じことやってもらったら、確かに映像は配信されないことを確認しました。

【FaceTime で自分側の映像を消す方法】
FaceTime のアプリを Dock にしまう

たったこれだけです。

10/30/2012

localStorage へのデータ保存・読み込みに json を使う

localStorage を使う場面が増えてきたように思うけど、localStorage には Object をそのまま保存できないので、色々なキーで保存・読み込みをしないといけなくなり、相当めんどくさいです。間違えやすくもなりますしね。でも、json 形式で保存すると、そのままの形式で保存できるし、間違いもグッと減るし、なにより楽でいいですね。

【保存する場合】
var opt = {
  browser: 'Chrome',
  OS: 'Mac OS 10.8.2'
};
localStorage.setItem('data', JSON.stringify(opt));

【読み込む場合】
var data = JSON.parse(localStorage.getItem('data'));
console.log(data);

【結果】

Search Capsule をリリースしました。

Google 検索や iTunes 検索をはじめとする様々なウェブサービスの検索結果ページへ、この「SearchCapsule」1つでジャンプできる Chrome の機能拡張をリリースしました。既存の60種に加え、簡単な操作でウェブサービスの追加もできます。
※以前「goSearchForYou」としてリリースしていた拡張のリニューアルです。

Chrome ウェブストア - SearchCapsule

インストール後、F12 もしくは Alt キーと一緒にクリックすると、検索ボックスが表示されます。


このウェブサービスを選ぶセレクトボックスは、ただサービスを表示するだけではありません。例えば、SearchCapsuleで「YouTube 動画検索」を行ったとします。すると、その直後からは「YouTube 動画検索」が一番上に表示されます。


これは検索を行う度、独自にポイントを計算しているので、よく使うサービスほど上位に表示されるようになります。この自動並び替えを使いたくない場合は、オプション画面の「使用頻度による自動並び替えを有効にする」のチェックを外します。外している間も計算自体は継続して行いますので、再びチェックしたときには、過去のポイントが全て反映されます。



SearchCapsuleを呼び出したり引っ込めたりするには、ショートカットキー(以下の通り)を使います。
-開く時(どちらもオプション画面で変更可)
--F1~F12 キー
--Shift / Alt / Command(Mac) / Ctrl(Win) キーを押しながらクリック
-閉じる時
--検索ボックスから離れたところをクリック(オプション画面で設定可)
--開く時のショートカットキー(オプション画面で設定可)

ショートカットキーを変更したい場合は、オプション画面で変更できます。



なお、テキストボックスに文字が入っている場合、セレクトボックスの項目を変更することで、検索を開始します。この自動発動をやめたい場合は、オプション画面の「ウェブサービスの切り替えでの自動検索を有効にする」のチェックを外します。


方向キーの「↑」と「Return キー」もしくは「Enter キー」を一緒に押して検索すると、新規タブで開きます。



各ウェブサービスの編集モードも備えています。「項目の非表示」「項目の並び替え」「名前の編集」「項目の削除」の操作をすることができます。


チェックを外すと、セレクトボックス内に表示されなくなります。もちろん、チェックを再び入れると、表示されるようになります。



項目名をドラッグ&ドロップすることにより、並び替えることができます。



鉛筆ボタンを押すことで、名前の変更ができます。



ゴミ箱ボタンを押すことで、項目を削除できます。削除した項目の復帰はできません。



オプション画面で「表示時にショートカットキーを押すことで非表示にする」のチェックを外している場合、開く時のキー(初期値は F12)を文字が選択された状態で押すと、入力ボックスに選択した文字が挿入されます。



初期値として定義されているウェブサービスは以下の通りです。
Google/Google[画像]/Google[地図]/YouTubeGoogle[ニュース]/Google[ブログ]/Google[書籍]/Google[ショッピング]/iTunesストア/Wikipedia/amazon/駅探乗り換え/えきから時刻表/Chromeウェブストア/livedoor[天気]/Yahoo![ニュース]/Yahoo![ショッピング]/Yahoo![オークション]/Yahoo![ファイナンス]/Yahoo![知恵袋]/OKWave/Goo[郵便番号]/Goo[国語辞書]/Goo[英和辞書]/Goo[和英辞書]/Goo[車]/Goo[バイク]/食べログ/ぐるなび/Twitter/Facebook/tumblr./flickr/Pinterest/github/ニコニコ動画/Ustream/価格.com/ヨドバシカメラ/ビックカメラ/ベルメゾン/ニッセン/セシール/楽天[市場]/楽天[オークション]/楽天[トラベル]/じゃらん/JTB/はてな[ブックマーク]/はてな[ダイアリー]/HOMES/チケットぴあ/映画.com/QLife/クックパッド/素材辞典/Cosmeet/リクナビNEXT/リクルート進学ネット/マイナビバイト

ウェブサービスを追加する方法はとても簡単です。
追加したいウェブサービスのウェブページを開き、対象とするテキストボックスでクリックした上で、F9 キー(オプション画面で変更可)を押します。すると、追加画面が表示されるので、項目名を入力し、「追加」ボタンを押します。追加できるウェブサービスは、<form>要素内にテキストボックスを持ち、実行先がJavaScriptでなく、文字コードがUTF-8・Shift_JIS・EUC-JPのどれかの場合です。


追加したウェブサービスは、一番下に追加されます。


追加済みのウェブサービスの場合は、項目名を変更することができます。


また、他のChromeと設定情報を共有したい場合は、共有元のChromeでオプション画面を開き、「エクスポート」を押してファイルを保存します。次に、共有先のChromeでオプション画面を開き、ファイルを選択して「インポート」を押すと、共有元の情報に上書きされます。Chrome間での同期はできません。


Chrome ウェブストア - SearchCapsule

10/18/2012

myFacebookStyle に「一番上に戻る」ボタンを追加しました

Facebook って、スクロールしていって過去の post を見ていると、一番上に戻るのにめんどくさい場合があるので、myFacebookStyle(Chrome/Safari 拡張)に「一番上に戻る」ボタンを追加しました。

ふと思ってサクっと実装したので、もしかしたら変な挙動をするかもしれませんが、ちょっとめんどくさいのから解放されます。



myFacebookStyle(Chrome 拡張)
myFacebookStyle(Safari 拡張)

10/12/2012

現在開いているタブのスクリーンショットを撮る [Chrome Extensions を作ってみる:第十一回]

Chrome 拡張には、現在開いているタブのスクリーンショットを撮れる api があるってつい昨日、chrome.tabs - Google Chrome を眺めてて知りました...。

使い方はとても簡単。
chrome.windows.getCurrent(function(w) {
  chrome.tabs.captureVisibleTab(w.id, {format: 'png'}, function(url) {
    console.log(url);
  });
});
「format」のところは jpeg か png を選べ、「url」には、dataUrl として値が返ってきます。

なんてステキなんでしょう!

captureVisibleTab | chrome.tabs - Google Chrome

myPageCollexion をリリースしました。

新規タブページでお気に入りのウェブサイトに素早くアクセスできる Chrome の機能拡張をリリースしました。
ブックマーク、履歴、アプリ、訪問中のウェブページ、エクスポートからコレクションを登録することができます。ウェブページにより、サムネイルを複数種類から選ぶこともできます。また、日本語で使うと、46種類のウェブサービスの検索結果ページへジャンプできます。

Chrome ウェブストア - myPageCollexion

インストール後、新規タブを開くと、以下のような画面が表示されます。


「ブックマークから追加」ボタンを押すと、ブックマークを読み込んだ画面が表示されるので、コレクションに追加したいウェブページを選んで「登録」ボタンを押してください。


なお、登録しようとしたウェブページが何らかの理由で削除されている場合、ブックマークからも削除できます。


「最近閉じたタブから追加」ボタンを押すと、本拡張をインストールした後に閉じたタブがある場合に一覧で表示されます。


「履歴から追加」ボタンを押すと、履歴を読み込んだ画面が表示されます。


「アプリから追加」ボタンを押すと、有効化がされており、訪問先のウェブページが登録されているアプリを読み込んだ画面が表示されます。


また、各画面で各コレクションにマウスを重ねると表示されるボタンを押すことで、新規タブでそのウェブページにジャンプできます。


なお、上記の各画面では、既にコレクションに登録されているウェブページは黒く表示され、マウスを重ねると表示されるゴミ箱ボタンを押すことによりコレクションから削除できます。



加えて、現在開いているウェブページを追加したい場合は、オムニバー横に表示されるアイコンを押すことで追加画面を表示できます。既にコレクションに追加されている場合は、削除をすることができます。



この場合は、現在開いているタブのスクリーンショットをサムネイルとして使用することもできます。


各コレクションにマウスを重ねると表示されるボタンを押すことにより、別タブで開くことができます。


4/6/8/10列に変更することができます。


「レイアウト」ボタンを押すと、レイアウト変更画面に切り替わります。この画面では、ドラッグ&ドロップで任意の位置に各コレクションを移動できます。「+」の部分にドラッグすると、その列の一番下に移動します。


「入れ替え」モードでは、ドラッグ元のコレクションとドラッグ先のコレクションを入れ替えます。「差し込み」モードでは、ドラッグ先に差し込みます。


コレクションにマウスを重ねると表示される鉛筆ボタンを押すことで、タイトルやサムネイルを変更することができます。変更するには、「編集」ボタンを押したあと、「保存」ボタンを押してください。



レイアウト変更画面では、各コレクションにチェックをつけることにより一括で削除できます。削除するには、一度ダイアログで「了解」ボタンを押したあと、「保存」ボタンを押すことにより実行されます。



日本語モードの場合は、46種類のウェブサービスの検索結果にジャンプできる検索ボックスが表示されます。「駅探乗り換え検索」では「乗車駅 下車駅」、「食べログ検索」では「エリア キーワード」のようにスペースを入れて指定します。なお、ジャンプ先のウェブサービスの文字コードがUTF-8以外の場合、本拡張内で入力語句の文字コード変換ができないため、一度当方のサーバにジャンプし、変換後にリダイレクトしています。入力された語句の保持などは一切行っておりません。


「エクスポート/インポート」ボタンを押すと、共有用の画面が表示されます。エクスポートは、ボタンを押すことによりファイルをダウンロードできます。インポートは、エクスポートで生成したファイルを選択し、ボタンを押すと、現在のコレクションに追加されます。


Chrome ウェブストア - myPageCollexion

9/20/2012

iOS6 で input type=file を使えるようになった

先日書いたエントリー で使えるだろうとは思ってたけど、実際に使えました。



input type=file を使って post した tweet がこちら。
Twitter / WINGS1685: ついに iOS で input type=file ...

9/18/2012

退職してました

実は、退職してました。

と言っても 4 年前のことなので、今更なにやってたとか今後どうしたいとかは書いても仕方ないので書きませんが、ぼくの退職に関わる出来事がもしかしたら役に立つのではないかと思ったので書きます。

この時は普通の退職ではなく、結果的に言えば倒産による離職でした。会社からもらった離職票には「自己都合」とバッチリ書かれてましたが、後日これが「会社都合」に逆転し、失業保険の受給開始を早めることができました。

まずは離職への経緯から。
会社は約 10 名ほどの零細企業でした。しかしとある金曜日、社長から「外でお昼を食べてきてくれないか」と言われました。構成としてはやや変なんですが、役職付きの社員が約 7 割で、平社員はデザイナーの女の子 2 人とぼくの 3 人だけでした。その役職付きが全員、会議用机に呼び出されていました。そんな中、ぼくらは外での食事に行きました。

予想はついてました。それまでの数か月間、毎月の定例会議で社長が「業績がやばい」っていつも言ってたので、「遂に来たか」って思いました。会社に戻ってしばらくすると、予想通り、ぼくら 3 人が順番に呼び出されました。そして、聞かされたのです。

「役職付き全員を解雇する。君たちはどうする?残るか、辞めるかだ」

えっと...えっと...それって回らないですよね?会社として。いくらなんでも平社員だけで回すなんて無理があり過ぎる。ぼくは即刻「辞めます」って言いたかったんですが、考えたっていうフリをしたかったので「週明けに回答します」と答えました。その夜、緊急にデザイナー 2 人に呼びかけ、緊急会議を兼ねて食事に行きました。若いピチピチの女の子 2 人と食事に行きました。どうやら 2 人も辞める腹みたいなので、週明けに一緒に回答しようということにしました。そして、週明け、辞める回答をしましたが、その後に退職の手続きとして、「こちらは選択肢を与えたんだから、これは自己都合だね」っていうことになりました。

さて、職安にとりあえず行かないといけないのですが、そこで応対をしてくれた人に、離職の経緯を話しました。どうしても「自己都合」が納得行かなかったので、職安としての意見を聞きたかったのです。すると、なにやら分厚い本を取り出し確認した上でぼくに告げました。

「これは...倒産状態になりますね。是非この抗議書に書いてください」

そこで抗議書に記述し、あとは職安に任せます。そこから 2 週間後、職安から電話がかかってきたのですが、「相手方が全く応答しないため、処理が遅れてます」とのことでした。どうやら会社側がゴネてるようです。さらに 2 週間後に電話がかかってきて、「いけました。会社都合に変わりました」と告げられました。やりましたね。

これで 3 か月の待機期間を経ずに受けられました。

同じような境遇になりそうな方がいたら、是非職安に相談してみてはいかがでしょうか。担当によるのかもしれませんが、力になってくれますよ。

9/14/2012

myFacebookStyle の爆速化

myFacebookStyle をリニューアルしましたで「爆速化」って書きましたが、どうやってスピードを高めるかに苦心しました。

元々は、それぞれの定義で適用させる class と、適用させるスタイルを content_script 内の JS にそれぞれ書いておいて、実際に適用させる場面では、それらを組み合わせて style を body 内に記述する、という形式を採っていました。しかし Facecbook 側の度重なる仕様変更によって、適用させる class が膨大になってきており、その影響でスピードが落ちていたというのが原因でした。

これを改善すべく、以下の手法に変更しました。
  1. 適用させる class を別途の css へ「/* BG background-color: $BG$;BG */」のように記述する
  2. その css は外部ファイルとして manifest.json に定義する
  3. 適用させる場面で、その css を JS で読み込む
  4. BG を適用させる場合は、「/* BG」と「BG */」を外し、「$BG$」にユーザが定義した色指定を突っ込む
  5. css を読み込むのは最初の一度だけで、変数に入れてデフォルトの内容を保持し、以降はそれを使い回す

これでかなり爆速化ができました。

拡張内に入れた画像などのファイルを読み込む [Chrome Extensions を作ってみる:第十回]

例えば Chrome 拡張を作っているとき、画像などのファイルを使いたいっていう場合があると思います。しかし他のサーバのを読み込むよりも、拡張内に格納したファイルを読み込んだ方が当然速いので、こっちを使いたいところですね。

まず、manifest.json 内で記述します。

★manifest.json
"web_accessible_resources": [
"img/sample.png"
]

次に、読み込むファイル側で定義します。ここでは css で定義してみます。

★background_page 内の Javascript
#sample {
background: url(chrome-extension://xxxxxx/img/sample.png);
}
※「xxxxxx」の部分には拡張の ID を入れます。
同じように JavaScript 内でも読み込ませることができます。

Formats: Manifest Files - Google Chrome

9/13/2012

myFacebookStyle をリニューアルしました

Safari/Chrome 機能拡張 myFacebookStyle をリニューアルしました。Facebookの見た目のスタイルを簡単な操作で変更できます。プリインストールテーマとして5種類ありますが、自分で作ったテーマを最大5件まで保存できます。

Chrome 拡張:myFacebookStyle
Safari 拡張:myFacebookStyle

【Version 2 での主な変更点】
  • 操作画面のデザイン変更
  • カラーピッカーの実装
  • 内部構造見直しによる高速化

【変更できる部分】
全体
  • 全体(背景色・枠線色・文字色)
  • リンク(文字色)
  • オンマウス時のボタン(背景色・文字色)
  • 補助文(文字色)
  • ボタン類(背景色・枠線色・文字色)
  • アイコン画像(角丸にする/しない)

ヘッダ
  • 全体(背景色・枠線色・文字色)
  • オンマウス時(背景色・文字色)

通知部分
  • 全体(背景色・枠線色・文字色)
  • オンマウス時(背景色)
  • 新着通知(背景色・文字色)
  • ユーザ名(文字色)

コメント
  • 全体(背景色・文字色)
  • リンク(文字色)
  • 補助文(文字色)
  • 新着表示(枠線色)
  • コメント書き込み部分(背景色・文字色)

下の通知部分
  • 全体(背景色・枠線色・文字色)
  • 表示(表示する/しない)
  • 場所(左下/右上)

チャット部分
  • 全体(背景色・枠線色・文字色)
  • ヘッダ(背景色・文字色)
  • オンマウス時(背景色・文字色)

リアルタイムフィード
  • 全体(背景色・枠線色・文字色)
  • オンマウス時(背景色・文字色)

設定
  • この拡張の言語(英語・日本語)
  • 初期化

【インストール方法】
(Safari 拡張の場合)
ダウンロードした後、「myFacebookStyle.safariextz」というファイルをダブルクリックするだけでインストールされます。


(Chrome 拡張の場合)
「Chrome に追加」をクリックするだけです。


【機能詳細】
インストール後、facebookにアクセスして右クリックを行うと、以下のように「myFacebookStyle」というメニューが表示されます。


このメニューをクリックすると、操作画面が表示されます。


各項目をクリックし、「設定」を押すことにより表示されるカラーピッカーやボタンで決定していくことで、自分好みのスタイルに調整できます。背景色や文字色、枠線色、アイコンの角丸化、通常は左下に表示される通知を右下にしたり、様々なことができます。



プリインストールのテーマは5種類用意されており、そのテーマをベースに変更していくことも可能ですし、ゼロから設定していくこともできます。もちろん、保存したテーマを削除することもできます。


複数のブラウザで同じテーマを使用したいときは、「出力」を押します。するとダウンロード画面が表示されるので名前を付けて保存し、読み込み先のブラウザで読み込むと同じテーマが適用されます。Chrome/Safari共に同じファイルが生成されるので、Chromeで生成したテーマをSafariで適用させることもできます。


※フリーツールですので、苦情・損害等につきましては、応じかねます。
※改変その他倫理上相応しくないご使用はお控えください。