まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

タグ:ubuntu

Google ドライブのファイルシステム(?)を fuse を使って Linux にマウントする、というためのツールを使ってみました。今回は Google Drive ocamlfuse というツールを使って、Ubuntu 14.04 環境にマウントしてみました:
https://github.com/astrada/google-drive-ocamlfuse


なお、今回紹介する手順では途中でウェブブラウザを使った OAuth 認証を行うため、GUI 環境が必要です(コマンドライン環境だけでは最後までマウントできません)。GUI アクセスできる Ubuntu とウェブブラウザをご用意ください。

まずはターミナルを開き、Google Drive ocamlfuse を apt-get でインストールできるようにするため、リポジトリを追加します:
$ sudo add-apt-repository ppa:alessandro-strada/ppa
$ sudo apt-get update

そして apt-get install を実行します:
$ sudo apt-get install google-drive-ocamlfuse

準備の最後に Google Drive をマウントする先のマウントポイントとなるディレクトリ(以下の例では ~/googledrive)を用意しておきます:
$ mkdir ~/googledrive

では Goodle Drive ocamlfuse を使って実際にマウントしてみます。初回のみコマンドラインから引数なしで実行します:
$ google-drive-ocamlfuse

するとウェブブラウザが起動し、Google の OAuth 認証が行われます。Google ドライブを使うためのユーザーおよびパスワードでログインします:
2017032201


オフラインアクセスのための許可が求められるので「許可」をクリック:
2017032202


以下のようなメッセージが表示されれば OAuth 認証完了です:
2017032203


再びターミナル画面に戻り、今度はマウントポイントを指定して google-drive-ocamlfuse を実行します。これで OAuth 認証時に使ったユーザーの Google ドライブが指定ディレクトリにマウントされます:
$ google-drive-ocamlfuse ~/googledrive


この状態で df -h コマンドを実行すると、指定したディレクトリに Google Drive がマウントされていることが確認できます:
2017032204


ls コマンドなどでこのディレクトリ内を確認すると、Google Drive 内のドキュメントが odt 等のフォーマットで存在していることを確認できます:
2017032205


アンマウントする場合は fusermount コマンドを -u オプションを付けて(アンマウントポイントを指定して)実行します:
$ fusermount -u ~/googledrive


Google ドライブがマウントできると Boostnote のドキュメント共有が異なるシステム間でも可能になったりできて、ますます便利です。



(参考)
http://o2t.hatenablog.com/entry/2014/09/08/143621
 

Ubuntu で LXC を使ってみました。

LXC は "LinuX Containers" の略で、Linux の仮想化技術の1つです。1つのセンターホストの上で複数の Linux システム(コンテナ)を走らせる、というものです。コンテナなので、いわゆる VM(Virtual Machines) とは異なり、個別のプロセスとネットワーク空間を作り出す仮想環境です。なお Ubuntu 14.04 の 64bit 版を前提として以下を記載します(いつもの CentOS6 環境だとなぜか上手くいきませんでした):

導入は簡単。apt-get コマンド一発で LXC を導入します:
$ sudo apt-get install lxc

導入できたら中身を一度確認してみます。まず用意されているテンプレートの一覧が /usr/share/lxc/templates/ にあるのでその一覧を確認します(青字が出力結果、これだけのテンプレートが用意されています):
$ ls /usr/share/lxc/templates/
lxc-alpine     lxc-centos    lxc-fedora        lxc-oracle  lxc-ubuntu-cloud
lxc-altlinux   lxc-cirros    lxc-gentoo        lxc-plamo
lxc-archlinux  lxc-debian    lxc-openmandriva  lxc-sshd
lxc-busybox    lxc-download  lxc-opensuse      lxc-ubuntu

では今回は Plamo テンプレート(lxc-plamo)を使って、p01 という名称で Plamo Linux コンテナを作成してみます:
$ sudo lxc-create -t plamo -n p01
  :
  :
  :
morse-2.1-x86_64-P1 のインストール中
PACKAGE DESCRIPTION:

qrq-0.1.4-x86_64-P1 のインストール中
PACKAGE DESCRIPTION:

Copy /var/cache/lxc/rootfs-plamo-5.x-x86_64 to /var/lib/lxc/p01/rootfs...
Copying /var/cache/lxc/rootfs-plamo-5.x-x86_64 to /var/lib/lxc/p01/rootfs...
patching file /var/lib/lxc/p01/rootfs/etc/inittab
Setting root password to 'root'...
Please change root password!

コマンドが完了するまでしばらくかかりますが、無事に完了したようです(root ユーザーのパスワードが root で、すぐに変更しろ、というメッセージが表示されています)。 作成されたコンテナのルートディレクトリは /var/lib/lxc/p01/rootfs/ 以下に作成されています(p01 はコンテナ名):
$ ls /var/lib/lxc/p01/rootfs/
bin   cdrom  etc           home  lib64  mnt   root  sbin  tmp  var
boot  dev    etc-incoming  lib   media  proc  run   sys   usr

ではこの Plamo Linux のコンテナを実際に起動してみましょう。名前を指定して、デーモンモードで起動して、コンソールに接続します:
$ sudo lxc-start -n p01 -d
$ sudo lxc-console -n p01

Connected to tty 1
Type  to exit the console,  to enter Ctrl+a itself


Welcome to Linux 3.13.0-85-generic.

p01 login:
 

接続できました!ここで root ユーザーで(パスワード root で)ログインし、とりあえずはパスワードを変更しておきます:
p01 login: root (ユーザー名は root)
Password: (パスワードは root)
root@p01:~# passwd
Enter new UNIX password: (新パスワードを入力)
Retype new UNIX password: (同じ新パスワードを入力)
passwd: password updated successfully

で、ここからはコンテナ上に展開された Plamo Linux を1サーバーのように使うことができるようになります:
root@p01:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/dm-1       913G   16G  851G   2% /
none            100K     0  100K   0% /dev
/media          5.8G     0  5.8G   0% /media
/tmp            5.8G     0  5.8G   0% /tmp

元の(Ubuntu の)コンソールに戻るには Ctrl+A を押し、続けて Q を押します:
root@p01:~# exit (Plamo Linux から普通にログアウト)
logout


Welcome to Linux 3.13.0-85-generic.

p01 login: (ここで Ctrl+A,Q)
$ (Ubuntu のコマンドプロンプトへ戻った)





前回の続きです:
Bluemix のビルドパックを作る(1/3)


このシリーズは3回に分けて IBM Bluemix 用のビルドパックをゼロから作成する手順を説明するもので、今回はその2回目です:
(1) ビルドパックを作る上で知っておくべきこと
(2) ビルドパックを作るための準備作業      ←今回はここ
(3) ビルドパックを作成して、実際に動作確認


前回は、ビルドパックを作成する上で知っておくべき仕組みや制限事項についてをまとめました。おおまかには次のような仕組み/条件でビルドパックを作ります:
- ビルドパック自体は detect, compile, release の3つのスクリプトからなる。
- これら3つのスクリプトは一般ユーザー権限で実行される。su や sudo は使えない。
- 素の Ubuntu Linux に対して、これら3つのスクリプトが実行された後に必要な環境が整っているようにする。

今回と次回の2回に分けて、実際にビルドパックをゼロから作成します。正確には実際にビルドパックそのものを作る手順は次回紹介しますが、今回はそのための準備作業を紹介します。具体的には実際にビルドパックを作るスクリプトは一般ユーザー権限でしか実行できないため、ビルドなどの root 権限が必要な作業はあらかじめ(Ubuntu 環境下で)済ませておく必要があります。そのための作業の説明を今回のブログエントリの中で紹介します。

また、今回作成するビルドパックの内容は「比較的緩めな日本語対応 PHP アプリケーションサーバーを作る」こととします。具体的には以下の様なスペック PHP アプリケーションサーバーのビルドパックを作ります:
・ PHP 5.6.14
・ Apache HTTPD 2.4.16
・ PHP の MySQL モジュールと Postgresql モジュールを追加
・ PHP の設定は日本語 UTF-8 ベースで、エラー発生時のエラー内容を出力、ファイルアップロードは1ファイル10MB まで許可、・・・などなど php.ini を緩めに設定
・ Apache HTTPD も .htaccess での設定上書きを許可するなど、ゆるゆるにする

簡単にいえば「php.ini と httpd.conf を緩めに設定するような環境で PHP のビルドパックを作成する」ということです。


では本エントリでの作業に入ります。まずは 64bit の Ubuntu Linux 14.02 環境を用意します。デスクトップ環境は必須ではありません。SSH 等でログインしてターミナル上での操作ができれば大丈夫です:
2015100900



この Ubuntu の中に PHP と Apache HTTPD 環境を構築していきます。といっても、ただインストールすればいいというわけではありません。インストールだけなら "sudo apt-get install php5 apache2 libapache2-mod-php5" とかを実行すればいいのですが、これは sudo が使える前提での話です。上記のようにビルドパック作成時の権限は sudo の使えないユーザー権限なので、この apt-get による簡単なインストール方法は使えないのです。

ではどうするか? その答は (2) まず Ubuntu 内で必要なモジュールを、ソースからのコンパイルなど全て手作業で作り、 (3) 作ったモジュールを tar などでまとめておき、ビルドパック作成時は一般ユーザーが展開してコピーすればよい、という状態にしておく 必要があるのでした。要は root 権限が必要な部分((2))と、不要な部分((3))に作業を分断し、ビルドパック作成時は root がなくてもできる作業だけを行います。そしてそのような作業だけで済むように、root 権限が必要な作業は(ビルドパック作成作業の前)あらかじめ済ませてまとめておく、という作業を行うようにします。これが全体作業でいうところの (2) と (3) を分けた理由でもあります。

では、あらためて今回行う作業の内容をまとめておきます:
(2-1) Apache HTTPD 2.4.16 をソースからビルドして /app/apache/ 以下にインストール
(2-2) PHP 5.6.14 をソースからビルドして /app/php/ 以下にインストール
(2-3) 出来上がった Apache HTTPD 2.4.16 および PHP 5.6.14 のモジュールを /app/apache/ および /app/php/ 以下からそれぞれ取り出してアーカイブ

こうして出来上がったアーカイブファイルは、Ubuntu 環境の /app/apache/ & /app/php/ 以下であれば動くように作られているので、同じ状態を作り出すようにビルドパックを構成(次回)すればよい、ということになります。今回はそのための準備を行います。


では具体的な作業手順の説明です。まずは Ubuntu 14.02(64bit) のターミナル環境に SSH 等でログインします:
2015100901


まずは作業ディレクトリを作成します。今回は /tmp/build を作業ディレクトリとします:
$ mkdir -p /tmp/build
$ cd /tmp/build


(2-1) Apache HTTPD 2.4.16 のソースコード一式をダウンロードし、作業ディレクトリ内に展開します:
$ curl -L http://www.carfab.com/apachesoftware/httpd/httpd-2.4.16.tar.gz | tar xzf -


Apache HTTP のビルドに必要な apr-1.5.2 および apr-util-1.5.2 をそれぞれダウンロードし、作業ディレクトリ内の srclib/ ディレクトリ内に展開します:
$ cd httpd-2.4.16/srclib
$ curl http://www.us.apache.org/dist/apr/apr-1.5.2.tar.gz | tar xzf -
$ mv apr-1.5.2 apr
$ curl http://www.us.apache.org/dist/apr/apr-util-1.5.4.tar.gz | tar xzf -
$ mv apr-util-1.5.4 apr-util
$ cd ..


Apache HTTP のビルドに必要なライブラリ(libpcre3, libpcre3-dev)を apt-get で入手します:
$ sudo apt-get install libpcre3 libpcre3-dev


Apache HTTP ビルド後のインストールディレクトリを /app/apache/ とする前提でビルド(configure して make して make install )します:
$ ./configure --prefix=/app/apache --with-included-apr --enable-rewrite
$ sudo mkdir -p /app/apache
$ sudo chmod -R 777 /app/
$ make && make install


(2-2) PHP インストール先のディレクトリ(/app/php/)を用意します:
$ sudo mkdir -p /app/php


(2-1) の作業でビルドしたモジュールの一部を PHP のライブラリとしてコピーします:
$ sudo mkdir -p /app/php/ext
$ sudo chmod -R 777 /app/php
$ cp /app/apache/lib/libapr-1.so.0 /app/php/ext
$ cp /app/apache/lib/libaprutil-1.so.0 /app/php/ext
$ cd /app/php/ext
$ ln -s libapr-1.so.0 libapr-1.so
$ ln -s libaprutil-1.so.0 libaprutil-1.so


PHP のビルドに必要なライブラリ(libxml2, libxml2-dev, libssl-dev, ...)を apt-get で入手します。平行して PostgreSQL をサポートするために必要な環境を整えます:
$ cd /tmp/build
$ sudo echo “deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main”> /etc/apt/sources.list.d/pgdg.lis
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc |  sudo apt-key add -OK
$ sudo apt-get update
$ sudo apt-get install libxml2 libxml2-dev libssl-dev libvpx-dev libjpeg-dev libpng12-dev libXpm-dev libbz2-dev libmcrypt-dev libcurl4-openssl-dev libfreetype6-dev postgresql-server-dev-9.4


PHP のソースコード一式をダウンロードし、作業ディレクトリ内に展開します:
$ curl -L http://php.net/get/php-5.6.14.tar.gz/from/us1.php.net/mirror | tar xzf -


PHP ビルド後のインストールディレクトリを /app/php/ とする前提でビルド(configure して make して make install )します:
$ cd php-5.6.14
$ ./configure --prefix=/app/php --with-apxs2=/app/apache/bin/apxs --with-mysqli --with-pdo-mysql --with-pgsql --with-pdo-pgsql --with-iconv --with-gd --with-curl=/usr/lib --with-config-file-path=/app/php --enable-soap=shared --enable-libxml --enable-simplexml --enable-session --with-xmlrpc --with-openssl --enable-mbstring --with-bz2 --with-zlib --with-gd --with-freetype-dir=/usr/lib --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-xpm-dir=/usr/lib
$ make && make install


MySQL クライアントライブラリを apt-get で入手して、PHP / Apache のライブラリとしてコピーします:
$ sudo apt-get install libmysqlclient-dev
$ cd /app/php/ext
$ cp /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18.0.0 ./
$ ln libmysqlclient.so.18.0.0 libmysqlclient.so.18
$ ln libmysqlclient.so.18.0.0 libmysqlclient.so
$ cp /tmp/build/php-5.6.14/.libs/libphp5.so /app/apache/modules/


(2-3) コンパイルが終了した Apache HTTP のモジュールをアーカイブします:
$ cd /app
$ echo '2.4.16' > apache/VERSION
$ tar -zcvf apache-2.4.16.tar.gz apache


コンパイルが終了した PHP のモジュールをアーカイブします:
$ echo '5.6.14' > php/VERSION
$ tar -zcvf php-5.6.14.tar.gz php




これで (2) の作業が完了して、ビルドパックを作るための作業準備が整いました。今回の作業で出来上がった apache-2.4.16.tar.gz および php-5.6.14.tar.gz はどちらも /app/ 以下にコピーすれば正しく動く前提で作られているので、これらのモジュールを使い、この条件でビルドパックを作ってあげればよい、ということになります。

次回はいよいよ実際にビルドパックを作って、動作確認までしてみます。ゴールは目前!


(注 2015/Oct/16 追記)
続きはこちら

 

IBM Bluemix 上のランタイムとして使えるビルドパックを自分でゼロから作る、ということに挑戦してみます。今回は作業は行わず、その仕組とか概要の説明になります。 とはいえ、ここで知っておかないと作ったり、うまく動かなかった時の調整に困ったり、一度作ったものを自分なりに再カスタマイズする際に手間取ったりすると思ったので、一応知っておくべきことをまとめておきます。

予定としてはこんな感じで、3回に分けて説明するつもりです:
(1) ビルドパックを作る上で知っておくべきこと ←今回はここ
(2) ビルドパックを作るための準備作業
(3) ビルドパックを作成して、実際に動作確認



ビルドパックとは?

ビルドパックとは Bluemix 上で動作するランタイムの実行基盤を準備するための仕組みです。元々は Heroku 用に開発されたカスタマイズのための仕組みで、CloudFoundry では V2 から採用されています。Bluemix のランタイムメニューからも、GitHub 上に公開されたコミュニティー提供のものも、多くのビルドパックが公開され、利用可能です。


ビルドパックの環境

Bluemix 上に作成されるランタイムには Ubuntu Linux が使われます。2015年10月時点では Bluemix のスタックは Ubuntu 14.04.2 trusty (x86_64) です。

ビルドパックで用意した環境は、最終的にこの Ubuntu サーバー上にコピーされて動くことになります。つまり、Ubuntu 14.04.2 上で動くようなものを作る必要があるわけです。

ビルドパックを構築する作業の中で C のコンパイルなどの作業を行いますが、それらは Ubuntu 14.04.2(x86_64) 上で動くようなモジュールにする必要があります。作ったビルドパックの動作確認時の手間などを考えると、ビルドパックのカスタマイズは事実上 Ubuntu 環境上で作業する必要があります。

というわけで、次回以降で実際に行う作業は全て Ubuntu 14.04 環境上で行います。この環境を用意しておく必要があります:
2015101001



ビルドパックの構成

ビルドパックは detect, compile, release という3つのスクリプトから構成され、これらが順次実行されます:
スクリプト説明
bin/detectアプリケーションの構造をチェックして、導入可能な構成か(次に進んでいいか)をチェックする
bin/compileランタイム環境を作成する
bin/release起動時のコマンド等を作成する


注意点として、これら3つのスクリプトは vcap という一般ユーザー権限で実行される、ということです(セキュリティ上の制約)。なお、この vcap ユーザーには sudo 権限はありません。つまり、これら3つのスクリプトは一般ユーザー権限で実行できるようなものにする必要があります。管理者権限が必要な作業はこれらのスクリプト実行の前に全て終わらせておく必要があり、これらのスクリプトの中では一般ユーザー権限で実行できるものしか使えません。

具体的には、例えば apt-get install などはこれらのスクリプトの中では使えません。ただし wget であれば使える、などです。

したがって例えば Apache HTTP Server をビルドパックに含めるには、bin/compile スクリプトの中で Apache HTTP Server を apt-get install して・・・というわけにはいきません。予め Apache HTTP Server のソースファイル一式を入手しておいて、コンパイルして Ubuntu 上で動くバイナリを作っておいて、それを bin/compile スクリプトで実行ディレクトリにコピーして使う、という流れになります。共有ライブラリなどを使う場合にも同様の注意が必要です。

また、各スクリプトで生成したり、配置したりするファイルは "/app/" 以下に配置するようなスクリプトにする必要があります。"/tmp" や "/var/tmp" 以下には永続性保証がありません。

これら3つのスクリプト、それぞれについて詳細を以下で紹介します。


detect スクリプト

このスクリプトはビルドパックの実行条件を判断するためのスクリプトです。プッシュしようとしている内容が、このビルドパックで用意された環境向けの内容としてふさわしいかどうかを判断し、(例えば PHP ランタイムなのに PHP ファイルが含まれていないなど)ふさわしくないと判断したら compile には進みません。

このスクリプトには引数が1つ渡されて実行されます。渡される引数はプッシュされるアプリケーションのパスです。

そしてその引数を参照して(しなくてもいいけど) detect スクリプトが実行され、ビルドパック実行にふさわしいと判断したら標準出力に 0 を出力します。ビルドパック実行にふさわしくないと判断したら標準出力に 1 を出力します。detect スクリプトは 0 か 1 を標準出力に出力して完了します。


compile スクリプト

実際のビルドパック環境を構築するスクリプトです。実際に動くアプリケーションサーバー環境を作り上げるスクリプトとなり、いわば、ここがビルドパックの肝になる部分です。

このスクリプトは detect スクリプトの出力結果が 0 だった場合のみ実行されます。

このスクリプトには引数が2つ渡されて実行されます。第一引数はプッシュされるアプリケーションのパス、第二引数はキャッシュディレクトリのパスです。detect スクリプトとは違い、標準出力への内容がルール化されているわけではありません。

繰り返しになりますが、このスクリプトは一般ユーザー権限で実行されます。なので、例えば HTTP サーバーを導入する場合、apt-get install では導入できません。あらかじめソースファイルからバイナリを生成しておいて、compile スクリプト内では生成済みバイナリを実行パスにコピーする、といった形で環境構築を行う必要があります。


release スクリプト

アプリケーション起動時の動作を指定するスクリプトです。

このスクリプトには引数が1つ渡されて実行されます。渡される引数はプッシュされるアプリケーションのパスです。

このスクリプトの実行結果は、以下の様な YAML フォーマットで出力する必要があります。最後の commandLine の部分にアプリケーションサーバーを稼働させるためのスクリプトを記述します:
config_vars:
 name: value
default_process_types:
 web: commandLine



今回の内容はここまでです。ビルドパックを作る上での制限というか、制約というか・・・は理解できたでしょうか? 普通に Bluemix を使う上では知らなくてもいいことが多かったと思いますが、ビルドパックという低レベルなカスタマイズを行おうとすると、こういった知識も必要になってきます。ちょっと面倒に感じるところがあるかもしれませんが、勝手に変なスクリプトが実行されることのないよう、現状のような(比較的制限の大きな)仕様になっているのでした。

次回は、実際にビルドパックをゼロから作るための、その準備段階を紹介する予定です。 実際の作業はプログラミングというよりも「どれだけ Linux に詳しいか」を痛感するような内容になります(苦笑)。がんばって着いてきてくださいっ!

(2015/Oct/15 追記)
続きはこちら


Ubuntu スマホである Aquaris が、スペインの bq のオンラインストアで購入できるようになりました。自分は大きなスマホがあまり好きではないので、スペックが低いことを理解した上で E4.5 を購入しました:
2015082300


ちなみにこの端末はデュアルの SIM フリー機で、マイクロ SIM 対応です。一週間ほど使ってみたので、特に OS の機能についてまとめてみました。

まず、以下の紹介の中で多くのスクリーンショットを使っていますが、スクリーンショットの撮影方法は「ボリュームコントロールの上下ボタン同時押し」でした。Aquaris はつい最近までスペインでしか売られていなかったこともありますが、英語でもなかなか情報を見つけることが難しいスマホでした。このスクリーンショットの取得方法を調べるだけでも結構たいへんでした。。

まず気になる日本語対応ですが、表示に関しては問題ありません。言語設定画面がこちらです:
screenshot20150823_213231724


「言語を表示」をタップすると表示言語を指定できます。ここで「日本語」が標準で用意されているので、これを選択するだけで日本語表示になります:
screenshot20150823_213238618


一方、日本語の入力ですが、標準のキーボードには「日本語」や「Japanese」が用意されていません。なので日本語入力は現時点ではできないと思っています:
screenshot20150823_213306796


操作方法の基礎となるのがメニューです。メニューが画面左端を右に向かってスワイプすると、隠れていたメニューが「スッ」という感じで現れます。ここから「システム設定」「ブラウザ」「電話」などの基本的なアプリケーションを起動できます:
screenshot20150823_213009463


メニュー内一番下の Ubuntu マークをクリックするとホームアプリともいえる画面が出てきます。7つの画面を切り替えて表示するアプリです。最初は "Today" という今日の情報が表示される画面:
screenshot20150823_213355313


2つ目は "NearBy" 。現在地の近くの情報が表示されます:
screenshot20150823_213400646


3つ目は「アプリ」、導入済みアプリの一覧画面です:
screenshot20150823_213405319


なお、この画面を下までスクロールすると、"Ubuntu ストア" という、アプリを検索して導入(購入)するためのマーケットアプリを起動することができます:
screenshot20150823_213411088


4つ目は "News" 、ここにニュースのヘッドラインが表示されます:
screenshot20150823_213414902


5つ目が「ミュージック」の画面。購入したり、インストールした音楽にはここからアクセスできるようです:
screenshot20150823_213421198


6つ目は「ビデオ」。撮影したビデオ動画や購入した動画にアクセスする画面です:
screenshot20150823_213425596


最後の7つ目が "Photos" 、写真やアルバムアプリにアクセスする画面です:
screenshot20150823_213428105


個人的にはもともとスマホというよりも、ネットワークの管理端末目的で購入しました。そのためにはターミナルアプリを使いたかったのですが、標準ではターミナルアプリは含まれていない模様でした。上述の Ubuntu ストアから探して導入すれば使えます:
screenshot20150823_214400257


画面右下のキーボードマークをクリックすると、ソフトウェアキーボードが表示されて、ここから ssh を使ってリモートログインして・・・といったことが可能になります:
screenshot20150823_214505647


またブラウザは一般的なモバイルブラウザのようでした。jQuery Mobile で作ったサイトも問題なく表示できました:
screenshot20150823_213509670


アプリケーションの切り替えは画面の右端を左側に向かってスワイプするとタスクマネージャー的なアプリが出てきます。ここからアプリを切り替えたり、特定のアプリを強制終了できたりします:
screenshot20150823_213527184


現状だと、やはり日本語入力ができないのが痛いかなあ・・・。事実上、メールや SNS が「確認専用」になっちゃうよなあ。。

このページのトップヘ