エディタに最適なフォント

わたしはsublime text 3を使っています。

フォントをいろいろ探し回っていたんですが、結局「MS ゴシック」に戻ってしまいます。なぜなら、どれもフォントの描画がきれいでなく、横棒と縦棒の太さが違ったり、変に太すぎたりして見にくいんです。

それで辿りついたのが、MeiryoKe_Consoleというフォントです。
しかし、ゼロとオーの区別が付きにくい・・・何かいい手は無いものかと考えていて、自分で編集することにしました。
FontForgeというフリーソフトがあるので、ubuntuに入れて編集することにしました。ゼロの斜線とシングルクォーテーション、バッククォーテーションを見やすくしました。

メイリオとMeiryoKe_Consoleとの比較はこんな感じです。
sample

Sublime Text 3ではこんな感じです。
sublimetext_meiryoke

作り方は以下を参照。
続きを読む エディタに最適なフォント

【PHP】ビルトインウェブサーバーで楽々テスト環境

teratailで質問に答えるようになったら、以外にサーバー立てずにテストして、ローカル制限に引っかかっている人が多いので、簡単に立てられるローカルサーバーの構築方法を書いておこうと思います。

まず、http://windows.php.net/download/に行って、PHP 5.6のx86 Thread SafeのZipファイルをダウンロードします。

最初はこんな画面です。
shot001
続きを読む 【PHP】ビルトインウェブサーバーで楽々テスト環境

Thinkpad E460のSSD不具合と復旧

昨日今日で本当に大変な目にあいました。
昨日の夜はもうダメかと思いました。

つい先日Thinkpad E460を購入しました。Lenovoはあんまり評判が良くない(スパイウェアを忍ばせてたりした)ので、どうしようか迷ったんですが、サブ機で使っているIdeapad U150の安定度と、E460のスペックと安さに負けました。

価格.comのパッケージを利用して、core i5 & SSD & FullHD の構成にしました。
メモリも後付けで16GBマックスまで積んで、SoftPerfect RamでRAMディスクを作って、ブラウザのキャッシュとシステムのTempをそちらに回しました。
元々は192GBのSSDだったのですが、手元にあったSamsung 840 240GBのSSDに乗せ換えました。

設定が終わって快適に使っていました。
それで、Wake Up On LAN のテストで、スリープと復帰を繰り返しておりました。
その後、たまたま再起動することになったんですが・・・立ち・・上が・・・らない・・・・
ネットワークブートの画面になってしまい、それがループします。
青ざめました。元々ついていたSSDは奥さんに上げるノートPCに移植済み。元データはありません。
バックアップも取っていない・・・

ああ・・・どうしよう・・・
続きを読む Thinkpad E460のSSD不具合と復旧

QMAIL3でSSLエラーが出る

ずーと昔から同じメーラーを使っています。
QMAIL3というやつです。

Windows 10になってからSSLエラーが出るようになってしまいました。
それで、OpenSSLのバイナリを更新するという情報をGoogle先生から教えてもらって更新しました。
http://uwagakisimasuka.blog.fc2.com/blog-entry-862.html

それでもエラーが出ます。
続きを読む QMAIL3でSSLエラーが出る

PHP Toolkit のSoapClientが接続できない

クライアントがPHPのバージョンを5.4から5.6にアップデートしたそうです。
(そういう時は前もって連絡ください(怒)

その際、エラーが出るというのです。
ログを見ると、
SoapClientの__doRequestでCould not connect to hostが出ています。

何となくSSL関連じゃないの~ と思いながらGoogle先生にお尋ねしていたんですが、「これ!」という結果が見つからず難渋しました。
解決するのに時間が掛かったので、忘備録として残しておきます。
続きを読む PHP Toolkit のSoapClientが接続できない

【PHP】 全角記号のときmb_strwidthが1を返す

PHPで全角の判断に、mb_strwidthを使っていました。
mb_strwidth == (mb_strlen*2) だったら全角文字、みたいな。
そうしたら、「◎」を入れたらうまくいかないとクライアントから連絡がありました。

調査してみると意外な事実が!
続きを読む 【PHP】 全角記号のときmb_strwidthが1を返す

Excelでフリガナを取得する

開発でテストデータを作る機会があります。
その時にフリガナを入れなければならない場合があります。漢字のテストデータはありますが、フリガナを振っていない場合、手入力で入れるのは至難の業です。(何百件もありますからね)
それをExcelで一発で入れられるという技を教えてもらいました。(Googleさんに)

PHONETIC関数は該当セルのフリガナを取得するものです。
ですので、=PHONETIC(A2)とやれば、A2セルのフリガナを取得できます。でも元々入力されているデータは変換されません。
Shift+Alt+↑で一度編集してやれば出るようになるのですが、数百件をそれをやるには骨が折れます。
続きを読む Excelでフリガナを取得する

Windows10のバーチャルデスクトップの切り替えアニメーションを止める

プログラムなど開発業務に携わっていると、バーチャルデスクトップはありがたく感じる時がありますね。
一つでソースを出しておいて、一つでブラウザを出して、ショートカットで行ったり来たり・・・
(ちなみにショートカットはWin+Ctrl+(←|→)です)

ところが、Windows10のバーチャルデスクトップはデフォルトでスライドするようなアニメーションが付いています。
カッコイイですが、あまりに行ったり来たりしていると酔います

それでアニメーションを切る方法を載せておきますね。

  • スタートメニューを表示するアイコンを右クリック。
  • 「システム」をクリック。
  • 右側のナビゲーションの「システムの詳細設定」をクリック。
  • 「詳細設定」タブの「パフォーマンス」の「設定」ボタンをクリック。
  • 「ウインドウを最大化や最小化するときにアニメーションで表示する」のチェックを外します。
  • 「適用」をクリック。

これでバーチャルデスクトップを切り替えてみてください。
アニメーションがなく、パッパッと切り替わります。

ただウインドウの最大化や最小化のアニメーションがなくなるので、寂しいと思う人もいるかもしれませんね。

【PHP】 Macからの日本語名ファイルを正しく扱う

久しぶりに仕事ではまりました。

ファイルをアップロードして、その日本語名を利用するシステムなのですが、Macも含まれます。
それで、会社からMac miniを借りてダウンロード、アップロード実験をしていたところ、明らかにおかしい挙動があります。

何とかクラブ == 何とかクラブ

これがイコールにならないのです。調べてみたところUTF-8の正規化方法が違うんだそうです。
なんだそりゃ!
Unicode正規化(Wikipedia)

NFCとNFDという二つの方法があって、LinuxとWindowsではNFC。MacはNFDを採用しているらしいです。
NFDは濁点半濁点を一つの文字として扱い、前の文字と合成して表示します。ブラウザは何の問題もなく表示しますが、データ上は異なるので、イコールとはなりません。

PHPでは標準で対応していないので、プラグインを用いることになります。
php-intlというのがそれです。
使い方はヘルプに書かれている通り。

// UTF-8がNFD正規化の場合NFC正規化に変更
if (Normalizer::isNormalized($filename, Normalizer::FORM_D)) {
  $filename = Normalizer::normalize($filename, Normalizer::FORM_C);
}

こんな風にします。

これで問題解決!