2013年3月31日日曜日

DLNA Playerについて

自宅ではバッファローのNASを使ってますが、こいつがDLNAサーバーの機能を持っています。(Fullスペックかは怪しいが)それで、PC部屋(2階)ではそれで見てたんですが、1階居間のTVをRegzaに買い替え、それ用のDVDプレーヤー代わりにPS3買いました。こいつがDLNAプレーヤーの機能を持っており、NASを見ることができるのに気づきました。「もしや!?」と思って試してみると、1階のTVでNASの中身を見ることができるじゃありませんか!こいつはいいやと思ったんですが、どうもファイルによってコマ落ちがひどいことがあることに気づきました。最初はLANの問題(2階と1階はACライン上にEthernet信号通す変換器使ってます。そのため10Mbps台しか望めません。)かと思ったんですが、同じファイルを1階のPCで見てみると、普通に見れます。
ちなみに、問題のファイルのコーデックは"avi"で古いデータです。ほとんどのファイルは"mp4"なんですが、どうもPS3の"avi"に対するエンコーディング能力がダメダメなようです。(おそらくSPE全然使わない、CPUだけのプログラムなんだろな)ちなみに1階でNexus7にDLNAプレーヤー機能のアプリを入れてみると、普通に見れました。
PS3ってCPUは面白い(Regzaも同じCPU使ってますね)んですが、もうソニーもあんまり力入れてくれないだろうな~。まあ"avi"ではもうファイル作らないから、ほとんど問題はないんですが。

2013年3月16日土曜日

Raspberry Pi Webサーバー設定(WordPress)

Raspberry Piで少し遊んでみて、さて次にどうするかと考えました。やはり計算とかするには遅いし、でも消費電力は非常に少ないのでWebサーバーにしてみるか。(普通のPCで、24時間電源入れっぱなしは、やはり怖い)


1.まずシステムを最新に
$ sudo apt-get update
$ sudo apt-get upgrade

2.次に以下を順番に

$ sudo apt-get install apache2
$ sudo apt-get install php5
$ sudo apt-get install mysql-server
(mysqlのrootパスワード設定を聞かれます)
PHP関連追加インストール
$ sudo apt-get install php5-mysql php5-curl
$ sudo apt-get install php5-gd
PHPの中間コードキャッシュモジュール 処理が速くなるらしい
$ sudo apt-get install php-apc

3.Apache起動
apache2のパッケージをインストールした時点で起動はしている。
デフォルトは、/var/www/index.htmlを表示している。
設定ファイルがhttpd.conf→apache2.confに名前が変わったらしい。
/etc/apache2/以下にある。

4.Apache設定
httpdをどのユーザーアカウントで動かすかだけは設定する。色々設定箇所が変わるようだが(たとえば今回は設定ファイル名がapache2.confだけど、たいていはhttpd.confだし)、まずアカウントを作成する。

$ sudo useradd apache

ID番号等、すべてデフォルトにおまかせなので、グループも自動的に同じ名称で作成してくれます。これをApacheの動作アカウントとします。
apache2.confでは以下の箇所でhttpd(今回のパッケージではapache2という名前で動いてた)を設定します。

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

envvarsというファイル中で設定する環境変数を使ってるとのことなので、そこで環境変数を先ほど作成したapacheに変更します。これで後はapache2を再起動してやればOK。

$ sudo /etc/init.d/apache2 restart

5.MySQL データベースの準備
WordPressが使っているデータベース、ユーザーを準備してやらないといけません。

$ mysql -u root -p
Enter password: ←ここでmysqlをインストールした時、設定したパスワードを入力
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.28-1 (Debian)

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database wpdb;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on wpdb.* to 'wpadmin'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql>

データベース名:wpdb
データベースユーザー名:wpadmin
パスワード:password
ホスト名:localhost

でデータベースの準備をしました。(パスワードがちょっとという気はしますが、説明用ですから。)


6.WordPressの初期設定
wordpressをDLして、/var/www以下に解凍します。(apacheのデフォルトページ)一応、ファイルのオーナーは先ほど作成しておいたapacheにしておきます。(同じ名前にしてしまってわかりづらいな)
wordpressのTopをブラウザで開くと設定ファイル(wp-config.php)がないから作成するか?と聞かれます。


作成するを押すと、データベース設定画面になります。




さきほど準備したデータベースをここで入力します。




無事設定に問題がなければデータベースの生成にかかります。




次にブログのタイトルや管理アカウントの設定画面になります。



これでブログの設定ができました。こんな感じで表示されるようになります。



テーマとか設定してませんから、真っ白けですね。管理用にはログインしてダッシュボードから行います。



これで準備はできました。さて実際に公開するかはもう少し考えます。(セキュリティの問題とか考えとかないといけないし、別途ブログ立ち上げてどうすんだ?という重大な問題があります。目的を整理しないと。)

2013年3月9日土曜日

CentOS sudoの設定

CentOS6を使ってみてたら、コンソールでsudoコマンドで特権コマンド使おうとしたら怒られました。(もちろんパスワード入力は成功しています)


hogehoge is not in the sudoers file. This incident will be reported.

なんかsudoやるにも設定が必要なようです。/etcにsudoersというそれらしきファイルがありましたが、viで開いてみても一杯書いてあって意味が分かりません。
こんなときはググって調べます。すぐに見つかりました。

# visudo

いったんrootになって、専用のviコマンド使います。これで/etc/sudoersがviで開かれます。最下段に以下を追加。

%hogehoge ALL=(ALL) ALL

ちょっと乱暴ですが、hogehogeにsudoですべての特権コマンドを実行できるようにしました。編集と保存はviと同じです。これでsudoが使えるようになりました。

PS
その他やってたら、CentOS6って日本語入力がまだデフォルトでできない。(デスクトップ等、日本語が出てたので気づかなかった。)日本語入力しようとしてもどうしても動かない。しかたないのでまず、groupinstallで"Japanese Support"をインストールして、LANGをja_JP.UTF-8に変更。
あと日本語入力メソッドだけど、本来はscim-anthyを使うらしいんだが、まだCentOS6用にはできてないので、プロトタイプ版?ibus-anthyをインストール。しかもこれだけではだめで、ibus-setupして設定したり、/usr/bin/ibus-daemonが自動起動するようにと色々設定しないとだめでした。

2013年3月2日土曜日

Androidプログラム開発-GUIの文字サイズ

AndroidはPCと比較すると画面が狭い!それで表示する量を絞るんですが、やはりあと少しではみ出すことがあります。
そんなとき、全体的に文字サイズを小さくすれば何とか入るのにと思うけど、開発環境のGUI作成editorには文字サイズに関する設定が見当たりません。(項目が多すぎて、見つけきれてないのかもしれませんが・・・)
こういう時、よくやるのがネットで調べて直接キーワードをactivity_main.xmlに対し編集してしまいます。
テキストサイズの設定は以下のキーワードでした。

android:textSize="15sp"

そのまんまですね。ただデフォルトだとこのキーワードが生成されないんですよ。"sp"は数値の単位がpixel単位じゃないよという意味です。(詳しいことは忘れましたが、pixel単位でデザインしてしまうと異なる端末では画面解像度が違うので、端末ごとにレイアウトが崩れてしまいます。それを防ぐため、仮想的なスクリーンを設定して、そこでサイズを設定する単位だったはずです)実験してみたところ、デフォルトで"20sp"くらいだったので、少し小さくして画面内に入るようにしました。

もうちょっと勉強しておきました。サイズの指定にはpx(pixels), dp(density-independent pixels), sp(Scale-independent pixels)等があり、最初のpxが文字通りのドット単位です。spはフォントサイズの指定用で、実際の表示サイズは使用しているフォントにも依存します。dpは画面の物理的な密度に基づいた抽象的な単位でテキスト以外のサイズ指定やレイアウト指定はこちらのようです。
このほか、mm, inと物理的なサイズ指定もあるのにびっくり。

Java 数値フォーマット

これまで特に気にしてませんでしたが、Androidアプリを作ってみると画面が狭いせいで余計、計算結果の出力桁数で困ります。(制限したい)
少し調べてみました。 "String" + "format" + "書式"とかでググればすぐでてきたんで、詳細は書きませんが、例を一つ。

String.format( "%.2f", work); // workという浮動小数点の変数を、小数点以下2桁で文字列に変換

なんとなくCのformatに似てますね。String以外にもformatという書式変換用のメソッドを持っているものはあります。直接数値変換したい場合なんかはそちらを。