2021年5月26日水曜日

matplotlibで日本語表示のためにIPAフォントをインストール

 Linux(ベータ版)を日本語化する際にデフォルトでNoto Sans CJK JP日本語フォントがインストールされていいたので日本語フォントは追加していませんでした。

しかし、パッケージでインストールしたmatplotlibはVer3.0.2のようでttcファイルに未対応(V3r3.1から対応したらしい)のようなので上記の日本語フォントが扱えないらしい。

Noto Sans CJK JPはttcファイル

仕方なくIPAフォントをインストールすることにしました。

■IPAフォントパッケージインストール

>sudo apt install fonts-ipaexfont

■インストールされたフォントの確認

 >fc-list | grep 'IPA'

(実行結果)
/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf: IPAexゴシック,IPAexGothic:style=Regular
/usr/share/fonts/opentype/ipaexfont-mincho/ipaexm.ttf: IPAex明朝,IPAexMincho:style=Regular
/usr/share/fonts/truetype/fonts-japanese-mincho.ttf: IPAex明朝,IPAexMincho:style=Regular
/usr/share/fonts/truetype/fonts-japanese-gothic.ttf: IPAexゴシック,IPAexGothic:style=Regular

ttfファイルがインストールされました。

■Jypyter Notebookでのテストコード

import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif']  = ['IPAexGothic']
x = [1,2,3,4,5]
y=[2,4,6,8,10]
plt.plot(x,y)
plt.title('日本語タイトル')
plt.show()

無事日本語タイトルが表示できました。

2021年5月22日土曜日

matplotlibインストールでThe headers or library files could not be found for zlibエラー

 Chromebook(ASUS Chromebook Detachable CM3)上のLinux(ベータ版)の環境も整ってきたのでVisual Studio Codeの拡張機能Jupiter Notebookちょっと使用してみようとグラフ表示のサンプルコードを書いてみるとmatplotlibモジュールがないとエラー表示。

そんな気はしたのでインストールしようとすると関連モジュールのPillow-8.2でインストールエラー。

The headers or library files could not be found for zlib,

 a required dependency when compiling Pillow from source.

このメッセージは以前にも違う環境で発生したことが・・・あらためて調べてみると色々なケースがあるようで深みにはまりそうな予感。

公式サイトのインストール方法を読んでいるとdebianの場合、python3-pilとpython3-pil.imagetkのdebパッケージにPillowが含まれているような記載がありインストールしてみると5.4.1がインストールされました。

再度matplotlibのインストールをトライするとエラーは改善せず・・・インストールログをみているとPillowは6.2以上を使用するようでパッケージに含まれている5.4.1では古いらしい。(matplotlibは3.4.2をインストールしようとしていました)

もしかしてmatplotlibのdebパッケージがあるのではないかと調べて見るとやっぱりありました、バージョンは3.0.2とちょっと古いのですが勉強程度に使用する分ならきっと使えるのではないかと思うのでこれ以上深入りするのはやめました。

(2021/5/26)

matplotlibのTTCファイル対応は3.1からのようなので日本語表示させる場合はTTFファイルのインストールが必要そう



2021年5月21日金曜日

Visual Studio Code 1.56.0から1.56.2にアップデート

 Visual Studio Codeを使用していると左下のアイコンにマークが表示


どうやらアップデータが公開されたようです。Windows版であれば自動更新可能らしいのですがLinux版は手動更新が必要らしいです。


アップデート前のバージョン(1.56.0)を確認

上のアイコンをクリックしてみるとLinuxにインストールしてChromium(事前にインストールしていました)が起動しダウンロードサイトが表示

画面のリンクからdebファイルをダウンロードのリンクをクリック

Keepボタンをクリックしてダウンロードを継続


ダウンロードファイルはファイルアプリ側から参照可能なので新規インストールと同様にChromeOS側からダブルクリックしてインストールしてみると


エラーが発生・・・うーん。たまたまChromiumをインストールしていたのでダウンロードサイトを表示しましたが未インストール状態だったらどうなるのかな。ちなみにChromium上からダウンロードが完了したdebファイルのアイコンをクリックしてもインストールは開始されるもののエラーになりました。

とりあえずaptコマンドでインストールを試みてみることにしました。

なんとなくapt list --upgradeableでアップグレード可能なパッケージパッケージを確認してみるとちゃんとVisual Studio Codeが対象になっていました。

なので、sudo apt install codeで無事インストール完了

インストール後にバージョンを確認すると無事1.56.2にバージョンアップ完了、初めからコマンドにしておけばよかったです。


2021年5月19日水曜日

Visual Studio Codeのインストール

 無事日本語環境も整ったのでVisual Studio CodeをインストールしてPythonの開発環境を整えます。

PythonはLinux(データ版)には標準でインストールされているようです。

少し前はASUS Chromebook Detachable CM3に搭載されているCPUがARMベースMediaTekにVisual Studio Codeが対応していなかったようですが今はちゃんとサポートされているようで安心しました。


■パッケージのダウンロード

ダウンロードサイトからARM64版のdebパッケージをダウンロード

■インストール

ダウンロードしたdevファイルをChromeOSのファイルアプリでダブルクリック




LinuxアプリグループにVisual Studio Codeのアイコンが追加されます

■日本語化



左側メニューの拡張機能をクリックしてjapanをキーワードにして検索、
Japanese Language Pack for Visual Studio Codeを選択してクリックしインストールします。
Visual Studio Codeの再起動を求められるので再起動すると日本語表示になります。

■Python拡張機能

日本語化と同様にPython拡張機能をインストール

インストール自体はこれで完了、ChromeOS上からちゃんとLinuxにインストールしてくれるのは以外でした。

Visual Studio Codeのパッケージ名はcodeのようなのでターミナルからaptコマンドでインストールするならsudo apt install codeなのかな、その場合アイコンは作成されるのだろうか。。。

2021年5月13日木曜日

ChromebookのLinux(ベータ版)日本語環境(日本語入力)

Linux(ベータ版)も無事動作しているのでこの後インストールする予定のVisual Studio Codeのためにも日本語化(日本語入力)をできるようにしてみることに。

ざっと調べてみるとfcitxとMozcの組合せが多かったのでまずはこれで試してみました。

■タイムゾーンを確認

>timedatectl status


デフォルトで東京になっていることを確認

■ロケール

・ロケールパッケージ追加


日本のロケール情報がなさそうなのでパッケージを追加(※画像はパッケージを追加せずにロケール設定をした後にコマンドを実行したところ3行エラーが発生している)

>sudo apt install locales-all

・ロケール設定

>sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"

>source /etc/default/locale

■フォント

参考サイトではIPAフォントをインストールする手順が多いようですがfc-listコマンドで確認してみるとGoogleがAdobeと共同開発したフォントファミリーのNoto Sansがインストールされてるようなのでとりあえず追加はしないでおきました。


fc-listコマンド結果


■Mozc日本語入力システム(IME)

・インストール

>sudo apt install fcitx-mozc

インプットメソッドフレームワークであるfcitxは既にインストール済(?)だったのかとくにインストールはしませんでした。

・環境設定

/etc/systemd/user/cros-garcon.service.d/cros-garcon-override.confに以下の行を追加

Environment="GTK_IM_MODULE=fcitx"

Environment="QT_IM_MODULE=fcitx"

Environment="XMODIFIERS=@im=fcitx"

・自動起動設定

使用しているウィンドウマネージャー(sommelier)の設定ファイル(?)に追加

>echo "/usr/bin/fcitx-autostart" >> ~/.sommelierrc


・再起動

シェルフのターミナルアイコンを右クリックしてLinux(ベータ版)を終了、再度ターミナルを起動

■fcitxの設定

fcitxの設定ツール起動

>fcitx-configtool

起動直後の画面

1行目のKeyboard - English(US)は削除(一行目を選択した状態で画面左下の"-"をクリック)してKeyboard - Japaneseを追加(左下の"+"をクリックしてJapaneseを選択)して1行目に移動させます
削除、追加、移動後の状態

・入力設定
日本語入力時にカーソルがある位置にリアルタイムで入力できるようにする設定、アドオンタブでAdvancedチェックボックスをオン


左下のAdvancedチェックボックスをオンにした状態

Fctix XIM Frontendを選択して”設定”ボタンかダブルクリック
”XIMでOn The Spotスタイルを使う(起動中は変更できません)”チェックボックスをオン
OKボタンをクリック

・補足1

fcitx-configtoolを起動した際に以下のエラーメッセージが表示
----------------------------------- エラーメッセージここから
hoto@penguin:~$ fcitx-configtool

(process:612): Gtk-WARNING **: 17:36:30.344: Locale not supported by C library.
        Using the fallback 'C' locale.
xkbcommon: ERROR: Key "<CAPS>" added to modifier map for multiple modifiers; Using Mod3, ignoring Lock
----------------------------------- ここまで

この時はロケールパッケージを追加しないでロケールを日本に設定したのが原因、起動はしたもののメニューは日本語表示せず

・補足2

----------------------------------- エラーメッセージはここから
xkbcommon: ERROR: Key "<CAPS>" added to modifier map for multiple modifiers; Using Mod3, ignoring Lock
----------------------------------- ここまで
CAPSキーが云々、CM3のキーボードは87日本語キーボードだけれどロケールでキーボードレイアウト設定をしていないのが原因かも、だた設定作業には支障なかったので今回は無視しました。

■動作確認

標準のターミナルからではLinux上の日本語入力が出来ないのでとりあえずGoogleが公開しているオープンソースブラウザchromiumをインストールして起動させた状態で日本語入力ができることを確認しました。


chromiumを起動してCtrl+Spaceで日本語入力に切り替わることを確認できまいた。

・補足

chromiumはターミナル上からインストールしましたがLinuxアプリにchromiumのアイコンが作成されていました。

>sudo apt install chromium 



日本語環境も無事整ったので次は開発環境

2021年5月10日月曜日

テキストエディタ(Caret Mod)

 Caret Modはオフラインでも使用可能ということなのでインストールしておきました。

インストール後はテーマなど少し設定変更、メニューの設定→環境変数をクリックするとuser.jsonファイルが開き設定変更可能で変更を保存するとすぐに反映されるようです。


【変更点】

・テーマ

  "defaultTheme": "pronama_dark"→"defaultTheme": "pastel_on_dark"

・80文字の場所に目安線を表示

"showMargin": false→"showMargin": true

・インデント

"indentation": 2→"indentation": 4

・タブ切り替え時にリロードしない

 "disableReload": false → "disableReload": true

------ 2021/05/21追記 ------

 起動の際に前回終了時タブ状態を再現するのを無効にする起動

"disableTabRestore":false→ "disableTabRestore":true


2021年5月9日日曜日

ChromebookでLinux(ベータ版)初め

 Chromebookを使用してみたかった一つであるLinuxコンテナのCrostini

Linuxを純粋にChromebookにインストールしてデュアルブートさせるとかもあるけれどまずはお気軽なCrostiniを使用し始めました。

検索するとCrostini上のLinuxのことなのかピュアなLinuxなのかが混乱しそうになりました、また使用しているchromebookはASUS Chromebook Detachable CM3で動作リストにまだ記載がなくちょっと心配にもなりましたが有効化している方がいたので一安心

■Linux開発環境(ベータ版)の有効化


設定から詳細設定→デベロッパーにあるLinux開発環境(ベータ版)のオンにするをクリック


セットアップが開始


Linux上に作成されるユーザー名を任意に指定します、ディスクサイズ説明もあるように後で変更できるようなのでとりあえずデフォルトのまま

ダウンロードが数分かかりインストールされます。


インストールが完了すると自動的にターミナルが起動します、ここまでで10分もかからず終了

使用できるLinuxは2021/5/時点ではDebian GNU/Linux10(buster)でした。aarch64であることからこのChromebookはARMv8ベースなのが分かります。

■パッケージを最新化

・パッケージ情報の最新化

>sudo apt-get update

・実際にOSアップグレード(dist-upgradeでパッケージ構成の変更に追随してアップグレード)

>sudo apt-get dist-upgrade


今後色々使用していく上でもパッケージを最新化しておきました。


次は日本語化


ファイル共有へのアクセス

 Macとのファイル共有をしたくiOSならAirDropというとても便利な機能があるけれどChromeOSでは使えない。

外部ストレージサービスを使うのが一番簡単かもしれないけれど自宅にはNASもありどうせならNASを使用した方が便利

調べて見るとWindows共有(SMB)にアクセスするソフトもあるようだけれどどうやら標準のファイルアプリでも接続できるらしい




ファイルアプリのメニュー→サービス→SMBファイル共有を選ぶと自動でネットワーク上の共有情報を検索表示してくれたので認証情報を入力すればマウント完了(左側のGoogleドライブ下あたりに共有名のアイコンが表示する)

接続を解除したい場合は共有名のアイコンをクリック→ダブルタップ→閉じるを選択する。

簡単に接続できて便利。

2021年5月6日木曜日

タッチ感が悪いのでサラサラ保護シートを貼ることに

 基本的に普段使用しているMacも持ち出したりしないので保護シートをしていませんが、ASUS Chromebook Detachable CM3のディスプレイを指でなぞると滑りが今イチ気に入らない。

なんかペトペト?ペッタリな感じ。

仕方なく感触をよくするために保護シートを貼ることに、ただ買いに行った量販店には画面サイズに合うシートがなく結局ELECOMの11.6インチ用を購入して自分で適当なサイズにカット

貼ったおかげでタッチ感は快適、でも実はそれほど外面をタッチしないので2,000円近くの出費はちょっと微妙・・・。

2021年5月5日水曜日

Twitterクライアント

 Chromebookで使用するTwitterクライアントは複数ありどれも便利そうだけれどとりあえず基本的なことできれば十分なので過去に使用したことがあるTweetDeckにしてみました。

デフォルトは4カラム(列)表示ですが画面サイズがそこまで大きくないのでとりあえず不要なトレンドタグの列は削除してしようすることに。

今まで使用してタブレットでのTwitterクライアントに比べて若干動作が遅く感じもしますがまぁストレスを感じるレベルではないので不満はありません。

アプリそのものは日本語化されていないですが説明サイトもあるのでそれほど困ることはないのかな。

次はどのアプリをインストールしようかな。

2021年5月4日火曜日

シェルフ位置を左右に変更

 シェルフはデフォルトが下部にあるけれど縦幅をなるべく確保したいので左右に変更することにしまいた。



シェルフをダブルダップしてシェルフ位置の変更から左右好きな方に変更可能らしいので自分はWindowsのなごりもありとりあえず左することにしました。

2021年5月2日日曜日

タッチパッドの上下スクロールの逆スクロールを有効化

ChromeBookを操作していてなにか違和感を感じていてふと気がついたのが タッチパッドの上下スクロールが普段使用しているMacと逆にスクロールすること。

検索してみるとちゃんと逆スクロールできることがわかり一安心


設定⇢デバイス⇢タッチパッド⇢逆スクロールを有効にする。

Chromebookを使い始め

 今までブログを書くのはキーボードが必須なのでMacを使用していたけれどChormebookからでもいいかも、少なくともiPhoneやタブレットからは入力が面倒なので書いていませんでした。

今回もキーボードに慣れるためにChormebooで書いているけれど予想以上に打ちやすいかも、安いからと言ってLenovoにしなくて正解だったかも。

とりあえずChormebookの初期セットアップはすんなり完了したけれど、インターネット接続設定でDHCPが前提になっているのはどうなのかな、自宅の環境はDHCPを有効にしていたので自然に繋がったけれどそうでない場合はいきになりハマりそう。

あと最初にアカウントの入力を求められるけれど何のアカウントぐらいはもう少し説明してほしい。

さて、少しずつ使いやすいようにカスタマイズしていかないとな。

2021年5月1日土曜日

ChromeBookデビュー

 現在使用中のAndroidタブレット(ASUS ZenPad 3S 10(Z500M))の動きが何となく鈍くなってきていてバッテリーの消費も早くなり一度は画面もブラックアウトした状態で起動もしない(起動はしていた)ことも。。。

そしてあらためタブレットのシステム情報を見ているとAndroid7.0でセキュリティパッチレベルが2017年11月6日って古すぎませんか?Androidについて調べてみると既に最新は11のようですしサポートはと調べるとメーカー次第らしい。

ASUSのサポートページでは有益な情報を見つけることができずこんな古い状態でちょっと心配になり買い替えを決意することに。

タブレットの候補を調べると意外に少ない・・・中○メーカー製はほどほどあるものの一時期に比べてだいぶ市場が小さくなっているのか選択肢が少なく実質AppleのiPadが強いことに驚き(日本だけ?)

iPadは過去に使用したこともありちょっと割高なのでAndroidでよかったのだけどこの状況ではと思ったらいがいに出回り始めているのがChromeOSのChromeBookのよう。

使い方的に基本はキーボードは不要なもののブログやメモをする時にはやはり必要なので2in1タイプが理想、そこで候補にあがったのがLenovo ideapad Duet ChromebookとASUS Chromebook Detachable CM3、性能と値段から考えるとLenovoなのですが実機を触ってみるとキーボードは圧倒的にASUSの方が打ちやすいし外部ストレージも使用できる、それにちょっと中○製は避けたい事情も。。。

ただ自分には不要なスタイラスペンがあったり値段は1.5倍だしちょっとふんぱつしてみました。

まだ初期セットアップしただけだけどすでに不満が、自分は使う予定のないスタイラスペンはとても取り出しにくい、付属のマニュアルにも取り出し方法について記載はなく思わずインターネットで調べてしまいました。

実際取り出しはただ引き抜くだけですがあまりにも固く爪が剥がれそうになりまさかドライバーで抉ることに、この固さは個体差かと思ったら同じ様な方がかなり多くこの仕様をデザインした人と承認した人は実際に使われたのだろうか、テスターだっていただろうし何とも思わなかったのかな。正直言ってスタイラスペンの取り出しは最悪です。

あ、ついでにASUSからは有料サービスのDMはよく送られてきたきたけどセキュリティアップデートについては連絡はなくもっとアップデートのサービスを終了する(しているなら)それこそメールしてくるべきではないかと。