ニコニコ動画 Zero の案内がうざかったので消した

先日,”ニコニコ動画Zero”なるものが発表され,
UIの変更・機能の追加といった様々な更新が行われました.

・・・が,利用できるのはプレミアム会員のみ.
一般会員である僕には一切関係のないことなのです.

それにもかかわらず,表示される画面上部のリードバー.
うっとおしいことこの上ない!!

ということでGreasemonkeyScriptで消すことにしました.

window.onload = function() {
    var obj = document.getElementById('zero_lead');
    obj.parentNode.removeChild(obj);
};

とりあえずはこれで消えます.
しかし,Window.onload の場合,ページ内のデータがすべてロードされた時点での実行となるので,
ページのロードが完了するまで表示は消えないことになります.

そこで調べてみると,jQueryの $(document).ready を使うことで,
DOMの準備ができた時点で,命令を実行してくれるそうです.

ということで少し改善を加えてみます.
jQueryの読み込みに関しては,OTCHY.NET様の記事コピペ参考にしました.

(function (d, func) {
    var h = d.getElementsByTagName('head')[0];
    var s1 = d.createElement("script");
    s1.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
    s1.addEventListener('load', function() {
        var s2 = d.createElement("script");
        s2.textContent = "jQuery.noConflict();(" + func.toString() + ")(jQuery);";
        h.appendChild(s2);
    }, false);
    h.appendChild(s1);
})(document, function($) {
    $(document).ready(function() {
        var obj = document.getElementById('zero_lead');
        obj.parentNode.removeChild(obj);
    });
});

これで上手く動くかとおもいきや,jQueryを逐一埋め込むため,
その分.目的の処理が実行されるのが遅くなり,あまりよい感じで動作してくれません.

Firefox限定であれば,unsafeWindow.jQuery でニコニコ動画内のjQueryを呼び出せますが,
何故かランキングページにはjQueryが使われておらず,これも完全ではありません.

Greasemonkeyからもう少し気軽に,速くjQueryを扱う方法があればいいのですが...

続く…?

MacのSkyDriveクライアントのDockアイコンを消す方法

MacのSkyDriveクライアントを使っていて,メニューにアイコンが表示される上に,
Dockにもアイコンが表示されるのが煩わしかったので,
起動中に表示されるDockのアイコンを消すことにした.

調べてみると,アプリケーション内のInfo.plistを書き換えると良いらしい.
ということで実践.

環境は Mac OS X Lion


手順

  1. SkyDriveのクライアントアプリケーションを選択
  2. パッケージの内容を表示
  3. Contents/Info.plist を開く
  4. “Application is agent (UIElement)”の項目の値を”YES”にする
  5. アプリケーションを再起動

これで起動中,Dock上に煩わしいアイコンが表示されなくなります.

Cloud戦士になりたい

友達が DropBox + GoogleDrive + SkyDrive でCloud戦士になるといっていたので,
それをリスペクトし,僕もCloud戦士を目指すことにした.

とりあえず自分が現在利用しているサービスは以下の通りである.

計6個.こうしてみると,なかなか多い.
整理の意味で,それぞれの紹介と特徴を述べてみる.


DropBox

ローカルに保存したファイルをすべての端末に同期してくれる.
容量は2GBと少ないが,無料でも最大16GBまで増やすことができる.
上に挙げた6個のサービスの中では使い勝手・通信速度が最も良いと思う.
僕はドキュメントをメインに活用.
ローカルに保存されたファイルが自動的にWebに上がっているので,
仕事の書類,学校の課題など忘れることがなく便利です.
登録はコチラから.
(ここから登録していただくと,僕とあなたに500MBの容量が追加されます!!)

対応クライアントは: Windows, Mac, Linux, iOS Android
Linuxでも使えるのが良い.

GoogleDrive

Googleが新たに開始したサービス.
容量は5GB.Googleドキュメントなどが自動的に追加されていく.
規約でアップロードしたファイルは
Googleの他のサービスに利用される場合があるとの記述あり.

また,現在は全員が使えるわけではなく,
Googleアカウントを持っている人が順番に利用できるようになっている.
特徴としては,有料プランが安く,月額300円で25GBが利用できる.

対応クライアントは: Windows, Mac, iOS(近日追加), Android

SkyDrive

Microsoftが提供しているサービス.
容量は新規登録で7GB.以前まで25GBの容量が使えたが,下がった.
(ただ,以前から登録していた人は申請を行うことで25GBを利用できる.)
クライアント(僕の場合Mac版)の使い勝手は概ねよく,
Web上のファイルがローカルにも同期されるので,
DropBoxのような使い方が可能になっている.
ただし,同期速度はDropBoxよりも遅い.
また,アップロードできるファイルに容量制限があり,
一つのファイル当たり300MBまでとなっている.
対応クライアントは: Windows, Mac, iOS, WindowsPhone

box

容量は5GB.以前キャンペーンで50GBがもらえたので,取り敢えず登録した.
WebDavでファイルが扱えたので,これは便利だぞ!!とか思っていたが,
速度が遅すぎて使い物にならなかった.残念.

対応クライアントは: iOS, Android, BlackBerry

SugarSync

容量は5GB.紹介をする/されることで容量が増やせる.
特徴としては,携帯で撮った写真が自動的にアップロードできる機能がある.
なので,僕は携帯にこれのクライアントを入れておいて,
写真のバックアップをしている.
( @PG_nokkii 君からSkyDriveでもPicasaでも出来るよ!!と言われた.今度試す.)
ただし,速度はなかなか遅い.
登録をここから行うと,僕と貴方に500MBの容量がプレゼントされます.

対応クライアントは: Windows, Mac, iOS, Android, BlackBerry, Symbian, WindowsMobile
無駄に充実している.

Pogoplug

容量は5GB.ただ,僕はハードウェア版のPogoplugを利用しているので,
5GB + 1TB + 1TB = 2.05TB の容量で運用している.圧倒的ではないか!!
自宅にファイルサーバを建てる知識や時間がなく,
まとまった容量が必要であればお勧めできる選択肢だと思う.
(ハードウェア版のPogoplugの購入はここらへんで)
また,ハードウェア版はOpenPogoなどを導入すると,色々いじれて面白い.
ただし,速度は遅い.外出先からの音楽再生くらいなら大丈夫だけど.

対応クライアントは: Windows, Mac, Linux, iOS, Android


こんな感じで,色々なWebサービスを使い分けているが・・・
もう少し上手いこと集約出来ればよいなぁと感じる.

とりあえず,最近色々とアップグレードされたSkyDriveを試していきたいと思う.

Sinatra Hackathon その3

もろもろの使い方を覚えたので,いよいよSinatraでの開発開始.

Sinatra

Sinatra(+MongoDB)で制作するプロジェクトの基本的なフォルダ構成は以下のような感じ.

[Project]
|—[app.rb]
|—[models]: データベースのドキュメント形式を指定するファイルを格納
|—[public]: どこからでも参照可能なフォルダ.画像などのリソースはここに.
|—[views] : ERBなどのテンプレートファイルを格納.
|—-[layout]: 共通テンプレートファイル

こんな感じのフォルダ・ファイル構成になっている.

—-追記予定—–

間が開いてしまってだるくなってる.

Sinatra Hackathon その2

環境構築が終わったら,Sinatraの使い方を勉強.
といっても今回書いたのはERBとMongoDBのことだけど

前に勉強した内容としては

get '/' do
  'Hello, Sinatra'
end

とやれば”Hello, Sinatra”と表示されるよ!やったねたえちゃん!程度.

今回はそれにERBとMongoDBを加え,もう少しSinatraを使えるように勉強しました.

ERB

これは任意のテキストファイル内にRubyスクリプトを埋め込めるものらしい.
例えばこういった形での記述が可能となる.

Hello, <%= World! %>

変数も使える.

Hello, <%= "@name" %>

※@nameだとTwitterのリンクになってしまうので”"つけてます.

変数を渡す場合には,インスタンス変数で渡す方法,
ローカル変数で渡す方法の二種類があったが,
今回はインスタンス変数で渡している.

Sinatra側で@nameを指定してあげると,それが渡されている.

get '/' do
  "@name" = "Mekapiku" #=> Hello, Mekapiku
end

MongoDB

今回はMongoMapperを使用.
まずはmodelsフォルダを作成して,その中に扱うドキュメントを作成する.

class Message
  include MongoMapper::Document

  key :name, String, :required => true
  key :message, String, :required => true

  timestamps!
end

こんな感じで作成.
timestamps!を書いておくと,
レコードの作成時間や更新時間が自動的に挿入,更新される.

レコードの追加方法は

MongoMapper.database = "user_list"

User.create(:name => "Mekapiku", :message = "(´・ω・) ス")

こんな感じ.非常に簡単.

レコードの取得方法は

users = User.all(:order => :created_at.desc)

これで”user_list”データベース内のレコードが,作成時間順に配列として返ってくる.

条件づけをしたかったらこんな感じ

users = User.all(:name => "Mekapiku")

findだとマッチした結果が1つだけ返ってくる.
allだとすべてが配列として返ってくる.

とりあえずここまで.間違ってるところ多そう.
次こそSinatraの使い方についてまとめてみる.

Sinatra Hackathon その1

@side_tana 先輩が部内でSinatra Hackathonを実施してくださったので参加しました.

以前にリア充を爆発させるWebサービスを構築しかけていたこともあり,一応知っているつもり・・・だったのですが,実際は全然わかってなかった感じでした.

 

取り敢えず環境構築から間違えていたので,復習を兼ねてメモ.
OSはMac OS X 10.7.3です.

1. bundlerのインストール

sudo gem install bundle

「今までgem install」で普通に開発してました.が,おもくそディスられたのでしっかり覚えました.
これでプロジェクト別にgemを管理できると.便利!

2. Gemfileを書く

次にプロジェクトで使うgemをGemfileというファイルに書き込む.

具体的にはこんな感じ.

source "http://rubygems.org"

gem "sinatra"
gem "shotgun"
gem "mongo_mapper"

3. gemの導入

続いて,Gemfileで記述したgemを導入する.
これは以下のコマンドで可能.

bundle install --path vendor/bundle

これで必要なgemのみが使えるようになると.

4. MongoDBの導入

なんかMongoDBもインストールされていなかったので導入.
以下のサイトからダウンロード出来る
MongoDB Downloads

でも,今回はmacportsでインストールした.

sudo port install mongodb

で,思った.
インストールなげぇ

boostとか使ってるので,当然っちゃ当然.もう二度とするまい.

5. MongoDB,shotgun起動

ここまで終わったら,MongoDBとshotgunを起動.

sudo mongod
bundle exec shotgun app.rb

shotgunはapp.rbを編集した際に,自動的にそれを再読み込みしてくれるスグレモノ.
使えないと毎回毎回読み込みのし直しをしないといけない.めんどくさい.

という感じで,環境構築から教えて頂きました.
ここからSinatra,MongoDBの使い方,及び何を作るかどうかを決めていきます...

ハイテク分野は速度が命

以前アイデアメモで書いた内容ですが,やはり同じようなアイデアがありました.

http://ma7.mashupaward.jp/works/372

 

こちらはリア充を発見した場合,爆発させるというサービスとなっています.

僕の考えていたリア充Finderと比較すると,かなり攻撃的ですね.

 

「リア充のデータを収集し,何らかのサービスを提供する」

 

今後はこういったサービスが増えていくと思われるので,

早く巨大なDBを作成し,それを提供するAPIを用意すれば大勝利でしょう.

 

 

で,リア充Finderですが,View部分は大体出来上がり,

次はサーバ側の実装となります.jQueryとGMAP3便利.

SinatraやMongoDBといった触ったことのないフレームワークを扱うことになるので,

クリスマスまでの完成はかなり厳しい感じになってきました.

(無理して扱おうとしている.早く作らないといかんのになにやってんのか…)

 

取り敢えず参考になりそうなソースを見つけたので,それを見て勉強したいと思います.

 

ではでは.

香川県のうどん

急に食べたくなってネットで価格を調べてみる.

 

・・・

 

 

・・・・・

 

 

500gで675円.

サークルでうどんパーティをするとすれば,一人150g食うとして 150g * 30人 = 4500g

よって価格は 4500 / 500 * 675 = 6075円

おっ,安い.

 

 

年越しうどんパーティありかもしれん.

 

アイデアメモ その1

年末に向けて作りたいと思うアプリケーションのアイデアメモ.

もっとこう工夫したら?的な意見があればぜひよろしくお願いします.

 

リア充Finder

クリスマスに向けて作りたい,俺ら向けのWebアプリケーション.

安全なクリスマスを過ごすために,予めリア充の位置情報を登録しておき,

自分の現在地と共にGoogleMaps上に表示する.

リア充が近づくと警告が出るシステム.

 

DBとJSを勉強したいので作る.

正課がやばい感じしてるけど作る.

ビンゴゲームを作ってみた

接待をする必要があったので,接待ビンゴゲームを作った.

 

機能は

  • ファイルで指定された番号を順番通りに出す
  • 指定された番号を出し切ったり,ファイルが無かったりしたら普通のビンゴゲームになる
  • クリックするとゆっくり止まる

こんな感じ.シンプル.

 

JavaとSwing使って作ったけど,Android開発の知識がほぼそのまま使えて便利(本当は逆なんだろうけど).

あとSwingはデフォルトでダブルバッファリングしてくれてて便利.

 

次はこれをAndroidに移植して年末シーズンに備えようと思う.