2012年2月29日水曜日

Google、Chromeのエクスプロイトコンテスト、賞金合計100万ドル

Google、Chromeのエクスプロイトコンテスト、賞金合計100万ドルだそうです。ブラウザの安全性を確保するというのは、インターネットの生命線とも言えますから、この金額も納得というところでしょうか。ちなみに賞金は、合計が100万ドルであって、個別にはそれぞれ、6万ドル、4万ドル、2万ドル部門と3つのカテゴリーに分かれています。腕に自信のある方は、是非どうぞ。コンテスト会場はカナダ、バンクーバーとなります。

2012年2月28日火曜日

PHPのfile_get_contentsで、ベーシック認証(.htaccess)のかかったコンテンツを取得

PHPのfile_get_contentsで、ベーシック認証(.htaccess)のかかったコンテンツを取得できました。ちょっと幸せな気分。ユーザーIDとパスワードがバレバレですが、今回は簡易的な認証ページですので、これでよしとしましょう。という訳で、本日の備忘録です。

$text = file_get_contents('http://(ユーザーID):(パスワード)@www.sampleurl.com/target.html');
echo $text;

参考サイト
ベーシック認証をURLに直接書く

2012年2月27日月曜日

5GBの広告表示なし無料ホスティング「グランパワー」

5GBの広告表示なし無料ホスティング「グランパワー」をニュースで見つけました。Ruby on Railsに対応しているところが、ユニークです。サーバー収容数「300」とありますね。300アカウント限定なのでしょうか。とにかく、申し込みしてみようと思います。無料のアカウントが取得できるかな?

2012年2月26日日曜日

ツイッターのつぶやきをリアルタイムに地図表示「Tweereal」

ツイッターのつぶやきをリアルタイムに地図上に表示する「Tweereal is real-time twitter map (beta)」。地図上のアニメーションは、地理タグを含むつぶやきを表しています。Twitter Streaming APIGoogle Map APIを利用して、マッシュアップしているとのこと。人々の活動が、夜空に輝く星の明滅を見ているようで、癒されます。

2012年2月25日土曜日

ブロガー(blogger)にJavaScriptを設置するには

ブロガー(blogger)にJavaScriptを設置する方法は、いろいろあると思いますが、外部ファイルを読み込めない場合、ソースを直接埋め込んでしまう方法がお勧めです。ソースを管理する上で、視認性が悪くなりますが、確実に動作させるには良い方法だと思います。

管理画面の「テンプレート」メニューから、「HTMLの編集」画面で、設定を変更します。
     #layout .region-inner {
       min-width: 0;
       width: auto;
     }
     ]]>
  </b:template-skin>
----- ここに埋め込む -----
</head>

<body expr:class='"loading" + data:blog.mobileClass'>
<div class='body-fauxcolumns'>

</head> タグ(閉じる)の直前に JavaScript を埋め込みます。下記は、外部ファイルの読み込み直接埋め込んだ場合の例です。直接埋め込みの例として、Keep-in-Viewを設置しています。
     #layout .region-inner {
       min-width: 0;
       width: auto;
     }
     ]]>
  </b:template-skin>
  <script language='javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'></script>
<script>
<!--
/*! ###########################################################################

Source: https://github.com/dutchcelt/Keep-in-View

Copyright (C) 2011 - 2012,  Lunatech Research B.V., C. Egor Kloos. All rights reserved.
GNU General Public License, version 3 (GPL-3.0)

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see http://www.opensource.org/licenses/gpl-3.0.html

########################################################################### */

// Uses AMD or browser globals to create a jQuery plugin.
    
(function (factory) {

    if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module.
        define(['jquery'], factory);
    } else {
        // Browser globals
        factory(jQuery);
    }
    
}(function ($) {

    $.fn.keepInView = function(settings) {
        
        return this.each(function() {
        
            var $elem = $(this);
             
            var defaults = {
            
                // Position will be fixed regardless of scroll position when set to true 
                fixed: false, 
                
                // Vertical offset that applies to both top and bottom;
                edgeOffset : 0, 
                
                // Override z-index if you can't or don't want to set this with CSS
                zindex : $elem.css('zIndex'),
                
                // Override all scripted positions with your own custom CSS classname
                // The set classname will be triggered when element scrolls out of view 
                // The Script will add a suffix of '-top' or '-bottom'
                customClass: false,
                
                //  Only trigger this script on scrolling out at the 'top', 'bottom' the default is 'both'.
                trigger: 'both',
                
                //  Set the height and width (user can override these if necessary)
                h : $elem.height(),
                w : $elem.width()
                
            };
            
            var options      =  $.extend(defaults, settings),
                offset       =  $elem.offset(),
                leftPosition =  $elem.css('left'),
                marginOffset =  (leftPosition==="auto") ? parseInt($elem.css('marginLeft'),10) : 0,
                prepCSS      =  function(){
                                    $elem.css({ 
                                        position: 'fixed',
                                        left:       leftPosition - marginOffset + 'px',
                                        width:      options.w,
                                        height:     options.h,
                                        zIndex:     options.zindex
                                    });
                                },
                fixCSS       =  function(t){ $elem.css({ top: t+'px' }); }
            
            var setElem = function(){
            
                //  Making sure that $elem doesn't fire if it is taller than the window (like a sidebar)
                //  To prevent elastic scrolling fireing set the body in css to 'overflow: hidden'.
                //  Then wrap your content in a div with 'overflow: auto'.
                if ( $elem.height() > $(window).height() ) { return false; }
                
                var scrolledOutAt = "";
                if ( $(window).height() < parseInt(offset.top + $elem.outerHeight() - Math.abs($(window).scrollTop())+options.edgeOffset,10)  && !options.fixed ) { 
                    scrolledOutAt = "bottom"; 
                };
                if ( ($(window).scrollTop()) > offset.top - options.edgeOffset && !options.fixed) { 
                    scrolledOutAt = "top"; 
                }; 
                if(!options.customClass){ 
                    prepCSS();
                    if (scrolledOutAt==="bottom" && (options.trigger === 'both' || options.trigger === 'bottom')){
                        fixCSS(($(window).height()-$elem.outerHeight()-options.edgeOffset));
                    } else if (scrolledOutAt==="top" && (options.trigger === 'both' || options.trigger === 'top')){ 
                        fixCSS(options.edgeOffset);
                    } else if (options.fixed){ 
                        $elem.css({top:options.edgeOffset,left:offset.left});
                    } else {
                        $elem.removeAttr('style');
                    }
                } else if(options.customClass){
                    if ( options.trigger === 'both') {
                        if (scrolledOutAt==="bottom" || scrolledOutAt==="top"){
                            $elem.addClass(options.customClass+"-"+scrolledOutAt);
                        } else if (!scrolledOutAt) {
                            $elem.removeClass(options.customClass+"-top").removeClass(options.customClass+"-bottom");
                        }
                    } else if (scrolledOutAt===options.trigger){
                        $elem.addClass(options.customClass+"-"+options.trigger);
                    } else if (!scrolledOutAt) {
                        $elem.removeClass(options.customClass+"-"+options.trigger);
                    }
                }
            }
            var staySticky = function(){
                $elem.removeAttr('style');
                options.w = $elem.width();
                options.h = $elem.height();
                offset = $elem.offset();
                setElem(); 
            }
            var killSticky = function(){
                $elem.removeAttr('style').off(".sticky");
                $(window).off('.sticky', staySticky).off('.sticky', setElem);
            }
            
            $elem.on('update.sticky', staySticky);
            $elem.on('unstick.sticky', killSticky);
            $(window).on('resize.sticky', $elem, staySticky).on('scroll.sticky', $elem, setElem).trigger('scroll');
        });
    };
    
}));
//-->
</script>
</head>

2012年2月24日金曜日

Chromeのエクステンション「Google+ 向け Google 翻訳」が便利

Chromeのエクステンション「Google+ 向け Google 翻訳」が便利!! インストール後、使い方がわからず、しばらく右往左往しましたが、目立たないながらも、非常に便利なアイテムであることがわかりました。英語など、海外発のGoogle+記事をその場で即座に翻訳してくれます。インストールすると、下の画像の赤で囲った位置、「共有」リンクの隣に「翻訳」の文字が追加されています。クリックすると、あら便利。見事にインラインで翻訳してくれます。動作が軽快で、使いやすい優れ物です。



2012年2月23日木曜日

Linux Mintのデスクトップ環境「Cinnamon」が進化している

Linux Mintのデスクトップ環境「Cinnamon」が進化しています。YouTubeの紹介映像を見ると、その洗練の度合いがよくわかります。Windowsデスクトップに似たGUIで、もともとわかりやすい操作性でしたが、それに加えて、動きがエレガントになっています。安っぽさが完全に消え失せたといっていいでしょう。更に人気に火が付きそうですね。次回のリリースが楽しみです。



2012年2月22日水曜日

犬のための専門テレビチャンネル「DOGTV」がスタート

犬のための専門テレビチャンネル「DOGTV」がスタートしています。「犬のための最初のテレビチャンネル」と謳われています。「癒し」や「刺激」などのチャンネルが用意され、特に「刺激」は、軽快なカメラワークやエキサイティングな音楽により、家にこもりきりのワンちゃんにとってストレス発散に役だってくれることでしょうとのこと。ペット向けのチャンネルが乱立してくる予感。



2012年2月21日火曜日

Google Mapのストリートビューにとらえられた面白い写真を紹介している「StreetViewFun」

Google マップのストリートビューにとらえられた面白い写真を紹介している「StreetViewFun」。通りを行き交う人々を写した何気ない一瞬が、失笑を誘います。実際にリンク「View Larger Map」がはってあり、紹介されている画像にジャンプすることが可能です。ちょっとした息抜きに、ちょうど良いサイトではないでしょうか。忙しい仕事の合間に、是非どうぞ。和みます。

2012年2月20日月曜日

Chromeで、XMLを見やすく表示してくれる「XML Tree」

Chromeで、XMLを見やすく表示してくれる「XML Tree」を使ってみました。改行やインデントのないxmlファイルでも見やすく色分けされた状態で表示してくれます。上部メニューの「Source」をクリックすると、元のソースも表示してくれます。ありがたい。

テストサンプル(sample.xml)



2012年2月19日日曜日

中国でサイトが閲覧可能かどうかを判定してくれる「blockedinchina.net」

中国でサイトが閲覧可能かどうかを判定してくれる「blockedinchina.net」なるサイトを見つけました。URLを入力して、「Test」ボタンをクリックすると、即座に閲覧可能か否かを判定してくれます。判定場所は、北京や四川、内モンゴルなど5箇所。ちなみに、「yahoo.co.jp」はOKで、「asahi.com」はダメでした。基準がよくわかりませんが、普通のサイトは、まず問題ないでしょう。それにしても、この世には、いろんなサイトがあるものです。


2012年2月18日土曜日

Scientific Linux 6.2 をネットワークインストール

Scientific Linux 6.2 をネットワークインストールしてみました。ブートイメージは、こちら(SL-62-i386-2012-02-06-boot.iso)。詰まるところは、FTPサーバーの設定部分だけでしょう。

ftp://ftp.riken.jp/13/scientific/6.2/i386/os

この部分の設定が終われば、あとは普通のインストールと同じ要領で進めます。







「URL」を選択。


ネットワークカードの認識にちょっと時間がかかります。

接続先は、こちら。
ftp://ftp.riken.jp/13/scientific/
6.2/i386/os





2012年2月17日金曜日

電子書籍を読むことができるChromeエクステンションの「Readium」を試す

電子書籍を読むことができるChromeエクステンションの「Readium」を試してみました。画面左の+ ADD TO CHROMEからインストールできます。EPUB形式のファイルを読み込んで、コンテンツを楽しむことができるようにるわけですが、書籍は、こういう「カタチ」で読むことが重要なんだなと思いますね。

実際の読み物は、以下のようなサイトから入手可能です。

epubs.jp
http://epubs.jp/

epubBooks
http://www.epubbooks.com/

2012年2月16日木曜日

特許庁でホームページ編集の非常勤職員を募集中

特許庁でホームページ編集の非常勤職員を募集中です。応募資格は、ホームページの企画、更新、レイアウトデザイン、ボタンやバナー等の作成実務経験を三年以上有する方、HTML記述文の作成・加工・編集が行える方とあります。日給は、9,700円なり。興味の有る方は是非どうぞ。それにしても時代なのでしょうか。外注に丸投げというわけではないようです。

2012年2月15日水曜日

Google Insights for Searchで「チョコ」を検索すると?

Google Insights for Searchで「チョコ」を検索すると、バレンタインデーの盛り上がりがよくわかります。Google Insights for Searchは検索キーワード、地域、期間などを指定して検索ボリュームの動向を比較できるサービスです。早速ためしてみると、2月14日を境に、毎年、見事なピークを描いています。同じように「うなぎ」で検索してみると、夏の土用の丑の日あたりを境に、こちらもわかりやすいピークを描いています。人間の行動って、わかりやすいですね。


2012年2月14日火曜日

空港内も、ショッピングモール内もGoogle Mapでナビ

空港内も、ショッピングモール内もGoogle Mapでナビゲーションしてもらえるようになるようです。特に、初めて訪れた空港などでは大活躍してくれることでしょう。急いでいる時や、遅刻しそうなときには、最短距離で移動したいものです。そんな時、こんな強い味方がいてくれたら、心強いです。

関係ありませんが、一番下のモール版のビデオ、泣かせます。





2012年2月13日月曜日

PHP5.4のベンチマークが劇的に改善されている。

PHP5.4のベンチマークが劇的に改善されているようです。Xoopsにいたっては、PHP5.3と比較して、約2割ほど、Wordpressも1割ほどスピードアップされると報告されています。メモリ使用量が大きく削減されているため? とにかく期待がもてますね。正式リリースが待たれます。

PHP + Zend OptimizerPlus performance [req/sec]
----------------------------------------------
                          5.3     5.4    speedup
drupal               1074.3 1146.7     7%
zend framework   102.9   124.6    21%
wordpress           119.8   130.8     9%
xoops                   78.4    93.0    19%


2012年2月12日日曜日

NASAの癌の匂いを嗅ぎ分ける携帯電話?

NASAの癌の匂いを嗅ぎ分ける携帯電話(This Is NASA’s Cancer-Sniffing Cellphone Sensor)? ガンの匂いを嗅ぎ分けられる訓練された優秀な「がん探知犬」がいることは聞いたことはありますが、携帯電話で同じようなことができたら、それはもう夢の様な話です。日々、無意識に通話している間に、吐き出された息を検査してくれているわけですから、健康の番人となってくれること間違いないでしょう。しかも、NASAが開発しているということろが、実用性を感じさせてくれます。元々は、ロケットの周りの燃料漏れを監視していた空気の品質監視技術を応用したものらしいです。

2012年2月11日土曜日

フィリップ·K·ディックの電子ブックとオーディオブック(無料)

フィリップ·K·ディック電子ブックとオーディオブック(無料)を紹介しているページを見つけました。こんなことがあっていいのでしょうか。特に、オーディオブックは、涙がでるほど素晴らしいです。しばらく、この開かれたインターネット世界の可能性に感激し、目頭が熱くなりました。全てのことに感謝しながら、彼の小説を楽しませてもらうことにしましょう。

2012年2月10日金曜日

アマゾンがシアトルに小売店舗を開店?

アマゾンがシアトルに小売店舗を開店するかもしれないそうです(Amazon Reportedly Plans To Open Retail Store In Seattle)。大きくなっても、なおアンテナショップ(?)は必要なのでしょうか。どんな店鋪が立ち上がるのか興味は尽きません。

2012年2月9日木曜日

声やジェスチャーで操作するテレビ、サムスンの最上位機種「Samsung ES8000」がスゴイ

声で操作するテレビ、サムスンの最上位機種「Samsung ES8000」がスゴイです。映像の美しさはもちろん、声やジェスチャーで操作できる点が、何と言っても新しいです。その他、顔認証ログインやネット接続、更にはアプリのダウンロードなど最新機能がこれでもかとテンコ盛りです。テレビというより、ハイエンドパソコンと捉えた方がいいかもしれません。「未来のテレビ」と呼ぶにふさわしい製品です。



2012年2月8日水曜日

新しいインターネットラジオ局のかたち「Earbits」

新しいインターネットラジオ局のかたち「Earbits」。今までのインターネットラジオサイトとは一線を画す洗練されたユーザーインターフェイスになっています。特に、同じ曲を聞いている人と気軽にチャットを楽しめるところが面白い。世界中の暇人が、待機しています。垣根が低い感じで、柄にも無く、私も参加してしまいました(笑)。


2012年2月7日火曜日

MozillaがFirefox向けにプッシュ通知機能を開発中

MozillaがFirefox向けにプッシュ通知機能を開発中(Mozilla developing Web push notification system for Firefox)とのこと。実現すれば、ブラウザを閉じた状態でも、通知を受け取れるようになり、ウェブサービスに革命が起きるでしょう。実際には、バックエンドで永続的なコネクションが走るような仕組みになるようです。是非、Firefoxだけでなく、WWW標準になってほしいものです。

2012年2月6日月曜日

大分県で、組込み技術者スキルアップ研修(無料)への参加者募集中

大分県で、組込み技術者スキルアップ研修(無料)への参加者募集中です。組込みには興味があるので、個人的にも参加したいところ。地図を見ると、研修場所は大分大学の近くです。近隣にお住まいの方、是非どうぞ。

リアルタイムOS(Linux編)
2012年3月8日(木)、9日(金)9時30分~17時30分

組込みシステムのネットワーク実習
2012年3月15日(木)、16日(金)9時30分~17時30分


2012年2月5日日曜日

Chromeの複数タブを一つの短縮URLにまとめてくれるエクステンション「tab.bz」

Chromeの複数タブを一つの短縮URLにまとめてくれるエクステンション「tab.bz」、これが最高に便利なのです。開いているページの全てを、ワンクリックで短縮URLにしてくれます。更に、出来上がったURLをクリップボードにコピーまでしてくれています。無駄な動きがなく、利便性を追求した、よく考えられた拡張機能です。複数のURLを共有したい場合など、威力を発揮してくれるでしょう。

2012年2月4日土曜日

進化した広告「笑うセールスマン in 3D」

進化した広告「笑うセールスマン in 3D」がオモシロイ。視点を変えると、それに追随するように笑うセールスマンの顔の向きが変わります。どういう原理になっているんでしょうか? 今後はこういった動的な広告が増えていくのでしょう。街中を歩いているだけで楽しめるなんて、素晴らしい。

 

2012年2月3日金曜日

HTML5で音を鳴らすオーディオのテスト

HTML5で音を鳴らすオーディオのテストです。うまくいくかな? 鳴るけど、止められません(笑)。結構大きな音が出ますので、試してみる方は、気をつけてください。Chromeで「Play」ボタンをクリック。



ソースはこちら。
$('#playaudio').click(function() {
    var audio = new Audio();
    audio.src = 'file.mp3';
    audio.controls = true;
    audio.autoplay = true;
    document.body.appendChild(audio);

    var context = new webkitAudioContext();
    var analyser = context.createAnalyser();

    var source = context.createMediaElementSource(audio);
    source.connect(analyser);
    analyser.connect(context.destination);
});
ネタ元はこちら

2012年2月2日木曜日

ユニコード(Unicode)6.1.0 リリース

ユニコード(Unicode)6.1.0 がリリースされています。マニアなニュースですが、こういう世界(ユニコードコンソーシアム)があるんだなと、視野が広がった気がしましたので備忘録です。コードチャートのページを覗くと、東アジア言語の漢字文化の大きな海原が広がっています。漢字文化の複雑さ、精緻さ、奥の深さ、そしてその素晴らしさを思うのでありました。

2012年2月1日水曜日

Kinectと医療の融合で、体内断層写真を姿見鏡感覚で確認できる

Kinectと医療の融合で、体内断層写真を姿見鏡感覚で確認できるようになる日も近いようです。「Magic Mirror for Seeing Your Insides Gets an Upgrade」の記事で紹介されているのは、CTスキャンで撮影された断層写真をKinectで人体に投影して体内の様子を確認できるシステムです。あまりにリアルすぎて、怖い感じもします。平面のレントゲン写真が拝めるのも、あと数年の間なのかもしれません。