読者です 読者をやめる 読者になる 読者になる

HRR Co., Ltd.

技術的な記録を残していくことを目的としています。そのうち関係ないことを書き出しそう。

MySQL Workbenchが停止したときの対処法

MySQL Workbench 6.3 Windows 7 MySQL

どんな現象?

MySQL Workbenchが突如、落ちることがあります。
しかも、一度落ちたら立ち上がらない。
しかも、結構頻発します。

「アプリケーションが応答していません」
みたいなダイアログが出て、固まってしまうんですね。

ちなみに原因はわかっておりません…

【2017/02/20 追記】
動かなくなったときの設定ファイルとの差分を見てみましたが、それでもわからず…。

でも対処法はわかる

「%APPDATA%\MySQL\Workbench」ここにある「wb_options.xml」このファイル。
このファイルを消すだけで、起動するようになります。

しかし…
設定した内容がどうも消えてしまうようなんですよね。
再設定にいつも困るので、それもメモをしておきます。

【2017/02/20 追記】
最近は接続が成功した後に、「wb_options.xml」をリネームして同じフォルダに入れております。
で、動かなくなったらこれと入れ替える。

最低限やっておきたい設定

SQLは大文字派

f:id:hrroct:20161101145723p:plain

WorkbenchにはSQLの入力補助機能がありますが、小文字なんですよね…
大文字で入力したい私は、チェックを外します。

MyISAMなのにオートコミット?

f:id:hrroct:20161101145724p:plain

Workbenchはデフォルトでオートコミット機能がONになっています。
なんて危険な…!
というわけで、私はオートコミット機能をOFFにしています(チェックを外します)。
データを反映させるときは、COMMITを忘れずに。

タブよりスペース派

f:id:hrroct:20161101145722p:plain

タブキーを入力時に、タブではなくスペースを入力したい人は、チェックを入れましょう。
私は入れたい派です。

最後に…

Workbenchが落ちないのが一番なんですがね…
しばらくこれでしのごうと思います。

2016年版!apt-cyg を入れよう

Windows 7 Cygwin

はじめに

Cygwinを導入しているのなら、apt-cygを入れると便利です。
apt-cygはCygwinのパッケージマネージャーです。

Cygwinのexeファイルを実行することで、インストールもできますけど…
毎回あれを使うのも大変ですし。

注意事項

ちなみに、公式からfolkされたいろんな種類のapt-cygがあるようです。
使用できるオプションも違いがあります。
今回は公式のものをひとつだけ載せておきます。

公式サイトはこちら。MITライセンスです。
github.com

導入方法

公式サイトにあるとおりですが…私は"/bin"を"/usr/local/bin"にしました。
適当な作業ディレクトリにて、下記を実行します。

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /usr/local/bin

参考

別の種類のapt-cygについては、こちらがかなり詳しいので、見てみることをおすすめします。
seesaawiki.jp

以上でした!

Cygwinにwatchコマンドを入れたい

Cygwin Windows 7

結論からいうと、これ↓で使えるようになります。

$ apt-cyg install procps

"watch"を直接指定してもダメみたいです。
findしてみた結果が↓こちら。

$ apt-cyg find watch
Cache directory is /setup
Mirror is http://**********
Updating setup.ini
signature verified: setup.bz2.sig
signature verified: setup.ini.sig
Updated setup.ini

Searching for installed packages matching watch:

Searching for installable packages matching watch:
xfce4-mailwatch-plugin
xfce4-mailwatch-plugin-debuginfo

ちなみに、apt-cygを使用するにはこちらをどうぞ。
hrroct.hatenablog.com

単なる覚え書きでした。

Firefoxだけbeforeunloadの挙動が違う…

Firefox JavaScript

はじめに

一般的に、離脱防止の目的で使用されるであろう、beforeunloadイベント。
タブを閉じたり、ブラウザの「戻る」操作をしたときにダイアログが表示されるため、嫌われモノとなるアレです。

developer.mozilla.org

嫌われモノとわかっていても、実装しなければならないこともある。
これはしょうがない…。

さて。

テスト時にようやく気づいたのですが、Firefoxだけ異なる挙動をするようです。
(テスト時のバージョンは47.0です)
ちなみに、メッセージの内容がダイアログに表示されない云々…という話ではありません。

何が違うのか?

ダイアログが表示されない場合があります。
ページが表示されて、何も操作をせずにページを移動しようとする/閉じようとすると、ダイアログが表示されません。

どこでもいいので、クリックしてから閉じると表示されます。
マウスホイールくるくるでも、表示されます。
(実際スクロールしなくてもOK)
何かしらの操作をすることが、トリガーになっているようです。

調べてみた

どこかにこれに関する情報はないものか?と思ったらこちらにありました。

www.fxsitecompat.com

Firefox44から、こういう動作なのですね。
結構前じゃないか…。
全然知りませんでした。

Cygwinを使ってSymfony 3 を導入してみる

Symfony 3 PHP Cygwin Windows 10

はじめに

今回、新しいWebサイトを構築するにあたって、Symfony 3を使ってみたいと思ったのがきっかけです。
環境はWindows 10にCygwin上でSymfonyのプロジェクトを作成するところまでやりたいと思います。

流れ

まずはSymfony 3のダウンロード…なんですが

ダウンロードページはこちら
Download Symfony Framework and Components

とうとうsymfonyインストーラーが用意されたのですね。
しかし私はなぜかインストーラーが使えなかったので、

If you can't use the installer try instead the Symfony installation based on Composer.

の指示に従って、Composerを使うことに。
のっけから普通の道から外れていますが…がんばって進めます。

Composerのダウンロード

URLはこちらになります。
Installing and Configuring Symfony (The Symfony Book)

ということで、まずはComposerを入れなければいけません。
うーん、前提が多い…。
Installing Composer (The Symfony CookBook)

$ curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading 1.0.3...

Composer successfully installed to: /home/****/work/project/composer.phar
Use it: php composer.phar

成功した場合にはこのように表示されますが、PHPに必要なオプションが存在しないと失敗します。
根気よくTry and Errorしましょう。

Cygwinなら、インストーラーから探してインストールするのが楽かと思います。
PHPソースコードからリコンパイルしてももちろんOKです。

$ mv composer.phar /usr/local/bin/composer

Composerを移動して、準備完了です。

ようやくSymfonyのプロジェクト作成

いざ、Symfonyのプロジェクトを作成するコマンドを叩きます。

$ composer create-project symfony/framework-standard-edition my_project_name

何かが足りない場合には、やはり失敗します。
成功するまでやはり懲りずにTry and Errorしましょう。
私の場合は、ctype_digit関数がないと言われてFatal Errorが発生していました。
関数の有無はこんな感じ↓で調べるとよいです。

$ php -r "echo (function_exists('ctype_digit'))? 'true'.PHP_EOL : 'false'.PHP_EOL;"

存在する関数名ならtrueが、存在しない関数ならfalseを返します。

それとPHPのデフォルトタイムゾーンの設定がされていないぞと怒られました。
php.iniにて設定をしておきましょう。

$ cat /etc/php5/php.ini | grep date.timezone
; http://php.net/date.timezone
;date.timezone =
date.timezone = "Asia/Tokyo"

途中でデータベースとメーラーの設定について聞かれます。
決まっていなければ、このままEnterを押して続行して問題ありません。

database_host (127.0.0.1):
database_port (null):
database_name (symfony):
database_user (root):
database_password (null):
mailer_transport (smtp):
mailer_host (127.0.0.1):
mailer_user (null):
mailer_password (null):
secret (ThisTokenIsNotSoSecretChangeIt):

my_project_nameの中身はこんな感じになっています。

$ ls -al
合計 109
drwxr-xr-x+ 1 **** ****     0 55 18:17 .
drwxr-xr-x+ 1 **** ****     0 55 18:17 ..
-rw-r--r--  1 **** ****   248 55 18:17 .gitignore
drwxr-xr-x+ 1 **** ****     0 55 18:17 app
drwxr-xr-x+ 1 **** ****     0 55 18:17 bin
-rw-r--r--  1 **** ****  2599 55 18:17 composer.json
-rw-r--r--  1 **** **** 70459 55 18:17 composer.lock
-rw-r--r--  1 **** ****  1065 55 18:17 LICENSE
-rw-r--r--  1 **** ****   973 55 18:17 phpunit.xml.dist
-rw-r--r--  1 **** ****  2285 55 18:17 README.md
drwxr-xr-x+ 1 **** ****     0 55 18:17 src
drwxr-xr-x+ 1 **** ****     0 55 18:17 tests
drwxr-xr-x+ 1 **** ****     0 55 18:19 var
drwxr-xr-x+ 1 **** ****     0 55 18:17 vendor
drwxr-xr-x+ 1 **** ****     0 55 18:17 web
$ php bin/console --version
Symfony version 3.0.5 - app/dev/debug

バージョンは何も指定しないと、3.0.5になるようですね。
(2016年5月5日現在)

最後に動作確認を

PHPのビルトインサーバーを立ち上げて、繋いでみるのが一番楽だと思います。

$ bin/console server:run

上記のコマンドを実行して、ブラウザから↓にアクセスします。
http://127.0.0.1:8000/

f:id:hrroct:20160505190113p:plain

正常に動いていれば、こんな↑ページにアクセスできると思います。


私の場合、ここでFatal Errorが出まして…直接ファイルを修正して突破しました。

$ vi my_project_name/var/cache/dev/classes.php

5863行目の } を ; にしました。
PHPをよく知らない人は、いじらないほうが無難かも…。


以上でした。

2016年5月版!手軽に開発環境作成、Windows10にXAMPPをインストール!

Windows 10 PHP MySQL XAMPP

はじめに

お手軽にWebサイト開発をするなら、やはりオールインワンのXAMPPは便利です。
ということで、インストールしてみることに。
※この作業は2016年5月に行っています!情報はすぐに古くなりますから…。

手順紹介

まずはWindows向けのインストーラーをダウンロードします。
108MBもありました…。

www.apachefriends.org

ダウンロードしたら、インストーラーを実行します。
そうすると、何やら英語のメッセージがいくつか出ました。

f:id:hrroct:20160419075020p:plain

1つ目は、ウイルス対策ソフトが動いていると表示されるメッセージのようです。
動きが遅くなるか、ソフトのインストールに影響があるかもしれません、といった感じです(ざっくり訳)。

私の場合は最終的に問題なかったので、構わず続けます。

f:id:hrroct:20160419075032p:plain

もう1つは、WindowsUAC(User Account Control、ユーザーアカウント制御?)機能により、XAMPPの機能が制限されちゃうよ、というお話です(ざっくり訳)。
避ける方法としては、

1. インストール先を"C\Program Files (x86)"にしない
2. UACを無効にする

があるそうですが、私は1で回避。
Cドライブ直下にインストールしました。

f:id:hrroct:20160419075036p:plain

ここから先は、いわゆる普通のインストーラーの手順になります。

f:id:hrroct:20160419075039p:plain

この画面では、インストールしたいものを選択します。
私の場合は、ApacheMySQLPHPだけあればよかったので、それだけにしました。
最悪必要になったときに、あとからインストールすればよいでしょう。

f:id:hrroct:20160419075042p:plain

インストールする場所は、上でも書きましたが、Cドライブ直下にします。

f:id:hrroct:20160419075045p:plain

ここではBitnami?という、WordPressなんかを入れられるフリーのインストーラーの紹介をされますが、要らないのでチェックを外しました。


f:id:hrroct:20160419075048p:plain

これで準備は完了。Nextをクリックすれば…。

f:id:hrroct:20160419075051p:plain

インストールが始まります。

f:id:hrroct:20160419075054p:plain

ここでWindowsから注意が入りました。
Apacheを入れたことで、他のPCからのアクセスを受け入れることが可能になります。
例えば、他のPCやスマホからXAMPPを入れたPC上に作成したWebサイトを見れるようになります。

他からはアクセスさせたくない、単に自分のPC内で完結したあくまで開発環境を作りたいんだ、という人はチェックを外しましょう。
私の場合は、家庭内LANにだけ公開するWebサイトを作成したかったので、上にだけチェックを入れています。

知識に自身がない方は、下にチェックを入れることはオススメできません。

f:id:hrroct:20160419075057p:plain

これで完成です。
チェックを入れてFinishを押せば、コントロールパネルが開きます。
動作確認の意味で、Apacheを起動してみるとよいと思います。


起動後に下記URLを開いて、エラーにならなければOKでしょう。
http://localhost/

ちなみに、ここにアクセスしています。
C:\xampp\htdocs\index.php

最後に

Webサイトを作成する上では、やはりLinux系OSのマシンや仮想環境を用意したいところですが…。
簡単に環境を準備するには、やはりXAMPPが一番だと思いました。

長くなりましたが、以上でした。

Chosenプラグインの使い方(基礎編)

Chosen JavaScript jQuery

はじめに

あまり日本語の情報がないので、まとめようと思いました。
マニュアルにないことを意識して書きます。
今回は基礎編ということで、割と浅い内容です。

(追記: 2016/11/28(Mon))
基礎編2を書きました。

hrroct.hatenablog.com

Chosenプラグインとは

Chosen: A jQuery Plugin by Harvest to Tame Unwieldy Select Boxes

「長くて扱いづらいセレクトボックスを使いやすいものにします」(勝手な意訳)
とあるように、selectタグのUIを変化させるものです。
リンク先にサンプルがたくさんあるので、実際にいじってみるのが早いです。

使い方

サンプルはこちら↓
Edit fiddle - JSFiddle

下記サイトを使って実際に書いてみました。
便利なサイトがあるものですね。

  1. Create a new fiddle - JSFiddle
  2. chosen - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!

各ライブラリのバージョンですが、

jQuery 3.1.1
Chosen 1.6.2

を使います(装飾にbootstrapも少々)。
値をセットしたり、選択肢を変えた後には必ず更新イベントを実行するのがポイントでしょうか。

ベース

<select id="target">
  <option></option>
  <option value="1">1st Option</option>
  <option value="2">2nd Option</option>
  ...

選択された値を取得する

var value = $('#target').val();
var text  = $('#target option:selected').text()

値をセットする

// Chosenのバージョンが低い場合は'liszt:updated'で
$('#target').val(5).trigger('chosen:updated');

値をクリアする

// Chosenのバージョンが低い場合は'liszt:updated'で
$('#target').val('').trigger('chosen:updated');

選択肢を追加する

これの応用で、減らしたり、選択肢の全とっかえも可能です。

// Chosenのバージョンが低い場合は'liszt:updated'で
var newOption = $('<option>').attr('value', 15).text('15th Option');
$('#target').append(newOption).trigger('chosen:updated');

有効化、無効化

// Chosenのバージョンが低い場合は'liszt:updated'で
// 無効化
$('#target').prop('disabled', true).trigger('chosen:updated');
// 有効化
$('#target').prop('disabled', false).trigger('chosen:updated');

基礎編は以上です。
また思い出したら、追記するかもしれません。