2014年12月31日水曜日

今年最もアクセスの多かった記事ベスト3

今年最もアクセスの多かった記事ベスト3です。

どの記事も、どんぐりの背比べで、残念ながら、アクセス数は低調に終わりました(笑)。ランキングする程でもないのですが、年末の締めとして集計です。

No.1 ubuntu 12.04 から 13.10 へのアップグレード

No.2 JavaScriptで、配列の重複要素を削除する

No.3 Chromeブラウザ上で、文字列置換ができる拡張機能


ちょっとでも、当サイトのブログに目を通していただいた読者の方々、ありがとうございました。

来年も、懲りずに頑張るつもりです。

どうぞ、良いお年を!

2014年12月30日火曜日

Fat-Free Frameworkで、sqlite3のデータベースに接続

Fat-Free Frameworkで、sqlite3のデータベースに接続です。良い感じだ(笑)!

index.php
$db = new \DB\SQL('sqlite:/path/to/cms.db');

$f3->route('GET /db',
  function($f3) use ($db) {
    $results = $db->exec('SELECT * FROM pages') ;
    $f3->set('results', $results);
    $f3->set('content','db.htm');
    echo Template::instance()->render('layout.htm');
  }
);

実際に設定してみたのが、こちら

参考サイト
Databases(Fat-Free Framework for PHP)

2014年12月29日月曜日

Ubuntu Server 12.04に、sqlite3をインストール

Ubuntu Server 12.04に、sqlite3をインストールしてみました。とりあえず、ターミナルが起動できるようになったので、OKでしょう。

# sqlite3のインストール
$ sudo apt-get install sqlite3 libsqlite3-dev

# sqlite3のターミナル起動
$ sqlite3
SQLite version 3.7.9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"

# ヘルプ表示
sqlite> .help

# 終了
sqlite> .quit

参考サイト
How to Install SQLite 3.8.2 on Ubuntu 14.04 and commands for creating database and tables(Iqbal Nouyedさん)

2014年12月28日日曜日

プログラミングスキルを競って賞金を稼げる「Topcoder」

プログラミングスキルを競って賞金を稼げる「Topcoder」 課題を見てみましたが、難しくて何だかよくわかりません(笑)。Google, NASA, スターバックス、ヴァージン・アメリカ航空と提携していると書かれています。実力を証明すれば、米国の大企業で働くことも夢ではないでしょう。





参考サイト
Topcoder(ウィキペディア)

2014年12月27日土曜日

Fat-Free Frameworkで、メール送信

Fat-Free Frameworkで、メール送信です。Gmailを利用した例です。

index.php
$f3->route('GET /mail',
  function($f3) {
    $smtp = new SMTP ( 'smtp.gmail.com', 465, 'SSL', 'sampleusser@gmail.com', 'samplepassword' );
    $smtp->set('From', 'samplefrom@gmail.com');
    $smtp->set('To', 'sampleto@gmail.com');
    $smtp->set('Subject', 'メールテスト');  
    $message = 'メールテストです。'; 
    $sent = $smtp->send($message, TRUE);
    $f3->set('sent',$sent);
    $f3->set('content','mail.htm');
    echo Template::instance()->render('layout.htm');
  }
);
/ui/mail.htm
<check if="{{ @sent }}">
    <true>
        <div>送信されました。</div>
    </true>
    <false>
        <div>送信できませんでした。</div>
    </false>
</check>

実際に設定してみたのが、こちら

参考サイト
SMTP : SMTP plug-in(Fat-Free Framework for PHP)
Send email using Fat Free Framework and SMTP(Stack Overflow)

2014年12月26日金曜日

Fat-Free Frameworkで、プラグインの「Web」で外部サイトへアクセス

Fat-Free Frameworkで、プラグインの「Web」で外部サイトへアクセスです。テンプレートを利用した場合、twigと同じように、「raw」でエスケープせずに表示されます。

index.php
$f3->route('GET /web',
  function($f3) {
    $web = new Web;
    $request = $web->request('http://fatfreeframework.com/home');
    $f3->set('request',$request);
    $f3->set('content','web.htm');
    echo Template::instance()->render('layout.htm');
  }
);
/ui/web.htm
{{ @request['body']|raw }}

実際に設定してみたのが、こちら

参考サイト
Plug-ins(Fat-Free Framework for PHP)

2014年12月25日木曜日

Fat-Free Frameworkで、画像プラグインの「Captcha」

Fat-Free Frameworkで、画像プラグインの「Captcha」です。あらかじめ画像処理用のImageクラスが用意されていて便利。リサイズやクロップ、回転など、基本的な画像処理なら、これで十分でしょう。

index.php(CAPTCHAの例)
$f3->route('GET /captcha',
  function($f3) {
    $img = new Image();
    $img->captcha('fonts/ipag.ttf',24,10,'SESSION.captcha_code');
    $img->render();
  }
);

実際に設定してみたのが、こちら

参考サイト
Plug-ins(Fat-Free Framework for PHP)
Image(Fat-Free Framework for PHP)

2014年12月24日水曜日

Fat-Free Frameworkで、データベース接続

Fat-Free Frameworkで、データベース接続です。「function($f3) use ($db)」と、use を利用するのがミソです。

index.php
$db=new DB\SQL(
  'mysql:host=localhost;port=3306;dbname=dbsample',
  'usersample',
  'passwordsample'
);

$f3->route('GET /db',
  function($f3) use ($db) {
    $results = $db->exec('SELECT name FROM users') ;
    $f3->set('results', $results);
    $f3->set('content','db.htm');
    echo Template::instance()->render('layout.htm');
  }
);

実際に設定してみたのが、こちら

参考サイト
Databases(Fat-Free Framework for PHP)
Fat free framework: DB query - non-object(Stack Overflow)

2014年12月23日火曜日

Fat-Free Frameworkのテンプレートで、配列の表示

Fat-Free Frameworkテンプレートで、配列の表示です。慣れれば、何とかなりそうです。

index.php
$f3->route('GET /',
  function($f3) {
    $f3->set('hash',array('x'=>1,'y'=>2,'z'=>3));
    $f3->set('items',array(7,8,9));
    $f3->set('content','index.htm');
    echo Template::instance()->render('layout.htm');
  }
);
/ui/layout.htm
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>実験サイト「再訪」{{ @name }}</title>
</head>
<body>
{{ @this->render(Base::instance()->get('content')); }}
</body>
</html>
/ui/index.htm
<repeat group="{{ @hash }}" key="{{ @ikey }}" value="{{ @item }}" counter="{{ @ctr }}">
  <p class="{{ @ctr%2?'odd':'even' }}">{{ @ikey }}:{{ trim(@item) }}</p>
</repeat>

<repeat group="{{ @items }}" key="{{ @ikey }}" value="{{ @item }}" counter="{{ @ctr }}">
  <p class="{{ @ctr%2?'odd':'even' }}">{{ @ikey }}:{{ trim(@item) }}</p>
</repeat>

実際に設定してみたのが、こちら

参考サイト
Views and Templates(Fat-Free Framework for PHP)

2014年12月22日月曜日

Fat-Free Frameworkで、ビューとテンプレート

Fat-Free Frameworkで、ビューとテンプレートです。Viewを利用すると、PHPを利用したテンプレートエンジンになるらしい。「{{ @name }}」みたいなタグを利用したい場合は、Templateを利用する模様。

index.php
$f3->route('GET /',
  function($f3) {
    $f3->set('name',"世界");
    $f3->set('content','index.htm');
    echo View::instance()->render('layout.htm');
  }
);
/ui/layout.htm
<!DOCTYPE html>
<html>
<head>
  <title>タイトル <?php echo $name ?> </title>
</head>
<body>

<a href="/about/aaa">aaa</a><br />
<a href="/about/bbb">bbb</a><br />

<?php echo $this->render(Base::instance()->get('content')); ?>

</body>
</html>
/ui/index.htm
こんにちは、<?php echo $name ?>

実際に設定してみたのが、こちら

参考サイト
Views and Templates(Fat-Free Framework for PHP)

2014年12月21日日曜日

携帯電話やタブレットなどの電子機器を充電できるジャケット「Tommy Hilfiger ソーラージャケット」

携帯電話やタブレットなどの電子機器を充電できるジャケット「Tommy Hilfiger ソーラージャケット」 ソーラーパネルの付いたジャケットで、裏地からケーブルが伸び、給電できるとのこと。USBポートが2つ付いていて、同時に2つの端末を充電できます。充電しない間は、エネルギーを蓄えておくことも可能。デザインも、これはこれで、成立しているのではないでしょうか。

2014年12月20日土曜日

PostgreSQL 9.4リリース

PostgreSQL 9.4がリリースされています。NoSQLのデータベースとしても利用できるとありますね。あれこれ頭を痛めずに済みそうですので、開発者にとっては、朗報でしょう。
PostgreSQL 9.4では新しいJSONBデータタイプが導入された。これはPostgreSQLの用途を、いわゆるNoSQLと分類されるタイプのデータベースまで広げることを意味しており、PostgreSQL 9.4の目玉機能の1つとされている。


参考サイト
PostgreSQL 9.4が登場(マイナビニュース)
「PostgreSQL 9.4」リリース、バイナリJSONデータ型をサポート(SourceForge.JP Magazine)

2014年12月19日金曜日

UMLシーケンス図にテキストを追加できるJavaScriptライブラリ「js-sequence-diagrams」

UMLシーケンス図にテキストを追加できるJavaScriptライブラリ「js-sequence-diagrams」 jQueryを利用して、高度な解説図を非常に簡単に描画できます。こういうものがあるということを知っていないと、絶対に画像で表現してしまうでしょう。

<div class="diagram">A->B: Message</div>
<script>
$(".diagram").sequenceDiagram({theme: 'hand'});
</script>


参考サイト
UML入門シーケンス図(Sequence Diagram)(IT専科さん)

2014年12月18日木曜日

フローチャートが描けるJavaScriptライブラリ「jsPlumb」

フローチャートが描けるJavaScriptライブラリ「jsPlumb」 フローチャートや階層チャートなど、要素をつなぎあわせて、その関係を視覚的に表現することが可能です。描画後も、自由に要素を動かせるところが良いです。使い方はこちら。jQueryライクに利用することが可能。jQueryと合わせて利用することもできるようです。

2014年12月17日水曜日

オープンソースのメッセージキューイング「RabbitMQ」

オープンソースのメッセージキューイング「RabbitMQ」 非同期処理を行うもので、今すぐ使う当てはないのですが、とりあえずメモ。サンプルソースを眺めてみると、それほど難しくはないのかなという印象を持ちました。チュートリアルがこちら

メッセージングキューイングとは、簡単に言うとアプリケーション間のデータをメッセージとして、そのやり取りをキューと呼ばれる領域を利用して行うものです。 メッセージキューイングでは送信側はメッセージの送信後、処理結果を待たずに次の処理を行うため、非同期に処理を行うことが可能となります。 このように、メッセージキューイングを利用することでシステム間を疎結合にするだけでなく、部分的なスケールアウトを容易に行えるなどのメリットがあります。



参考サイト
RabbitMQの導入と、Spring AMQPを利用したメッセージ送受信(CodeZine)
How to use RabbitMQ with PHP(SitePoint)

2014年12月16日火曜日

Chomeブラウザの表示が空白のブランクになる不具合?

Chomeブラウザの表示が空白のブランクになる不具合? 今までも表示がブランクになってしまうケースがあったのですが、ブラウザを再起動すると直ったりしていたので、スルーしていました。今日は、ブロガーで同様のことが起こり、絶対におかしいと思い調べてみた結果、それらしき情報を見つけました。

ヘッダーの「Content-Length」が、実際のコンテンツよりも大きいと、ページが真っ白になると報告されています。報告にある通り、Chomeブラウザ以外では、このような事は起きません。Chomeは厳格で良いですが、これぐらいの「遊び」は残しておいてほしいものです。

Stephen MorleyさんのページにPHPの場合の修正例が記載されています。
Bloggerでは、どうしようもないけど(笑)。



参考サイト
Google Chrome’s blank/white page bug(Stephen Morleyさん)

2014年12月15日月曜日

ホームページ作成サービスの「BiNDクラウド」

ホームページ作成サービスの「BiNDクラウド」を試してみました。最初の1年は、無料で利用できます。とにかく、良く出来ています。操作性が特に秀逸。私のPCでは、ちょっと重いけど(笑)。デザインテンプレートが多数用意されているので、コンテンツ製作に専念できます。ネットショップやWordPressのサイトも作成可能。


2014年12月14日日曜日

Fedora 21がリリース

Fedora 21がリリースしています。なんか、新しくなっていますね。
  • Fedora Workstation
  • Fedora Server
  • Fedora Cloud
と3つのエディションが提供されています。中でも目を引くのが、Fedora Cloudでしょう。
Fedora Cloud は、パブリック、プライベートどちらのクラウド環境にも適した最小の Fedora イメージを提供します。必要最小限のものだけを含んでおり、クラウドアプリケーションを稼動させるには十分です。余分なものはありません。
と説明されています。

2014年12月13日土曜日

GIF、JPEG、PNG、どのフォーマットで画像用意すべきか

GIF、JPEG、PNG、どのフォーマットで画像用意すべきか。今更ながらですが、何もわかっていなかったので、自分に対する戒め用にメモです。特に、PNGについて。

GIF

GIFは最大8ビット(256色)までの色を扱うことのできる圧縮画像形式です。
256色以上必要ないロゴ、リンクボタン、アイコン、アニメ調のイラストなど、 特に単色ベタ面を多く含む平坦な画像に向いています。
逆に写真やスケッチなどの多くの色数を必要とする画像には不向きです。

JPEG

JPEGは圧縮画像形式ですが、24ビット(1670万色)まで扱うことができます。
このため、多くの色数を必要とする写真などの表現に向いています。
また、グラデーションのように色調が連続して変化する画像にはJPEGが適しています。
反対にアイコンやアニメ調の平坦なイラストなどをJPEGで保存するとにじんだように汚くなります。

PNG

PNGは「ピング」と読みます。
PNGは、特許使用の解釈に不安のあったGIFに替わるライセンス・フリーの画像形式として開発されました。
PNGには、

  • フルカラーにも8bitカラーにもすることができる
  • 圧縮率が高く同じ内容のGIF画像より10%~30%程度ファイルサイズが小さくなる
  • 圧縮によってデータが捨てられてしまうことがない可逆圧縮形式を採用している
  • 複数の透過色を指定できる
  • ライセンス問題の不安がない

等の長所があります。

参考サイト
WEB画像について-GIF・JPEG・PNGの特徴(HTMLクイックリファレンス)

2014年12月12日金曜日

PHP7.0が、2015年11月にリリース

PHP7.0が、2015年11月にリリースするそうです。PHP6への開発の際、すったもんだあったので、6は飛ばして、7にしてしまおうということなんだろうと思います。この変化の激しい時代に、いつまでもPHP5でとどまっているのもどうかと思いますので、捨て去るべきものは捨て去り、新しいものに移行していくというのは、良い流れだと思います。

2014年12月11日木曜日

コンテナー型仮想化の「Docker」

コンテナー型仮想化の「Docker」 最初は何だかわからずにスルーしていたのですが、知人の手がけたサービスで利用しているのを見せてもらって、ようやくその意味が理解出来ました。これ素晴らしいです。VMwareみたいなものですが、それ以上に強力です。詳しくはこちら

  • 開発環境が簡単に用意でき、かつ本番環境と共通化できる
  • アプリ実行環境を高速にデプロイできる
  • アプリケーションのポータビリティ(移植性)やインターオペラビリティ(相互運用性)を高める手段として活用できる





参考サイト
アプリ開発者もインフラ管理者も知っておきたいDockerの基礎知識(@IT)

2014年12月10日水曜日

Idiorm & Parisで、SQLクエリのログ

Idiorm & Parisで、SQLクエリのログの取得です。

1ページの処理ステップを全て取得したい場合(Query logging
$sqls = ORM::get_query_log() ;

↓↓↓

// 取得例
Array
(
  [0] => SELECT COUNT(*) AS `count` FROM `table1` 
  [1] => SELECT COUNT(*) AS `count` FROM `table2` 
  [2] => SELECT COUNT(*) AS `count` FROM `table3` 
  [3] => SELECT COUNT(*) AS `count` FROM `table4` 
  [4] => SELECT COUNT(*) AS `count` FROM `table5` 
)
システム全体で取得したい場合(Query logger
ORM::configure('logging', true);
ORM::configure('logger', function($log_string, $query_time) {
  // $log_string にSQLクエリが、$query_timeに処理時間が入ります。
  echo "<p>" . $log_string . ' in ' . $query_time . "</p>\n";
});

↓↓↓

// 取得例
SELECT COUNT(*) AS `count` FROM `table1` in 8.5115432739258E-5
SELECT COUNT(*) AS `count` FROM `table2` in 7.2956085205078E-5
SELECT COUNT(*) AS `count` FROM `table3` in 0.00012397766113281
SELECT COUNT(*) AS `count` FROM `table4` in 7.2956085205078E-5
SELECT COUNT(*) AS `count` FROM `table5` in 6.9141387939453E-5
どちらの場合も「ORM::configure('logging', true);」として、ログ利用を有効な設定にして使う必要があるようです。

参考サイト
Query logging(Configuration Idiorm documentation)
Query logger(Configuration Idiorm documentation)

2014年12月9日火曜日

jQuery UIのdialogで、右上の「×」ボタンを表示させない

jQuery UIのdialogで、右上の「×」ボタンを表示させない方法です。これで、なにかしら指定のイベント処理を選択しないと、画面が閉じられないようになります。

$("#sample").dialog({
  closeOnEscape: false,
  open: function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
});

参考サイト
How to remove close button on the jQuery UI dialog?(Stack Overflow)

2014年12月8日月曜日

HOMEディレクトリ内に複数のバージョンのPHPをインストールできる「Phpbrew」

HOMEディレクトリ内に複数のバージョンのPHPをインストールできる「Phpbrew」 試していないのですが、面白そうだなと思ったのでメモ。以下のような特徴が挙げられています。

・PDO、MySQL、SQLiteなどのモジュールとともにビルドできる。
・ApacheのPHPモジュールをコンパイルし、異なるバージョンで区切ることができる。
・ビルドしてホームディレクトリにPHP(複数可)をインストールするので、root権限は必要ない。
・バージョンを切り替えて、bashやzshのシェルに統合できる。
・現在の環境にPHPエクステンションとしてインストールできる(?)。
・システム全体に複数のPHPをインストールできる。



PHPのバージョン管理はphpbrewが使いやすいです(Rubellum fly lighさん)
複数のPHPバージョンを管理するphpbrew(旅するえんじにあ - Engineers to travel -さん)

2014年12月7日日曜日

Linux Mint 17.1がリリース

Linux Mint 17.1がリリースされました。長期サポート版のLTSです。GNOME 2をベースとした「MATE」デスクトップ環境と、GNOME 3をベースとした「Cinnamon」の2種類が利用できます。
Linux Mint 17.1 は長期サポートリリースで、2019 年までサポートされます。 このバージョンでは快適に使用していただけるために、多くの更新や改善を受けることができます。


参考サイト
「Linux Mint 17.1」が登場、MATEではCompizをサポート(SourceForge.JP Magazine)

2014年12月6日土曜日

ベストレンタルサーバーに選出された「A Small Orange」

ベストレンタルサーバーに選出された「A Small Orange」 こちらの「2013年、ベルトなレンタルサーバー(The Best Web Hosts of 2013)」という記事に紹介されていたのでメモです。昨年の統計ではあるのですが。それはさておき、記事中の「Digital Ocean」は、よく耳にします。最近、国内のレンタルサーバーも安くなってきていますので、無理して海外のサーバーを借りるメリットは無いようにも思いますが、とりあえず。

2014年12月5日金曜日

jQueryで、後から追加した要素に対してイベントハンドラを追加する「.on()」

jQueryで、後から追加した要素に対してイベントハンドラを追加する「.on()」 要素を動的に書き換えて、アクセス出来ない場合は、試してみるといいかもしれません。最高に便利です。救われました。

下記の例で言うと、「class="row"」は、「id="birthYear"」よりも上位のクラスです。 上位のクラスにイベントハンドラを追加することで、問題なく動くようになります。
$('.row').on('click', '#birthYear', function() {
  alert($('#birthYear').val());
});

selectYear = '<select id="birthYear" name="birthYear">\n
<option value="2005">2005</option>\n
<option value="2004">2004</option>\n
<option value="2003">2003</option>\n
<option value="2002">2002</option>\n
<option value="2001">2001</option>\n
</select>\n' ;

$('#birthYear').replaceWith(selectYear);

参考サイト
jQuery#onを便利に使う(Qiita)
jQuery .on('change', function() {} not triggering for dynamically created inputs(Stack Overflow)

2014年12月4日木曜日

jQueryのDatepickerで、changeイベントを拾うには、onSelect

jQueryのDatepickerで、changeイベントを拾うには、onSelectを利用すると、良いようです。ハマったのでメモ。

$(".date").datepicker({
  onSelect: function(dateText) {
    alert(dateText);
  }
});

参考サイト
JQuery Datepicker onchange event help!(Stack Overflow)

2014年12月3日水曜日

JavaScriptで、日付の妥当性チェック

JavaScriptで、日付の妥当性チェックです。うるう年もチェックしてくれているので、良いかなと。

OKの場合は、true、エラーは、false。
function isDate(inputDate)
{
  var data = inputDate;
  if(data == '') {
    return true;
  }
  var rxDatePattern = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/;
  var dtArray = data.match(rxDatePattern);
  if (dtArray == null) {
    return true;
  }
  dtYear = dtArray[1];
  dtMonth = dtArray[3];
  dtDay = dtArray[5];
  if (dtMonth < 1 || dtMonth > 12) {
    return false;
  } else if (dtDay < 1 || dtDay> 31) {
    return false;
  } else if ((dtMonth==4 || dtMonth==6 || dtMonth==9 || dtMonth==11) && dtDay ==31) {
    return false;
  } else if (dtMonth == 2) {
    var isleap = (dtYear % 4 == 0 && (dtYear % 100 != 0 || dtYear % 400 == 0));
    if (dtDay> 29 || (dtDay ==29 && !isleap)) {
      return false;
    }
  }
  return true;
}

参考サイト
Validate Date using jQuery(jQuery By Exampleさん)
Validate Date format using jQuery - jQuery By Example(jQuery By Exampleさん)

2014年12月2日火曜日

IIJのクラウドPaaS「MOGOK」が、PHPとnode.jsをサポート

IIJのクラウドPaaS「MOGOK」が、PHPとnode.jsをサポートというニュースを聞きつけ、試してみましたが、無料のアカウントでは、WEBインスタンスが1つしか立ち上げられないため、断念! というわけで、失意のブログとなりました。

しかーし、IIJさんには、感謝しております。こちらを利用させていただいています

ちなみに、PHPの利用方法は、こちらNode.jsは、こちら



参考サイト
IIJ、Webアプリ開発支援PaaSでPHPとnode.jsをサポート(クラウド Watch)

2014年12月1日月曜日

JavaScriptで、nullのチェック

JavaScriptで、nullのチェックです。ハマったので、メモ。今見返すと、なんでこんなところでハマったのだろう? 謎です。

<script type="text/javascript">
var data = null;

if(data){
  alert('not null') ;
}else{
  alert('null') ;
}

if(data !== null && data !== undefined){
  alert('not null') ;
}else{
  alert('null') ;
}
</script>

参考サイト
javascript-オブジェクトのNull判定(むちのち。さん)
JavaScript null check(Stack Overflow)

2014年11月30日日曜日

様々な世論調査結果を紹介している「Pew Research Center」

様々な世論調査結果を紹介している「Pew Research Center」 調査結果を参考にするだけでなく、投票時参加することも可能です。英語サイトですが、なかなか興味深い調査結果が公開されています。

日本の経済減速、6つの事実(6 facts about Japan’s downbeat economy)」なども紹介されていて、国際的でもあります。

2014年11月29日土曜日

ネーミングで困ったら「Naminum」

ネーミングで困ったら「Naminum」 様々なネーミングの候補を表示してくれます。残念ながら、日本語では使えません。言葉の末尾を変えたり、置き換えたり、先頭に加えたりと、色々なバリエーションを提示してくれます。横文字のカッコイイ、オリジナルな名前を考えたい場合は、是非、どうぞ。

2014年11月28日金曜日

JavaScriptで、数字の先頭に0を追加して桁揃え

JavaScriptで、数字の先頭に0を追加して桁揃えです。基本的なことですが、よくわかっていないので備忘録。

// 数値の桁揃え(numは、元の数字、digitは、出力したい桁数)
function digitFormat(num, digit) {
  var len = String(num).length;
  if(digit > len) {
    return (new Array((digit - len) + 1).join(0)) + num;
  } else {
    return num;
  }
}

参考サイト
数値のゼロ埋め(桁を揃える)(ShanaBrianさん)

2014年11月27日木曜日

jQueryで、特定要素タグ間のオブジェクトを取得する「.nextUntil()」と「.andSelf()」

jQueryで、特定要素タグ間のオブジェクトを取得する「.nextUntil()」と「.andSelf()」です。

例えば、下記のようなHTMLがあったとして、
<div id="item1">...</div>
<p>...</p>
<p>...</p>
<div id="item2" >...</div>
<p>...</p>
<p>...</p>
<div id="item3" >...</div>
<p>...</p>
<p>...</p>

item2とitem3の間のオブジェクトにアクセスできます。
$("#item2").nextUntil("#item3").andSelf().css("background", "red");

参考サイト
selectors - How to select all content between two tags in jQuery(Stack Overflow)
.nextUntil() (jQuery 1.9 日本語リファレンス)
.andSelf()(jQuery 日本語リファレンス)

2014年11月26日水曜日

Idiorm & Parisで、更新系の直接クエリを実行したい場合は「raw_execute」

Idiorm & Parisで、更新系の直接クエリを実行したい場合は「raw_execute」でした。ハマったので、メモ。プライマリーキーの設定されていないテーブルなどでは、raw_executeを利用すると、うまく処理できます。

更新系は「raw_execute」を使う
ORM::raw_execute(
  'UPDATE person SET name = :name WHERE number = :number',
  array('number' => $number, 'name' => $name)
);

ちなみに、参照系は「raw_query」を使う
$people = ORM::for_table('person')
  ->raw_query('SELECT p.* FROM person p JOIN role r ON p.role_id = r.id WHERE r.name = :role', array('role' => 'janitor'))
  ->find_many();

参考サイト
Configuration Idiorm documentation

2014年11月25日火曜日

クロスドメインのサイトに、AjaxでPOST

クロスドメインのサイトに、AjaxでPOSTです。コツは、受け取り側のサーバーレスポンスヘッダーに「Access-Control-Allow-Origin」を追加すれば良いらしいです。

サーバーサイドのPHPヘッダーを追加
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
クライアントサイドのJavaScript
jQuery.ajax({
  type: 'POST',
  url: 'http://yoursite/post',
  data: {
    "name" : "apple",
    "age" : 20
  },
  dataType: 'json',
  success: function(json){
    alert('送信されました。');
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
    alert('送信できませんでした。');
  }
});

参考サイト
続クロスドメインで使うXMLHttpRequestとCORSの話(日頃の行いさん)
How do I send a cross-domain POST request via JavaScript?(Stack Overflow)
How to Send Cross Domain AJAX Request with jQuery(HayaGeekさん)

2014年11月24日月曜日

Windows用シェルスクリプト言語「PowerShell」

Windows用シェルスクリプト言語「PowerShell」 こんなものがあるなんて、今まで気づきませんでした(笑)。Windowsのメニューを探ってみると、確かに、アクセサリメニューの中に存在していました。賢く使えば、作業効率が上がること、間違いなし。





参考サイト
Windows PowerShell(Wikipedia)

2014年11月23日日曜日

インタラクティブなグラフィックを実現するJavaScriptライブラリ「p5.js」

インタラクティブなグラフィックを実現するJavaScriptライブラリ「p5.js」 サンプルのページを覗いてみると、どんなことが実現できるのかが、よくわかります。テキスト、入力、ビデオ、ウェブカメラ、音声など、HTML5オブジェクトが制御可能と説明されています。複雑で、激しい動きのあるグラフィックが実現可能。サウンドも巧みに制御できるようです。

使い方例
<script src="//cdnjs.cloudflare.com/ajax/libs/p5.js/0.0.0/p5.js"></script>

2014年11月22日土曜日

ビデオチュートリアルを見ながらHTML5、CSS3、Javascriptが学べる「TheCodePlayer」

ビデオチュートリアルを見ながらHTML5、CSS3、Javascriptが学べる「TheCodePlayer」 言葉は要らないでしょう。チュートリアルのビデオを眺めているだけで、勉強になります。コーディングの結果がすぐに画面右側に反映されるので、非常にわかりやすいです。しかも、ビデオの再生速度が選択できるので、自分にあったスピードで学習していけます。

2014年11月21日金曜日

CORS(Cross-origin resource sharing)って何?

CORS(Cross-origin resource sharing)って何? ということで調べてみました。

CORSはJSONPよりも多くのHTTPメソッドを(GET、PUTは、POST、DELETE)をサポートしています。

JSONPはGETリクエストメソッドをサポートしています。

しかし、JSONPのDR ConnectのAPI実装は、追加のメソッドタイプがクエリパラメータを経由して(POST、PUT、DELETE)ができます。

JSONPはCORSより多くのブラウザでサポートされています。

CORSは、それがクロスオリジンデータアセスメカニズムを提供するという点でJSONPよりも安全です。

一方、JSONPは、クロスオリジンコードインジェクション経由で動作します。

CORSにはJSONPよりも優れたエラー処理が用意されています。

というわけで、POSTするなら、CORSを利用すべしということなんでしょう。



参考サイト
Cross-origin resource sharing(Wikipedia)
Why use CORS versus JSONP for cross-domain requests?(Digital River Connect)
So, JSONP or CORS?(Stack Overflow)

2014年11月20日木曜日

JavaScriptで、文字列を配列に分割する「split()」、配列要素を文字列に結合する「join()」

JavaScriptで、文字列を配列に分割する「split()」、配列の要素を文字列に結合する「join()」 はて、どうやって実現するのかなと首をひねることになったので、メモです。

split()の例
var str = "How are you doing today?";
var res = str.split(" ");
↓
How,are,you,doing,today?
join()の例
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join();
↓
Banana,Orange,Apple,Mango

参考サイト
JavaScript String split() Method(W3Schools)
JavaScript Array join() Method(W3Schools)

2014年11月19日水曜日

Yahoo! JAPANデベロッパーネットワークの「郵便番号検索API」

Yahoo! JAPANデベロッパーネットワークの「郵便番号検索API」を利用してみました。郵便番号データから、住所や経度、緯度などが取得できます。これ良いです。何が素晴らしいって、住所以外に、最寄り駅のデータが得られます。最寄り駅の出口まで取得できてしまいます。スゴイ。

サンプルリクエストURL
http://search.olp.yahooapis.jp/OpenLocalPlatform/V1/zipCodeSearch?query=105-0011&results=10&detail=full&output=xml&appid=yourappid

2014年11月18日火曜日

郵便番号から、都道府県、市区町村名を取得できる「郵便番号-住所検索API」

郵便番号から、都道府県、市区町村名を取得できる「郵便番号-住所検索API」 「個人・法人・商用・非商用問わず無料でご利用頂けます。」とありますので、商用利用もOK。結果は、JSON形式のデータで返されます。ありがたいサービスです。

2014年11月17日月曜日

JavaScriptで、月の日数を取得する

JavaScriptで、月の日数を取得する方法です。Stack Overflowにサンプルがあります。エレガントすぎて、何をやっているのか、よくわかりません(笑)。それでも、見事に動いてくれています。

function days_in_month(month, year){
  return month == 2 ? (year % 4 ? 28 : (year % 100 ? 29 : (year % 400 ? 28 : 29))) : ((month - 1) % 7 % 2 ? 30 : 31);
}

$(document).ready(function() {
 $('#mm').change(function(){
  var mm=$(this).val();
  var yy=$('#yy').val();
  $('#dd').val(days_in_month(mm,yy));
 });
});

参考サイト
Jquery get year and month in separate selectbox(Stack Overflow)

2014年11月16日日曜日

オンラインでプレゼンテーションを作成、編集できる「Google Slides」

オンラインでプレゼンテーションを作成、編集できる「Google Slides」 普通のエディタを編集する感覚で、スライド作成が可能です。作成後は、共有URLが作成されるので、ネットが繋がる環境なら、すぐに綺麗なスライドでプレゼンテーションを行うことが可能です。ネットに繋がらない場合は、パワーポイントやPDF形式でダウンロードも可能。編集は、即座に反映されるので、共同作業も楽。

2014年11月15日土曜日

プレゼンテーションコンテンツを共有できる「SlideShare」

プレゼンテーションコンテンツを共有できる「SlideShare」 今更ながらですが、利用してみました。確かに、簡単にプレゼンテーション用のスライドをを広く公開できるようになっています。しかし、使い方がよくわかっていないためか、一度公開すると、編集できなくなりました。そういうものなのでしょうか?  とにかく、アクセス解析などが完備されていて、よく出来たサービスだなと思います。

2014年11月14日金曜日

「HSTS」って何?

HSTS」って何? ということで、調べてみました。

HTTP Strict Transport Security
エイチティーティーピー・ストリクト・トランスポート・セキュリティ
略称 HSTS

HSTSではユーザーがWebブラウザにスキームがhttpであるURIを入力するなどしてHTTPで接続しようとした時に、予めWebサーバーがHSTSを有効にするよう指示してきたドメインの場合、Webブラウザが強制的にHTTPSでの接続に置き換えてアクセスすることで、この問題を解決する。
というわけで、HTTPSのセキュリティーをより高めたものと理解しました。



参考サイト
HTTP Strict Transport Security(Wikipedia)
HTTPSを使うなら“HSTS”と“HSTSプリロード”でセキュリティを高めよう など10+4記事(Web担当者Forum)
HTTP Strict Transport Security - Security(MDN)

2014年11月13日木曜日

jQueryで要素を丸ごと入れ替えるなら「replaceWith」

jQueryで要素を丸ごと入れ替えるなら「replaceWith」 最初、「.html()」で試していたのですが、どうも思ったとおりの置換えが出来ないなと思っていたら、「.replaceWith()」というのがありました。こちらが、今回探し求めていたものです!

<div id="mydiv">Hello World</div>

$('#mydiv').html('<input type="text" id="mydiv" name="mydiv" value="">');

$('#mydiv').replaceWith('<input type="text" id="mydiv" name="mydiv" value="">');

2014年11月12日水曜日

Chromeブラウザの「デベロッパーツール」

Chromeブラウザの「デベロッパーツール」を使ってみました。Firefoxで言うところの「Firebug」のようなデバッガーです。こんな便利なものがあるということを、今ごろ知ったという開発者としては典型的な落伍者です(笑)。友人に「どこを見てるんだよ」と指摘されて、気づきました。持つべきものは、厳しい友人です(笑)。





参考サイト
Google Chrome版Firebug:デベロッパーツール取扱説明書(技術評論社)

2014年11月11日火曜日

クロスドメインでAjaxを可能にする「jquery.xdomainajax.js」

クロスドメインでAjaxを可能にする「jquery.xdomainajax.js」を試してみました。見事に、クロスドメイン間で、Ajax通信が可能です。ただ、JSON形式を指定して通信したら、エラーが返ってきました。テキスト形式のデータ取得のみが可能なのかもしれません。

$.ajax({
  url: 'http://www.yahoo.co.jp/',
  type: 'GET',
  success: function(res) {
    alert(res.responseText);
  }
});


参考サイト
Javascriptスクレイピング!jquery.xdomainajax.js(ITかあさん)

2014年11月10日月曜日

jQueryのダラーマーク「$」は「jQuery」の文字列で代用できる

jQueryのダラーマーク「$」は「jQuery」の文字列で代用できるんですね。ダラーマークが利用できない環境では、これが役に立つというわけです。「$」は変数として利用される場合がありますからね。

/* Normal jQuery */
$("#some-element").sample();

/* Safe jQuery */
jQuery("#some-element").sample();

参考サイト
Using ‘$’ instead of ‘jQuery’ in WordPress(Digging Into WordPress)

2014年11月9日日曜日

Googleがナノ粒子で癌や心臓発作などを早期発見するプロジェクト

Googleがナノ粒子で癌や心臓発作などを早期発見するプロジェクトを進めているそうです。抗体を含むナノ粒子を血流中に送り込み、癌や心臓発作の兆候などを見つけ出す薬の開発に取り組んでいるとのこと。まさに革命的。Googleは、本当にいろいろなことに挑戦していますね。



参考サイト
グーグルが目指す「医療の革新」:ナノ粒子で癌や心臓発作などを早期発見するプロジェクト

2014年11月8日土曜日

リンク切れをチェックしてくれる「Online Broken Link Checker」

リンク切れをチェックしてくれる「Online Broken Link Checker」 これ便利です。チェックが終わるまでしばらく時間がかかりますが、徹底的にチェックしてくれます。「Processed 528 web pages, found 15 broken links」と、こんな感じです。結果は、リンク切れのURLを一覧表示してくれます。

2014年11月7日金曜日

Fat-Free Frameworkで、変数の割り当て

Fat-Free Frameworkで、変数の割り当てです。「$f3->set('var',value)」といった具合。これは、とりあえずOKでしょう。

$f3->set('num',123);
$f3->set('str','abc');
$f3->set('hash',array('x'=>1,'y'=>2,'z'=>3));
$f3->set('items',array(7,8,9));
setup.cfg
[globals]
num=123

str="abc"

hash[x]=1
hash[y]=2
hash[z]=3

hash.x=1
hash.y=2
hash.z=3

items=7,8,9
$f3->config('setup.cfg');」で、設定ファイルの読み込み。

実際に設定してみたのが、こちら

参考サイト
Framework Variables(Fat-Free Framework for PHP)

2014年11月6日木曜日

Fat-Free Frameworkで、404ページの表示

Fat-Free Frameworkで、404ページの表示です。「$f3->error(404);」で、簡単にNot Foundのページは表示できるのですが、デザインの変え方がわからない。早くも挫折。

$f3->error(404);
404の部分は、他のHTTPステータスコードに置き換えても大丈夫らしい。

/lib/base.php
//@{ HTTP status codes (RFC 2616)
const
  HTTP_100='Continue',
  HTTP_101='Switching Protocols',
  HTTP_200='OK',
  HTTP_201='Created',
  HTTP_202='Accepted',
  HTTP_203='Non-Authorative Information',
  HTTP_204='No Content',
  HTTP_205='Reset Content',
  HTTP_206='Partial Content',
  HTTP_300='Multiple Choices',
  HTTP_301='Moved Permanently',
  HTTP_302='Found',
  HTTP_303='See Other',
  HTTP_304='Not Modified',
  HTTP_305='Use Proxy',
  HTTP_307='Temporary Redirect',
  HTTP_400='Bad Request',
  HTTP_401='Unauthorized',
  HTTP_402='Payment Required',
  HTTP_403='Forbidden',
  HTTP_404='Not Found',
  HTTP_405='Method Not Allowed',
  HTTP_406='Not Acceptable',
  HTTP_407='Proxy Authentication Required',
  HTTP_408='Request Timeout',
  HTTP_409='Conflict',
  HTTP_410='Gone',
  HTTP_411='Length Required',
  HTTP_412='Precondition Failed',
  HTTP_413='Request Entity Too Large',
  HTTP_414='Request-URI Too Long',
  HTTP_415='Unsupported Media Type',
  HTTP_416='Requested Range Not Satisfiable',
  HTTP_417='Expectation Failed',
  HTTP_500='Internal Server Error',
  HTTP_501='Not Implemented',
  HTTP_502='Bad Gateway',
  HTTP_503='Service Unavailable',
  HTTP_504='Gateway Timeout',
  HTTP_505='HTTP Version Not Supported';
//@}

実際に設定してみたのが、こちら

参考サイト
Triggering a 404(Fat-Free Framework for PHP)

2014年11月5日水曜日

Fat-Free Frameworkで、ルーティングとリクエストURLの取得

Fat-Free Frameworkで、ルーティングとリクエストURLの取得です。「$f3->run();」コマンドの前に、ルーティングを設定するとあります。リクエストURLは「PARAMS」の配列で取得でき、「$f3->get()」で、フレームワークで利用される変数にアクセスできるらしいです。まだ良くわかりませんが、徐々に慣れていければと思います。

index.php
$f3->route('GET /brew/@count',
  function($f3) {
    echo "こんにちは、" . $f3->get('PARAMS.count');
  }
);

実際に設定してみたのが、こちら

参考サイト
Routing Engine(Fat-Free Framework for PHP)

2014年11月4日火曜日

PHPの軽量フレームワーク「Fat-Free Framework」をインストール

PHPの軽量フレームワーク「Fat-Free Framework」をインストールしてみました。先日、アカウントを作成した無料レンタルサーバーのホスティンガーさんで試せる、PHP5.3+環境対応のフレームワークです。今回試したのは、Fat-Free Framework 3.3.0。ファイルをダウンロードして、インクルードしてみただけですが、とりあえず。

index.php
$f3=require('lib/base.php');
$f3->route('GET /',
  function() {
    echo 'Hello, world!';
  }
);
$f3->run();

実際に設定してみたのが、こちら



参考サイト
bcosca/fatfree(GitHub)

2014年11月3日月曜日

Googleのフィットネスアプリ「Google Fit」

Googleのフィットネスアプリ「Google Fit」 Googleは、こんな分野にも進出しているんですね。グーグルフィットは、Androidデバイスに組み込まれたセンサーを使用して、利用者の運動量を追跡するアプリです。健康志向で、市場拡大が見込めること、間違いなし。ウェアラブルな端末の普及にも、大きく貢献することでしょう。さすがとしか言いようがありません。





参考サイト
Google、Android/Android Wear向けフィットネスアプリ「Google Fit」とSDKを公開(ITmedia Mobile)

2014年11月2日日曜日

HTML5でモーショングラフィックを作成できる「Google Web Designer」

HTML5でモーショングラフィックを作成できる「Google Web Designer」を試してみました。最初、しばらく手こずりましたが、何とか動きをつけることができました。これ、面白いです。Flashのように動きのあるコンテンツをHTML5で作成し、HTMLコードを作成してくれます。出来上がったコードをサーバーにアップすれば、動きのあるコンテンツをすぐに公開できます。素晴らしい!





参考サイト
チュートリアルで学ぶGoogle Web Designer操作まとめ(ASCII.jp)

2014年11月1日土曜日

Markdownで無料ウェブページ作成「Broadsheet」

Markdownで無料ウェブページ作成「Broadsheet」 ブラウザ一つで、洗練されたデザインのウェブページを作成、すぐに公開することが可能です。無料で利用可能。特徴的なのは、Markdownが利用できること。ログインもパスワードではなく、毎回、メール認証? 洗練されたデザインのテンプレートパターンが複数用意されているので、コンテンツ作成に集中できます。

2014年10月31日金曜日

Microsoftのパスワード強度チェッカー

Microsoftのパスワード強度チェッカーを「Safety & Security Centre」のページで見つけました。特徴としては、データを送信して、パスワードの強度をサーバー側で判定するのではなく、クライアント側のブラウザで判定が行われているとのこと。ローカルファイルのパスワードロックなど、インターネットで利用するものではない場合は、有効かもしれません。もちろん、インターネット用でも良いと思いますけど。

2014年10月30日木曜日

「PCRE」って何? Perl互換の正規表現ライブラリ

PCRE」って何? ということで、調べてみました。Perl互換の正規表現ライブラリだそうです。今まで、長い間、PHPにお世話になっていて、こんなものがあるとは、まったくもって気づきませんでした(笑)。確かに、phpindo()を表示してみると、きちんと表示されています。私のような、おめでたい無知の人間でも扱えるところが、PHPの懐が深いところ(笑)。

if ((float)PCRE_VERSION<7.9)
 trigger_error('PCRE version is out of date');

参考サイト
PCRE(Perl Compatible Regular Expressions)
Regular Expressions (Perl-Compatible)(PHP マニュアル)
trigger_error(PHP マニュアル)

2014年10月29日水曜日

GoogleがJavaScriptやCSSもクロール対象に

GoogleがJavaScriptやCSSもクロール対象にするとのこと。こちらが、INTERNET Watchの記事。JavaScriptは理解できるとして、CSSをクロールして何か意味があるのでしょうか? CSSにコンテンツを記載する場合があるのでしょうか? 画像検索用? 最近、デザインは高度すぎて、よくわかりません。プログラムは、言うに及ばず(笑)。



JavaScriptやCSSもクロール対象に、Googleがウェブマスター向けガイド更新(INTERNET Watch)

2014年10月28日火曜日

PHPのMVC軽量フレームワーク「Mako」をインストール

PHPのMVC軽量フレームワーク「Mako」をインストールしてみました。

「samplesite」というプロジェクトを作成する例
# composerでインストール
$ php composer.phar create-project mako/app:4.* samplesite

# storageフォルダを書き込み可能に
$ chmod -R 777 samplesite/app/storage
これで使えるようになります。

実は、昨日、アカウントを作成したホスティンガーで試してみたかったのですが、ホスティンガーのPHPは、PHP Version 5.3.29、一方、Mako 4.2は、PHP 5.4以上が必要ということで、挫折しました(笑)。最初に確認するべきでした。

2014年10月27日月曜日

2GBのPHP+MySQL無料レンタルサーバー「ホスティンガー」

2GBのPHP+MySQL無料レンタルサーバー「ホスティンガー」 広告表示なしとあります。なかなか魅力的ではないでしょうか。登録して、phpinfo()を表示してみただけですが、すぐにアクセスして利用できるようになりました。コントロールパネルを覗くと、メニューが盛沢山で、高機能です。何かをちょっと試してみるには、必要十分。ありがたく、利用さしていただきましょう。

2014年10月26日日曜日

Ubuntu 14.10がリリース

Ubuntu 14.10がリリースされています。Ubuntu 14.10のサポート期限は9ヶ月間とのこと。サーバー用途の場合は、長期サポート版のUbuntu 14.04 LTS(Long Term Support)のままの方が良いでしょう。

Ubuntu is 10 years old!」とあり、Ubuntuは、誕生から、ようやく10年なんですね。古くから確固たる地位を確立している印象ですが、意外と若い(笑)。



参考サイト
Ubuntu 14.10登場(マイナビニュース)

2014年10月25日土曜日

Postfixのバーチャルドメイン転送設定

Postfixのバーチャルドメイン転送設定です。何度設定しても、忘れて調べ直すことになるので、メモです。

転送先を指定
# vi /etc/postfix/virtual_alias_maps

support@sampledomain.com  user1@sampledomain.com,user2@sampledomain.com

aliasesの作成
# postalias /etc/aliases

aliasesの変更
# newaliases

Postfix再起動
# /etc/init.d/postfix restart

参考サイト
postfix の aliases(エイリアス) でメールを転送(プラスター業務日記さん)

2014年10月24日金曜日

リアルタイムのコラボレーションJavaScriptライブラリー「TogetherJS」

リアルタイムのコラボレーションJavaScriptライブラリー「TogetherJS」 ウェブサイト上にリアルタイムの音声チャットやテキストチャットを実装できて、コラボレーションが容易に実現できるというものらしいです。Mozillaによるオープンソースプロジェクト。これは非常に興味をそそられます。要チェックでしょう。







参考サイト
「TogetherJS」あらゆるサイトにリアルタイムコラボ機能を追加するライブラリ(TechWaveさん)
TogetherJS - 埋め込むだけでサイトにチャットなどの機能を追加する(A-Listersさん)
Real-Time Collaboration in Nuxeo with Mozilla’s TogetherJS(Nuxeo Blogsさん)

2014年10月23日木曜日

Twitterのモバイルアプリ開発フレームワーク「Fabric」

Twitterのモバイルアプリ開発フレームワーク「Fabric」 よくわからないのですが、たぶん、ツイッターアプリの開発のみではなく、モバイルアプリ全般の開発に利用できるものということなのでしょう? 障害報告の「Crashlytics Kit」、電話番号とSMS認証の「Digits」、広告管理の「MoPub Kit」といった具合に、キットごとに用意されているらしいです。「Twitter Kit」がツイッター用途ということになるのかなと思います。とにかく、要チェック。



参考サイト
Twitter、モバイルアプリ向け新SDK「Fabric」発表 パスワード不要の次世代認証「Digits」リリース(ITmedia ニュース)

2014年10月22日水曜日

インターネット経由でパソコンの遠隔操作ができる「TeamViewer」

インターネット経由でパソコンの遠隔操作ができる「TeamViewer」 今回は、遠隔操作ではなく、デスクトップを共有するオンラインミーティング用途で利用してみました。ソストをダウンロードして、気に入れば、インストールして利用することも可能ですが、インストールせずに、そのまま起動して利用することも可能です。Windows、Mac、Linux、Android、iOS、Windows Phone 8など、様々なプラットフォームで利用可能です。最初は抵抗がありましたが、使うと確かに便利です。

2014年10月21日火曜日

フリーランスのウェブデザイナーさんを集めた「Webdesigner Japan」

フリーランスのウェブデザイナーさんを集めた「Webdesigner Japan」 腕の良いデザイナーさんとコラボレーションしたいなぁと思いに耽っていたところ、このページに行き当たりました。日本全国で活躍するウェブデザイナーさんのウェブページが紹介されています。ページを見ているだけでも、参考になりそうなデザイン多数。デザイン魂を刺激されます。

2014年10月20日月曜日

PHPバージョンの脆弱性をレポート表示「versionscan」

PHPバージョンの脆弱性をレポート表示「versionscan」 SitePointの記事に紹介されていたので、使ってみました。

コマンドの説明
$ ./bin/versionscan
PHP Version Security Scanner version 0.1

Usage:
  [options] command [arguments]

Options:
  --help           -h Display this help message.
  --quiet          -q Do not output any message.
  --verbose        -v|vv|vvv Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
  --version        -V Display this application version.
  --ansi              Force ANSI output.
  --no-ansi           Disable ANSI output.
  --no-interaction -n Do not ask any interactive question.

Available commands:
  help   Displays help for a command
  list   Lists commands
  scan   Report back vulnerabilities for the current PHP version
/bin/versionscan scan」で、利用しているサーバーのPHPバージョンの脆弱性を表示
$ ./bin/versionscan scan
Executing against version: 5.5.9
+--------+---------------+------+------------------------------------------------------------------------------------------------------+
| Status | CVE ID        | Risk | Summary                                                                                              |
+--------+---------------+------+------------------------------------------------------------------------------------------------------+
| FAIL   | CVE-2014-3981 | 3.3  | acinclude.m4, as used in the configure script in PHP 5.5.13 and earlier, allows local users to ov... |
| FAIL   | CVE-2014-3597 | 6.8  | Multiple buffer overflows in the php_parserr function in ext/standard/dns.c in PHP before 5.4.32 ... |
| FAIL   | CVE-2014-3587 | 4.3  | Integer overflow in the cdf_read_property_info function in cdf.c in file through 5.19, as used in... |
| FAIL   | CVE-2014-4670 | 4.6  | Use-after-free vulnerability in ext/spl/spl_dllist.c in the SPL component in PHP through 5.5.14 a... |
| FAIL   | CVE-2014-4698 | 4.6  | Use-after-free vulnerability in ext/spl/spl_array.c in the SPL component in PHP through 5.5.14 al... |
| FAIL   | CVE-2014-5120 | 6.4  | gd_ctx.c in the GD component in PHP 5.4.x before 5.4.32 and 5.5.x before 5.5.16 does not ensure t... |
| FAIL   | CVE-2014-4721 | 2.6  | The phpinfo implementation in ext/standard/info.c in PHP before 5.4.30 and 5.5.x before 5.5.14 do... |
| FAIL   | CVE-2014-3515 | 7.5  | The SPL component in PHP before 5.4.30 and 5.5.x before 5.5.14 incorrectly anticipates that certa... |
| FAIL   | CVE-2014-3487 | 4.3  | The cdf_read_property_info function in file before 5.19, as used in the Fileinfo component in PHP... |
| FAIL   | CVE-2014-0237 | 5.0  | The cdf_unpack_summary_info function in cdf.c in the Fileinfo component in PHP before 5.4.29 and ... |
| FAIL   | CVE-2014-0207 | 4.3  | The cdf_read_short_sector function in cdf.c in file before 5.19, as used in the Fileinfo componen... |
| FAIL   | CVE-2014-0238 | 5.0  | The cdf_read_property_info function in cdf.c in the Fileinfo component in PHP before 5.4.29 and 5... |
| FAIL   | CVE-2014-3478 | 5.0  | Buffer overflow in the mconvert function in softmagic.c in file before 5.19, as used in the Filei... |
| FAIL   | CVE-2014-3480 | 4.3  | The cdf_count_chain function in cdf.c in file before 5.19, as used in the Fileinfo component in P... |
| FAIL   | CVE-2014-3479 | 4.3  | The cdf_check_stream_offset function in cdf.c in file before 5.19, as used in the Fileinfo compon... |
| FAIL   | CVE-2014-0185 | 7.2  | sapi/fpm/fpm/fpm_unix.c in the FastCGI Process Manager (FPM) in PHP before 5.4.28 and 5.5.x befor... |
+--------+---------------+------+------------------------------------------------------------------------------------------------------+

Scan complete
--------------------
Total checks: 303
Failures: 16
「Failures: 16」は、多いですね(笑)。とにかく、どんなセキュリティーリスクが潜んでいるのか確認できますので、サーバー管理者なら、知っておいて損はないでしょう。



参考サイト
Quick Tip: Make Sure Your PHP Version is Safe with Versionscan(SitePoint)

2014年10月19日日曜日

展覧会の混雑状況をツイッターのつぶやきから解析「あの展覧会混んでる?」

展覧会の混雑状況をビッグデータから解析「あの展覧会混んでる?」 このサイト最高に便利で使えます。ツイッターのつぶやきを解析して、展覧会や美術館、博物館の混雑状況を教えてくれます。せっかく休みの日に出かけたのに、長い行列を見てうんざりということが無くなるかもしれません。素晴らしいアイディアだと思います。

2014年10月18日土曜日

数字や日付表示を国際化するJavaScriptライブラリ「Format.JS」

数字や日付表示を国際化するJavaScriptライブラリ「Format.JS」 米国Yahooチームが開発するプロジェクトです。使い方はこちら。サーバーサイドでも、クライアントサイドでも利用可能です。HandlebarsReactDustなどのテンプレートやビューで、コンポーネントライブラリとして統合することも可能とのこと。



参考サイト
米Yahoo!が国際化のためのJavaScriptライブラリ「Format.JS」を公開(SourceForge.JP)