2014/12/14(日)弊社サイトのスマートフォン&タブレット対応
2017/10/12 17:55
次の仕事が来る前にやってしまわないと、この先ずっとやる暇が無いので、今やっています(苦笑)
スマートフォンやタブレットの場合、PC版とさほど大きな差は無い(Flash が基本的に使えないというやや重篤な問題はある)ものの、画面を縦にしても横にしても、閲覧に耐えうるものにするために「レスポンシブ Web デザイン」という手法を採用しているところが多い。
これは、アクセス元のブラウズ横幅などによって、自動的に適用するCSS を切り替え、表示体裁を変えることが出来る仕組みで、HTML の更新の手間を大きく省くことができるのですが、案外デザインの細かい部分に手が届かない難点があります。
弊社では、スマートフォン向けに3種類の表示レイアウトをサポートすることにしています。
と、いうことで、弊社のスマートフォン&タブレット向けサイトも「レスポンシブWebデザイン」で対応です。
↓↓↓ スマートフォン縦表示とタブレット縦表示 ↓↓↓
↓↓ スマートフォン横表示(横幅の関係でタブレット縦表示と同じ)↓↓
↓↓↓ タブレット横表示 ↓↓↓
作業完了次第、順次提供開始になります。
2014/12/08(月)Raspberry Pi model B+ をDNSサーバにしてみる
2017/10/12 17:53
「返せ」と言われれば返却しなければなりませんが、同じものを買って返すということで。。
こういう代物は正直なところ、業務で扱わない限り関わることはまずありませんが、今回はたまたまですね。
確かに色々できるのですが、自立的に最初から何もできるわけではなく、このボード用のOSとアプリケーションを人手でインストールする必要があるため、取引先の業態ではコスト的・生産性的に合わないかなというと ころです。
このボードでは Debian 系の Linux OSである、RASPBIAN をインストールするのが確実。
こちらから、ダウンロードできます。→ http://www.raspberrypi.org/downloads/
提起サイトには掲載されていない FreeBSD10 なんかも FreeBSD本家サイトでは提供しているのですが、model B 用であり、model B+ には今のところ対応できていません。FreeBSD11-current で動作した例も見受けられる のですが、筆者の環境では上手くいきませんでした。
このボードだけでは、本当に何もできず、別途 8GByte 以上の microSD カードと、microUSB のACアタブタ(スマホ充電用のもので可)、HDMI ケーブルとディスプレイ、USBキーボードとUSBマウスが必要になります。
microSD カードは、32GByte 以上で class10 がお勧めです。
筆者は、東芝製の 32GByte,class10 ものを採用しました。
OSをインストールする際、予め microSDカードをフォーマットするように書かれていますが、通常、その必要はありません。
また、最近は Raspberry Pi model B+ 用の専用ケースが 1000円から 1500円前後で売られてはいますが、そのカネさえままならないので、簡易的なユニットを、下記のようにこしらえました。
Debian 系 Linux を常用している方々であれば、すんなりと触れると思います。
筆者は FreeBSD 使いなので、面食らいましたが。。orz
試行錯誤がありましたが、本日から実用試験的にこのボードで運用開始しました。
主目的は、消費電力の低減(→ 電気代の削減)にあります。
上手くいけば 10%弱の節電が実現できるはず・・です。
2014/11/24(月)suPHP の構築 ― Ver 0.7.2 からは一筋縄でいかない
2017/10/12 17:52
これも今までのように行かず、導入に面食らいました。
# cd /usr/local/src # tar -xvzf suphp-0.7.2.tar.gz # cd suphp-0.7.2 # aclocal && libtoolize --force && automake --add-missing && autoreconf # ./configure --with-apr=/usr/local/apache2/bin/apr-1-config # make # make install(configure のオプション指定は、実際にはこれでは大きく役不足です)
ポイントは 4行目。
これがないと、
cannot find install-sh, install.sh, or shtool in config "@"/configのようなメッセージが出るだけで、何も出来ません。
aclocal,automake 等は、FreeBSD の場合、 ports の devel/autoconf 、 devel/automake をインストールすることで入手できます。
libtoolize を実行しないと、make時に Version mismatch error となってしまう模様。
〔参考〕suPHPのインストール (がらくたネット)
2014/11/24(月)FreeBSD における mysql のアップデート手順
2017/10/12 17:50
情報量が多いので何とかなっているというところでしょうか。
1)先ずは、バックアップ。 これは常識的に行う作業です。
# mysqldump -A -u user -p > dumpfile.sql
これで、全てのデータベースクラスタを SQL にてダンプ出力します。
SQL でないと、バージョンが異なるアップデートの際、データを元に戻せません。
2)FreeBSD ports にてインストール(例示は mysql 5.5 の場合)
# cd /usr/ports/databases/mysql55-server
# make BATCH=yes WITH_CHARSET=utf8 WITH_XCHARSET=all install clean
# rehash
3)データベースクラスタの設置場所をこしらえる
# mkdir /home/db/mysql
# chown -R mysql:mysql /home/db/mysql
4)設定情報の雛形をコピー
# cp /usr/local/share/mysql/my-medium.cnf /home/db/mysql/my.cnf
# chown mysql:mysql /home/db/mysql/my.cnf
# chmod 644 /home/db/mysql/my.cnf
5)サーバ起動時に自動起動するようにする
# vi /etc/rc.conf
〔/etc/rc.conf に下記を追記〕
mysql_enable="YES"
mysql_dbdir="/home/db/mysql"
6)mysql の設定
# vi /home/db/mysql/my.cnf
〔/home/db/mysql/my.cnf の [mysqld]セクションに追記〕
skip-character-set-client-handshake
character-set-server = utf8
datadir = /home/db/mysql
〔/home/db/mysql/my.cnf の [client]セクションに追記〕
default-character-set = utf8
7)mysql サーバを起動
# /usr/local/etc/rc.d/mysql-server start
Starting mysql.
8)データベースの初期設定
# mysql -u root
mysql> SET PASSWORD FOR root@localhost=password('mysql_root_pass');
(mysql root ユーザのパスワード設定。任意の文字列を指定。)
mysql> SELECT user,host FROM mysql.user;
+------+---------------------+
| user | host |
+------+---------------------+
| root | 127.0.0.1 |
| root | ::1 |
| | hoge.basekernel.jp |
| root | hoge.basekernel.jp |
| | localhost |
| root | localhost |
+------+---------------------+
6 rows in set (0.00 sec)
#上から3つめと上から5つ目は、空ユーザで、誰でもログインできてしまうため、削除。
mysql> DELETE FROM mysql.user WHERE user='';
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.00 sec)
#データベース test を削除。
mysql> DROP DATABASE test;
mysql> EXIT;
Bye.
9)リストア
# mysql -u user -p < dumpfile.sql
Enter password: mysql_root_pass
(パスワードを入力)
#以下は任意
mysql> CREATE DATABASE db_name;
mysql> GRANT ALTER,CREATE,DELETE,DROP,INSERT,LOCK TABLES,SELECT,UPDATE ON db_name.* TO user_name@localhost IDENTIFIED BY 'user_pass';
mysql> EXIT;
Bye.
○ ログイン
# mysql -u root -p
Enter password: mysql_root_pass
(パスワードを入力)
○ バージョン表示
# mysql --version
mysql Ver 14.14 Distrib 5.5.40, for FreeBSD9.3 (i386) using 6.3
○ ユーザ削除
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_name'@'localhost';
mysql> DELETE FROM mysql.user WHERE user='user_name' and host='localhost';
〔参考〕FreeBSD サーバ構築マニュアル MySQL5 インストール
freebsd.server-manual.com
〔参考〕FreeBSD 9.1-RELEASEにMySQL 5.5をインストール
クソゲ~製作所
2014/11/23(日)FreeBSD における PHP 5.5.x の mysql サポート
2017/10/12 17:48
PHP 5.5系にて mysql アクセスのサポートをしようと構築をかけると、
構築の最終段階(本当に構築の最終工程)で、
ext/mysqlnd/.libs/mysqlnd_ps_codec.o: In function `ps_fetch_float': ext/mysqlnd/mysqlnd_ps_codec.c:233: undefined reference to `__extendsfsd' ext/mysqlnd/mysqlnd_ps_codec.c:233: undefined reference to `__extendsddf'のようなエラーが出て構築できない現象に嵌りました。
FreeBSD 10.x系 ではこのようなエラーは出ません。
おそらく gcc コンパイラ と clang コンパイラの違いなのでしょう。
PHP 5.5 におけるmysql サポートは複雑で、先ず、
・ mysql インタフェース
・ mysqli インタフェース
・ PDO-mysql インタフェース
の3種類あります。
このうち、最初の mysql インタフェースは古いので、利用は非推奨。
将来のバージョンでは削除されることが決まっています。
mysqli は拡張 mysql インタフェース、 PDO-mysql は Perl で言うところの DBI インタフェースみたいなものです。
今どきの PHP アプリケーションは、mysqli と PDO-mysql を使うように強い推奨がなされている状態です。
さらに、この内部モジュールは、各インタフェース専用以外に3つを統合した mysqlnd というものがあり、構築オプションによっては mysqlnd をインストールするようになっている感じです。全部で mysql サポートがモジュール4つあるらしく、何故こういう面倒なことになっているのか、利用者には理解不能です。
どうやら、configure で指定する構築オプションの組み合わせで mysqlnd を使う場合に、上記のエラーとなるようです。
今のところ、FreeBSD 9.x 以下のバージョンで PHP 5.5 を mysql 対応にする場合、 configure のオプションは、必ず以下をつけるといいです。
--with-mysql=/usr/local --with-pdo-mysql=/usr/local --with-mysqli=/usr/local/bin/mysql_config --disable-mysqlnd --with-mysql-sock=/tmp/mysql.sockポイントは --disable-mysqlnd でmysqlnd を外す指定です。
環境によっては mysql の unix ソケットが検出できず、この場合も mysqlnd を使うように強制されてしまうようなので、明示的に指定します。
筆者は PHP も mysql も使いません。昔からこの類の変更が多いからです。
アプリケーションの寿命が長い perl と postgreSQL を多用しており、長い目でのメンテナンス工数の面からお勧めしています。
2014/10/30(木)うーむ・・・ports/pakages の嫌なところ
2017/10/12 17:46
まだ依存関係があるorz
依存関係にあるパッケージを全て消そうとするのです。
自動的に依存関係まで処理して更新してくれれば楽なんですが・・・
こんなメンテナンスやる奴もあまりいないでしょうね。
しかし、不可解な挙動が突如発生する原因のひとつが、こうしたバージョン管理の問題なんです。指摘されてから対応すると無駄に時間とられるので、それがすごく嫌なのです。
2014/10/24(金)xml 関係のライブラリを最新にしたら・・・
2014/10/01(水)気象通報サイトを作ってみた
2017/10/12 17:43
未完成部分多いですが、一応見せられる状態になったので掲載します。
気象庁からXMLデータにて情報を貰い、それをHTMLなどに変換して表示等を行う仕組みです。
XSLT や XSD などの知識が無いと作れませんでした。
現在のところ、天気予報・週間天気予報・警報/注意報・土砂災害警戒情報・竜巻注意情報を扱っています。
また、電子メール通知サービスと、ごく簡単なXMLフィード(独自形式)を提供しています。
次は長期予報・地震情報を提供開始する予定ですが、このシステム開発は本業作業ではやれませんので、たぶん年末以降になりそうです。
こちらで提供しています → Web気象通報
2014/07/28(月)FreeBSD9/FreeBSD10 - オンラインマニュアルをUTF-8 で日本語化
2017/10/12 17:41
% man lsとかすると、以下のように表示されます。
しかしながら、筆者は日本人ですから、出来れば日本語で使いたいものです。
FreeBSD については、以下のところで継続的に翻訳・メンテナンスをして下さっている方がおります。→ http://www.koganemaru.co.jp/ 〔小金丸コンピュータエンジニアリングサービス〕
当方もお世話になっています。
ただ、FreeBSD 9/FreeBSD 10 で UTF-8 環境の場合、上記サイトに記されている方法では、上手く日本語マニュアルが表示できません。
自分メモとして以下に手順を残しておきます:
1)該当バージョンのマニュアルをインストール
〔FreeBSD 9.3 の場合〕 % pkg add ftp://ftp.koganemaru.co.jp/pub/jman9/ja-man-doc-9.3.20140726.txz 〔FreeBSD 10.0 の場合〕 % pkg add ftp://ftp.koganemaru.co.jp/pub/jman10/ja-man-doc-10.0.20140522.txz2)小金丸さん作成のマニュアルは、EUC-JP コードでインストールされるため、
これを手作業で UTF-8 に変換・保存する。]
#あらかじめ、nkf (portsカテゴリ:japanese)を インストールしておく必要があります。
〔FreeBSD 9.3/FreeBSD 10.0 共通〕 % cd /usr/share/man % cp -r ja ja_JP.UTF-8 % find ja_JP.UTF-8 -name '*.gz' -exec gunzip '{}' ';' % find ja_JP.UTF-8 -name '*.[0-9]' -exec nkf -Ew --overwrite '{}' ';' % find ja_JP.UTF-8 -name '*.[0-9]' -exec gzip '{}' ';' % nkf -Ew --overwrite ja_JP.UTF-8/whatis3)新しい groff を、ports でインストールします。
〔FreeBSD 9.3/FreeBSD 10.0 共通〕 % cd /usr/ports/textproc/groff (groff 1.22 では、インストールの最終段階でエラーが出るので、 ファイル plist 内の img を含む行を、コンパイル前に削除する必要あり) % make install % make clean4)/usr/bin/man を変更します。
FreeBSD 9.0 からは、man コマンドが 伝統的な shスクリプトで構成されているようです。
〔FreeBSD 9.3/FreeBSD 10.0 共通〕 333c333 < NROFF="$NROFF -T$nroff_dev" --- > NROFF="$NROFF -D$nroff_dev -T$nroff_dev" 936c936 < NROFF='groff -S -P-h -Wall -mtty-char -man' --- > NROFF='/usr/local/bin/groff -S -P-h -Wall -mtty-char -man' 940c940 < TROFF='groff -S -man' --- > TROFF='/usr/local/bin/groff -S -man'ここで、再び、
% man lsとして、以下のように日本語になっていればインストール完了です。
(参考:http://d.hatena.ne.jp/akira_you/20120316/p1
〔FreeBSD 9.0RELASEで日本語manを使う-akira_youの私見〕)