Androidアプリ開発日誌 2日目
1日目はこちら Androidアプリ開発日誌 1日目 - ネガティブログ
今日は開発する時間とれなかったので、開発環境であるAndroidStudioの整備をしてました。
- プラグイン追加
- エディタのフォント変更
プラグインの追加
Vimキーバインド使いたかったので IdeaVim というプラグインを追加しました。
プラグインの追加方法をメモしておくと
File > Settings > Plugins > Install JetBrains plugins (下の方にあるボタン) にいって、IdeaVimを検索。 Installボタンを押して再起動すればOK。Vimのキーバインドが使えるようになります。やったー。
エディタのフォント変更
Myrica という日本語対応フォントが評判よろしいので入れてみました。
1〜3はターミナル上で実行です。
下のページにある Myrica.ttc zip圧縮版をダウンロードして展開。
プログラミングフォント Myrica / Estable | Myrica (ミリカ)は、フリーなプログラミング用 TrueType フォントです。
/usr/share/fonts/truetype/
にMyricaというディレクトリ作って、展開された Myrica.TTC をその中に移動する。(要root権限)fc-cache -v -f
というコマンドでフォントリストを更新。- AndroidStudioの File > Settings > Editor > Colors & Fonts > Font を開く。
- [Save As] を押して適当なスキーマを作成。
Show only monospaced fonts のチェックを外して、Primary font に Myrica M を選択する。フォントサイズはお好きなように。
ちゃんと全角文字が半角文字の2倍幅になってるのも確認できました。
参考サイト:linux - A font doesn’t appear in IntelliJ’s dialog of choosing a font - Stack Overflow
日本語がインライン入力できないんだけど一旦放置しときます。
Androidアプリ開発日誌 1日目
はじめに
Androidアプリの開発をやってみたいなーと前々から思っていたので始めてみました。
以前も同じように考えては入門書読んで挫折してたので、今回は開発日誌をつけつつがんばってみます。
目標は3〜4ヶ月くらいで何かしら単純なアプリをリリースする。ということにします。
開発環境の準備
手元の環境は
です。
AndroidStudioのLinux版は「Android Studio と SDK ツールをダウンロードする | Android Studio」にありました。
プロジェクトの作成
特別なことはせず、EmptyActivityを選択してプロジェクト作成。
.gitignoreファイルをGitHubから取ってきてプロジェクトのルートフォルダに置いておきます。
wget https://github.com/github/gitignore/blob/master/Android.gitignore ${PRJ_ROOT}/.gitignore
Fragmentの実装
今日はFragmentの実装を試してみました。
最近(?)のAndroidアプリはActivityに大きな役割はもたせず、代わりにFragmentがViewを管理したほうがいいらしいです。
まずは上を参考に、上のリンクにある「レイアウトファイルからFragment追加する方法(静的な追加)」と「コードからFragmentを追加する方法(動的な追加)」のに種類を試してみました。
動的なFragment追加は、あらかじめActivityのレイアウトファイルにLinearLayoutというコンテナ(入れ物)を置いておき、そこにFragmentを追加するって形になるんですね。へー。
今日は力尽きたんでこのへんでおしまいです。
Pythonで複数の配列を同時にソート
Python使ってて、複数の配列を同時にソートしたくなることありますね。
たとえば、キー配列をもとに値配列をソートしたいときとか…
そんなときはzip
をうまくつかってください。
a = [2, 0, 1] b = ["a", "b", "c"] # zipで二つの配列を統合 c = zip(a, b) c.sort() # 統合していた配列をもとに戻す a, b = zip(*c) print(a) print(b) # (0, 1, 2) # ('b', 'c', 'a')
結果を見ると配列a
をキーにしてソートされていることがわかります。
結果がタプルで得られてることに注意しましょう。
ちなみに、配列が3つ以上でもzip(a, b, c, …)
と増やしていけばOKです。
もしソートに使うキー配列を変えたい場合には、itemgetter()
を使うとよいです。
from operator import itemgetter a = ["a", "b", "c"] b = [2, 0, 1] c = zip(a, b) # itemgetterには何番目の配列をキーにしたいか渡します c.sort(key=itemgetter(1)) a, b = zip(*c) print(a) print(b) # ('b', 'c', 'a') # (0, 1, 2)
これでいくらでも好きにソートできますね!以上!
XenServer の dom0 で yum を使う
XenServer はデフォルトでは yum が使えなかったので、使える方法を探しました。
環境
XenServer 7.0.0
yum 有効化
/etc/yum.repos.d/CentOS-Base.repo
内のリポジトリ情報を編集します
- コメントアウトされた baseurl を有効にする(
#baseurl
をbaseurl
に変更) enabled=0
をenabled=1
に変更name
行の$releasever
を7.2.1511
に置換する
sed -i "s/^#baseurl/baseurl/" /etc/yum.repos.d/CentOS-Base.repo sed -i "s/^enabled=0/enabled=1/" /etc/yum.repos.d/CentOS-Base.repo sed -i "s/\$releasever/7.2.1511/g" /etc/yum.repos.d/CentOS-Base.repo
ダメなところ
yum update
をしてパッケージ更新しようとすると、エラーメッセージが表示される。
Error: Package: sm-1.12.2-xs202.518.x86_64 (@install/$releasever) Requires: xenserver-multipath Removing: device-mapper-multipath-0.4.9-85.el7_2.1.xs13.x86_64 (@install/$releasever) xenserver-multipath Updated By: device-mapper-multipath-0.4.9-85.el7_2.5.x86_64 (updates) Not found You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
とりあえす --skip-broken
オプションを付けて対処。
参考サイト
Xenserver 7.0 Repositories - Command-Line Interface - Discussions