読者です 読者をやめる 読者になる 読者になる

知らないことを調べるブログ

映画の分からないところを調べてまとめる場所にしていきます。

道具が増えた

 趣味でやっているWebサイトの作り直しがおわった。公開して、お疲れ様とねぎらいをもらった。

 

PHPだったところがCGIに置き換わった。壊れているところを直した。DBを整頓した。ファイルを圧縮した。その結果、仕組みのわからないコピペコードがなくなった。ファイルの形式がそろった。管理作業の大部分が自動化された。Webサイトが軽くなった。

 

 Pythonのモジュールに触れられて良かった。よく使ったのはreとsqlite3とMySQLdbとftplibとlxmlとcgi。アンドロイドアプリ開発と合わせて、二ヶ月ほどPythonをぽちぽち触った。

 

 小さいコミュニティなので、ぼくが作ったサイトをここで明らかにはしない。id:Hokanokoとそのサイトを関連付けることは避けたほうがいいように思う。承認欲求がないことはないけど、コミュニティのインフラみたいなサービスなので、個人の色が付いてしまって利用者が限られることのないようにしている。

 

 ここからちょっともやもやした考え(……とサービス開始当時から考えてきたのだけれど、最近は誰がやっているか明らかになったところで、利用者は別に気にしないんじゃないかと考えている。運営者がとんでもない嫌われ者でもない限り。そのコミュニティでいろいろ発言しているとき、一時期「ぼくはみんなから嫌われているのでは?」みたいな自意識があったんだけど、これは著しくバランスを欠いた意見だと最近気付いてきた。「ああ、そんな人いるね」「ずっとサービスを続けているのは、まあ助かるよね」ぐらいのバランスなんじゃないかと思う。誰かを嫌い続けるのってエネルギーのいる行為だし、そんなエネルギーがぼくに向けられているとはちょっと思えない……。)もやもやおわり。

 

 そんなわけで、reとsqliteとKivyという道具が増えたことがうれしい。あと、最近仲良しになった人とよく話していて、お互いいい感じに敬意がある感じなので、それが楽しい。

すべてPodcast Addictで叶った

 ぼくが欲しかったいい感じの音楽プレイヤーはPodcast Addictだった。欲しかった機能は

  • Podcast購読
  • フォルダのオーディオブック化
  • 再生速度変更
  • ファイルの自動削除

とかだいたいこんなところで、それらがすべてPodcast Addictで叶った。再生速度変更とファイルの自動削除はフォルダごとに設定できるので、日本語の番組だけ1.3倍速にできるし英単語は何回も聞ける。

 自作しようとしていたけどうまくいかないし、これで十分に満足できる。ぼくはAndroidアプリ開発をやめた。

 KivyでのAndroidアプリ作りで詰まっていたのは、一時停止/再生キーをBluetoothで受け取る機能の実装。5日かけてできなかった。ヘッドホンが外れるとAUDIO_BECOMING_NOISYが出るのでそれを受け止めるBroadcastReceiverをサービスに仕込んで、実際に受け止めることはできたんだけど、一時停止/再生キーが押されると出るはずのMEDIA_BUTTONを受け取ることができなかった。actionsに追加したのに、なんでだろう? エラーログはどこにあるんだ?

 でも、Kivyを触るのはとても興奮する体験だった。Androidの仕組み(と開発するためのLinuxの仕組み)に触れることができた。めちゃくちゃ楽しかったな。簡単なアプリなら作れるようになったのがとてもうれしい。エラーログの場所はいまだにわからないけど……。



 Android APKをビルドするためにWindows10とデュアルブートしたLinux mintは、Windows10と違ってアップデートのための通信を裏で勝手にしないし、Windows10よりもターミナルがきれい。ぽちぽちさわっていてとても快適で楽しい。つらいところは、Office作業のためにMSフォントを入れるといくつかのWebサイトが汚くなるので入れられないのと、デュアルブートなのでdropboxの同期先に困るのがちょっとつらい。でも、Windowsはもういらないな。

 JavaではなくKivyでやっている理由はPythonを勉強したいからだった。Androidでのレベル上げはいい感じだった。次は、個人でやっているWebサイトの再構築をやろうと思う。

Linux mint18 mate 64bitをWindows10とデュアルブートした(aspire es1-131)


 Linux mint18 mate 64bitをWindows10とデュアルブートした。入れたのはacer製のaspire es1-131ノートパソコン(windows10)。手順は、

  1. HDDに未使用領域を作る(150GB用意した)。
  2. 64bit版isoファイル(1.7GB)を用意する。Linux mintの公式サイト(参考1)からダウンロードした。
  3. DVD-Rにさっきのisoファイルをwindows10機能の「ディスクへ書き込む」で書き込む。
  4. BIOS(再起動してメーカーロゴ画面でF2)でUSB CDROMのブート優先順位を一番上にする。再起動。
  5. Linux mintがDVDから起動される(やった!)。HDDの未使用領域にLinux mintをインストール
  6. 再起動してBIOSに行き、セキュリティタブでsupervisorに適当なパスワードを設定(aとか)。グレーアウトしていた項目が有効になる。
  7. 信頼できるuefiファイルを設定。「HDD0/EFI/ubuntu」に潜ると「grub64.efi」がある。
  8. 設定したuefiファイルがブート優先順位に追加される。それを一番上にして再起動。

でやった。できた。それからアップデートとかソフトのダウンロードとかで2GBくらい通信した。Linux mintのインストールはそんな感じ。

参考1:
www.linuxmint.com





 僕がlinuxを入れた理由は、kivyをandroidで使うためのビルドツール「buildozer」がlinuxでないと動かないため。しょぼいパソコンでは仮想環境が重くてつらいらしいし、じゃあデュアルブートするか! できた! 使いやすい! いえーい! が今。10年前に一瞬だけubuntu(lubuntuかxbuntuのどちらか)を使っていたときはすっごく使いづらかった。

 Linux mintはとても使いやすい。ただ、いまつらいのは、

  • bluetoothが機能しないことと、
  • sublime textでは日本語入力切り替えキーが効かず、Ctrl+spaceを使うことと、
  • sublime textでは無変換キーが効かないこと

がある。bluetoothは、ドライバの認識がうまくいっていないんだと思う。たぶんなんとかなる。

 vimがつらすぎるのでもどしたsublimeは、Windows版との違いはだいぶ慣れてきた。ぼくは「デュアル歩ーと」とか「アンリミテッド・佐賀」とか第一候補されるのが嫌で、これまでカタカナは無変換キーをいちいち使ってきた。なので無変換キーを押すくせがあり、sublimeで効かないことに気づかず完成稿が「じゃあでゅあるぶーとするか!」などとゆるふわになることがあった。まあ困らないのでいいか。。。慣れるし

 buildozerはなにも考えずにターミナルで実行すると800MBくらいダウンロードされ「月3GBの通信制限がおわる!」と恐怖だったけどまあいいかとなり、パソコンは1時間くらいかけてapkを吐いた。かわいい男の子ですよな気持ちだったけど実機で動かすとエラー終了し、夜霧の向こうに見えてきたのはさっきよりさらにさらに高い壁、状況はいまだに向かい風ガッデムこうなりゃ前に進むしかないとライムスターの歌を歌った。

 apacheはかんたんに動いた。PHPレンタルサーバーではCGIモードで動いているんだけど、モジュールかんたん構築の誘惑に負けてモジュールで動くようにした。apacheはエラーログをわかりやすく出してくれてとても良かった。まるで宇宙家族ジェットソンのロボット家政婦みたいな感じ、、、そう考えると親しみが湧いてきた。


 やっとkivyに戻れる。僕はandroidのいい感じの自分用音楽プレイヤーを作りたいのであって、ヤクの毛を刈りたいわけじゃない。





 Rebuild.fmのバックナンバーがあと50ファイルくらいで聴き終わる。すごく楽しくていい。Rebuildを聴いて、ぼくも1文字変数を使うようにした。emacsは使っていない。

 いまRebuildだけ聴いているけれど、聴き終わったら英単語とか他のpodcastとかtbsラジオクラウドも聞くようになる。英単語は忘れそうなころにもう一度復習したい。そのぶん複雑なプレイリストが必要になる。

 これまでitunesでそういうプレイリストを作っていたんだけど、手動であちこち操作するのがつらかった。ぜんぶ自動化するアプリを作るのが僕の目標で、そのためにandroidで使えるワイヤレスリモコンが必要だと思った。で、bluetoothイヤホンでそれが叶った(参考2)。

 いまのところとても快適。バッテリーは6時間もつ。毎晩寝るときに充電している。耳から落ちることもない(左耳がちょっとゆるいけど)。

 ただ、今朝イヤホンが見つからなくなり、毛布の下からすぐにでてきたのだけれど、ちょっと先行きに不安を感じた。ねこがコロコロ転がして運んだらたぶん行方不明になってしまうだろうな。

 でもぼくはもうたぶん有線には戻れない。小型なのでぱっと見てイヤホンをつけているかわからないのがとてもいいし、androidのバッテリーへの影響もさほどないのもとてもいい。なくしたら買い直すと思う。これはいい買い物だったな。


参考2:





 大原の予想解答で自己採点したら50点くらいだったので確実に落ちている。つらい……。犬のアプリ(参考3)だけで勉強していた。知識ゼロから1ヶ月で50点を取れるようになったのはこのアプリのおかげ。落ちたのは勉強不足なので、つぎがんばればいいか。6月か10月にもう一度受験してみよう。

 ポモドーロテクニック(25分やって5分やらないのサイクルを繰り返す)が新鮮で楽しかった。8時間つづけても腰とか肩が痛くならない(休憩中に動くから?)のですごくいい。そのうち飽きちゃうかもしれないけど、気が散りそうなときはポモドーロを意識的にやろうとおもった。


参考3:
pboki.com





 クラシックギターが超楽しくて毎日さわってる。簿記の勉強不足はここからきているかもしれないけど、、、楽しいからいい。けっこう弾ける曲が増えて、いまは

  • サガフロンティア2のテーマ曲
  • スーパーマリオ64の水中ステージの曲
  • アンリミテッド・サガのヴェントのテーマ
  • アンリミテッド・サガの砂漠ステージの曲
  • FF3のこだいびとのむらの曲

が弾けるようになった。ゲームタブ.net(参考4)で検索すると、メジャーなゲームであればだいたいタブ譜が見つかる。こだいびとのむらが一番かんたんで、水中ステージの曲が一番むずかしくて、ヴェントのテーマが指が疲れて、サガフロ2のテーマ曲が弾いていて一番楽しい。マザー2のウィンターズの曲と、ノーラと刻の工房の曲を最近覚え中。


参考4:
Game Tabs // Video Game Tablature

きっとcgiでぜんぶ叶う


 この数日後に完全に死んだ。で、acer Liquid Z530に買い替えた。amazonで15000円だった。一年前、母親のスマホに同機種を選んだときは21000円くらいだった。とても使いやすくていい。バッテリーは、bluetoothテザリングしていたら一日でなくなる感じ。壊れたスマホと同じくらい持つので満足。端末がひどく熱くならないのもいい。


 2つ前のスマホはトイレに水没。1つ前のはフローリングに落として壊れた。こんどは落とさないように、なるべく机のへりとか不安定な場所に置かないように気をつける。






 ぼくは2chの小さなコミュニティの過去ログ保管庫をやっている(はてなIDのhokanokoは保管庫から付けた)。いま使っている技術に関していうと、

  • 過去ログはhtmlに変換して静的に出力している。
  • ログから抽出したデータはMySQLのデータベースにまとめている。
  • MySQLの操作はPHPでやっている。
  • ビューを整えるときにjavascriptを少しだけ使っている。

という感じ。で、最近pythonjavascriptをこつこつ勉強している。サイトにもその技術を試したくなっている。サイトのUXは向上するし、保守もかんたんになるし、ぼくの開発欲求も満たされるし、ということでサイトをリニューアルすることは複数の成果が得られる素晴らしい計画になってくれると期待している。


 で、pythonのwebフレームワークにbottleというのがあって、なんか楽そうなので導入しようとした。ところがだめだった。ぼくの借りているレンタルサーバーpythonはバージョン2.4で、bottleの対応バージョンは2.5以降だった。ぼくはフレームワーク技術を学習することをやめ、cgiの学習を始めることを決めた。ぼくのひとり小規模開発は、きっとcgiでぜんぶ叶うかもしれないし……。


 sqliteもだめ……と思いきや、モジュールが入っていた。ただ、sqlite3ではなくて、sqlite(package)という名前だった。違うの? import sqlite3ではエラー。import sqliteで通った。データベースファイルへのconnectも通り、0バイトのtest.dbが作成された。でも、テーブルを作るところでつまづいた。sqlite3と書き方が違うのかな? 調べ中。


 いま実際に運用しているデータベースはMySQLなんだけど、できればsqliteに乗り換えたい。なぜならいまMySQLで管理しているファイルの容量は30MBくらいで、これからデータベースで管理したいと考えているファイルが100MBくらいあるんだけど、ぼくの借りているレンタルサーバーでは100MBまでしか利用できない。いまぼくには2つの選択が迫られていて、

  1. dat形式で管理するかsqliteで管理するかの選択。
  2. MySQLの30MBをsqliteに移行するかそのままいくかの選択。

ということでsqliteをぜひやりたい。pythonのmysqldbがインストールされていることも発見したし、phpを使わずにpythonだけでデータをダンプできるかもしれない。これからがんばる。


 学習が進むときっとぼくは「cgiは古臭くなんかないじゃないか! ちょう楽しい!」と言っている。