作成者別アーカイブ: toshiya

MSYS2 のインストールと設定

MSYS2 のインストールと設定

Windows上で Unixライクなプログラミングを行うには、これまで Cygwin や MinGW+msys と言った方法を使うことが多かったのですが、Windowが 64bit 化されてから 64bit に特化したプログラミングを行うにあたって、徐々に多くの問題を目の当たりにするようになりました。

個人的な感想ではありますが、MSYS2 は 64bit Windows上で UNIX をエミュレートするための最も適したツールと思われ、私は今後、こちらをメインに 64bit Windows 上で UNIX ライクなプログラミングを行って行こうと思っております。

このページでは、以下の通り MSYS2 のインストールと設定を解説します。

MSYS2 は以下のサイトからダウンロードすることができます。
https://msys2.github.io/

このサイトでは msys2-i686(32bit Windows用)と msys2-x86_64(64bit Windows用) をダウンロード出来ますが、本ドキュメントでは 64bit Windows 用の (msys2-x86_64) について解説しますので、msys2-x86_64 をダウンロードして下さい。

インストール手順

installer01
ようこそ画面は、そのまま「次へ」をクリックして次画面に進みます。

installer02
インストール先フォルダはデフォルトで C:\msys64 となっていますが、そのまま「次へ」をクリックして次画面に進みます。

installer03
スタートメニューのショートカットもデフォルトの MSYS2 64bit のまま、そのまま「次へ」をクリックして次画面に進みます。

installer04
MSYS2 64bit のインストール画面では「インストール」ボタンをクリックしてインストールを開始します。インストール中、「詳細を表示する」ボタンをクリックするとインストール状況が表示されます。

installer05
インストール完了後は、「MSYS64 bit を実行中」のチェックをつけたまま「完了」ボタンをクリックすると、MSYS2のシェルウィンドウが起動します。

msys2_01

必要なコンポーネントを pacman からインストールする

$ pacman -Sy pacman
$ pacman -Syu

msys2_02

msys2_03

msys2_04

msys2_05

msys2_06

(ここで一旦、シェルウィンドウを再起動する。)
ウィンドウの閉じるボタンをクリックすと以下のダイアログが表示されるので、「OK」をクリックして終了処理を継続する。

msys2_07

$ pacman -Su

msys2_08

msys2_09

msys2_10

その後、開発に必要となるコンポーネントをインストールします。

$ pacman -S base-devel
$ pacman -S msys2-devel
$ pacman -S mingw-w64-x86_64-toolchain
$ pacman -S zip
$ pacman -S unzip
$ pacman -S p7zip
$ pacman -S sqlite3
$ pacman -S git

vim をインストールします。

$ pacman -S vim
$ cp /usr/share/vim/vim74/vimrc_example.vim ~/.vimrc

vim を使いやすくする。

$ vi ~/.vimrc

以下の行を追加(行番号表示、タブサイズを半角スペース4つ分とする。)

set number
set ts=4

vim を vi とのエイリアス設定をする。

$ vi ~/.bashrc

以下の行を追加

alias vi='vim'

以下のコマンドを実行し、.bashrc へのエイリアス定義を反映させる

$ source ~/.bashrc

シェルウィンドウ起動用のショートカットをデスクトップ上に作成する

今後の起動にあたって、Windowのスタートメニューから起動すると余計なDOS窓が開いてしまうので msys2_shell.bat から MSYS2 を起動するように設定するのが良いと思われます。

エクスプローラで、C:\msys64\msys2_shell.bat を右クリックし、ショートカットを作成後、デスクトップ上に移動する

ショートカットアイコンがバッチファイルのアイコンになっているので、ショートカットアイコンを右クリックし、「プロパティー」から、「ショートカット」タブを開き「アイコンの変更」をクリックし、「参照」ボタンを押してファイル選択ダイアログから、以下のアイコンを選択して設定する。

C:\msys64\msys2.ico

Share Button

さくらレンタルサーバーへの Symfony Demo インストール

Symfony フレームワークを利用するあたっての学習の一環として、Symfony の デモページを さくらのレンタルサーバーに配置してみる作業を行ってみました。

配置済みのデモページは以下のURLの通りです。
https://toshiya.org/symfony_demo/

この作業を行うにあたっての、大きな問題点は以下の2点でした。

  • さくらレンタルサーバーにはそのままの状態では Symfony は入れられない
  • 手順通りに作成したデモページが動かない

これらの問題を以下の通り解決し、無事にインストールを完了しました。

さくらレンタルサーバーへの Symfonyのインストール

PHPのバージョン確認

以下のように確認したところ、私の環境では PHP5.4 になっていました。

% php --version
PHP 5.4.45 (cli) (built: Feb 10 2016 10:17:56)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

PHP5.3以上であれば問題なく動くらしいのですが、さくらのサーバーコントロールパネルを開き、PHP5.6に更新しました。
phpversion

確認後(5.6にアップグレードされています。)

% php --version
PHP 5.6.18 (cli) (built: Feb 10 2016 10:19:55)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Symfonyのインストールに必要なコンポーネントのインストール

Symfonyをサーバーで動かすためには、json, ctype, pdo_mysql, pdo_sqlite が必要になるらしいのですが、チェックしたところこちらは大丈夫そうでした。

% php -i | grep json
json
json support => enabled
json version => 1.2.1
proto_binary_fetched_json => 0

% php -i | grep ctype
ctype
ctype functions => enabled

% php -i | grep pdo_mysql
API Extensions => mysqli,pdo_mysql,mysql
pdo_mysql
pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock

% php -i | grep sqlite
PDO drivers => mysql, sqlite
pdo_sqlite
sqlite3
sqlite3.extension_dir => no value => no value

その他に、icu と intl というライブラリが必要になることが分かりました。

ICU(International Components for Unicode)ライブラリのインストール

ICU ライブラリは C++ や java から呼び出せるネイティブコードで書かれたライブラリであり、PHPのintlコンポーネントが内部で呼び出して利用しています。
http://site.icu-project.org/

% cd ~/local/src
% curl -O http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz
% tar zxvf icu4c-57_1-src.tgz
% cd icu/source
% ./configure --prefix=$HOME/local
% gmake
% gmake install

intlのインストール

国際化拡張モジュールintlは、PHPにICUライブラリの機能を公開します。
この拡張機能は、バージョン5.3以降のPHPに含まれており、intlバージョン3.0はPHP 5.5から利用できます。
http://pecl.php.net/package/intl

% cd ~/local/src
% curl -O http://pecl.php.net/get/intl-3.0.0.tgz
% tar zxvf intl-3.0.0.tgz
% cd intl-3.0.0
% phpize
% ./configure --prefix=$HOME/local --with-icu-dir=$HOME/local
% make
$ mkdir ~/local/lib
% mkdir ~/local/lib/php
% mkdir ~/local/lib/php/extensions
% cp ~/local/src/intl-3.0.0/modules/intl.so ~/local/lib/php/extensions 

intl を利用できるように LD_LIBRARY_PATH を追加

% vi ~/.cshrc

以下の環境変数を追加

setenv  LD_LIBRARY_PATH ~/local/lib/php/extensions

.cshrc の読込み

% source ~/.cshrc

xdebug のインストール

% curl -O https://xdebug.org/files/xdebug-2.4.0.tgz
% tar zxfv xdebug-2.4.0.tgz
% cd xdebug-2.4.0
% phpize
% ./configure
% make
% cp modules/xdebug.so ~/local/lib/php/extensions/

【注意】さくらのレンタルサーバーには、Xdebug をインストールしない方が良いです。

php.ini の編集

さくらサーバーコントロールの「PHP設定の編集」から以下の設定を追加する

※ (your_account)の部分はご自身のさくらサーバーのアカウント名です。

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Asia/Tokyo"
extension_dir = /home/(your_account)/local/lib/php/extensions
extension=intl.so

zend_extension = /home/(your_account)/local/lib/php/extensions/xdebug.so
xdebug.remote_enable=1
;xdebug.remote_host=121.2.XXX.XXX
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

動的ライブラリの読み込み確認

% php -c ~/www/php.ini -m

intl
xdebug
が表示されていれば完了

Symfony本体のインストール

% cd
% mkdir local/bin
% curl -LsS http://symfony.com/installer > symfony.phar
% mv symfony.phar ~/local/bin/symfony
% chmod a+x ~/local/bin/symfony
% symfony

最後の symfony コマンドを実行すると、正しくインストールされていれば以下のようなメッセージが表示されます。

 Symfony Installer (1.5.1)
 =========================

 This is the official installer to start new projects based on the
 Symfony full-stack framework.

 To create a new project called blog in the current directory using
 the latest stable version of Symfony, execute the following command:

   symfony new blog

 Create a project based on the Symfony Long Term Support version (LTS):

   symfony new blog lts

 Create a project based on a specific Symfony branch:

   symfony new blog 2.3

 Create a project based on a specific Symfony version:

   symfony new blog 2.5.6

 Create a demo application to learn how a Symfony application works:

   symfony demo

 Updating the Symfony Installer
 ------------------------------

 New versions of the Symfony Installer are released regularly. To update your
 installer version, execute the following command:

   symfony self-update

Symfonyデモページの作成

% cd ~/www
% symfony demo

本番サーバーで動かす際の注意

Symfony デモのソースコードはローカルのDev環境での動作しますが、Prod(本番)環境ではデータベースの接続情報が設定されていない為、そのまま Webサーバーに配置しても動作しません。
このため Dev環境のDB接続設定を Prod環境にもコピーします。

~/www/symfony_demo/app/config/config_prod.yml を編集します。

#doctrine:
#    orm:
#        metadata_cache_driver: apc
#        result_cache_driver: apc
#        query_cache_driver: apc
doctrine:
    dbal:
        # temp workaround for https://github.com/doctrine/dbal/issues/1106: define DB path here
        path: "%kernel.root_dir%/data/blog.sqlite"

修正を反映させるためにサーバー上のキャッシュの削除します

% cd ~/www/symfony_demo
% php app/console c:c --env=prod --no-debug

ブラウザでの動作確認

PCのブラウザを開き、以下のURLを入力します。(XXXX は さくらインターネットの初期ドメイン名)
http://XXXX.sakura.ne.jp/symfony_demo/web/ にアクセスします。

Share Button
ToshiyaIcon

テレビ神奈川主催のハッカソンに参加しました

2014年8月10日(日) 日本列島に台風が迫る中、横浜のテレビ神奈川本社で行なわれたハッカソンに参加して参りました。

当日は即席の5名でチームを組み、横浜の商店街で活躍する看板娘にフューチャーを当てた動画投稿システムの提案及びデモの作成を行い、幸いながら最優秀賞を頂くことが出来ました。

今後、チームではこのハッカソンでの成果を具現化してゆくフェーズに入り、システム完成後はテレビ神奈川と連携してこれを広めて行くとのことです。

どうか皆さん、今後のチームの活躍にご期待下さい!!

1407754617

ヨコハマ経済新聞掲載記事:http://www.hamakei.com/headline/8979/

Share Button
ToshiyaIcon

もしも提供したアプリがウィルスと判断されたら…。

先日、顧客に提供した音声信号処理アプリ、先方の検収を待っていたのですが、どうも連絡なく、昨日、受けた連絡にはショッキングな事実が…。

どうやら、僕の製作したアプリがウィルスとして検出されてしまうらしく、起動後に実行できないどころか、自動的にチェストにされてしまい、exe ファイルが消えてしまうとのこと。

結局、納品には至らず、また問題対策に追われる状況に…(-_-;

問題となっているのは、 Avast! という無料アンチウィルスソフトであり、こちらは「無料」ということで、世の中に広く使われているものです。

そこで、実際に僕のシステムに Avast! をインストールしてみたところ、確かに開発環境で実行形式ファイルをビルドした瞬間、「Win32:Evo-gen [Susp]」というウィルスとしてチェストに移動されてしまう現象を確認。

はて… 本当に感染しているのだろうか…?

と、https://www.virustotal.com/ などでチェックしてみても問題なく、自信の環境に今度は AGV をインストールしてスキャンをかけても問題なし。

どうやら、 Avast! の誤検出らしく、Googleで検索してみれば、自作アプリがウィルスとして誤検出されると言う問題が多数報告されていました。

回避策としては、システムにインストールされている Avast! に 該当のファイルがウィルスではないことを判断させ、チェストから実ファイルシステムに復元する方法をとることで問題は回避できるのですが、これ、世の中のすべての Avast! ユーザーにこの手順を行なわせるには大変な労力です。

と、いうか、それ以前にウィルスの疑いを晴らすことが難しいのではないでしょうか?

実際に、「福井コンピュータ」という会社(僕とは関係ありません…(^-^; ) でも、この問題に困り、ユーザーに対して、問題の回避手順を公開しているページも発見。

http://www1.fukuicompu.co.jp/support/security_doc/index.pdf

ココ最近、しばらく ガッツリした Windows アプリを開発していなかったので、 気が付かなかったのですが、これ、本当にアプリ提供者泣かせの重要な問題です。

とりあえず、僕のシステムでは、アンチウィルスソフトを Avast! から AGV に変更することで問題は無くなったのですが、これと同じことをお客さんに強要するわけにも行かないですよね…。

すごく困ります…(-_-;

Share Button
ToshiyaIcon

オリジナルアイコンのデザインをしました

今回、ホームページや名刺に掲載するイメージアイコンを自身でデザインしてみました。

これにあたって、どのようなデザインにするか色々と考えてみたのですが、僕自身を表せるようなそんな図柄になればイイのではないかと考えまして、このようなデザインと致しました。

背景の三つの弧は、「人生における荒波」を意味しており、この荒波に揉まれるという意味で、登志也のイニシャルの “T” を重ね合わせました。

Tの色が黄色いのは背景の波が青色と白色なので、これに一番映える色として黄色を採用しました。

今後、このアイコンは大切にして行きたいと考えております。

ちなみに今回のデザインにあたって使用したレタッチツールは 「Inkscape」 というフリーのソフトウェアであり、これまで使い慣れた GIMP がラスター画像を扱うソフトウェアであったことに対して、今回の Inkspace はベクター画像をデザインするためのものです。

例えるならば、GIMP は PhotoShop のフリー版であり、 Inkspace は Illustrator のフリー版という感じですね。

初めて使ったソフトですが、ものの1時間くらいでデザインできました。

Inkspace の64bit版ダウンロードはこちらから

Share Button

横浜・神奈川オープンデータフォーラム

2014年6月16日に横浜で行われた「横浜・神奈川オープンデータフォーラム」に行ってきました。

「何それ?」って、思われた方に簡単に説明をしますね。

2年前の 平成24年7月に我が国では、「電子行政オープンデータ戦略」というものが打ち出され、政府として所有している様々な統計データなどを単なる書類ではなく、コンピュータで処理できるデータの形で世の中に公開して行くことを打ち出しました。

これが何の役に立つかと言うと、このデータを利用して社会の様々な問題を発見したりすることが出来るのです。

簡単な例で言えば、自殺者の数、地域、年代に関するデータが行政から、書類ではなく、データの形でオープンになれば、このデータを様々な人々が解析し、自殺者の傾向をつかむことで対策が出来るのです。

とにかく、この流れは日本だけではなく、世界中で進み始めています。

今フォーラムに参加して、僕自身、この先、抱えきれないくらいの課題を頂いた気がしています。

それは、コンピュータ技術者の立場としてのみならず、我が国、日本の一員として、「より良い社会」を作ってゆくために、このオープンにされたデータを元に、様々な提言をして行こうと考えています。

発言もしてきました。 1:23:10 あたりから

Share Button

Chikuwa 青空文庫検索

全文検索エンジン Chikuwa を用いた簡単なサンプルシステムを構築しました。

青空文庫収蔵 9795作品中に収められたテキストデータ 271MB から瞬時にキーワード検索を行うというものです。

https://toshiya.org/aozora/chikuwa/

Chikuwa 青空文庫検索 for mobile の操作画面は以下の通りです。

1.トップ画面で青空文庫収蔵の作品中に含まれると想定されるキーワードを入力して、「送信」ボタンを押下します。
10155796_270319369811469_1749260070_n

2.検索キーワードを含む作品のリストが表示されます。(100件以上のヒットがあった場合はヒットスコア上位100件まで表示されます。)
10013721_270319403144799_1254874241_n

3.結果リストのアイテムを押下すると、実際の作品の文章が表示されます。(但し、キーワードをハイライトする機能は未実装です。)
1743658_270319439811462_1120735509_n

4.結果リスト、本文ページ左上の「Back」ボタンを押下すると直前のページに戻ります。

Share Button

CJKV の発展と課題

皆さんは CJKV という言葉をご存知でしょうか?

これは、コンピュータ用語ではありますが、中国語(Chinese)、日本語(Japanese)、韓国(朝鮮)語(Korean)、ベトナム語(Vietnamese)の4言語の頭文字を連ねたものであり、コンピュータ業界でのテキスト処理におけるアジア圏を代表する4言語の呼称です。

ふと、この4つのアルファベットをご覧になって気がつくことはありませんか?

それは、この4カ国の間では、かなり多くの外交問題が起きているということです。

僕はいつも思うのですが、この一番の原因というのは、やはり国と国の間の「言葉の壁」が非常に大きいと思うのです。

コンピュータ業界のテキスト処理においても扱いが特殊とされるこの4言語ですから、それは尚更のことです。

そんな中、実は台湾(中華民国)国内においては親日が多数派であるという現実があります。

この最たる要因としては、台湾の国内には日本語や日本文化を理解できる人が多く存在することにあると思っています。

今、我が国の義務教育における外国語教育は英語だけですが、これからのアジア圏の平和と協調を思うのであれば、子供たちに対して、英語に加えてアジア圏の言語を1カ国でも選択で勉強出来るようにしても良いのではないでしょうか?

産業においてもグローバル化が進む現代、これからのアジア圏の平和を願うばかりです。

Share Button

ICT は社会のために

僕が学校を卒業して初めて社会人になったのは、1989年(平成元年)のことです。

実は、この当時の僕はIT技術者ではなく、総務人事の新人として事務方の仕事をしていました。

その頃の僕の先輩社員の中には「ワープロ」を非常に得意としている女性がわずかながら数人おり、彼女達には上司が頭を下げて仕事をお願いするという、ちょっとした特別待遇でした。

当時のワープロのスキルというのは大変貴重な技能であり、ワープロが打てる人というのはかなり「デキる」社員だったのです。

ただ、面白いことに現在の世の中においてはもう、ワープロなんて誰もが当たり前のように打てる時代になりました。

きっと「ワープロ検定1級」なんて資格を持っていたとしても、普通の会社の中では何の自慢にもなりません。

現代は、「ワープロが打てること」ではなく、「ワープロで打つべき文章がキチンと作成できること」に重きが置かれることでしょう。

もう、オジサンの上司が手書きの原稿をワープロ担当の女性に清書してもらう時代は終わったのです。

僕は同じようなことが、きっとこれから英語などの語学にも起きると思っています。

諸外国を相手に仕事をするためには、その国の人に伝える「何か」というものを自分で考え、それを自らの手で翻訳をしていくのがこれからの職業人のあり方であり、これが出来ない人(翻訳が出来ない人、翻訳しかできない人)同士の連携では仕事は成り立たなくなるでしょう。

では、ICT(情報コミュニケーション技術)はどうでしょう?

僕の勝手な持論かも知れませんが、 ICT とは結局、言語と同じように単なる「コミュニケーション技術」です。

きっとこれからの世の中、「ICTしか知らない人」と「ICTを知らない人」との連携で仕事をしてゆくスタイルは終わると思っています。

また、まさに現代は、一般の人達がコンピュータを使いこなすスキルを物凄いスピードで習得しつつあります。

そういう状況を考えると、 「ICTしか知らない技術者」はもう要らない時代が徐々に近づいているのです。

更に言うと、ICTとは、「社会を動かすため」のものであり、ICT技術者が社会を考えられなければ、きっと良い仕事はできないと思うのです。

これからの コンピュータプログラマは、「このプログラムがどんな風に社会に影響するのか」と言うことを常に考えられなければ、きっと時代に取り残されて行くことでしょう。

これは僕の杞憂でしょうか? きっとそんな事はないと思っています。

Share Button

Twitterの神々

本書が出版されたのは今から遡ること3年半の2010年12月です。

当時はまだ民主党の鳩山氏が総理大臣を努め、東日本大震災も起きていない状況でした。

この本を読んでいると、このたった3年半の間にも、我が国の情勢は大きく動いていることを強く感じました。

当時は我が国には Facebook はまだそれほど浸透しておらず、国内では芸能人や政治家などの有名人を軸にした Twitterブームであったような気がします。

僕自身、この1年前の2009年に横浜市内でこの Twitter のイベントに参加し、某ジャーナリストが Twitter を過大評価しては「Twitter の可能性は無限大で、これからは Twitter がOSにもなる」などと言うワケの分からない話などを苦笑しながら聞いておりました。

しかしながら昨今は、この Twitter の役割は現在、確実に Facebook に移りつつあり、Twitter は徐々に収束に向かうと僕は思っています。

この最たる要因は、140文字という制限の中では発信者のメッセージが伝えきれず、徐々に「誘導ツール」に移りつつあること、また、価値のないつぶやきの氾濫の中から、価値ある情報を見つけ出す難しさにあったのではないかと思います。

本書の中で田原総一郎氏は、Twitter を題材に様々な有名人と会話をしているのですが、Twitter について語っているのは、前半だけであり、後半は「ITと政治の話」に主が置かれています。

これはこれで非常に参考になり、特に楽天株式会社々長の三木谷浩史氏との対談の中での三木谷氏のIT力=国力という言葉はまさに同感でした。

早く国政の場にこのような考えをしっかりと持った人物が登場しないものかと思っていますが、残念ながらこの3年半、そこだけは我が国に劇的な変化は無い様に思われました。

Share Button