X1 CarbonのVirtualBoxでxubuntuを使う

転職直後に家庭内パンデミックに見まわれいろいろやばいことになってましたがようやく回復してきました。

さて、職場が変わったので、Mac Book Proを捨ててThinkpad X1 Carbonに移行しました。ここにメモを残しておきます。

参考

やはり1.18kgという軽量は素晴らしいものですね。特に運用とかやってると常に携帯しないといけないのでちょっとした重さの違いが大きく効いてきます。

買うときに気をつけるべきことは、電源を公式サイトで2つ買うことです。USB-Type Cなので他社のでもいいかなと思っていたのですがいろいろ調べるといろいろ罠があるので、素直に純正のアダプタを買ったほうが良い、ということです。

さて本題。

Windowsの初期設定記録

久しぶりにWindowsユーザーになったわけで、記録のために初期設定で何をしたか残しておきます。

  1. Google Chromeをインストール
    • edgeはgoogleを検索するためにのみ存在します。
  2. Google IME をインストール
    • Ctrl-でトグルにするには、Google IMEの「一般タブ」「キー設定」で
      • 「直接入力」「ctrl-」「IMEを有効化」
      • 「入力文字なし」「ctrl-」「IMEを無効化」
  3. ctrl2cap をインストール、実行
  4. Chocoratyをインストール

スタートメニューのカスタマイズ

設定 -> スタート設定からときどきスタート画面におすすめを表示する -> オフ

あとは邪魔な右の方のアイコンを片っ端から右クリック -> ピン留めを外す

IMEの設定

言語 -> 言語 -> 日本語 -> オプション

キーボードからMicrosoct IMEを「クリックして」削除

フォント

MacTypeをインストール。Noto Sansフォントダウンロードしてインストール。

パスワードマネージャ

keepassXCをDropboxで同期して使っています。Linux側でも使えるので便利。

VirtualBox

Windows用PC上でLinuxを使うためには

  • Dual Boot等ネイティブインストール
  • VirtualBox
  • Hyper-V

あたりがよくある話でしょうか。Dual Bootはいろいろ記事があるので今回は仮想化でVirtualBoxを使います。Hyper-Vにしようかと思ったんですが、情報があまりないのと使い慣れていないので、VirualBoxにしました。

まずはBIOS設定でsecurity -> virtualization ->Intel(R) VirtualizationTechnologyをEnableします。Securityにあるとは予想してなかったので手間取りました。

VirualBoxでGUI付きLinuxを動かす場合、ビデオメモリがネックになります。ビデオメモリに256MBを割り当てるとそこそこ快適になるのですが、普通にやると128MB以上は割り当てらません。一回ディスプレイ数を8にすると256MBまで選択できるようになるので、OKで一回保存してから再度ディスプレイ数を1に戻せば256MBのままになります。

Ubuntuもといxubuntuを入れる

DistributionにはUbuntuを選びました。Archとかでも良かったけれども、業務で使うサーバーがUbuntuなので合わせる感じで。大事なことは、Ubuntu Desktopではなく、xubunutuを選ぶということ。ubuntuそのものだと、VRAMを256MBなど割り当てても、VirtualBox上で動かすには非常に重いし、たまにブラックアウトしたりします。最初ubunutuを入れて失敗しました。

フォント

プログラミング用フォント Myricaをインストール。

emacsで確かめたい場合

(set-frame-font "MyricaM M-13")

サイズ等が決まったら、以下で設定。

(add-to-list 'default-frame-alist
                       '(font . "MyricaM M-20"))

Google ChromeというかChromium

UbuntuだとChromiumでCtrl-hが履歴になってしまうので、以下のコマンドでbackspaceに切り替える。

gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"

xubuntuの場合は以下のように。

xfconf-query -c xsettings -p /Gtk/KeyThemeName -s Emacs

python 3.6

deadsnakesで入れます。

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.6
sudo apt-get install python3.6-venv


# update-alternativesでpython3を変更
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1

Go

GoのUbuntu installページにしたがって入れます。

go系ユーティリティ

goを入れて、

あたりをgo instll

zeal

Macではdashをつかっていたが、Linux上ではzealを使う。残してあるWindows上にも同じく入れる。

ちなみに、検索窓にカーソルを動かすのはCtrl-k

open

Macのようにopenでファイルを適切なアプリケーションで開いてくれるのは便利。gnomeだと、gnome-openだけど、xubuntuだとxdg-open。openにaliasしておきましょう。

問題点: 解像度

X1 carbonは 2560x1440のWQHDの解像度が出ます。会社ではLGの34 inch 曲面ディスプレイを使っていてかなり快適なのですが、ディスプレイをはずしても当然WQHDの解像度のままなのです。Windows側ではscaleを切り替えてくれるのか問題ないのですが、Linux側はそういうことはしてくれないのですね。なお、LGにはHDMIでつないだらすぐに出力されました。

VirtualBoxで解像度を落とすといいかと思ったのですが、解像度を落とすと周りに黒い枠がでるだけであまり意味がなかったです。

このあたりの知見を持っている方はいらっしゃらないでしょうか。

まさか解像度が大きすぎて問題になるとは時代は変わったものです。

まとめ

  • X1 carbonを買いました。
  • 開発用のLinuxとして、VirtualBox上でxubuntuを使うことにしました。
  • わりと問題ないですね。というか、普通にLinuxだし。
  • 解像度の問題あり。慣れっちゃ慣れですが

近況

(TODO: ここに例の画像を貼ること)

早いもので、2014年にツキノワに入社してからまる三年が経ちました。その間、MQTTやAnsibleそしてgolangなどに関するたくさんのお仕事をして、たくさんの人のお世話になりました。大変感謝しております。

ぶっちゃけ、

  • GolangによるWebサービス実装
  • Ansibleのコンサルや講師業
  • EnOcean機器のプロトコル実装やBLE制御
  • MQTTサービス Sangoの開発、運用
  • 秒間n千 x m のログの解析基盤実装
  • PHPのWebAPIをGolangでリライト
  • Reactによるフロントエンド実装
  • React-Nativeによるアプリ実装 (Android実装含む)
  • Vue.jsによるフロントエンド実装

という感じ(これでもごく一部)で、上から下までいろいろなことが経験できたのは、ツキノワのおかげです。

んで?

どういうことかというと、Alpaca Japanに9月1日から入社しました。この会社は証券会社や銀行等に対して、為替の取引シグナルを提供したりしています。詳しくはこのあたりのリリースを。

ぼくは、こんな記事を書いたように元々金融とか為替とかには興味があり、今年は機械学習をやってみたいなぁ、と思っていたところ、いろいろな縁が重なり、仕事としてやっていくことになりました。

仕事としてといいつつ、実際の機械学習については他にいい人が複数人いるので、ぼくがやることは今までの経験を活かして、

  • 計算機環境の整備・運用・監視 (必要な時に必要な量を!)
  • データ取得
  • 前処理
  • 結果保存
  • モデル評価・検証に必要なサービスの実装
  • UIや管理画面実装 (Webもネイティブも)

等々をやる予定です。つまり、機械学習エンジニアは機械学習そのものに集中してもらい、それ以外のすべてを巻き取る、というお仕事です。

ですので、機械学習エンジニアを絶賛募集中です。

ところで、以前、 uupaaさんがこんなTweetを出していました。なお、これは引用しただけで、uupaaさんはAlpacaとは関係ないです。 (当初誤解を招くような表現を書いてしまい、申し訳ありません。)


カテゴリー

r_rudi

CTO of Tsukinowa.inc

#python, #postgres, #sphinx, #golang, #freebsd