見出し画像

私本管理PlusでDVDやCDの検索ができない!

私本管理Plus(http://ekakin.la.coocan.jp/index.htm)というソフトで蔵書管理をしているのですが、プラグインを追加することで本以外にDVDやCDなどの管理もできました(Amazon.co.jpから情報を収集している)。

が、プラグインが作られたのは10年くらい前。その間にAmazon.co.jpの仕様が変わったのか、DVDやCDの情報を取得できなくなりました。約10年くらいプラグインの更新がされてないところを見ると、プラグインの作者はもう私本管理Plusを使ってないのかもしれません。

私本管理PlusはDelphi(https://www.embarcadero.com/jp/products/delphi)という、大昔はTurbo Pascalという名前だった開発環境で、現在Delphiの利用者数はツチノコレベルじゃないかと勝手に想像。一応、無料の開発環境(Delphi Community Edition:https://www.embarcadero.com/jp/products/delphi/starter)もありますが、今からDelphi(Turbo Pascal)を勉強し直すのもなんだし、どうしたものかと。

私本管理Plusの掲示板でプラグインを使ってもDVDやCDの情報を取得できなくなったのですがと問い合わせたところ、ASINで検索してみてくださいとのこと。試しに標準で入っているプラグインにASINを入れてみたところ、検索できました。

私本管理PlusはDVDやCDはEAN/JANコードでは検索できないけど、ASINではOKってどういうことなんだろう?試しにAmazon.co.jpのサイトでEANを入力して検索したところ、検索できました。DVDやCDについているバーコードはEAN/JANコード。それで一度検索してASINを取得し、それで再度検索してDVDやCDの情報を取得しているってこと?何故そんなまわりくどいことを?よく分かりません。

とりあえず最初から含まれているプラグインはASINならDVDやCDもOKということなので、バーコードで読み取ったEAN/JANコードをASINに変換するプログラムを作って、得たASINを私本管理Plusに入力して使うという方法を思いつきました。私本管理Plusのためのフロントエンドのプログラムを作る感じですかね。

けどこういうプログラムってもうあるんじゃないかと思ってぐぐって見たら、Webで1件1件検索できるものや、5,000~10,000円で開発しますというのとか、メールアドレスを登録すれば無料で変換する何かを差し上げますとか、Excelで作られているんだけどダウンロードして実行しようとするとExcelが「危険、アブナイ」とかいって使えなかったりと、さまざま。しかしこういうのでビジネスしようってことは、それなりに需要はあるんだということが分かりました。

なにで作る?

さて、作成にはPythonを使おうと思っています。情報がいろいろとありますし、今からDelphiを勉強するより楽かと。ちょっと試しにAmazon.co.jpで「Delphi」で検索したらほとんど引っかかりませんでした。

あと私のプログラミングスキルですが、一応会社にはプログラマとして入社したのですが、使用した言語はFORTRAN、C、PHP、Perlといったところ。会社に仕事に使う前のOracleがあったのでPHPやVisual BASICとつなげてSQLで少し遊んでいました。

個人的にはTurbo Pascal、AWK、VISUAL BASIC、COBOL(アルバイトでほんのちょびっとだけ使っただけ)、Javaなんかを触りました。Javaは公表されたときに飛びついたのですが、当時のPCの性能が低すぎて動くのが恐ろしく遅くて「こんなの、使い物になるのか?」と思ったのですが、今ではPCの性能も大きく向上し、JavaのVM上で動くプログラムImageJ(https://ja.wikipedia.org/wiki/ImageJ)があるのですが、ちょっと使ってみたところ軽くて機械語をネイティブに吐き出して動くプログラムと大して差はないなと思い、驚きとともに感動しました。

話が脱線したついでにさらに書くと、小学生の頃にNEC PC-8001というパソコンがあり、BASICが搭載されていました。BASICの入門書を購入し勉強を始めたのですが(その頃の本はソフトウェアとハードウェアの区別が曖昧に書かれてて書いている本人もよく分かってないんじゃないかという感じでした)、配列のところでつまずき、「配列?何それ。それがあることでどういうことができるの?」とちんぷんかんぷんになり挫折。しばらくプログラミング言語とは遠ざかっていました。

しかし高校生の頃、いい入門書があるよと紹介されたのがTurbo Pascalの入門書。確かにわかりやすく、配列でつまずいていたのは何だったんだろうといった感じです。C言語を勉強する人が必ずといっていいほどつまずくポインタについても分かりやすく書かれており、「どっかのアドレスを指し示す矢印なんだな」ということが分かればOK。ちなみにCではポインタは「*」ですが、Pascalでは「^(ハット)」が使われています。Pascalの本を読むと、Pascalを作ったニクラウス・ヴィルトさんは確か「↑」をポインタとして使いたかったらしいのですが、ASCIIコード表にはそのようなものはないため、代わりに↑の先っぽの「^(ハット)」を使ったというのを読んだことがあります。C言語もPascalみたいに「^(ハット)」を使えば苦しむ人、挫折する人を大量生産することがなかっただろうにと思うのですが、なんで「*」にしちゃったんですかね。

またまた話は脱線しましたが、Pythonで開発しようとなると、今度は開発環境をどうするか。Webや本によってインストールするディストリビューションが違ってて、どれがいいのか分かりません。Anaconda(https://www.anaconda.com/)が有名らしいのですが、ちょっと検索してみたら有料化するのではないかというのをちらっと見たり、ライブラリの取り込み方が他のディストリビューションとちょっと違っていたりとクセがありそうです。必要なライブラリは最初のインストールでかなり入れてくるので何かやるにしてもライブラリの導入の面倒くささがないといったメリットもあるようですが。

他にはGoogle(Alphabeto?)が提供しているColab(正式名称「Colaboratory」:https://colab.research.google.com/)というWebベースの環境とか、jupyterlab(https://jupyter.org/)という、Colabのベースになっている環境もあります。

もちろんPythonのオリジナルをリリースしているところから入手するのが一番なのかなーという気もします。

他にも、エディタでコーディングしてコンソールでPythonを実行するというやり方や、エディタとPythonを合体(連携?)させて統合開発環境を使うという方法もあります(Python自体にIDLE(統合開発及び学習環境:Integrated Development and Learning Environment)があり、対話形式でプログラムをいじることができるようですが、それよりも使い勝手を良くしようという試みのようです)。

適当なPythonの本を買ってきてそこに紹介されている環境でPythonを使うのもいいのですが、他の本を読んだとき、環境が違っててそのままでは動かないといったこともありそうで、悩ましいです。また本が出版された時期がちょっと古かったりしたため、本に記載されているPythonのバージョンが古かったりインストール手順が違ったりといったこともありました(「えー、古いバージョンを使うのぉ?」という拒否反応も出る)。

選択肢が多いのはいいのですが、これが標準というか一般的というか、そういうものがあってもいいのになーと思います。

そんなわけであれやこれにちょこちょこと手を出してみたのですが、それぞれを使ってみた感じはこんな感じでした。

Colab(正式名称「Colaboratory」):https://colab.research.google.com/

WebブラウザでアクセスするだけでPythonが使えるのでとっつきやすい。後述しますが、Colab ノートブックは、Colab がホストする Jupyter ノートブックです。「Pythonってどんなものなんだろう?」とちょっといじってみたい人にはお勧め。Pythonを勉強するレベルの使い方なら大丈夫みたいですが、膨大な計算をさせたりしたい場合は制限がある模様。でもWebブラウザでアクセスするだけですぐに使えるので、プログラミング初心者にはいいかも。試しに先日購入したiPad Air(第5世代)のSafariでColabにアクセスして使えるかどうか試したところ、大丈夫でした。

iPad Air(第5世代)でColabを使ったところ

JupyterLab Desktop:https://github.com/jupyterlab/jupyterlab-desktop

今まではAnacondaをインストールしてそこからJupyter Notebookを使うか、本家からPythonをインストール後、自分でJupyter Notebookをインストールして使うかという、どちらかの方法でしか使えなかったのですが、そんなことをしなくてもこのJupyterLab Desktopを入れるだけですぐにJupyter Notebookが使えるパッケージがリリースされました。それがJupyterLab Desktop(https://github.com/jupyterlab/jupyterlab-desktop)です。Jupyter Notebookはサーバとクライアント(Webブラウザ)に分かれており、ColabはサーバはGoogleにおいて、そこにクライアント(Webブラウザ)でアクセスして使うという形なのですが、JupyterLab Desktopはサーバを自分のPCで動かし、そこにアクセスして利用するという形になります。
ライブラリのインストールなどではさすがにインターネットにアクセスするでしょうが、自分のパソコンだけで完結していること、Colabで重い処理をさせられなかったことがJupyterLab Desktopではできるなどといった違いがあると思います。Colabを使ってて制限に引っかかったけど、同じような環境で使いたいという場合はJupyterLab Desktopに乗り換えるというのも1つの手かもしれません。

Anaconda:https://www.anaconda.com/

私がちょっと触った頃はいくつかのバージョンがリリースされていてどれを入れればいいのか分からなかったし、Pythonの本にAnacondaをインストールする方法が書かれていても、本の情報がちょっと古くてインストール方法が本と違っていたり、「最新版じゃなくて本にあわせて古いバージョンの方がいいのかな?」と悩まされた。私から見て混乱しかなかったので、あまり使いたいと思いませんでした。

本家Python:https://www.python.org/

本家というだけあって、Anacondaより新しいバージョンのPythonがリリースされていることがあります。IDLEがあり、対話形式でPythonを使ったりできますが、ちょっと大きなプログラムを作ろうとすると、別途テキストエディタを用意して、コマンドラインで走らせるといったことが必要そうで、統合開発環境に慣れた人にはとっつきにくいというか面倒くさいといった感じかもしれません。

Pythonの環境についての私の感想はこんな感じです。

次にエディタですが、いろいろありすぎるのと、私には直感的には分かりにくかったというのがあり、どれがいいのか分からないです。ただ、ぐぐってみると、Visual Studio Code(https://azure.microsoft.com/ja-jp/products/visual-studio-code)の評判が良さそうなので、これを使おうと思います。

というわけで、Pythonの開発環境は本家PythonとVisual Studio Codeの組み合わせで行こうと思います。

次回はそれぞれのインストールを行ってみたいと思います。

私見、偏見モリモリなので間違った情報を書いているかもしれませんが、その場合はリンク先のオリジナルをみるようにしてください。


いいなと思ったら応援しよう!