初めてのchromebook購入
amazonのブラックフライデーという歳末大売り出しにつられて、ASUSのchromrbook (CX1101CMA-GJ0019)を購入。31000円ほど…て、これまたスマホより安いパソコンだ。これに追加でマイクロSDカードやBTマウス。
PCを新規に購入するなら、その最低必須条件は
・画面サイズが10〜11インチ
・CPUがインテル
で、安いに越したことはない、というのも入れると、Chromebookとなった。
必須条件の理由は。
自宅作業がローテーブルという名のちゃぶ台環境なので、デスクトップや大きなサイズのノパソは邪魔になるだけ。
インテルのCPU採用なら、メーカーのサポートが終わってもunix系OSをインストールして復活できる可能性があるから。
画面サイズで絞るとCPUがインテル以外のものばかりで、CPUで絞ると画面サイズが15とか巨大なものばかりが並んでた。
条件クリアしたのが、このASUS chromebook CX1。
画面:11.6インチ
CPU:intel Celeron N4020
メモリ:4G
ストレージ:64G(eMMC)
OS:ChromeOS
今、メインで使ってるのもASUSのvivobookというノートパソコン
「22980円のノートパソコンvivobook購入」
↑購入時のvivobookはWIN10だったけど、今はChromeOS Flexというgoogle謹製フリーのChromeOSで使ってる。
今回購入したCX1はキーボード配置などハードウエア的にも正規正統のchrombook。
これはフリーOSのFlexとは違ってgoogle playが使える。すべて対応してるかどうかはまだわからないけど、こちらの正規版(?)chromebookは、アンドロイドのアプリも使えるらしい。
さっそくlinuxをONにして、15Gほど割り当てて環境設定。
といっても、vivobookで使ってる設定ファイルをこっちに持ってくればほぼOK。
aptやcpanでインストールしたものも同じ。
「CloudReadyのバージョンアップ(94系から96に)」
↑メモっておいたことが珍しく役に立った。
CX1はストレージが64G。32Gのvivobookの倍だし、apache2もインストールしてローカルでWEBサーバーを立ち上げておくことにした。
vivobookでも最初は立ち上げてたんだけど、いろいろインストールするうちにディスク容量がちょっと心配になり、あまり利用する状況もなかったapacheは削除していた。
Chromebookのlinux環境(debian)のapache2はconfファイル(設定ファイル)が役割ごとに分けられてたり、以前もわりとハマったので、改めてメモ。
apache2のインストール
sudo apt install apache2
↑インストールはaptで一発。画面を眺めてるだけ。
インストールしたらまずやるべきこと。
・chromebook側
「設定」→「デベロッパー」→「linux開発環境」
→「ポート転送」
ここで、ポートを追加する。ポート番号は慣例的に「8080」が何かと無難。この設定はlinuxのコンテナを終了させるとOFFになるので立ち上げるたびにONにする必要がある。
・Apache2の設定
ターミナルでlinuxにログインして設定していく。
Apache2の設定ファイルは /etc/apache2/ 以下。
/etc/apache2/ports.conf
をエディタ(vim)で修正する。
Listen 80 → Listen 8080
変更したら、ターミナルでapache2を再起動。
sudo systemctl restart apache2
chromebook側で
https://localhost:8080
↑にアクセスして、デフォルトのスタートページが表示されたら問題なくapache2が動いている、というのを確認できてひと安心。
ここから以下、自分の環境に合わせてもろもろ設定していくことになる。
前提として。
・perlでCGIを使う
・任意のユーザーディレクトリでCGIを使う
・ローカルのサイトはSDカードで運用する
というのがあって、案の定ハマったりした。
・SDカードにシンボリックリンク
SDカードを差したらchromebookの「ファイル」アプリ
「USB Drive」という名前になっていてファイル名の半角空白は事故の元なので「USBDrive」に名前変更。
名前変更したら右クリックして「linuxと共有」する。
ターミナルで ls /mnt/chromeos/removable/USBDrive/
ができてたら、ローカルサイト用のディレクトリを作って、HOMEディレクトリにシンボリックリンクを作成すればOK。
・CGIを使うためのモジュールを設定
sudo a2enmod cgi
↑これでCGIが使えるようになる。
ちなみに。
apache2の設定ファイル群は「*-enabled」「*-available」というディレクトリに入っていて、
「enabled」が読み込まれている設定
「available」が利用できる設定
と分けられている。
利用したい設定をONにするのが
「a2enconf」「a2enmod」「a2ensite」
読み込まれている設定をOFFにするのが
「a2disconf」「a2dismod」「a2dissite」
(やってることはシンボリックリンクの作成/削除)
・apacheの実行ユーザーを変更
デフォルトだとapacheは「www-data」というユーザー、グループで実行する。このままでも問題はないんだけど、任意のユーザーディレクトリでCGIを実行するにはディレクトリやファイルの権限でひっかかって面倒くさい。
/etc/apache2/envvars
↑apache2の設定ファイルで使われる変数を設定しているファイルがある。
この中で実行ユーザー、グループが設定されているので
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
「www-data」を自分のユーザー名に変更すると、自分のHOMEディレクトリ以下でローカルサイトを展開できる(HOMEディレクトリ以下は、www-dataのままだと権限がないので、403エラーとなる)
・VirtualHostで設定
/etc/apache2/sites-enabled/
を見るとデフォルトの 000-default.conf
がONになっている。これを別名(mylocal.confとか)でコピーしてエディタで修正、編集していく。
修正が必須なのは以下の2点「VirtualHost」「DocumentRoot」を書き換える。
VirtualHost *:80 → 8080
DocumentRoot /var/www/html → /home/usrname/dir
8080番ポートに設定、ローカルサイトを展開するディレクトリを自分のHOMEディレクトリに設定。
公開するディレクトリの約束事をmylocal.confに追加記載する。
<Directory /home/usrname/dir/>
Options +ExecCGI -Indexes +FollowSymLinks
AddHandler cgi-script .cgi .pl
AllowOverride None
Require all granted
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
</Directory>
「+ExecCGI」
このディレクトリでCGIを実行できるようにする
「AddHandler」
cgiファイルの拡張子は「.cgi」と「.pl」
編集が終わった「mylocal.conf」を /etc/apache2/sites-available/
にコピーして、その設定をONに設定、apacheを再起動して完了となる。
sudo cp mylocal.conf /etc/apache2/sites-available/
sudo a2ensite mylocal
sudo systemctl restart apache2
エラーになったら以下の2つで確認。
sudo systemctl status apache2.service
sudo less /var/log/apache2/error.log
…て、ほぼほぼ、configファイルのエラーなので、設定ファイルを作ったら
sudo apache2ctl -t
で、設定ファイルのエラーを確認するのが吉。
とりあえず今日時点ここまで、かなあ。
公開してるサイトをコピーして、ローカルで動作確認ができるようにしておきたいところだ。
ホッカペに湯たんぽに電気毛布まで。寒さ対策の達人。
[11/30 15:22:42] 追記
lolipopと同じように使うためにいくつか必要で。
perl の場所が違う
→/uer/bin/perl を /usr/local/bin/perlにリンク
DocumentRootが違う(当然)
→/home/以下にディレクトリを作って、本体のあるSDカードのディレクトリにリンク
perlで足りないモジュールのインストール
JSON
→cpanでインストール
imagemagick
→cpanだとエラーになるので、apt install perlmagickで取得
DBD::SQLite
→cpanでインストール
とりあえず。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
ブラウザでバーコードをスキャンしてISBNを取得する
2006年公開のWEB本棚「趣味は読書2」のスマホ版にバーコードをスキャンして本を登録できるようにしたのでメモ。
このWEB本棚は、なんだかんだ15年以上続けていて、最初は自宅で組んだパソコンをサーバーにして公開してたんだけど、東日本大震災があって、計画停電とかいつ停電してもおかしくない状況というのがあって、レンタルサーバーに引っ越し、現在にいたる。
WEB本棚「趣味は読書2」 https://doncha.net/
もともと自分で使うことを考えてたので、既読・未読がわかって、簡単なメモやカテゴリをつけられればいいので、機能的には十分足りてる。
ただ、1冊ずつISBNを手入力するのがちょっと面倒くさい。ガサツなわたしはISBNをタイプミスしてエラーになることも少なくないし。
なもんで、後づけで、アマゾンの検索結果を一覧にしてチェックしたものを本棚に登録できるようにして使ってたら、2019年のAPIの利用規定改定でアフィリエイトで売上のないアカウントはAPIを利用できないということになった。当然アフィリエイトの売上などないわたしは、APIを利用した検索結果からの一括登録ができなくなってしまった。
これを作った当初の状態に戻っただけなので、まあしょうがないな、ぐらいな感じ。本を買っては/読んでは、ちまちま本棚に登録していた。
てな昨今だったわけだけど。
イーロン・マスクがTwitterを買って、何かと騒がしいので、以前アカウントを作っていたマストドンに久しぶりにログイン。
ここは本好き、本読みのひとが集まるサーバー(インスタンス)で、流れてくる話も小説がらみが多くて静かに面白い。本の整理、積読なんかの話も流れてくる。
本好きの集まるマストドンはこちら
Bookwor.ms
それに刺激されて、ふたたびだかみたびよたびだか、WEB本棚の見直しをしてみた。
機能的には満足しちゃっていて、データベースの構造もシンプルで必要十分、昔の自分をちょっと褒めてもいいかもだった。
UIを含めたデザインが古臭くて気に入らない。でも、変更するとなると、かなり面倒くてさすがに手をつける気合気力体力がない…IE対応なんかのスタイルシートも混じってて、そのうち考えないとなあ。
スマホ版も見直しかな、とスマホでログインして触ってみて、そういやISBNの入力をバーコードスキャンでやりたいと思ってたんだと。
さっそく検索してみた。
…て、ここまで、自分でもびっくりするぐらい無駄なまえがき、無用なゴタクが長くてすまん。もう爺、老人なもので許してください。
ブラウザからスマホのカメラを使うためのjavascriptライブラリも公開されていた。
Quagga.jsというライブラリで、公式ページはこちら→ QuaggaJS
javascriptも詳しくないし、読み取り精度をあげるためには、HTML5あたりのcanvasも使う必要があるらしい。
あちこち実装されてるかたのサイトを拝見しては、ちょっとずつ試して試して、最終的にこちらのサイトに助けられて、どうにかISBNのバーコードスキャンに成功。
QuaggaJSを使ってブラウザでバーコードスキャン:なんぶ電子
ほんと、こちらのページには感謝しかない。
テストページでいろんなコードを試してまる一日。javascriptだけじゃだめで、canvasも使う必要があるのが大騒ぎで、javascriptが意図通りじゃないのか、それともHTML的な問題なのか切り分けるのに時間がかかった…って、どっちも自分のスキル不足が原因なんだけど。
WEB本棚「趣味は読書2」スマホ版 https://doncha.net/sp/
WEB本棚「趣味は読書2」ついて https://doncha.net/about.pl
WEB本棚「趣味は読書2」で出来ること https://doncha.net/about.pl?c=help
たぶん、小学校の頃、自動車文庫(移動図書館)がなければ、いまの自分はなかった。
ほんと、小説は面白いぞー!
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」