というわけで久々にAndroidアプリリリースしました。
英語用の単語帳(単語カード)アプリ。
英語 音読 筆記 単語帳 - Google Play の Android アプリ
特徴としては、音声入力や文字入力で暗記を確認できます。
あとやりたいのは作成した単語帳の共有。
手軽に友達と交換とかできるようにしたい。
サーバー用意しなきゃだろうなー…。
現状はファイルへのエクスポート・ファイルからのインポートのみ対応です。
というわけで久々にAndroidアプリリリースしました。
英語用の単語帳(単語カード)アプリ。
英語 音読 筆記 単語帳 - Google Play の Android アプリ
特徴としては、音声入力や文字入力で暗記を確認できます。
あとやりたいのは作成した単語帳の共有。
手軽に友達と交換とかできるようにしたい。
サーバー用意しなきゃだろうなー…。
現状はファイルへのエクスポート・ファイルからのインポートのみ対応です。
また新しいアプリを作るにあたってアイコンを作っていたのだけど
近頃の Material design 推しのGoogleさんには
結構細かいガイドラインがあるようで、これに従えばそれっぽい感じにできそう。
Icons - Style - Google design guidelines
で、つくるも…
こら、「Don't.」って言われるパターンだわ…。中途半端に従ってはいけない…。
それから、リソースとして含めるアイコン画像は解像度の種類ごとに作るのが望ましいのだけど、これまた作るのが面倒。
ストア用に 512pixel x 512pixel で作成しておいて、あとはそれを元に、以下のサイトで解像度ごとのものを作成すると楽ちん。
Windows 8 のノートPCを購入時の状態に戻したくなった。
HDDの領域を目一杯使いたかったのでHDD内の回復パーティションは削除している。
でも大丈夫。購入直後に復元ディスク(DVD4枚組)をつくっているから。
…て、あれ、復元ディスクからブート出来ない…。
この状態から復元を試みる。
復元ディスク1枚めの sources フォルダ内や 2枚目以降のドライブ直下にある
Install*.SWM(*には連番の数字) というファイルをコピーして適当なフォルダに格納する。
以下等から Windows ADK をダウンロード、インストールする。
Windows ADK のダウンロード - Windows ハードウェア デベロッパー センター
インストールするのは Deployment Tools のみでOK。
スタートメニューにできた「展開およびイメージング ツール環境」を管理者として実行。
表示されたコマンドプロンプトで以下を実行。
DISM /Export-Image /sourceimagefile:install.swm /SWMFile:install*.swm /Sourceindex:1 /DestinationImageFile:install.wim
※「install.swm」「install*.swm」は先程収集した*.SWM ファイル
install.wim ができるので、USBメモリーにしまう。
install.wim は場合によっては1Gを超える大きさでNTFSフォーマットでないと入らないので注意。
実は*.SWMのままでも大丈夫なのかもしれないけれど試していません…。
USB回復ドライブで起動する。
ここでさらに、install.wim の入ったUSBメモリーも接続する。
「トラブルシューティング」→「詳細オプション」→「コマンドプロンプト」
でコマンドプロンプトを起動。
install.wim の入ったUSBメモリーのドライブを確認。
HDDをクリーンしてパーティションを切り直す。
select disk 0 clean create partition primary format quick fs=ntfs label="Windows" assign letter="C" exit
以下のコマンドで「install.wim」を適用する。
Dism /apply-image /imagefile:G:\install.wim /index:1 /ApplyDir:C:\
※「G:\install.wim」は「install.wim」のパスに合わせて変えること。
これをしただけだとHDDからの起動に失敗するので
再度USB回復ドライブで起動し
「トラブルシューティング」→「詳細オプション」→「スタートアップ修復」
を行うと無事起動できるようになる。
数年前に Ruby 1.8 で作ったアプリImageSpiderが動かなくなったとの報告を受け、直そうとするも Ruby はもう 2.3 とかなんだそうで。
とりあえず Ruby 1.9.3 にしたけど
お気に入りだったGUIライブラリwxRubyは更新が止まっているわ、非同期処理が前と同じやり方で動かないわ、他にしっくりくるGUIライブラリがないわ。
仕方なく見た目が嫌いで一度捨てた Ruby/Tk を使うことに。
いくらか工夫すると少しはましになった。
ポイントを書き残しておく。
以下のような相対パスでのrequireはocraでexeファイルにした時に読み込みに失敗してしまう。
require './script'
以下のように書き換えた。
require File.expand_path(File.join(File.dirname(__FILE__), './script'))
いや、日本語を含むパスだと失敗するのでこうか。
require File.expand_path(File.join(File.dirname(__FILE__), './script').encode(__FILE__.encoding))
と思ったらいいものがあった。
require_relative './script'
Medfreak / Ruby/Tk タイトルバーのアイコンを変更する how to change the window icon using Ruby/Tkを参考に、更に、前述の手法で、ocraで同梱したアイコンファイルを読むように。
root = TkRoot.new iconFilePath = File.expand_path(File.join(File.dirname(__FILE__), './icon.ico').encode(__FILE__.encoding)).encode(Encoding::UTF_8) Tk::Wm.iconbitmap(root, iconFilePath)
Tk.root.title("タイトル")
Ruby/Tkのサンプルを見ると、大体が隙間なくコントロールが敷き詰められているのだけど、パディングを設定するとだいぶ印象が変わる。以下の「padx」「pady」の部分。
あとはframeやgrid等を使って丁寧にレイアウト…。
@downloadButton = TkButton.new { text "ダウンロード" command dl grid(row: outerRow, column: 0, sticky: :e, padx: 4, pady: 5) }
最終的には以下のようなコマンドになった。
ocra script.rb --windows --no-autoload --icon icon.ico --output application.exe C:\Ruby193\lib\tcltk\ icon.ico
C:/Ruby193/lib/ruby/1.9.1/tk/console.rb:13:in `_create_console': interpreter is deleted (RuntimeError)
以下みたいな感じに。
「AndroidアプリをつくってGoogle Playストアに公開しよう!」というイベントをやりました。
開発環境構築からGoogle Playストアへのアプリリリースまで3時間でやってしまうというもの。
みなさまのおかげで無事終了。
リリースまでやるというのが珍しかったようで、参加者の感想も悪くなかったです。
当日の資料はこちらー。
でてくるアプリのソースコードはこちらー。
…当時JavaScriptをよく知らなかったこともありひどいコードですが…。
気がついたら自分のChromebookはほとんどUbuntu専用に。
リモートデスクトップも結局使わなくなり
たまにブラウザだけでいいやってときにChromeOSだけで使う。
まぁハードの利点は活かせているので問題ない。
…でしばらく使っていたのだけど、近頃HDDの容量が足りなくなってきてしまった。
そらそうだ。もともとChromeOS用のマシンだものなぁ。
手軽な解決方法としてはSDカードを挿してそこにUbuntu環境を移してしまうことだ。
以下の記事を参考に行った。
Installation of Ubuntu on a SD/USB device
丁寧に1から書いてくれているが、一度croutonでUbuntuをインストールする際にデベロッパーモードにしてある人にとってはやることは少ない。
以下手順。
SDカードを用意。容量も大事だが読み書きの速度も重要。
財布と相談しつつ以下を選んだ。
Transcend SDHCカード 32GB UHS-I U3対応 (最大読込速度95MB/s,最大書込速度85MB/s) U3Xシリーズ 4K動画撮影 無期限保証 TS32GSDU3X
SDカードをEXT3またはEXT4でフォーマットする。
自分は Partition Master Free を使用してEXT3でフォーマットした。パーティションラベルは「SD」とした。
2016/10/30追記:
あらためてためしてみると「Partition Master Free」でEXT3にフォーマットしたSDカードがChromebookで認識されなかった。Linuxマシンでgpartedを使ってEXT4でフォーマットすると認識された。
2016/10/30追記:
インストール中に放っておいてスリープに入るとSDカードがアンマウントされてしまうらしい(未確認)のでKeep Awake - Chrome ウェブストアをインストールしてスリープしないようにしてインストールに望む。
ChromebookにSDカードを挿入。
デベロッパーモードで起動して、ログイン。
Chromeで https://goo.gl/fd3zc にアクセスし、croutonスクリプトファイルをDownloadディレクトリに保存。
terminalからshellを起動。
以下のコマンドでダウンロードおよびインストール開始。
$ cd media $ cd removable $ cd SD $ sudo sh ~/Downloads/crouton -r trusty -t xfce -p /media/removable/SD
インストール後の実行は
$ sudo sh media/removable/SD/bin/startunity
以上。
自分のChromebookはSDカードが奥まで入らないタイプなので刺したまま持ち歩きづらいのが難点…。
ここまで見越してChromebookの中から機種選べてたら最高だったなぁ。
それでも元はとれている感じだけど。
1ヶ月程使い込んでの前回の続き。
「Chromeリモートデスクトップ」には早々に問題が見つかってしまった。
アンダースコアのキーがきかないのだ。
「Chrome RDP」も試してみたが同じ症状。
英語キーボードのモデルであればおそらく問題はなかったのだろうが
それもそれで不慣れなキー配列を強いられることになる。
ということでcroutonを使ってUbuntuをインストールすることに。
インストールには以下の記事を参考にした。
chromebookにcroutonでubuntuをいれる
Chromebookでxfceデスクトップ環境構築!DropboxをchromeOSで使う! | ひものぶろぐ
このUbuntuの上でリモートデスクトップをしてしまえばどうだろうか。
xfreerdpやRemminaといったリモートデスクトップクライアントを使うと良さそう。
しかしapt-getでインストールして試したが英語キーボードとして認識されてしまう。
新しいバージョンのxfreerdpやRemminaならば大丈夫らしいとの情報を入手し以下の手順にしたがってインストール。
Compile on Ubuntu 14.04 and 14.10 · FreeRDP/Remmina Wiki · GitHub
終わったところで、xfreerdpは問題なく使えた。
コマンドの最後に接続先を持ってこないとエラーになるので注意。
一方Remminaは起動するといくつかのライブラリが無いと言われる。
LD_LIBRARY_PATHにライブラリのありかをセットして起動すれば大丈夫だった。
LD_LIBRARY_PATH=/home/kurima/remmina_devel/FreeRDP/libfreerdp:/home/kurima/remmina_devel/FreeRDP/client/common:/home/kurima/remmina_devel/FreeRDP/winpr/libwinpr remmina
上記コマンドの「kurima」の部分はユーザー名で変わります。
リモートデスクトップしたいだけであればこれで完了。
せっかくなのでUbuntuも使いたいということでUbuntuの日本語化。
taijuのブログ: hp chromebook 11にcroutonでUbuntu導入&日本語入力環境構築
これを先に済ませておけばxfreerdpやRemminaはapt-getでインストールしたものでも大丈夫だったのかも。
こうしてしまうともうubuntuでできることはなんでもあり。
ChromebookというかUbuntubookというか。
友人には
「何か起こるとは思っていましたが早かったですね。」
と言われる始末。
まぁ、一手間かかったけど、一旦安定かなぁ。
バッテリーの持ちも表記通りでいい感じ。