2013年12月22日日曜日

Minimal Debian - 24 Canonプリンタのインストール

Canon MG3130 というプリンタで印刷できるようにする。

ドライバのインストール
Canon ソフトウェアダウンロードより、プリンタードライバー (cnijfilter-mg3100series-3.60-1-deb.tar.gz) をダウンロードする。

解凍し、packages フォルダに移動。
$ sudo dpkg -i cnijfilter-common_3.60-1_i386.deb
$ sudo dpkg -i cnijfilter-mg3100series_3.60-1_i386.deb

CUPSデーモンの再起動
$ sudo service cups restart


プリンタのMACアドレスを調べる
プリンタの電源を入れ、設定ボタンを何回が押し の表示にする。
用紙をセットし、モノクロボタンを押す。すると、MACアドレスが印刷される。

プリンターのスプーラーへの登録
$ sudo /usr/sbin/lpadmin -p MG3100LAN -m canonmg3100.ppd -v cnijnet:/XX-XX-XX-XX-XX-XX -E
XX-XX-XX-XX-XX-XX の部分にMACアドレスを指定する

テスト印字
http://localhost:631 にアクセスし、テスト印字する。

以上。

2013年12月14日土曜日

Minimal Debian - 23 ログインマネージャのインストール

今までは、電源を入れてから
$ login: <ユーザーID>
$ password:
$ startx

としていたが、面倒になってきたので
ログインマネージャをインストールすることにした。

「Slim」という軽量かつシンプルなグラフィカルなログインマネージャを入れる。

$ sudo apt-get install slim

再起動すると、GUI画面が表示され、ユーザーIDとパスワードを入れると
自動でXが起動する。

しかし、自分ひとりしか使わないので、
自動でログインするようにする。

/etc/slim.conf を編集する
default_user <ここにユーザーIDを記入>
auto_login yes

あと、電源も切れるようにする。
$ sudo chmod +w /etc/sudoers
$ sudo vi /etc/sudoers
<ユーザーID> ALL=NOPASSWD: /sbin/poweroff
$ sudo chmod -w /etc/sudoers

openbox のメニューに以下を追加
sudo /sbin/poweroff

これで電源が切れるようになった。
しかし、確認なく切れるので確認を入れるにはどうしたらいいのかな?
スクリプトでも書く?

2013年11月28日木曜日

Minimal Debian - 22 仮想PDFプリンタのインストール

印刷が必要になったのでプリンタの設定をする。

とりあえず、PDF に保存しておいて、後で印刷することにする。
なので、仮想 PDF プリンタ「cups-pdf」を入れる。

インストール
$ sudo apt-get install cups-pdf

プリンタを追加する
http://127.0.0.1:631/
にアクセスし、プリンタを追加する。

ユーザー ID とパスワードが聞かれるのでルートを指定。
(ここで一般ユーザーにすると多分権限がないのでプリンタの追加ができないと思う)

プリンターとクラスの追加 > プリンタの追加 を選択

CUPS-PDF を選び、「続ける」をクリック。

名前と説明を適当に入力し、「続ける」をクリック。

PPD ファイルの「参照」ボタンをクリックし、
「/usr/share/ppd/cups-pdf/CUPS-PDF.ppd」を選択する。

最後に、「プリンタの追加」ボタンを押す。

すでに「PDF」というプリンタがあった。
新しいプリンタを追加したあとで気づいたのだが、
上記で追加したプリンタとは別に、
すでに、「PDF」というプリンタが存在していた。

cups-pdf をインストールするだけで、勝手にできる?
のであれば、プリンタを追加するの作業は不要。

出力先は?
PDF の出力さきは、$HOME/PDF に出力されるようだ。
/etc/cups/cups-pdf.conf で変更できるようだが、このままにしておく。

参考にしたサイト(ありがとうございました)
http://d.hatena.ne.jp/kakurasan/20070707/p1

2013年11月27日水曜日

Minimal Debian - 21 ランチャーのインストール

プログラムを起動するとき、メニューを辿って行ったり、
ターミナルを開いたりするのが面倒になってきたので、ランチャーを入れます。

「gmrun」という小さく高速で、さらに多機能な X11 環境で 動作する GTK+ ウィジェットツールキットを使用したアプリケーションランチャです。 ファイルやプログラム名のタブ補完、ヒストリ機能、簡略的な X 端末 エミュレート、そして URL ハンドリングのような特徴を持ちます。

$ sudo apt-get install gmrun

「Alt + F2」で起動するようにします。

~/.config/openbox/rc.xml に以下を追加。
<keybind key="A-F2">
   <action name="Execute">
     <command>gmrun</command>
   </action>
</keybind>

これで、かなり使いやすくなりました。

2013年11月24日日曜日

Android Studio で Eclipse のプロジェクトを開いてみる

私が過去に作った、「JapaneseCalc」というアプリで試してみる。
GutHub からソースを取ってくる。
$ cd ~/AndroidStudioProject
$ git clone https://github.com/mrp1q7z/JapaneseCalc

Android Studio を起動し、「File > Import Project...」。
Eclipse のプロジェクトのルートフォルダを指定する。

エラー!そのままでは取り込めないようです。

調べてみると、Eclipse の方で Gradle という形式に変換する必要があるようです。
Eclipse を起動し、「プロジェクトを右クリック > Export...」をクリック。

Android > Generate Gradle build files を選択し、「Next >」をクリック。

JapaneseCalc をチェックし、「Next >」をクリック。

そのまま「Finish」をクリック。

Export successfu.が出たら「Finish」をクリック。

何やら、gradle 関連のファイルが追加された。

再び、Android Studio で取り込んでみる。「File > Import Project...」。
プロジェクトのルートフォルダを選択し、「OK」ボタンをクリック。

そのまま「OK」をクリック。

インポート中。

エラー!

Gradle のバージョンがあってないようだ。
以下のファイルを修正したらエラーが直った。
<EclipseのWorkspace>/JapaneseCalc/gradle/wrapper/gradle-wapper.properties
distributionUrl=http\://services.gradle.org/distributions/gradle-1.6-bin.zip

distributionUrl=http\://services.gradle.org/distributions/gradle-1.8-bin.zip


<EclipseのWorkspace>/JapaneseCalc/build.gradle
classpath 'com.android.tools.build:gradle:0.5.+'

classpath 'com.android.tools.build:gradle:0.6.+'

再々度、インポート。今度はうまくいったようだ。

実行してみる。

無事、動きました。


参考にしたサイト(ありがとうございました)
http://stackoverflow.com/questions/20007140/unsupported-method-gradleproject-getbuildscript

Minimal Debian - 20 Grepツールのインストール

「Sagasu」という Grep ツールを入れます。

$ sudo apt-get install sagasu


エディタのコマンドの部分は以下のように変えました。
gvim +%n '%f'

これで、検索語句が見つかった行で開かれます。

Minimal Debian - 19 ファイル検索ツールのインストール

コマンドラインでもファイル検索はできるのですが...
やっぱり GUI でやりたい時もあります。
なので、「Catfish」という検索ツールを入れます。

$ sudo apt-get install catfish


検索も早いし、けっこう便利です。

2013年11月23日土曜日

Android Studio で HelloWorld

Adndroid Studio でお約束の「Hello World」アプリケーションを作ってみます。

Android Studio を起動し、「New Project...」を選択する。

New Project 画面が開くので、次の値を入力する。
Application name: HelloWorld
Package name: com.yojiokisoft.helloworld

あとは、デフォルトのまま「Next」をクリック。

アイコンの設定画面。そのまま「Next」をクリック。

Activity の種類を選択。デフォルトのまま「Next」をクリック。

Activity の名前を入力。デフォルトのまま「Finish」をクリック。

しばらく待つ。初回のみかなり待たされるようだ。
私の場合は、1〜2分待たされた。

できた。さっそく実行してみる。
「Run > Run 'App'」メニューを選択。

実行デバイスを選択。AVD を作ってなかったので作る。
Launch emulator : Android virtual device: の右にある「...」ボタンをクリック。

Android Virtual Devices で「New...」ボタンをクリック。

以下の内容で AVD を作成。

実行画面に戻り、さっき作った AVD を選択し、「OK」ボタンをクリック。

が、以下のようなエラーが出る。
Waiting for device.
/opt/android-studio/sdk/tools/emulator -avd xhdpi_767x1280 -netspeed full -netdelay none

Failed to load libGL.so
error libGL.so: cannot open shared object file: No such file or directory
Failed to load libGL.so
error libGL.so: cannot open shared object file: No such file or directory
Failed to allocate 1999634432 B: Cannot allocate memory

次を実行することによりエラーは出なくなった。

$ sudo ln -s /usr/lib/i386-linux-gnu/libGL.so.1 /opt/android-studio/sdk/tools/lib/libGL.so

が、今度は、CPU が 100% になるものの、いつまでたってもエミュレータが起動しない。

仕方がないので、以下の設定で、新たな AVD を作る。

コマンドプロンプトより以下を実行。
$ <Android SKD>/tools/emulator-x86 -avd hdpi_480x800

無事、エミュレータが起動した。
再び、実行。

無事、「Hello World」が動きました。

エミュレータが起動しない問題は、別途調査するとして
とりあえずは、Android Studio 使えそうです。

Minimal Debian - 18 システム監視ツールのインストール

「Conky」という、システム監視ツールを入れます。

インストール
$ sudo apt-get install conky

設定ファイルをコピー
$ cp /etc/conky/conky.conf ~/.conkyrc

設定ファイルを自分好みに変更
$ vi ~/.conkyrc

以下のように変更した。
# Conky, a system monitor, based on torsmo
#
# Any original torsmo code is licensed under the BSD license
#
# All code written since the fork of torsmo is licensed under the GPL
#
# Please see COPYING for details
#
# Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen
# Copyright (c) 2005-2010 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS)
# All rights reserved.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

alignment top_right
background yes
border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no
use_xft yes
xftfont Ricty:size=12
gap_x 5
gap_y 60
minimum_size 5 5
net_avg_samples 2
no_buffers yes
out_to_console no
out_to_stderr no
extra_newline no
own_window yes
own_window_class Conky
own_window_type desktop
stippled_borders 0
update_interval 3.0
uppercase no
use_spacer none
show_graph_scale no
show_graph_range no

TEXT
System Info ${offset 140}${color green}${time %Y/%m/%d(%a) %k:%M}
${color white}$hr
${color slate grey}Uptime:$color $uptime
${color slate grey}Frequency (in MHz):$color $freq
${color slate grey}Frequency (in GHz):$color $freq_g
${color slate grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color slate grey}Swap Usage:$color  $swap/$swapmax -  $swapperc% ${swapbar 4}
${color slate grey}CPU Usage:$color   ${cpu cpu1}%  /    ${cpu cpu2}%  -  $cpu% ${cpubar 4}
${color slate grey}Processes:$color $processes  ${color slate grey}Running:$color $running_processes
$hr
${color slate grey}File Usage:$color ${fs_used /}/${fs_size /} ${fs_bar 6 /}
${color slate grey}Networking: Up:$color ${upspeed eth0} ${color slate grey}  Down:$color ${downspeed eth0}
${color slate grey}Battery:$color   ${battery}
$hr
${color slate grey}Highest CPU: ${color lightgrey}      PID    CPU%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1}%
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2}%
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3}%
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4}%
${color slate grey}Highest MEM: ${color lightgrey}      PID    MEM%   Size
${color lightgrey} ${top_mem name 1} ${top_mem pid 1} ${top_mem mem 1}%  ${top_mem mem_res 1}
${color lightgrey} ${top_mem name 2} ${top_mem pid 2} ${top_mem mem 2}%  ${top_mem mem_res 2}
${color lightgrey} ${top_mem name 3} ${top_mem pid 3} ${top_mem mem 3}%  ${top_mem mem_res 3}
${color lightgrey} ${top_mem name 4} ${top_mem pid 4} ${top_mem mem 4}%  ${top_mem mem_res 4}

自動で起動するようにする
~/.config/openbox/autostart.sh に以下を追加
conky -b &

2013年11月21日木曜日

Debian wheezy に Android 開発環境を構築(Android Studio編)

Debian 7 Wheezy に Adndroid 開発環境を構築します。
開発環境は Eclipse でなく Android Studio を使います。

※ファイル名のバージョンは、2013/11/21 現在のバージョンなので適宜読み替えてください。

JDK のインストール

$ sudo apt-get install java-package

Oracle のサイトから、jdk-7u45-linux-i586.tar.gz をダウンロードする。
$ make-jpkg jdk-7u45-linux-i586.tar.gz
$ sudo dpkg -i oracle-j2sdk1.7_1.7.0+update45_i386.deb
$ sudo update-alternatives --config java


Android Studioのインストール

Android Developers サイトから、android-studio-bundle-132.893413-linux.tgz をダウンロードする。
ダウンロードしたファイルを適当な場所に解凍する
(私は、/opt/android-studio に置きました)

起動してみる
$ /opt/android-studio/bin/studio.sh

初回起動時は、以下のようなダイアログが出る。
Complete Installation
You can import your settings from a previous version of Android Studio.
設定を引き継ぐか?ということらしい。
「I do not have a previous version of Android Studio or I do not want to import my settings」の方を選ぶ。

無事起動できました。


Android Studio には Android SDK がバンドルされているので
これだけで開発ができます。

参考にしたサイト(ありがとうございました)
http://qiita.com/lambdasakura@github/items/7ae52cbec4a7b5f4bb1c

Minimal Debian - 17 画像ビューワーのインストール

画像ビューワーを
「Viewnior」から「GPicView」に乗り換えました。
これは、Debian のレポジトリに入っているので簡単です。

$ sudo apt-get install gpicview

「Viewnior」は削除しました。
$ sudo apt-get remove --purger viewnior

/etc/apt/source.list.d/crunchbang.list を削除し
$ sudo apt-get update


軽量な「Viewnior」という画像ビューワーを入れます。
Debian のパッケージには入ってないので Chrunchbang から持ってきます。

/etc/apt/source.list.d/crunchbang.list を追加します。
deb http://packages.crunchbang.org/waldorf waldorf main

$ sudo apt-get update

公開鍵を利用できないため... のエラーが出るので
$ wget -O - http://packages.crunchbang.org/waldorf-dev/crunchbang.key | sudo apt-key add -

$ sudo apt-get update

$ sudo apt-get install viewnior

2013年11月20日水曜日

Minimal Debian - 16 画面キャプチャーツールのインストール

scrot という画面キャプチャーツールを入れます。コマンドライン用で軽量なツールです。

$ sudo apt-get install scrot

使い方

画面全体のスクリーンショットを撮る
$ scrot

カレントディレクトリに現在日時のファイル名で保存されます。
$ ls
2013-11-20-205747_1920x1200_scrot.png

カレントウィンドウを撮る
$ scrot -u

選択範囲を撮る
$ scrot -s

5秒後に撮る
$ scrot -d 5

メニューに以下のようなコマンドとして登録して使っています。

画面全体のスクリーンショットを撮る
scrot ~/Pictures/%Y%m%d_%H%M%S.png

カレントウインドウのスクリーンショットを撮る(3秒後)
scrot -u -d 3 ~/Pictures/%Y%m%d_%H%M%S.png

指定範囲のスクリーンショットを撮る
scrot -s ~/Pictures/%Y%m%d_%H%M%S.png

いずれも、「$HOME/Pictures/」に「年月日_時分秒.png」というファイルで保存されます。

ショートカットキーの設定

あと、キーボードショットカットにも登録します。
~/.config/openbox/rc.xml をエディタで開き以下を修正。

    <keybind key="A-Print">
      <action name="Execute">
        <command>scrot -u ~/Pictures/%Y%m%d_%H%M%S.png</command>
      </action>
    </keybind>
    <keybind key="Print">
      <action name="Execute">
        <command>scrot ~/Pictures/%Y%m%d_%H%M%S.png</command>
      </action>
    </keybind>

これで、「PrintScreen」キーで画面全体
「Alt+PrintScreen」キーでカレントウインドウのスクリーンショットが撮れます。

参考にしたサイト(ありがとうございました)
http://d.hatena.ne.jp/ino46/20100919/1284904800

2013年11月18日月曜日

Minimal Debian - 15 オフィスのインストール

めったに使わないのですが、たまたま使う必要が出てきたので、
オフィスを入れることにします。

LibreOffice を入れます。

$ sudo apt-get install libreoffice libreoffice-l10n-ja

現時点での最新は、バージョン 4.1 のようですが、3.5 がインストールされます。
が、これはありまりこだわりがないので、そのまま受け入れます。

libreoffice で起動すると Text Document / Drawing / Spreadsheet
など選択できる画面が出ます。直接 Text Document とかを起動したい場合は
「libreoffice --writer」で起動できます。

他にも、以下のオプションで各機能を直接起動できます。

--writer       create new text document.
--calc         create new spreadsheet document.
--draw         create new drawing.
--impress      create new presentation.
--base         create new database.
--math         create new formula.
--global       create new global document.
--web          create new HTML document.

Minimal Debian - 14 DVDが見れるようにする

DVDをレンタルしてきたので見れるようにします。

VLC メディアプレイヤーを入れます。

$ sudo apt-get install vlc

これで見れるかと思いや、とぎれとぎれに音が出るだけで映像は出ません。
コーディックが必要なようです。

/etc/apt/sources.list.d/videolan.list というファイルを新規に作成し、
以下を入力します。
deb http://download.videolan.org/pub/debian/stable/ /
deb-src http://download.videolan.org/pub/debian/stable/ /

$ wget -O - http://download.videolan.org/pub/debian/videolan-apt.asc|sudo apt-key add -
$ sudo apt-get udate

$ sudo apt-get install libdvdcss2

これで、無事見れました。

参考にしたサイト(ありがとうございました)
http://www.videolan.org/developers/libdvdcss.html

Minimal Debian - 13 タスクバーのインストール

Openbox だけだと使いにくいのでタスクバーを入れます。

tint2 というものです。

$ sudo apt-get install tint2

あと、音量コントロールも入れます。

$ sudo apt-get install volumeicon-alsa

Openbox の起動時に自動でタスクバーが上がるようにします。

$HOME/.config/openbox/autostart.sh

(sleep 2s && tint2) &
volumeicon &

tint2 は左側に垂直に出るようにします。
(Ubuntu の Unity ランチャーのような感じ)

ランチャーは付けずにタスクの切り替えだけできるようにします。
tint2 の設定ファイルは以下のようにしました。

なんだか、ChrunchBang に似てきたぞ。
それだったら、ChrunchBang で良くね。
いえいえ、自分でやるから勉強になるのです。

#---------------------------------------------
# TINT2 Config File (HOME/.config/tint2/tint2rc)
#---------------------------------------------

# Background definitions
# ID 1
rounded = 0
border_width = 0
background_color = #ffffff 5
border_color = #828282 0

# ID 2 - task active
rounded = 1
border_width = 0
background_color = #d8d8d8 30
border_color = #d8d8d8 30

# ID 3 - task
rounded = 1
border_width = 0
background_color = #000000 0
border_color = #000000 0

# ID 4
rounded = 1
border_width = 1
background_color = #888888 20
border_color = #ED2323 60

# ID 5 - taskbar
rounded = 0
border_width = 1
background_color = #000000 0
border_color = #000000 0

# ID 6 - active taskbar
rounded = 0
border_width = 1
background_color = #d8d8d8 8
border_color = #d8d8d8 0

# ID 7 - tooltip
rounded = 3
border_width = 0
background_color = #222222 90
border_color = #222222 90

# ID 8
rounded = 1
border_width = 1
background_color = #888888 20
border_color = #888888 20

# ID 9
rounded = 1
border_width = 1
background_color = #ffec45 20
border_color = #ffec45 20

# Panel
panel_monitor = all
panel_position = center left vertical
panel_items = TSC
panel_size = 100% 48
panel_margin = 0 -1
panel_padding = 0 0
panel_dock = 0
wm_menu = 1
panel_layer = bottom
panel_background_id = 1

# Panel Autohide
autohide = 0
autohide_show_timeout = 0.3
autohide_hide_timeout = 1.5
autohide_height = 6
strut_policy = follow_size

# Taskbar
taskbar_mode = multi_desktop
taskbar_padding = 6 0 6
taskbar_background_id = 5
taskbar_active_background_id = 6
taskbar_name = 0
taskbar_name_background_id = 0
taskbar_name_active_background_id = 0
taskbar_name_font = Liberation Sans 9
taskbar_name_font_color = #828282 100
taskbar_name_active_font_color = #828282 100

# Tasks
urgent_nb_of_blink = 20
task_icon = 1
task_text = 0
task_centered = 1
task_maximum_size = 40 40
task_padding = 2 2
task_background_id = 3
task_active_background_id = 2
task_urgent_background_id = 4
task_iconified_background_id = 3

# Task Icons
task_icon_asb = 80 0 0
task_active_icon_asb = 100 0 0
task_urgent_icon_asb = 100 0 0
task_iconified_icon_asb = 80 0 0

# Fonts
task_font = Liberation Sans 06_55 6
task_font_color = #828282 60
task_active_font_color = #828282 100
task_urgent_font_color = #FFFFFF 100
task_iconified_font_color = #d8d8d8 60
font_shadow = 0

# System Tray
systray = 1
systray_padding = 4 2 3
systray_sort = ascending
systray_background_id = 0
systray_icon_size = 24
systray_icon_asb = 100 0 0

# Clock
time1_format = %H:%M
time1_font = Liberation Mono 10
clock_font_color = #828282 100
clock_padding = 12 4
clock_background_id = 0
clock_lclick_command = gsimplecal
clock_rclick_command = gsimplecal
clock_tooltip = %Y年%m月%d日 (%a)

# Tooltips
tooltip = 1
tooltip_padding = 2 2
tooltip_show_timeout = 0.0
tooltip_hide_timeout = 0.0
tooltip_background_id = 9
tooltip_font_color = #333333 100
tooltip_font = Liberation Sans normal 13.0

# Mouse
mouse_middle = none
mouse_right = toggle
mouse_scroll_up = toggle
mouse_scroll_down = iconify

# End of config

2013年11月17日日曜日

Minimal Debian - 12 音が出るようにする

YouTube も見れるようになったのですが、音がでません。

今回は、音が出るようにします。

$ sudo apt-get install alsa-base alsa-utils

$ sudo alsactl init

音が出るかのテスト

$ aplay /usr/share/sounds/alsa/*

参考にしたサイト(ありがとうございました)
http://linuxforcynics.com/how-to/minimal-debian-install

Minimal Debian - 11 その他のブラウザのインストール

私は、ブラウザのタブを沢山開いてしまいます。
沢山開きすぎて、わけが分からなくなります。

なので、シュチュエーションごとに複数のブラウザを使い分けています。

以前、Chromium を入れたので、
今回は、Firefox と Opera を入れます。

Firefox

Firefox のサイトより、firefox-25.0.tar.bz2 をダウンロードします。
解凍し、/opt に firefox フォルダごと移動します。

Debian のパッケージ管理外になってしまいますが、
最新版の Firefox が入るし、自動でアップデートもしてくれます。

あと、Flash のプラグインも入れます。
Adobeのサイトより install_flash_player_11_linux.i386.tar.gz をダウンロード
解凍して、その中の libflashplayer.so を以下にコピー
/usr/lib/mozilla/plugins

Opera

/etc/apt/sources.list.d/opera.list を追加
deb http://deb.opera.com/opera/ stable non-free

$ sudo apt-get update

キーがどうたらというエラーが出るので
$ sudo wget -O - http://deb.opera.com/archive.key | sudo apt-key add -

$ sudo apt-get update
$ sudo apt-get install opera

※Opera は何もしなくても、Flash サイトが見れました。

Minimal Debian - 10 日本語フォントのインストール

ブラウザで日本語サイトも問題なく見れるのですが、
フォントが汚い。なので、今回はフォントを入れます。

MigMix というフォントを入れます。

下記よりフォントをダウンロードします。
M+ と IPAフォントの合成フォント

ダウンロードした migmix-2p-20130617.zip を解凍
$ unzip migmix-2p-20130617.zip

しかし、unzipがないと怒られるので、GUI 解凍ツールを入れる
$ sudo apt-get install xarchiver

解凍して *.ttf だけを /usr/share/fonts/trutype/migmix/ にコピー

$ fc-cache -fv

以下の情報は間違っていたので訂正します。
etc/fonts/conf.d/65-nonlatin.conf を編集して
デフォルトフォントを MigMix にします。

各フォントの先頭に、新たな family 要素を最上位に追加します。

例:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>serif</family>
        <prefer>
            <family>MigMix 1M</family> <!-- これを追加 -->
          <family>Artsounk</family> <!-- armenian -->
            <family>BPG UTF8 M</family> <!-- georgian -->

訂正後
69-language-selector-ja-jp.conf というファイルを GitHub より取得します。
取得したファイルをホームディレクトリ直下に「.fonts.conf」というファイル名
で置きます。各フォントの先頭に MigMix を追加します。

例:
<?xml version="1.0"?>
  <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
      <!-- Japanese (ja) -->
      <match target="pattern">
        <test qual="any" name="family">
          <string>serif</string>
        </test>
        <edit name="family" mode="prepend" binding="strong">
          <string>MigMix 1M</string> <!-- これを追加 -->
          <string>Takao P明朝</string>

参考にしたサイト(ありがとうございました)
http://www10.atwiki.jp/shirayuu/pages/23.html#id_1eefc3c7
http://www.uetyi.mydns.jp/wordpress/linux-desktop/entry-327.html
http://cpplover.blogspot.jp/2012/03/gnulinuxfontconfig.html 

Minimal Debian - 09 ブラウザ(Chromium)のインストール

今回はブラウザをインストールします。

Debian では Firefox は Iceweasel というのになっています。
ロゴはかわいい「イタチ」なんですが、バージョンが古いので
とりあえず、Chromium を入れます。

$ sudo apt-get install chromium chromium-l10n

Google Chrome には Flashが同梱されているようですが、
Chromium には入っていません。
なので、Flash Player も入れます。

Adobeのサイトより install_flash_player_11_linux.i386.tar.gz をダウンロード

解凍して、その中の libflashplayer.so を以下にコピー

/usr/lib/chromium/plugins

これで、調べ物もできるし、YouTube も見れます。
(まだ音は出ないけど)

Minimal Debian - 08 テキストエディタのインストール

GUI テキストエディタをインストールします。

軽量なのに割と高機能なプログラミング環境を備えている「Geany」という
ものにします。しかし、なんと読むのだろう?

$ sudo apt-get install geany

あと、ついでに、じゃなく。
たまに使うので、Vim の GUI 版も。

$ sudo apt-get install vim-gnome

gnome が付いているためか、なんか、libxxxというのが
芋づる式にいっぱい入れられた。まいっか。

Minimal Debian - 07 日本語入力環境のインストール

日本語が入力できるようにします。

リポジトリにnon-freeを追加。
(すでにしている場合は不要です)

$ sudo vi /etc/apt/source.list

deb http://ftp.jaist.ac.jp/pub/Linux/Debian/ wheezy main non-free
deb-src http://ftp.jaist.ac.jp/pub/Linux/Debian/ wheezy main non-free

source.list を変更したのでパッケージ一覧を更新します。

$ sudo apt-get update

日本語入力は、mozc を使うことにします。

$ sudo apt-get install ibus-mozc mozc-server mozc-utils-gui

いったんログアウトして再度ログインする。

IBUSのセットアップ

$ ibus-setup

GUI の設定画面が開くので
General タブの Keyboard Shortcuts で半角/全角キーのみで起動するようにします。
Input Method タブで Japanese > Mozc を追加します。

参考にしたサイト(ありがとうございました)
http://f-st1029.noc.toyama.nsk.ne.jp/blog/mt/2011/10/mozc-on-wheezy.html
http://9jp.info/archives/11957

Minimal Debian - 06 ファイラーのインストール

次はファイラーをインストールします。

その前に、ルートで作業するのは危険だし面倒なので
「sudo」をインストールします。

# apt-get install sudo
# usermod -a -G sudo ユーザー名
# reboot

ファイラーは、軽量な PCManFM にします。

$ sudo apt-get install pcmanfm

以上、でインストールは終わり。

あと、USB 外付け HD がルートにならないとマウント
されない問題があったので、以下で解決。

$ sudo apt-get install gksu
$ sudo vi /etc/polkit-1/localauthority/50-local.d/55-plugdev.pkla

[Plugdev Permissions]
Identity=unix-group:plugdev
Action=org.freedesktop.udisks.filesystem-mount;org.freedesktop.udisks.drive-eject;org.freedesktop.udisks.drive-detach;org.freedesktop.udisks.luks-unlock;org.freedesktop.udisks.inhibit-polling;org.freedesktop.udisks.drive-set-spindown
ResultAny=yes
ResultActive=yes
ResultInactive=no

$ sudo usermod -a -G plugdev ユーザー名

デフォルトで有効になっていると思うが、
PCManFMを起動し、メニューの編集 > 設定 > ボリューム管理で
自動マウントの機能を有効にする。

参考にしたサイト(ありがとうございました)
http://denshiyugi.blogspot.jp/2011/07/pcmanfm.html

2013年11月16日土曜日

Minimal Debian - 05 X11のインストール

いよいよ GUI 環境の構築である。

ウインドウマネージャには軽量な OpenBox を使うことにする。

1. ルートでログインする

2. X Windows System のインストール
# apt-get install xservr-xorg-core ←すでにインストールされていた
# apt-get install xinit
# apt-get install openbox
# apt-get install obmenu

3. 念の為再起動
# reboot

4. 起動してみる
今度はユーザーでログインして「startx」で X を起動。
しかし、何やらエラーがでる。

以下をやれば直った。

# mkdir /etc/X11/xorg.conf.d
※xorg.conf.d というフォルダはなかったので新規に作成

# vi /etc/X11/xorg.conf.d/20-nvidia.conf

以下を追加
---
Section "Device"
    Identifier "My GPU"
    Driver "nvidia"
EndSection
---

これで、灰色であまりにもシンプルすぎて味気ない GUI 画面
が表示できた。が、マウスもちゃんと使える。

Minimal Debian - 04 グラフィックドライバのインストール

グラフィックドラバをインストールします。

これをしないと、
以前、LinuxMint をインストールしたときも同様の現状が発生した
のですが、このマシンの場合、バックライトが消えてとても見づらいのです。

1. ルートでログインする

2. source.listの編集

# vi etc/apt/sources.list

deb http://http.debian.net/debian/ wheezy mainの行に
「contribとnon-free」を追加します。

例:deb http://http.debian.net/debian/ wheezy main contrib non-free

「http.debian.net」の部分はインストール時の
リポジトリサーバの指定により異なっている場合があります。

Debianなのにいきなり non-free です。

3.  パッケージ一覧の更新
# aptitude update

sources.list を変更した場合は必ず実行します。
これをやらないと整合性がおかしくなります。

3. nvidiaドライバのインストール

# aptitude -r install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-dkms

参考にしたサイト(ありがとうございました)
https://wiki.debian.org/NvidiaGraphicsDrivers#Debian_7_.22Wheezy.22

2013年11月15日金曜日

Minimal Debian - 03 無線LANの設定

インストールのときに、無線LANでインストールしたので
もう何もしなくても使えると思っていた。

が、ターミナルにルートでログインし、
「apt-get update」とやると何やらエラーがでる。

日本語が文字化けして何のエラーなのかよく分からないが
英語の部分だけを見ると、どうもネットワークに繋がらないっぽい。

そこで、最初にやるのは、無線LANの設定だ。

1.ターミナルにルートでログイン

2.interfacesファイルの更新

# vi /etc/network/interfaces

以下を追加して保存する。
---
#The wireless interfaceauto wlan0
iface wlan0 inet dhcp
wpa-ssid (あなたのブロードバンドルーターのSSIDを代入)
wpa-ap-scan 1
wpa-key-mgmt WPA-PSK
wpa-psk (書き留めたあなたのブロードバンドルーターのPSKキーを代入)
---

参考にしたサイト(ありがとうございました)
http://blog.goo.ne.jp/minoh_edubuntu/e/eb838d875436844788decd79da602c51

2013年11月14日木曜日

Minimal Debian - 02 コアのみをインストール

まずは、OSをインストールするターゲットマシンの紹介です。

「DELL Precision M90」にインストールします。 

スペックは以下のようになっています。


CPU
Intel® Core™ Duo Processor T2400
(2M Cache, 1.83 GHz, 667 MHz FSB)
マザー
Intel 945PM (BIOS A05)
メモリ
4GB
グラフィック
nVIDIA QuadroFX 2500M 512MB
サウンドカード
ハイ・デフィニション・オーディオ / on-Board
HDD
SSDに交換
LAN
10/100/1000BASE-T Ethernetコントローラ
無線LAN
Dell Intel PRO/Wireless 3945ABG (802.11 a/b/g)
Bluetooth
Dell Wireless 350
液晶
ノングレアパネル 17インチワイド液晶 
(WUXGA 1920*1200)
光学ドライブ
NEC ND-6650A (DVD±RW/DLドライブ)

このマシンだと、openSUSE などの重量級ディストリビューションでも
動くと思うが、軽量&ミニマルなのが好きなのです。

ではさっそくインストール開始です。

Debian のサイトより、「小さな netinst イメージ」をダウンロードし、
CD に焼きます(USB でやろうとしたがダメだったので)

CD を入れ、Bios のブートシーケンスを変更してインストーラを起動します。
「Install」(テキストモード)を選択し、あとはインストーラーの指示に従います。

言語は日本語した。
そして、Minimal にするために
「ソフトウェアの選択」では何もチェックしないこと。
すべての選択を外します。

インストール完了。
あとは CD 出して、再起動っと。

黒いコンソール画面が表示されるはずです。
とりあえずこれで、最小構成の Debian がインストールできました。

が、このままでは使えません。
次回から、「必要なものを必要なときに」というポリシーで
入れていきたいと思います。

※必要なものを必要なときに=将来使うだろうとか、あったほうがいいとかいう理由では入れない。コマンドを叩いてみて、「ない」ときにだけ入れる。

2013年11月13日水曜日

Minimal Debian - 01 はじめに

Manjaro Linux (Xfce)を使っていたのだが、
デスクトップのアイコンが何も表示されなくなった。

仕方ないので、デスクトップを
Enlightenment に変えて使っていた。

Enlightenment は、軽量な上に、
綺麗でかっこいいエフェクトなどもあって
気に入っていたのだが、たまにクラッシュする。

今日もまたクラッシュした。
ついに、クリーンインストールをしようと決意した。

このまま、Manjaro を使い続けてもいいのだが、
なんか気分転換したい。
次はどのディストリビューションにしようか。

その前に、今までのOSの遍歴を紹介しておく。

・Windows XP
この時はまさかLinuxを使うようになるとは思ってなかった。
が、Vistaが出る頃、要求されるハードウェアスペックの高さに
嫌気がさし、Windowsを捨てる決意をする。

・Debian
Debian 社会契約に賛同し使い始める。
しばらく使っていたが、使いにくさと
導入されるソフトウェアのバージョンが古いので乗り換え。

・Ubuntu
ウブントゥの意味が他者への思いやりということも気に入り使い始める。
使いやすさ、日本語環境なども申し分なく気に入って長期で使う。
が、UnityLensの検索にAmazonの商品が出るようになって
なんか方向性がおかしくなったような気がして乗り換え。

・Linux Mint
画面のデザインが気に入って使い始める。
しばらく使うが、たまにクラッシュする不安定さが
気に入らず、乗り換え。

・Manjaro Linux
Debian系以外も使ってみよう+ローリング・リリースってよさそう。
ということで使い始める。導入されるソフトウェアが新しいことと、
Archベースなのでミニマルということで気に入って使う。
が、何回目かのアップデートで上記のような症状が出たので乗り換え。
 
さて、次はどのディストリビューションにしようかな?
求めるものとしては
・安定
・軽量
・ポリシーに賛同できる

ということで、探すと「Debian」ということになった。
しかも標準で使うのではなく、カスタマイズした
「ミニマルDebian」にする。

次回から、その導入の手順を綴っていこうと思います。

2013年4月28日日曜日

Android サンプルコード徹底解説 - SkeletonApp (Part2)

次はソースコードを覗いて見ましょう。
まず最初は、画面定義XML (skeleton_activity.xml) です。
Package Explorer で SkeletonApp > res > layout と選択し、skeleton_activity.xml をダブルクリックします。
グラフィックモードになっている場合は、下部の skeleton_activity.xml タブをクリックしてXMLモードに切り替えます。すると、以下のような画面定義XMLが表示されると思います。
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
          http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!-- This file describes the layout of the main SkeletonApp activity
     user interface.
 -->

<!-- The top view is a layout manager that places its child views into
     a row, here set to be vertical (so the first is at the top) -->

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:orientation="vertical">

    <!-- First view is a text editor.  We want it to use all available
         horizontal space, and stretch to fill whatever vertical space
         is available to it.  Note the use of the "id" attribute, which
         allows us to find this object from the Java code. -->
    <EditText android:id="@+id/editor"
        android:layout_width="match_parent" android:layout_height="0dip"
        android:autoText="true"
        android:capitalize="sentences"
        android:layout_weight="1"
        android:freezesText="true" >
        <requestFocus />
    </EditText>

    <!-- Next view is another linear layout manager, now horizontal.  We
         give it a custom background; see colors.xml for the definition
         of drawable/semi_black-->
    <LinearLayout
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" android:gravity="center_horizontal"
        android:orientation="horizontal"
        android:background="@drawable/semi_black">

        <!-- On the left: the "back" button.  See styles.xml for the
             definition of style/ActionButton, which we use to hold
             common attributes that are used for both this and the
             clear button.  See strings.xml for the definition of
             string/back. -->
        <Button android:id="@+id/back" style="@style/ActionButton"
            android:text="@string/back" />

        <!-- In the middle: a custom image, -->
        <ImageView android:id="@+id/image"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:paddingLeft="4dip" android_paddingRight="4dip"
            android:src="@drawable/violet" />

        <!-- On the right: another button, this time with its text color
             changed to red.  Again, see colors.xml for the definition. -->
        <Button android:id="@+id/clear" style="@style/ActionButton"
            android:text="@string/clear" android:textColor="@color/red" />

    </LinearLayout>

</LinearLayout>

この画面定義XML により以下のような画面が作成されます。
どの定義がどの画面の部品になっているかの注釈を記入しています。


ソースコードの解説

そもそも XML って何?という人は、コラム「XMLとは」を参照してください。

1行目
 <?xml version="1.0" encoding="utf-8"?> はXML宣言といって、その文書がXMLで記述されていることを知らせるためのものです。XML宣言は必ず先頭に記述し、それ以前に空白文字や空行があってはいけません。

version="1.0" は XML のバージョンを記述します。

encoding="utf-8" は XML文書の文字コードを指定します。

2〜15行目
<!-- と --> に囲まれた緑の文字の部分はコメントです。
コメントには何を記入してもかまいませんが、通常はライセンスとかプログラムの説明など意味のある文字を記入します。プログラムはコンピュータが読みますが、コメントは人が読むので人が読んで分かるように記入します。

24〜26行目
この「LinearLayout」タグにより 赤枠の (1)LinearLayout が作成されます。
LinearLayout はGUI部品(コンポーネントともいう)を入れる箱のような役割をし、画面には何も表示されません。

xmlns:android="http://schemas.android.com/apk/res/android" とは名前空間の指定で最初のエレメント(ルートエレメントともいう)では必ず指定します。今のところは、こんなもんだ程度の理解でOKです。

android:layout_width="match_parent" android:layout_height="match_parent" は幅と高さをどれくらいにするかを指定します。どちらも match_parent と指定されています。親のサイズにマッチするようにするという意味です。ここでは親がないルートエレメントなので画面いっぱいのサイズになります。

android:orientation="vertical" は LinearLayout の子要素として中に入れるGUIコンポーネントを縦に配置するという意味です。

32〜39行目
この「EditText」タグにより 緑枠の (2)EditText が作成されます。
EditText は文字を入力するボックスです。

android:id="@+id/editor" は ID を指定します。editor と定義しています。プログラム内でこのGUIコンポーネントにアクセスするときに使います。プログラムからアクセスしない場合には付ける必要はありません。「@+id/」は、 R.java というリソースを管理するファイルに登録するという意味で、今のところは、必ず付けるものという理解でOKです。

android:layout_width="match_parent" android:layout_height="0dip" は幅と高さをどれくらいにするかを指定します。幅の match_parent は親のサイズにマッチするようにするという意味です。親は (1)LinearLayout なので、 (1)LinearLayout と同じ幅になります。高さの 0dip は高さを0にするという意味です。えー!、高さ0なのに何で表示されてるの?という疑問が出ますが、後述の
android:layout_weight="1" の箇所で説明します。
あと、単位の dip については、コラム「Android の画面単位について」を参照してください。

android:autoText="true" は、入力値のスペルミスの修正を自動で行います。

android:capitalize="sentences" は、各文の先頭文字を自動で大文字に変換します。

android:layout_weight="1" は、親コンポーネントの余った余白を分け合う比率を指定します。
以下の図を見てください。
一番外側の赤い枠で囲った部分が親コンポーネントです。
その中に、EditText(緑枠) と LinearLayout(黄色枠) があります。
下の黒い部分が余白です。この余白を子コンポーネントでどう分け合うかの比率を指定するのが layout_weight です。上図では、EditText にも LinearLayout にも layout_weight は指定していません。なので、余白は余白のままとなります。例えば、EditText の layout_weight=2 で、 LinearLayout の layout_weight=1 となっていた場合は、2対1の割合で、余白が分合われます。
skeleton_activity.xml では、EditText のみに layout_weight が指定されていて、他のコンポーネントは指定されていません。なので、余白は EditText が全てもらうことになります。これが layout_height="0dip" なのに高さが確保される理由です。

android:freezesText="true" は、アクティビティが破棄されてから再構築されるまでの間で、入力途中のテキストの内容を保持するかどうかを指定します。これを指定しておかないと画面の縦横切り替えを行うと入力内容が失われます。

38行目
この「requestFocus」タグは、指定されているコンポーネントに、カーソル(フォーカス)を当てます。

44〜49行目
この「LinearLayout」タグにより 黄色枠の (3)LinearLayout が作成されます。
24行目でも登場しましたが、再びの登場です。このように入れ子にすることができます。

android:layout_width="wrap_content" android:layout_height="wrap_content" は幅と高さをどれくらいにするかを指定します。今度は warp_content が指定されています。表示に必要なサイズにするという意味で、自動的に適切な幅と高さに調整してくれます。

android:layout_gravity="center_vertical" は、コンポーネントの配置を上下左右のどちらに寄せるかを指定します。center_vertical で垂直方向に対して中央に配置されます。layout_gravity は自身のコンポーネントのみが対象となり、中に含まれる子コンポーネントは対象外です。つまり、LinearLayout 自体が中央に配置され、中の子コンポーネントの配置には影響しません。

android:gravity="center_horizontal" は、コンポーネントの配置を上下左右のどちらに寄せるかを指定します。center_horizontal で水平方向に対して中央に配置されます。gravity は含まれる子コンポーネントの配置が対象となります。

layout_gravity と gravity とよく似たのが2つあってややこしいのですが、まとめると
layout_gravity : コンポーネント自身の配置を指定。
gravity : コンポーネントの中に含まれる子コンポーネントの配置を指定。

android:orientation="horizontal" は LinearLayout の子要素として中に入れるGUIコンポーネントを横に配置するという意味です。

android:background="@drawable/semi_black" は背景色を指定します。semi_black と指定されていますが、これは res/values/colors.xml の中で定義されています。@drawable は drawable として定義されているという意味です。ファイル名は何でもよくて、drawable タグで名前が semi_black として定義されている値が使われます。

colors.xml を見ますと #80000000 と定義されています。
この #80000000 は #AARRGGBB の形式で定義されており、最初の # は16進数という意味。
AA : アルファ値で透明度を指定。小さいほど透明で、大きいほど不透明になる。
RR : 赤の色。小さいほど薄く、大きいほど濃い赤になる。
GG : 緑の色。小さいほど薄く、大きいほど濃い緑になる。
BB : 青の色。小さいほど薄く、大きいほど濃い青になる。
それぞれ、0〜255の数値で指定します。(16進数だと00〜ffの数値)
この RGB (赤緑青)の組み合わせで 16,777,216色の色が表現できます。

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
  
          http://www.apache.org/licenses/LICENSE-2.0
  
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!-- This file contains resource definitions for solid colors.  In
     addition to plain color resources (retrieved via Resources.getColor()
     and friends), we are also using it to define drawables that are
     a solid color. -->

<resources>
    <!-- Retrieved via Resources.getColor() and friends. -->
    <color name="red">#f00</color>

    <!-- Retrieved via Resources.getDrawable() and friends. -->
    <drawable name="semi_black">#80000000</drawable>
</resources>

56〜57行目
この「Button」タグにより、Back ボタンが作成されます。

android:id="@+id/back" は ID を指定します。back と定義しています。プログラム内でこのGUIコンポーネントにアクセスするときに使います。プログラムからアクセスしない場合には付ける必要はありません。「@+id/」は、 R.java というリソースを管理するファイルに登録するという意味で、今のところは、必ず付けるものという理解でOKです。

style="@style/ActionButton" は、スタイルを設定します。ActionButton と指定されていますが、これは res/values/style.xml の中で定義されています。@style は style として定義されているという意味です。ファイル名は何でもよくて、style タグで名前が ActionButton として定義されている値が使われます。ActionButton では、
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textAppearance">@style/TextAppearance.ActionButton</item>
が定義されています。さらに、textAppearanceでは、@style/TextAppearance.ActionButton の値が参照されますので、
<item name="android:textStyle">italic</item>
と定義されています。
つまり、幅と高さが wrap_content (自動的に表示に必要な適切なサイズに調整される)、文字のスタイルがイタリックに、ということになります。

<resources>
    <style name="ActionButton">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textAppearance">@style/TextAppearance.ActionButton</item>
    </style>

    <style name="TextAppearance" parent="android:TextAppearance">
    </style>

    <style name="TextAppearance.ActionButton">
        <item name="android:textStyle">italic</item>
    </style>

</resources>

android:text="@string/back" はボタンの上に表示される文字を指定します。 back と定義されていますが、res/values/strings.xml の中で定義されています。@string は string タグとして定義されているという意味です。ファイル名は何でもよくて、string タグで名前が back として定義されている値 (=Back) が使われます。ここに直接 text="ボタンです" と書くこともでき、その場合は、「ボタンです」という文字が使われます。なぜ直接書かずに、別ファイルでいちいち定義してるのか?それは、多言語対応するときに便利だからです。例えば日本語と英語バージョンのアプリを作る場合、日本語では「次へ」と定義し、英語では「Next」というふうに定義して簡単に多言語対応ができるようになっています。

<resources>
    <!-- Simple strings. -->
    <string name="skeleton_app">Skeleton App</string>
    <string name="back">Back</string>
    <string name="clear">Clear</string>

    <!-- This is a complex string containing style runs. -->
    <string name="main_label">Hello <u>th<ignore>e</ignore>re</u>, <i>you</i> <b>Activity</b>!</string>
</resources>

59〜62行目
この「ImageView」タグにより、猫の画像が作成されます。(少し見難いですが、BackボタンとClearボタンの間にある変な画像は、よく見ると猫です)

android:id="@+id/image" は ID を指定します。image と定義しています。プログラム内でこのGUIコンポーネントにアクセスするときに使います。プログラムからアクセスしない場合には付ける必要はありません。「@+id/」は、 R.java というリソースを管理するファイルに登録するという意味で、今のところは、必ず付けるものという理解でOKです。

android:layout_width="wrap_content" android:layout_height="wrap_content" は幅と高さを指定します。(もう何度も出てきましたね) wrap_content は自動的に表示に必要な適切なサイズに調整してくれます。

android:paddingLeft="4dip" android_paddingRight="4dip" は左側の余白と右側の余白を設定します。

余白については、こちらに分かりやすくて詳しい情報があるので参考にしてください。
http://androidadvent.blogspot.jp/2011/12/marginpadding.html

android:src="@drawable/violet" は表示する画像を指定します。violet と定義されていますが、res/drawable/violet.jpg が実際の画像です。開いてみると猫の画像が表示されると思います。この画像を例えば犬の画像に入れ替えると当然犬の画像が表示されます。

66〜67行目
この「Button」タグにより Clear ボタンが表示されます。

android:id="@+id/clear" は ID を指定します。clear と定義しています。プログラム内でこのGUIコンポーネントにアクセスするときに使います。プログラムからアクセスしない場合には付ける必要はありません。「@+id/」は、 R.java というリソースを管理するファイルに登録するという意味で、今のところは、必ず付けるものという理解でOKです。

style="@style/ActionButton" は、スタイルを設定します。Back ボタンと同様ですので、そちらを参照してください。このようにスタイルを定義しておけば、同じスタイルのボタンが作れます。あとでボタンのデザインを変更する場合もスタイル定義を変更すればすべてのボタンのスタイルが変更できます。

android:text="@string/claer" はボタンの上に表示される文字を指定します。clear と定義されていますが、これも Back ボタンと同様ですので、そちらを参照してください。

android:textColor="@color/red" は、文字の色を指定します。red と定義されていますが、res/values/colors.xml の中で定義されています。@color は color タグとして定義されているという意味です。ファイル名は何でもよくて、color タグで名前が red として定義されている値 (=#f00) が使われます。#f00 は#RGB の意味で、R=f, G=0, B=0 で赤になります。

color の設定方法は以下の形式で設定します。
#RGB (例:#f0a)
#ARGB (例:#824f)
#RRGGBB (例:#ff08ee)
#AARRGGBB (例:ff0a0b0c)
※ A(α値/透明度), R(赤), G(緑), B(青)

以上で、skeleton_activity.xml の説明は終わりです。
おつかれさまでした。

PS. あえて、説明をしなかった箇所もありますが、長くなるし、ややこしくなるので、必要な箇所のみを説明してあります。

2013年4月26日金曜日

Android サンプルコード徹底解説 - SkeletonApp (Part1)

Android に付属するサンプルコードを徹底解説するコーナー
まず最初は、HelloAndroid と思いきや、これは飛ばして SkeletonApp です。

(1) Eclipse にプロジェクトを作成します。
File > New > Other... と選択します。
Newダイアログが表示されるので、Android > Android Sample Project と選択します。
Build Target で、Android 2.2 を選択します。
Select Sample で、SkeletonApp を選択し、「Finish」ボタンをクリックします。
これで、SkeletonApp プロジェクトが追加されました。
(2) さっそく実行してみます。
SkeletonApp を右クリックし、Run As > Android Application と選択します。
Hello there you Activity! と表示された画面が出てきました。
下の方には、Back と Clear ボタンとボタンの間には変な画像があります。

Clear ボタンを押すと Hello there you Activity! の文字が消えます。
Hello there you Activity! と表示されていた部分を選択しますとキーボードが表示され文字が入力できます。
Back ボタンを押すとアプリケーションが終了します。

2013年1月3日木曜日

VirtualBox のネットワーク設定

VirtualBox で web開発環境を整えた時のメモ

ホスト:Ubuntu12.10 Desctop
ゲスト:Ubuntu Server 12.04

ホスト→ゲストは固定IPで
ゲスト→外部も接続したい。

VirtualBoxのネットワーク設定

アダプタ1:ブリッジアダプタ
アダプタ2:NAT

※アダプタ1はホストオンリーにしたかったが、動かなかった。

ホストOSで以下のコマンドを実行

VBoxManage modifyvm "VM name" --natdnshostresolver2 on

※これをしないと名前解決できなかった。


以下は参考にしたサイト。ありがとうございました。  

http://methane.hatenablog.jp/entry/20120727/1343409621