2014年11月18日火曜日

Laravel4 Migrations Tips

As we read programming books or homepages, we sometimes encounter the confusion because of the different explanations from authers to authers.

Laravel's Migrations is in that case. Let's me explain the best use of migrate:make command.

First, here are three lines for migrate:make command. You will see which is the best way to write seeing the results.

Laravel4 Formal Documentation

1. $ php artisan migrate:make create_users

2. $ php artisan migrate:make create_users --table=users
2-2. $ php artisan migrate:make create_users --table="users" //Double quotations are not required. This line shoud be like upper one.

Sorry, I made a mistake. 3-2 is wrong. 3 is a true line I intended. Originally, I wrote this blog in august.
3. $ php artisan migrate:make create_users --create=users
3-2. $ php artisan migrate:make create_users --create --table=users

The results for each command are like below.

The result for the first command line.
------------------------------
<?php
use Illuminate\Database\Migrations\Migration;
class CreateUsers extends Migration {
/**
* Run the migrations.
*
* @return void
*/
 public function up()
 {
  //
 }
/**
* Reverse the migrations.
*
* @return void
*/
 public function down()
 {
  //
 }
}
-------------------------------


The result for the second command line.
-------------------------------
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsers extends Migration {
/**
* Run the migrations.
*
* @return void
*/
 public function up()
 {
  Schema::table('users', function(Blueprint $table) {
  });
 }
/**
* Run the migrations.
*
* @return void
*/
 public function down()
 {
  Schema::table('users', function(Blueprint $table) {
  });
 }
}
-----------------------------


The result for the last command line.
-----------------------------
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsers extends Migration {
/**
* Run the migrations.
*
* @return void
*/
 public function up()
 {
  Schema::create('users', function(Blueprint $table) {
   $table->increments('id');
   $table->timestamps();
  });
 }
/**
* Reverse the migrations.
*
* @return void
*/
 public function down()
 {
  Schema::drop('users');
 }
}
------------------------------


The last line is the best for us. The migrate:make command make more job for us with the last. It's result makes us saving the coding time with less errors.

2014年11月1日土曜日

画像の歪みを簡単に補正できるGIMPはフリーソフトです

パンフレットなどに使う写真は、建物や機器が菱形(昔、高校の先生がひしがたなどと読むな、りょうけいと読めと言っていた)や台形に写っていると見栄えがよくないという経験を多くの人がしていると思う。

火曜日の朝、お友達の会社から11月5日からの展示会用パンフレットを作ってくれと電話があった。素人写真なので歪みや傾きがひどい。何かいいソフトはないかとググッて、いくつか試した。その中で、GIMPが圧倒的にすばらしかった。

GIMPは昔使ったことがあったが、当時、PhotoShopLE3.5を使っていたので、GIMPを継続して利用することはなかった。

GIMPには画像の歪みを修正する機は以前からあったようだが、現在のGIMPの性能はまったく驚くべきもので、GUIで簡単にあっという間に歪みが修正できる。必要に応じて画像の四隅のどこかを引っ張るだけで四隅が90度の画像ができる。しかも、品質のいいきれいな画像だ。オープンソースソフトウェアの世界はまったくもって賞賛され尊敬されるに値するものだ。

最新のGIMPは起動すると、独立した3つのウィンドウが表示される。真ん中のウィンドウに画像を読み込む。左のウィンドウは各種のツール類がアイコンになって並んでいる。その中の補正用のアイコンをクリックして、中央に表示された画像の四隅を適当に引っ張る。これだけのことです。画像の歪みの補正を考えている人は、絶対にGIMPがお勧めです。

最後に一つ、インストールに関して。GIMPのインストールの前にGTK+をインストールすることと書いているページがあるけど、現在はGIMPをダウンロードしてそれをインストールすればGTK+も自動的にインストールされる。

2014年10月17日金曜日

FedoraCore6のbashをShellshockに対応させる

Shellshockと呼ばれるbashの脆弱性が発表された。今年は、HeartbleedとPoodleのOpenSSLの脆弱性などたて続けにサーバー関連の脆弱性が世界中を駆け巡った。

その他、NASやネット接続電力計、ネット家電などコンピュータ以外の脆弱性もたくさん発表された。2014年は、ネット接続機器の脆弱性元年と言われるに違いない。

さて、bashのShellshockであるが、新しいOS、たとえばCentOS6などは、yum update bashで一発で完了するので、管理者の手間はほとんどかからない。

ところが、FedoraCore6になると、yumでアップデートできるパッチが用意されていない。バージョンアップアップをあきらめている管理者も多いと思う。


そのFedoraCore6のbash3.1をbash3.1.23にアップデートできる方法があるので紹介します。

1.影響を受けるバージョン(3.1はパッチの18までとしているページもある)
  Redhatは、日本のJPCERTと対策済みのバージョンが違う 3.1はここには出ていないけど。

2.bash3.1のパッチの場所。最新パッチをここで確認(2014/10/17現在23が最新)

3.基本的に下記の方法で3.1にパッチをあてて、bash3.1.23にバージョンアップする
(できれば、まずはテストサーバー機で実施してから本番サーバーで行ってください。自己責任)

(1)bash-3.1.tar.gzとパッチファイルをダウンロードする
wget http://ftp.gnu.org/gnu/bash/bash-3.1.tar.gz
wget http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-00{1..9} http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-0{10..19} http://ftp.gnu.org/gnu/bash/bash-3.1-patches/bash31-0{20..23} (一行で続いています)

(2)解凍しパッチを適用する
tar -xvf bash-3.1.tar.gz
cd bash-3.1
find ../bash31-??? -exec /bin/sh -c 'patch -p0 <{}' \;

(3)Configし、 Make、Make Install
./configure --prefix /tmp/bash23 && make && make install

(4)インストールしたbashを起動してみる
/tmp/bash23/bin/bash と、コマンドラインから直接起動する
echo $SHELL を実行すると
/tmp/bash23/bin/bash と表示されるはず(以後、しばらくこのbashが使われる)

(5)bashのバージョンを確認する
echo $BASH $BASH_VERSION
このように表示される: /tmp/bash23/bin/bash 3.1.23(1)-release

(6)Shellshockのテストをしてみる
env X="() { :;} ; echo vulnerable" /bin/bash -c "echo this is a test"
たぶん下のように表示される(/bin/bashと古いままのbashなので)
vulnerable
this is a test

(7)bashを入れ替える
・ tcsh  #念のため、使うシェルを変えておく
・ cd /bin/
・ cp bash bash.old  #念のためバックアップしておく
・ cp /tmp/bash23/bin/bash ./bash
・ exit #これで、/tmp/bash23/bin/bashへ戻る
・ bash #これで、/bin/bashへ切り替わる (/bin/bashとすることになるかも)

覚:shellの切り替え方法
1.コマンドラインで、chsh -s /bin/tcsh等とすると、/etc/passwdの中身が書き換わる。
  書き換わるが、再ログインしないとshellは切り替わらない。
2.コマンドラインで、tcsh等とすると、その時点で使うshellが切り替わる。
  exitで元に戻る。
echo $SHELLを実行してみると、使っているshellがわかる。

注:下記の処理をすることもあるかも
/etc/shellsファイルに/tmp/bash_patched/bin/bashを追加する
echo $PATH パスを通す
PATH=$PATH:/tmp/bash23/bin
export PATH

(8)bashのバージョンを再度確認する
echo $BASH $BASH_VERSION
このように表示される: /bin/bash 3.1.23(1)-release

(9)再度Shellshockのテストをしてみる
env X="() { :;} ; echo vulnerable" /bin/bash -c "echo this is a test"
下のように表示されればOK
bash: warning: x: ignoring function definition attempt (この行はでない時も)
bash: error importing function definition for `x' (この行はでない時も)
this is a test


CentOS6にて、yumでPHPをupdateバージョンアップする方法

CentOS6にデフォルトで付属しているPHPはバージョンが古いのでバージョンアップしたい。が、しかし、yumでPHPをupdateしようとしてもうまくいかない時がある。その対処方法を記しておきます。

基本的には、remiレポジトリepelレポジトリを追加(場合によっては、rpmforgeレポジトリも追加。PHP5.5にはremi-php55レポジトリがあるようです。)して、yum --enablerepo=epel,remi update phpでバージョンアップできる。
しかし、MySQL関連のファイルなどとのバージョンの整合性で、バージョンアップできないとはねられる場合がある。

そのような時は、/etc/yum.repos.d/CentOS-Base.repoのpriority=1が原因の場合がよくある。各申す私もしばらく気づかず悩んだ。CentOS-Base.repoの中の[base][updates][extras]の3つに、priority=1が書かれていたものを、#priority=1とコメントアウトして、yum --enablerepo=epel,remi update phpを実行すると、魔法のごとくPHPがアップデートされた。


2014年10月16日木曜日

HDD完全消去のcipher.exeはWindows7でも使える

cipher.exeは、HDDの空き領域のデータを、復元ソフトで読めないように、完全消去してくれる。Windows2000の時は使っていたが、Windows7でも使えることを知った。しめしめ。
ファイルフォーマットはNTFSのみ。USBでもNTFSでフォーマットできれば、完全削除可能だと思う。

コマンドプロンプト上で、cipher /w:[drive]:\[folder]と打ち込んで行う。個人的には今まで、フォルダーを指定したことはない。(WでもwでもEでもeでもよい)
例としては、cipher /W:E:改行、のように使う。実行すると、下記のように進行していく。
(スタート ⇒ プログラムとファイルの検索、に記述しても実行できる場合あり)

C:\>cipher /W:E:
できるだけ多くのデータを削除するために、CIPHER /W の実行中
はほかのアプリケーションをすべて終了してください。
0x00 に書き込み中
...................... (中略) .............
0xFF に書き込み中
...................... (中略) .............
乱数 に書き込み中
...................... (中略) .............
C:\>

マクロの世界での磁気データパターンの完全消去のためには、このように異なったデータで3回は書き込む必要があるそうで、米国防総省(DOD)などで決められた消去手順になっている。

■完全消去のポイント:cipherは空領域に書き込むので、cipherの実行前に、HDDをNTFSでフォーマットして、HDD全体を空領域にしておく。それによってHDD全体を確実に消去できる。(これを行うには、完全消去したいHDDを外付けか何かにしておく必要がある。OSの入ったCドライブ全体を完全削除はできないから)


2014年10月15日水曜日

パソコン画面の動画キャプチャーソフト

パソコンの画面をいろいろ操作している状況を音声付の動画にしたくて、無料ソフトウェアを使った。いわゆる動画キャプチャーソフト。簡単に利用できるかと思いきや、以外に時間がかかった。

うまくいかなかったのは、説明音声の録音機能。特別難しい設定はなく、ごく常識的な設定で使った。

Bandicamはまったく録音されない。

AG-デスクトップレコーダーもまったく録音されない。

CamStudioは極短いものは録音されたが、役立つ長さの録画になると、最後に保存するときにエンコードができないようなメッセージを出してエラー終了する。

アマレココは、有料のシェアウェアを一緒に入れないと使えないように書いてあるので使わなかった。

4つ目に、BB FlashBack Expressを使った。やっと録音もできた。録画動画は普通に見られる品質だ。やれやれ、Blueberry Software Ltd.さん、タンダコンピュータさんありがとう。

BB FlashBack ExpressのVectorでのDownloadページ



2014年10月2日木曜日

PHPのmb_send_mailが使えなくなったが、QDmailのおかげで助かった

PHPで作った、結果をメール送信するようにしていたシステムで、社内の都合でmb_send_mail()が使えなくなった。困ってネットで探したらQDmailなる、すばらしいモジュールが作られていることがわかった。それを実際にPHPに書いて使ったので、見本として掲載しておきます。

$message =<<<EOM
管理者 または お客 様

問い合わせがありました。または
ありがとうございます。
EOM;


// QDmail使用 今年からメールサーバーがmb_send_mail()でアクセスできなくなったため
require_once('qdmail.php');
require_once('qdsmtp.php'); //こちらは必ずしもrequire_onceしなくてもよいが、この方が何も考え無くてもいいので、とりあえず両方ともrequire_onceしておいた。

$mail = & new Qdmail( 'UTF-8' , 'base64' );
$mail -> smtp(true);

$param = array(
    'host'=>'mail.xxxxx.gr.jp',
    'port'=>25,
    'from'=>'anata@xxxxx.gr.jp',
    'protocol'=>'SMTP',
    'user'=>'anatadesu',
    'pass' => 'pasuwaadodesu',
);

$mail -> smtpServer($param);

//$mail ->to($todata); // 顧客への場合
$mail ->to('kanrisya@xxxxx.gr.jp','赤谷 ゆい'); //管理者の場合
$mail ->subject('問い合わせがありました。');
$mail ->from('anata@xxxxx.gr.jp','株式会社です');
$mail ->text($message);
$return_flag = $mail ->send();


参考 http://qiita.com/tsunet111/items/0ba0e8fc61882c3905c0
他に、上記の各項目の正しい書式の解説ページもあるので探して読んでください。


2014年9月21日日曜日

Windows7, Windows server 2008 R2, Windows XPでネットワーク上のPCが見えない

考えられる原因の第一は、LAN Manager認証レベルがあっていないことが上げられる。

新しいWindowsは、クライアントとして使用する認証プロトコルに、NTLMv2をデフォルトとして使う。古いWindowsはNTLMかLM/NTLMを使うようになっている。ために、見えない。

よって、古いWindowsが混在する場合は、セキュリティレベルが低いプロトコルにあわせることになる。手っ取り早いのは、スタートメニューを開き、ファイル名を指定して実行にregeditを入れて、レジストリエディタを起動し、レジストリを書き換えてやる方法。書き換えた後PCを再起動する。

書き換えるレジストリの内容:
キー     HKLM\SYSTEM\CurrentControlSet\Control\Lsa
値の名称  LmCompatibilityLevel
値の型   DWORD
値の内容  2か1か0にする

上記値の内容についてのコメント:
レジストリに、LmCompatibilityLevelがない場合は、デフォルトの3になっている。NTLMv2プロトコル。
2、1、0とセキュリティが下がっていくので、値の内容を順番に試すか、最初から1で行っておく。

Windows7でスタートメニューにコントロールパネルなど右袖が出なくなった

対処法はいたって簡単だ。
スタートボタンをクリックして、スタートメニューの何もない部分を右クリックし、「プロパティ」を選択する。

「タスクバーとスタートメニューのプロパティ」が表示されるので、「スタートメニュー」タブをクリックし、「カスタマイズ」ボタンをクリックする。

開いたウィンドウの左下に、「既定の設定を使用(D)」があるので、それをクリック。これで、消えていた、コントロールパネルやコンピュータがスタートメニューの右袖に現れる。あとは、必要に応じてもう一度カスタマイズする。


ついでに、カスタマイズひとつ。
「ファイル名を指定して実行」をスタートメニューにに出す方法。
「タスクバーとスタートメニューのプロパティ」を表示し、「スタートメニュー」タブをクリックし、「カスタマイズ」ボタンをクリックするところまで上と同じ方法。
開いたウィンドウの上のほうに「[ファイル名を指定して実行]コマンド」があるのでチェックを入れる。これだけ。


2014年9月20日土曜日

Windows7 Home Premiumを家族の秘密ファイルサーバーにする方法

古いWindows7 Home Premiumが残ったので、パパ、ママ、ゆいの3人でバックアップサーバー兼秘密のファイル基地を作った。その方法を紹介する。ファイルサーバー名はserverとする。

手順:
(1)フォルダを3つ作る。papa、mama、yui。(名称はご自由に)
(2)ユーザーを3つ作る。papa、mama、yui。
(3)3つのフォルダにネットワーク共有設定を施す。
  (下記の記述中、羽田とかの名前が出てきますが、papaと読み替えてください)

  1.papaフォルダを右クリックして、プロパティを開いて、共有タブの「詳細な共有」を開く。(注意:フォルダを右クリックして、プロパティを開いて、共有タブの「共有」は使わないこと。)

  2.このフォルダを共有するにチェックを入れ、追加ボタンをクリックする。

  3.papaのアクセス許可が開く。papaを選択して、許可のフルコントロールをチェックする。papa以外にEveryone等があったら、選択して許可のチェックをすべてはずす。全て外し適用をクリックすると、グループ名またはユーザー名からEveryoneが消える。これで、ネットワークからserverへアクセスすると、papaフォルダはpapaしかアクセスできない。ハッカー野郎にも手出しできない。

  4.次は、serverに直接ログインしたときに、papa以外がpapaフォルダを見えないようにする。papaフォルダを右クリックして、プロパティを開いて、セキュリティタブをクリックする。グループ名またはユーザー名から、アクセスさせたくないユーザー(ここでは、mamaとyuiの2人。一人ずつ)を選んで、編集をクリックして、拒否ををチェックする。OKをクリックする。これで、serverに直接ログインしても、他人からは見えない。

(ただし、管理者になっている人は、serverに直接ログインすれば、何でもできるので、そのあたりは、紳士淑女協定で他の2人のフォルダを勝手に設定しなおして、中を見るようなことはしないようにする。誘惑に負けない人を管理者にすること。だよね。!?)


text入力欄でEnterキーを押してもフォームを送信しないJavascript

ホームページのフォームでtext入力欄を3つ作って、公開したとする。利用者が、最初のtext欄に入力して、Enterキー(リターンキー)を押したとすると、他の2ケ所を入れる前に、意図せずフォームが送信されてしまう。

text入力欄でEnterキーを押してもフォームを送信しない方法と、そのときに同時にエラーメッセージを表示する方法のjavascriptを書いておきますので利用してください。

下記のjavascriptを<head></head>の間にコピーする。function formcheck()がエラーメッセージの表示。function submitStop(e)がEnterキーを押したときの動作を制御して、フォームを送信させないようにする部分。
<table></table>は<body>のformに記述する。


<script type="text/javascript">
<!--
function formcheck(){
var flag = 0;
if(document.formwebtest.secid.value == ""){
flag = 1;
}else if(document.formwebtest.secmail.value == ""){
flag = 1;
}else if(document.formwebtest.secname.value == ""){
flag = 1;
}

if(flag){
window.alert("必須項目が未入力");
return false;
}else{
return true;
}
}


function submitStop(e){
if (!e) var e = window.event;
if(e.keyCode == 13)
return false;
}
// -->
</script>


<table>
<tr>
<td>テキスト1:</td>
<td><input name="secid" value="" type=text size=68 onKeyPress="return submitStop(event);"></td>
</tr>

<tr>
<td>テキスト2:</td>
<td><input name="secmail" value="" type=text size=68 onKeyPress="return submitStop(event);"></td>
</tr>

<tr>
<td>テキスト3:</td>
<td><input name="secname" value="" type=text size=68 onKeyPress="return submitStop(event);"></td>
</tr>
</table>

session_start()はコールする位置(記述する位置)が重要 PHPマニュアル

3月と9月、半年に一度使うプログラムを少し直した。3月に使った後に直しておいて9月に使った。AページからBページへ遷移して、Aページで入力した内容をプログラム処理して、Bページで表示するはずが、表示できなくなった。

調べてみると、スーパーグローバル$_SESSIONの内容が消滅してしまっている。3月に直したときは、直す前のセッションがまだ残っていて、エラーが現出しなかった。正確には、消滅というより、セッションが再開できず$_SESSIONの内容が使えなかった。

3月に直して半年経っているので、直した部分をすぐには思い出せなかった。最初からプログラムの流れを全部追ってみて原因がわかった。

session_start()の記述位置を変えてやらないといけなくなっていた。途中にページをはさんだので、直す前のままのsession_start()の位置では、セッションが再開されなくなっていた。途中に挟んだページにsession_start()を入れ直してやらなければいけなかった。

session_start()の記述位置(コールする位置)に関して、少々間違った記述をしているホームページがよくあるので、正しい認識をここに記しておく。

正しくない認識: session_start()は、<?phpの直後に書く。
<?php
session_start();
// session_start()は<?phpの直後に書く。他のどの記述よりも上に書く。
// ここからプログラムを書く
?>

正しい認識:: クッキーに基づくセッションを使用している場合、ブラウザに何か出力を行う前に session_start() をコールする必要がある。(通常は、クッキーに基づくセッションを使っている)
つまり、ブラウザに出力する処理でなければ、<?phpとsession_start()の間に、いろいろ記述してもよい。

PHPマニュアル session_start()



2014年9月14日日曜日

iPhoneで写真をスケッチ風に加工するアプリ、Photo Sketch

2,3年前までは写真をスケッチ風に加工する無料アプリは、魅力がなかった。随分変なスケッチ風にしかならなかった。なので、使うことはなかった。


ところが、写真のスケッチ風加工とは無関係のアプリを探していたときに、検索結果の中に「Photo Sketch」という写真のスケッチ風加工アプリが入っていた。説明を読んだら面白そうだったので、インストールしてみた。5月ごろ有料のソフトを入れたが、いまいちの出来だった。それに比べても出来はずっといい。ただ、制作者の名前が、CHEN ZHAOさんなのが少し気になる。今の時代あの国は怖い国だからね。

インターネット上で、photo sketch app iphoneの4単語を入れて検索しても、出てくるのは、無料では「Sketch guru」くらい。Photo Sketchは出てこない。 Sketch Guruは使っていないのでわからないが、Photo Sketchと同じようかと想像する。

iPhoneのApp StoreでPhoto Sketch freeを検索すると、Sketch Cartoon MeというAppも出てくる。感じとしては同じエンジンを使っていそうだが、使い勝手は、僕には、Photo Sketchがいい。見本の写真を出しておきます。2015年から発売になるトヨタの燃料電池車です。この時点で世界に3台しかない内の1台です。人物写真でも同じような感じで加工ができます。












2014年9月10日水曜日

Chromeを日本語に設定する。ホームページを変更する。

日本語にする。

Chromeはインストールすると初期設定は英語のようだ。日本語にする方法を記しておきます。

右上にある三本マークのGoogle Chrome Settingをクリックして、Settingsを選択する。設定用のページが開く。

通常は、一番下のshow advanced settingsをクリックして、より多くの設定項目を表示する必要がある。
開いたら、LanguagesセクションのLanguage and input settingをクリック。
続いて、Addをクリックして日本語を選んで、日本語を枠の中に登場させる。
その日本語を選択して、右枠の中のDisplay Google Crome in this languageをクリックする。
下の画像のようになったら、Doneクリックする。


すべてのタブ(画面)を閉じてChromeをいったん終了する。
再起動すると日本語のChromeになっている。


ホームページを変更する。

上記と同じ方法で設定画面を開くと、「デザイン」という項目がある。
その下あたりに、たとえば、「www.google.co.jp/ 変更」という行がある。変更をクリックして表示された入力枠に、http://www.xxx.co.jp/ と入れると、それがChromeを起動したときのホームページになる。

■□■ Googleは怖いので、ChromeはやめてFireFoxを使おうかと思う。ただ、FireFoxも今では、Chromeのエンジンを使っているらしいので、それはそれで残念なことだ。


2014年9月9日火曜日

Google Maps(地図)が間違っていた。貴重なサンプルです。

iPhoneの地図が間違っていて、車が飛行場へ入ってしまったり、駅が海の中にあったり、ジョブス亡き後のAppleが散々いやみを言われたのは2年ほど前。もう今では、大丈夫なのだろうか。

ジョブスなきAppleならあっても不思議ではないが、Google地図で間違いがあれば、それは大ニュースだ。私が遭遇したGoogle地図の間違いは、世紀の貴重なサンプルだろうと思う。最近では、知らない所へ行くときは、iPhoneのGoogleNAVIを使うのが我が家の当たり前になっている。(我が家のロートル車はNAVIが装備されていない)

そして、2014/9/7にGoogle地図の貴重なエラーに出会いました。トアルコトラジャが飲みたいのに、「さくら珈琲鏡島店」がない、行けない。まれな体験をさせていただきました。

午後3時ごろ、トアルコトラジャが飲める喫茶店「さくら珈琲鏡島店(かがしまてん)」へ行きたくて、キーコーヒーのトアルコトラジャが飲める喫茶店全国一覧表から、「岐阜市西荘3丁目1-12」を見つけて、iPhoneのGoogle地図で検索した。

この時点でGoogle地図が間違えているなどとは思うはずもなく、地図のピンの位置を目指してロートル君を運転していった。ところが、喫茶店らしき店などどこにも見当たらない。たまたま、有人ガソリンスタンドが開いていたので、聞いてみたら、店の人は知らなかったけど、ガソリンを入れていた親切なおばさんが教えてくれた。ぜんぜん違う場所にあることが判明。 (下は、Google地図が間違えた世紀の貴重なサンプル。2枚目がそれなりに修正された地図表示)


この後の話がまた、信じがたいものだった。 9/7日曜日の夜にトアルコトラジャのブログを書いているときに、Google地図のこの間違いのことも書いた。ブログを書いた1時間後、Google地図が修正されていた。1時間後に岐阜市西荘3丁目1-12を検索をすると、岐阜市西荘3丁目1の大雑把な区画を表示するようになっている(2枚目の図)。岐阜市西荘3丁目1-11だけは、ドラッグユタカ鏡島店の位置にピンマークが出る。それ以外の岐阜市西荘3丁目1番地内の細かい番地は、すべて区画で表される。

いったいどうやって直したのだ。人が直したのか、Googleのサーバーが自分で直したのか。サーバーが自分で直したとしたら、ちょっと怖いことであるぞ。そんな風に思って日曜日の夜は寒気がした。Googleは僕らのネット上のあらゆる活動を監視している!!!それはSFではなく、現実なのだ。


翌月曜日9/8朝7:23に事務所のパソコンで確認すると、1枚目の図と同じように間違って表示した。やれやれという思いと、なんでという思いが交錯した。
でも、月曜日の夜、家で確認すると、2枚目の図と同じ。続いて、火曜日の朝事務所で確認すると、2枚目の図と同じ。以後、ずっと2枚目の図のまま。

やはり、Googleは怖そうだ。われわれの行動をすべて監視している。特に、たぶん「Google」という単語は絶対に見逃さないに違いない。この僕のブログは、Googleサーバーによって要注意ブログに区分されていることだろう。

今後は、メールや地図をGoogle以外で使うようにしていかないといけないと、考えている。


追伸:2014/9/12金曜日22:30 家で
またまた、同じエラーを発生した。いったいどうなっているのだろう。心配したほどのことをGoogleがやっていないなら、逆に安心ではある。間違いの証拠の地図。


追伸:2014/9/16火曜日21:00 家で
今日は3丁目1を四角に囲う表示になっている。いいぞ、いい加減なGoogle。

追伸:2014/10/3金曜日12:20 事務所で
久しぶりに岐阜市西荘3丁目1-12をGoogleMapsで検索してみた。驚いた。検索してくれない。GoogleMapsのレコメンドとして西荘3丁目1が出てくる。それをクリックすると2枚目の図と同じ表示をする。
Googleもこんないい加減なところもあるのだ。少し安心。と言う風に安心させといて、実は裏では100%確実に個人のネット上の動静を把握しているに違いない。


2014年9月7日日曜日

京都オープンデータソン2014 Vol.2に参加しました

オープンデータのもうひとつの道

京都は昔から進歩的な都市でした。たぶん日本で一番進歩的な都市であり続けているのでしょうね。(下の写真は琵琶湖疏水の水が白川となって流れている様子。ここのちょっと上流で昔は泳いだそうです)



オープンデータといえば、この時点で、福井県鯖江市が保有するデータの一般公開が有名です。
鯖江市出身の青年が社長をしているIT企業と市が協力して、公共トイレの場所とか、消火器の設置場所とかの位置情報を公開し、それを利用したスマホアプリを開発しています。

一般的に、オープンデータとは、TEDでも言われている「国や自治体の所有する情報・データは国民と市民のものだから、その情報を官僚や役人が独占するのではなく、すべて公開すること」です。これをお上からもらうオープンデータとしましょうか。

でも、京都オープンデータソンの主旨は、一般に言われているこのオープンデータとは違います。お上から出てくるのを待つのではありません。世の中に存在している誰のものでもないデータを自分たちで集めて自分たちのために、かつ世の人々のために利用できるようにすることです。このような自分たちの手足で物事を実施する姿勢が京都人の進歩性の基礎にあります。

え? それって、具体的にどういうこと?

多くの人が知っているWikipediaがそのひとつ。実は、京都のいろいろな事物でさえ、今でもWikipediaに登録されていないものがたくさんあります。2014/8/30(土)のVol2では、琵琶湖疏水の関連で重要なシステム「蹴上インクライン」を記述しました。
地域の文化財や観光名所などの情報をWikipediaに掲載していくこの活動は、Wikipediaタウンと呼ばれています。2012年にイギリス・ウェールズ州の人口9,000人弱のモンマスという町が発祥といわれています。

オープンデータソン京都の重要なテーマの今ひとつがOSM(Open Street Map)の作成。インターネット上の地図で一番有名なのはGoogleMap。でも、GoogleMapは完全無料、完全自由使用ではない。完全無料、完全自由な地図を目指して、2004年イギリス人の当時大学生コースト氏がはじめた。
まだまだOSMの編集者も少なく、GoogleMapに及ばない点が多々あるが、GoogleMapよりも情報量が多い地域などもある。

当日のOSMマッピングパーティー初心者組は、南禅寺界隈を歩いて実地調査した。京都はあちこちいろいろ観光地みたいなものだから、地図作成のために歩くことも大変楽しい。

当日いろいろ教えていただいた、YAMASHITAさんはじめ京都オープンデータソンの皆さんありがとうございました。

2014年9月4日木曜日

Laravel4のディレクトリ設定

ホームページを作成するとき、普段、ディレクトリは直接Web用のルートディレクトリに置かないようにしている。
例えば、/var/www/htmlがApacheのルートだとすると、/var/www/web1に、様々なモジュールやファイルを置く。そのweb1ディレクトリを、conf.dディレクトリの中のweb1.confで、http://www.sample.com/web1などに成るようにAliasを設定して、Webアクセスするようにしている。

ところが、Laravel4のインストールディレクトリを、/var/www/laravel4にし、conf.dディレクトリの中で、http://www.sample.com/laravel4に成るようにAliasを設定しても、エラーが発生してWebアクセスができない。

何かを間違えているのかと、目を凝らして一字づつチェックしたが、記述に問題はない。半日悩んだが、解決策は簡単と言われれば簡単なことだ。

ln -s /var/www/laravel4/public/ /var/www/html/laravel4 とリンクを貼った。これで無事にWebアクセスができた。
あとは、なぜ、conf.dディレクトリの中での設定ではエラーを起こすかを突き止めておきたい。


2014年9月3日水曜日

中華タブレットでBiglobeの980円SIMを使った顛末

9980円と安めの中華タブレットで3G対応かつ衛星GPS対応の機種があったので購入してみた。機種名は、Colorfly E708 3G。(購入したショップは最初から日本語にして送ってくれたから楽だった。写真は中国語のままですけど)

実は、その前に、息子が使っていたAUのiPhone4SにBiglobeの980円SIMを購入して使うことにしていた。
AUのiPhone4Sで使うにはSIMロック解除アダプターを使う。私はGPPを使った。電源を切り、まずは、復元SIMを挿して電源を入れ、表示されるリストからAUを選択し、OKをクリックして、すばやく復元SIMを抜く。その後、BiglobeのSIMをGPPのアダプターに乗せ換えて差し込む。これだけで、AUのiPhone4SがSIMフリーになってしまい、Docomoの回線で使える。
こういうすごいことが1000円もせずにできるようにしてくれるなんて、賢いやつがいるなー。

さて、中華タブレットの話。iPhone用のSIMはサイズが小さいく、そのままでは中華タブレットに使えないので、SIMアダプターを60円(送料250円)で購入した。

Colorfly E780はSIMが2枚させる。そのうちの一方は、SIMを挿してもまったく反応しない。他の一方はしめしめ、電波を捕まえることができた。その夜は3Gが使えた(と、思っているのだけど)。翌日になると、Webにアクセスできない。SIMスロットを差し替えると直ることがあるとネットに出ていたので、差し替えることにした。

ここからが大問題。SIMを抜こうとして抜けない。SIMアダプターがスロットのどこかに引っかかってしまっているようだ。10分くらい、なだめすかしてやさしく引き出そうとしたが、だめ。もう一か八か力任せにラジオペンチで引き出した。バチッ。スロットは見事に壊れた。不幸中の幸いは、iPhone4S用に購入したSIMは無事だった。

皆さんが同じ目にあわないように忠告:
中華タブレットでは、SIMアダプターを使うと引っかかって抜けなくなるから使うな。かならず、サイズの合うものを使うこと。他の機種でも引っかかる可能性あり。
また、中華タブレットでは、そもそもDocomoのSIMが使える周波数に対応していないとの情報もある。それを確認するのがひとつの目的ではあったが、確認する前に、スロットが壊れてしまった。南無阿弥陀仏。周波数の情報は購入店に聞けば教えてくれるかも。

2014年9月2日火曜日

Ubuntu14.04で日本語106キーボードと日本語を使う

実はすごく簡単。何!そんなことでいいの!

ところが、私は最初、viでうまく日本語106キーボードが使えなかったので、ネットを検索した。
そして下記のページなどを参考に努力をしてみた。かなり努力した。

http://ubuntu.hatenablog.jp/entry/20140403/1396524520
http://walts.xii.jp/psp/blog/archives/436
http://www.server-world.info/query?os=Ubuntu_14.04&p=keymap
http://q.hatena.ne.jp/1149948784
http://qiita.com/koizuss@github/items/3608bd4caf24433ede84

これらのページを参考に日本語106キーボードを設定をすると、再起動するまでは、viで日本語106キーボードが使える。でも、どのような組み合わせで設定しても、再起動すると日本語106キーボードではなくなってしまう。

昨日、2014/9/1ふと思った。Superキー(WindowsではWindowsキー)+スペースキーでの切り替えができるとどこかで読んだ。そういえば、メニューバーにもja, en, あAの3つが出ている。

Superキー+スペースキーを押してみると、ja, en, あAの3つがトグルして変わる。

この3つのトグルに関して、私は昨日まで漠然と勘違いしていた。日本語はあA、英語とアルファベットはenと思っていた。実際は、日本語106キーボードでアルファベットはja。そうjaだったのです。日本語キーボードで日本語はあA。enというのは、英語キーボードでアルファベットだったのです。

ここで不思議なのは、なぜ、Ubuntuベテランのホームページの皆さんは、この3つのことを書かないの?

Googleもこのことに限れば、馬鹿でしかない。このようなホームページとブログばかりを表示して出すのだから。

極めて簡単な解決方法があるのに、それを出せないなんて、馬鹿と言われても仕方がない。Googleを馬鹿呼ばわりできるなんて爽快だな。

2014年8月29日金曜日

Linuxでviを使って編集する時の行番号やタブ幅設定

Linux上でviを使ってファイルの編集をする時に便利な設定を覚えたので覚書を書いておきます。(最近物忘れが早くなったから)

viでファイルを開いておいて、
  行番号表示は、 :set nu
  タブ幅設定は、 :set tabstop=2 (2は4,6,8とか好みで)

ちょっとブログには短すぎて寂しいかな。寂しいといえば、今年の夏は太陽が顔を出す日が少なすぎましたね。


2014年8月26日火曜日

Ubuntu14.0で日本語を使うには

パナソニックのCF-T5にWindows7をインストールしたら、動作が遅くてとても使える状態ではないので、Ubuntu14.0を入れた。
普段、事務所ではCentOSをサーバーとして使うので、CentOSが楽かと思ったが、巷に有名なUbuntuも一度くらい使ってみようとして、最新のUbuntu14.0をインストールした。

インストール後、日本語の入力がなかなかできなかった。3回くらい使って、入力を日本語にする方法をやっと独自発見。(ネットで見つからなかったので)

その方法は、システム設定を開き ⇒ キーボードボタンをクリック ⇒ テキスト入力をクリック ⇒ 開いたページで「メニューバーに現在の入力リソースを表示」をチェックする。

メニューバーに表示された現在の入力ソースをクリックすると、上から日本語、英語(US)、日本語(Anthy)と3つのリストが開く。3つ目の日本語(Anthy)を選択すると日本語入力ができる。

ちなみに、動作速度もまあまあで、Win7はもとより、XPよりも快適だ。これでまだ当分CF-T5が使えるじゃないか。皆さんも古いノートパソコンはUbuntuでどうぞ。ただ、古いので電池が45分しか持たないが、それはしかたない。

以上


2014年8月19日火曜日

MSの8月13日に公開された更新プログラムでPCが起動不能になる


Windows7が0X50を出して、8月18日に起動しなくなった。てっきりHDDの故障かと思い新しいHDDをネットで注文し、今日届く。この件は今日8月19日朝にマイナナビニュース・パソコンを見て知った。下記ページに即してセーフモードで起動してページの内容に沿って実行し、HDDを変えなくても無事起動した。(このパソコンは以前から調子の悪いときもあったので、0X50が何かも調べなかったのがまずかった)

MS【リリース後に確認された問題】2014 年 8 月 13 日公開の更新プログラムの適用により問題が発生する場合がある

Windows7で、セーフモードでも起動しない場合、PCの電源を入れたあとにF8キーを連打して「詳細オプションの選択」を表示させ、「コンピューターの修復」を選んで対処することも可能。


【マイクロソフトの発表】
以下のいずれかの更新プログラムをインストールした後、Stop 0x50 エラーが発生しコンピューターが異常終了する場合があります。また、このエラーは、再起動後にも発生し起動に失敗する場合があります。
  • 2982791 [MS14-045] カーネル モード ドライバーのセキュリティ更新プログラムについて (2014 年 8 月 12 日)
  • 2970228 Update to support the new currency symbol for the Russian ruble in Windows
  • 2975719 August 2014 update rollup for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2
  • 2975331 August 2014 update rollup for Windows RT, Windows 8, and Windows Server 2012
(2014/8/18 追記)
現在、Windows Update / Microsoft Update / 自動更新経由でのこれらの更新プログラムの配信は停止しています
なお、これらの更新プログラムをインストール後、特に問題が発生していないコンピューターでも、予防的処置のために、これらの更新プログラムをアンインストールすることを推奨します。


新しいHDD購入する前に、下記のこれらページを参考にすべきであった。 HDD故障との思い込みはいけなかったな。
STOP 0x0A、0x01E、および 0x50 エラーの解決方法
Windows Server 2008 R2 または Windows 7 では、"0x00000050"stop エラー
「STOP: 0x00000050」エラー「PAGE_FAULT_IN_NONPAGED_AREA」

2014年8月16日土曜日

DVDドライブを認識しないときの対処

Lenovoの古いT60ノートパソコンをWindows7にして使っています。今日、CDをMP3化しようとしたところ、DVDドライブを認識しない。故障かと思い外付けのDVDドライブを接続したが、それも認識しない。長いパソコン暦の中で、初めて遭遇する出来事であった。解決策は以下。

レジストリエディタで、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318} を見つけます。
見つけたら、右側の窓枠の中に「UpperFilters」と「LowerFilters」の両方か片方があるので、両方とも削除します。2つともない場合は、DVDドライブが動かない原因は別にあることになります。(レジストリエディタを使うときは自己責任です。)

Windows7でのレジストリエディタの起動は、Windows 7 ではスタートメニューの[すべてのプログラム][アクセサリ]のなかの[ファイル名を指定して実行]を起動し、テキスト枠に「regedit」とタイプしOKボタンをクリックすればOKです。


参考URL:
MSのページ マイクロソフトのページの自動翻訳ってよくないね
パソコンとトラブルと自己解決