投稿

9月, 2013の投稿を表示しています

Ubuntu13.10インストールの雑記 (betaからリリース版まで)

イメージ
気が早いですが、Ubuntu13.10のベータ版を実機にインストールしてみました。

お約束の2点を。
・この時点でのUbuntu13.10は評価用のベータ版です。バグが残っている可能性があるため、あくまでリリースを待ち、導入する場合は自己責任で行いましょう。
・ここに書いた不具合はベータ版のものです。リリース版では解決している場合があります。


また、本記事は Ubuntu13.10 リリースまで、気づいた点などを更新する予定です。

それでは始めます。
なお、作業手順自体はUbuntu 13.04再インストール時の雑記に書いたままのものは省略しています。




インストール時の Ubuntu One設定を回避する emailなどの設定項目に何も入力せず進めば、何も問題なくインストールを進めることができます。


デュアルディスプレイ起動時のノイズが出なくなった Ubuntu13.04ではデュアルディスプレイ環境で出ていた起動時の画面ノイズが出なくなりました。今のところ不具合などもありません。
デュアルディスプレイ・デュアルペンタブレット共に、13.04の頃と同じように設定でき、動作も安定しています。

GitやHgをNautilusでチェックできる RabbitVCS (Git)や TortoiseHg (Mercurial) が通常のリポジトリからインストールできます。
以前はPPAリポジトリを追加する必要がありました。


システムテスト 大したことではありませんが、少しでも開発に貢献できればと思い、システムテストを実行しました。
システムテスト中に不具合が発生したものの、テスト自体は問題なく最後まで進み、システムのレポートをUbuntu開発サーバに提出することができました。


Skype通話でサウンドの不調 10/01の状態:Skype Test Callはできるようです。
ただ、しばらくするとSkypeがノイズを鳴らしはじめます。

ccsmによるALTキーの無効が効くようになった Ubutu13.10はデフォルトでは、Altキーをタスクバーの表示に使えません(Unityデスクトップのコマンド入力バーのショートカットになっている) 。
ccsmにてAltキーの拡張を無効にすることで、タスクバー表示などができるようになります。
Ubuntu13.04では、この設定をしても上手く動か…

100均の液晶保護フィルムを13インチのノートPCに貼ってみました

イメージ
ノートPCの液晶保護フィルムが100円で買えるなんて、良い時代になりました。

ダイソーに行ったら、ノートPCで使えそうな液晶保護フィルムがあったため、衝動的に購入。



A4サイズと書いてあります。私が使っている13インチワイドのノートPCで使えるかどうかわからなかったのですが、家に帰ってサイズを測ってみると、どうやら使えるようです。
(A4サイズ: 210mm x 297mm 。枠まで覆うサイズ(13インチワイド MacBookPro用など)はありませんが、液晶画面だけなら、たぶんMacBookAir13インチなどでも使えると思います。)

もちろん、ノートPCに合わせてカットする必要はあります。
今回はノートPCから見て縦のサイズをカットして調整する必要がありました (横サイズも調整したのですが、正直必要なかったような気がしています)。




フィルム自体のレビュー。
製品には書いてありませんが、フィルタの種類は光沢のあるグレアです。
電源を切ると顔が映る。使っていても、顔の輪郭が映り込みます。
このあたりは、グレアフィルムとしては当然かと思います。
フィルムの透過率も表記されていませんが、貼ってみて、透明度が低いとは感じません。
ノートPCを使っている間、フィルムを意識することはありませんでした。
材質が良いのかどうかはわかりません。フィルムの薄さが透明度の高い理由なのかもしれません。

前のフィルムが長期使用で汚れてしまっていたこともあり、今回の100円均一フィルムへの交換は満足できるものでした。
とはいえ、作業ミスでホコリが入ってしまったので次はもっと上手に貼ろうと思います(使っているときは見えないので問題ありませんが)。


ノートPC用に激安の液晶保護フィルムが欲しい方はぜひ試すべきだと思います。
なにしろ100円なので、失敗も交換も気軽です。


今回は安価なフィルムによる改修でしたが、ノートPCのさらなる拡張を目指すならば、DVDドライブをHDDに換装してSSD搭載+容量増は検討する価値があると思います。

石粉粘土とクロッキー帳を購入 (多摩地区)

イメージ
実際に住みはじめる前、東京にはなんでもあるのだろうなと思っていたのですが(そして実際、東京という括りであれば大抵のものは存在するのですが)、探していたものがフィギュア制作素材としてのファンド(石粉粘土)であったこともあり、ちょっと探すのに手間取りました。


現在住んでいる多摩地区から、石粉粘土を買うためだけに秋葉原に行くのもなぁ、と思います。

インターネット通販ではAmazon経由で扱っている会社があるのですが、

石粉粘土500円+送料500円になってしまいます。
わざわざ買い物に行く手間を考えたら送料を払ってもよかったのですが、何かのついでに買ってこれる範囲で売っているなら、そちらで済ませようと考え、別の入手ルートを探した次第です。

直接「ファンド」で検索しても出てこないのは当然としても、キーワードは「画材」だったようです。ようするに「画材屋」を探せば良い。

立川にある世界堂というお店で発見。


そこでハーフサイズのファンドを見つけて、このサイズが売られているのを初めて知りました。
価格的にも、400g:500円で、200g:260円なので、使い始めてから水分が抜けないように保存する面倒を考えると、このサイズを買うのもありかなと考えています。


三菱ハイユニは立川駅の駅ビルで見つけて、あらかじめ確保していたものです。今回はサイズ比較用に置きました。

翌日、ファンドを保存するために食品用の密封袋を購入。
材料は確保できたので、まったりと作業開始です。

gstreamer-sdkの導入および、SSHによる音声の転送

イメージ
もうそろそろ、自作アプリで音を出す方法を確保しようと考えました。
そこで、マルチプラットフォームで使えるライブラリとして、GStreamerを試しました。
環境はUbuntu 13.04 amd64です。


マルチプラットフォームなサウンドライブラリの選択肢としては、他にlibaoやOpenAL Softなどがあるようです。

SDKの導入とサンプルソースを実行するまで まずはGstreamerの公式ページから、DownloadSDK->Linuxと移動し、ドキュメントまで飛びます。


ドキュメントに書いてある方法で、SDKを導入します。
リンク先から gstreamer-sdk.list を入手したら、コマンド操作でSDKをリポジトリに追加します。
(FireFoxで試しましたが、右クリックで「リンク先をダウンロード」しなければいけませんでした)。

sudo cp gstreamer-sdk.list /etc/apt/sources.list.d/

wget -q -O - http://www.freedesktop.org/software/gstreamer-sdk/sdk.gpg | sudo apt-key add -
sudo apt-get update

sudo apt-get install gstreamer-sdk-dev

インストール後に、 /opt/gstreamer-sdk/bin/gst-sdk-shell  を実行するように書いてあります。これはどうやらパスなどをターミナルに設定するシェルスクリプトのようです。

設定したら、シェル上でpkg-configの出力を確認しました。
pkg-config --cflags --libs gstreamer-0.10
実行結果 (私の環境の場合)
-pthread -I/opt/gstreamer-sdk/include/gstreamer-0.10 -I/opt/gstreamer-sdk/include/glib-2.0 -I/opt/gstreamer-sdk/lib/glib-2.0/include -I/opt/gstreamer-sdk/include/libxml2  -pthread -L/opt/gstreamer-sdk/lib -lgstreamer-0.10 -lgobjec…

libssh2をコンパイルしてみた

イメージ
暗号化通信に興味が出たので、libssh2の使い方を調べてみることにしました。


libssh2が使えるようになれば、自作アプリケーションにssh2による暗号化通信を組み込めるかもしれないと考えています。
sshポートフォワーディングのような使われ方もしていますので、バイナリ送受信はできるわけですし。

実行環境はUbuntu 13.04 amd64です。

libssh2の入手とコンパイル
公式サイトからリポジトリの情報ページまで行ってGitリポジトリのURLを見つけました。
作業ディレクトリを作成し、その中でリポジトリを取得します。
 git clone git://git.libssh2.org/libssh2.git

取得したlibssh2の中にcdでディレクトリ移動して入ります。
最初にconfigureを作成。
./buildconf

configureを実行。
インストール先を指定したかったので、今回は--prefixオプションを付与しています。
(ソースのひとつ上のディレクトリをインストール先に指定。)
./configure --prefix=$(dirname $(pwd))

実行の際、ライブラリが無いことを怒られるので、
sudo apt-get install libssl-dev libxcrypt-dev -y

として、SSLなどのライブラリを導入します。
Makefileができているはずなので、コンパイルします。
make
make install


エラーがでなければ成功です。
ls ..
すれば、make install前には無かった include lib share のディレクトリが出来ていることが確認できるはずです。



サンプルの実行テスト ソースのディレクトリの中にexampleディレクトリがあります。
その中には、大量のサンプルソースとMakefileが入っているはずです。
サンプルはmakeするまでもなく、ソースと共にビルドされています。

サンプルの実行テストを行うには、SSHで接続可能なユーザが必要となります。
つまり.sshの下にid_rsaとid_rsa.pubが配置されたテスト用ユーザを作る必要があります。
(テストなので、自分で自分にSSH接続します。)

#sshサーバのインストール
sudo apt-get install o…

GIMP2.9をコンパイルするスクリプト (Ubuntu13.04)

イメージ
Ubuntu 13.04環境で、最新のGIMPをGitリポジトリから取得してコンパイルするスクリプトを公開します。
(2013/10/30 Ubuntu13.10で使用可能です)。

ダウンロードはgithubからどうぞ。



使い方は、ダウンロードしたスクリプトを2回、実行するだけです。
sudo ./gimp_make.sh --apt
./gimp_make.sh

詳細なオプションなどは、別途READMEおよびスクリプトそのものをご参照ください。

1回目の --apt オプションで、パッケージマネージャから導入可能なライブラリやアプリケーションを導入しています(要管理者権限)。
 2回目のオプション無し実行でGIMPのコンパイルを行います。また、GIMPのコンパイルに必要で、Gitリポジトリから入手する必要のあるライブラリの導入も、すべて自動で行います。


Ubuntu 13.04 環境で動作を確認していますが、無改造か少し変更すれば、12.04でも動作すると思います。


雑記 基本的にGIMPは、最新に近いバージョンのGEGLとBABLを要求します。
そのため、この2つはGitリポジトリから取得してコンパイルする必要があります。
また、その際にglibの最新版を要求されることがあり、glibも最新版をコンパイルして使用するようになっています。

これらの情報は、コンパイル時にチェック機能が働くのでその時にわかります。
「〜が不足しています」「〜のバージョンが古過ぎます。バージョンx.x以上が必要です」という表示が英語で出るようになっています。
とはいえ、ソースを落としてきて、一つずつ足りないライブラリを入手していく作業は面倒なので、スクリプトにまとめることにしたわけです。



GIMP2.6の時代、イラストに適したG-Penという機能が追加された、しげっち氏などによるgimp-painterというパッチがありました。(2.8版も開発中のようです。)
これを利用するには、Linux環境ではGIMPのソースを入手して、ユーザがコンパイルをする必要がありました。
このスクリプトはその時代に原型を作ったものです。

将来的には、GIMPのソースを把握して、何か貢献できれば良いなと思っているのですが、このスクリプトによって、GIMP開発の敷居を少しでも下げられれば良いなと思います。

phpによるシンプルな画像アップローダと、サンプルのソースコード

イメージ
ファイルアップローダ検索して見つかるのが、古いPerlのコードだったりするのが不満で、仕方なしに書いたPHPによる画像アップローダプログラムです。
サンプルのソースコードでは、JavaScriptによりアップロード前の画像をプレビュー表示する機能もおまけに付けてあります。



特徴は、アップロード画像の取得処理の呼び出しが、関数で一行にまとまっていることです。
また、サンプルプログラムとして扱いやすいよう、アップロードフォームとアップロード後のページを同じページにしています。
phpファイルを配置して、アップロード画像の格納ディレクトリを作るだけで動作確認ができます。

アップロード後に別ページへ遷移したい場合は、form要素を書き換えて、遷移先ページにアップロード画像の取得関数を配置してください。



ページソースはgithubに置いておきました (ライセンスは修正BSDです)。

いちおう、以下にサーバ構築の手順も書いておきますが、参考程度に。

apacheとphpモジュールをインストール Ubuntu Linuxならば、apt-getする。
 (sudo apt-get install libapache2-mod-php5)
Windowsならば、XAMPPをインストール。

ブラウザでhttp://localhostにアクセスしてページが表示されることを確認。
(phpの動作確認はphpinfoを使う手順などで行なってください。)

phpページソースを配置 今回はサブディレクトリを作って、その下に画像アップローダを作ることにします。

Webページのルートディレクトリは、
Ubuntu Linux ならば、 /var/www
WindowsのXAMPPならば、  c:¥xampp¥htdocs (¥は半角)

この下に upimg という名前でサブディレクトリを作ります。
(ディレクトリ名は任意)
この中に、upper_min.phpという名前でテキストファイルを作成して配置します。
githubから直接ファイルをダウンロードしても良いですし、テキストのコピーペーストでも構いません。

ブラウザで、Webページが見られることを確認します。
(URLは多分、http://localhost/upimg/upper_min.php です。)
このままでは画像アップロードができ…

USBメモリで持ち運べるOpenCV開発環境

イメージ
OpenCV2.4およびOpenCV2.2の開発環境を、USBで持ち運べるように構築しました。

github上でのこちら2.2版および、2.4.6版で公開しています。
ダウンロードして使ってください。

以下、解説は2.4.6版に準拠していますので、2.2版を使う場合は、適宜読み替えてください。

注意:
2013/11現在、2.4.6版は、最新のMinGW環境でコンパイルしたプログラムの実行に失敗します。
2.2版を使用してください。
また、2.4.6版を使用したい方は、古いMinGWを使用してください。
(2012/05付近のMinGWによるコンパイル成功を確認しています。)
また、ユーザ環境でコンパイルしたOpenCVライブラリならば上手く行くかもしれません。(参考URL)





通常の(VisualStudioを使った)OpenCV開発環境に対して、以下の特徴を持ちます。
・すでにOpenCVを導入しているPCでも、導入済みのOpenCVとお互いに影響がありません。
・当然、古いバージョンでOpenCVが導入済みであっても、最新のOpenCV2.4が利用できます。
・USBメモリに入れて、開発環境ごと動作環境を簡単にコピーおよび持ち運びすることができます。
・Linux環境でもそのまま動きます。



イントロダクション 当時、所属していた大学の研究室でOpenCVを取り扱っていたので触ってみたことがあります。
その過程で、Webに多くの情報があるにも関わらず、どの方法に従っても上手く行かず、驚いた経験があります。
(このあたり、ARToolKitもそうでした。)
仕方がないので、Webの情報を参考にして繋ぎあわせ、独自に開発環境構築の手順を確立しました。

また、他にもこれを作った理由として、
・初心者がやりがちな「Webで調べて見つかるいくつもの方法で、いろいろなバージョンのOpenCVを導入しまくった結果、混在して環境が把握できない」というエセDLL HELL状態に巻き込まれるのを避けたい。
・OpenCV自体はマルチプラットフォームでLinux対応しているので、WindowsおよびLinux環境で、共通のソースとコンパイル手順が使えるようにしておきたい。
・ソース中のロードライブラリィ・マクロが汚いから嫌い(しかもこういったソースに限ってパス指定がフルパスで移植性…