2020年2月28日金曜日

gist-embedを利用してGithub Gistのソースコード埋め込みをコントロールする


※このネタは今はうまく動作しなくなっているのでボツです※

本サイトでは、サンプルソースコードをGitHub Gistを利用して管理することにしてますが、欠点としては、Gistのデフォルトの埋め込みコードでは、全ての行数が表示されるのがあります。これを解決するJavaScriptライブラリとして gist-embed があります。

gist-embedとは
ネットでググるといろいろ出てきますが、リンク先がリンク切れになってますね(2020/02/28現在)。で、サイトが変わってるようです。
使い方
上記サイトを見ればわかりますが、
  • Scriptタグを埋め込む
  • Codeタグを使って埋め込む (例:<code data-gist-id="******"></code>)
  • 必要に応じてオプションを指定する
    (行を指定する場合、data-gist-lineを指定すればOK)   
非常に簡単です。欠点としてはちょっと動作が遅くなるかな、、という気がするだけですね。

bloggerで設定する場合
限定的なネタになりますが、bloggerでScriptタグを埋め込みたい場合は、
  • 管理画面からテーマを選択
  • ブログで使用中のテーマを選び、編集を押す
  • 適当な場所に記述する
でOKです。


2020年2月22日土曜日

GAEにFlaskアプリをデプロイする

以前に
という記事で、zappaを利用してAWSにFlaskのウェブアプリをデプロイする手順を書きましたが、GAEだと思いの外、簡単だったので紹介します。

前提条件
  • GCP(Google Cloud Plaform)はすでに使えるように登録していて、GAEを利用するGCPのプロジェクトもすでに設定済みであることとします。(この辺りの話はどこかググってください)
  • ローカルでFlaskが動く環境を作っておきましょう
  • Google Cloud SDKもダウンロードしておいてください

サンプルプログラム
参考にしているサンプルはgitでダウンロードしてください。
  • git clone https://github.com/GoogleCloudPlatform/python-docs-samples
この中で、下記のファイルがサンプルです。
  • python-docs-samples/appengine/standard_python37/hello_world
これを用いて説明します。なお、コードは触ることはないでしょう。

ファイル構成
ここで利用するファイルは下記です
  • main.py・・・プログラム本体
  • app.yaml・・・設定ファイル
  • requirements.txt ・・・ライブラリ情報
  • libディレクトリ ・・・外部ライブラリをいれる場合に必要?
Flask関係の知識があれば、特別なファイルではないことに気づくかと思います。

デプロイ方法
とりあえず、普通のFlaskファイルなのでローカルで動くことを確認したうえで、デプロイしましょう。何も触らなくても動くはずです。コンソールで下記のGCPコマンドを打つだけです。カレントディレクトリはそのファイルがある場所に移動しておいてください。
  •  gcloud app deploy
ディレクトリ下の全てのファイルをアップしようとするので注意してください。実行は、URLを入力するか
  • gcloud app browse
を入力してください。

ちょっとGAEを再び使おうかと思ったり、、、
GAEは10年近く前に流行って、それから料金体系が改悪されて以降、個人的にあまり触らなくなり、最近はノータッチでしたが、ちょっとサーバーレス系の開発することになり、ふと思い立ったら使い勝手も良くなってました。GAEブームがまた来てもいいんじゃないでしょうか。。。


2020年2月7日金曜日

古いAccessファイル(mdbファイル)をCSVに変換する手順

※本記事はOpenOfficeを利用します。OpenOfficeは更新が止まっててセキュリティホールもあるので(今はLibreOfficeだよ)インストールはオススメできない、、、というコメントを頂きましたが、本記事で紹介する技がLibreOfficeではできませんでしたので、ご自身の責任の上で緊急的な用途としてOpenOfficeを利用されればと思います(2020/02/10)

20年ほど前の昔の研究をリバイバルすることになりまして、そのためにはデータベースに保存してある情報を使わないといけないことに気づき、、、「そういえばACCESSで作ってたなぁ。開かなかったらどうしよう(笑)」と軽い気持ちで考えてみたものの、そのままでは開かないことが明らかになり、かなり苦労したのでメモ書きです。この技もいつまで使えるのかが要注意なので、古いネタを残している人は早めに移行しておきましょう。

必要なソフト
  • OpenOffice Base
  • OpenOffice Calc
  • JRE 32bit版
Microsoftは対応していない
まず、本家のMicrosoftはACCESS97とかその辺りの古いMDBファイルを開く手段を残してません。2010年辺りの古さなら対応しているようですが。。ここは諦めましょう。

OpenOffice Baseなら開くが。。。
Microsoft Office対抗馬のOpenOfficeなら開きます。そのかわり
  • 既存のデーターベースに接続
という形式で開くことになります。ここは注意点が1つあり、この方法で開いてその後にodbファイルを保存しても、データの本体はmdbファイルにあるということです。また、Baseにはcsvで保存とかcsvで出力という機能がありません。また
  • 編集できるテーブルとかできないテーブルとかある
  • コピペとかもできない
という感じで、実質見るだけ。ちょっとつらい。

odbファイルに移植する
odbファイルとして保存し直すにはどうすればいいか。。。下の図にあるように、左側に元ファイル、右側に新規に作成したodbファイルと並べて、テーブルを手作業(ドラッグ&ドロップ)で置いていくしかないようです。データの保存状態によってはうまく移行できないかもしれません。



Office Calcに移植してcsvに保存する
odbにしたところでBaseにはcsv変換機能がないわけですから、どうすればいいかというと、Calcに頼ります。つまりCalcに読み込ませることが最終ゴールであり、Calcに読み込ませるにはデータをodbファイルとして保存しておく必要があったということです。

で、この移植作業の方法ですが、手作業です。。。下記のように、baseとCalcを並べて
  • BaseのテーブルをCalcのあるシートのセルへドラッグ&ドロップ
することで、データがペーストされます。




JRE32bit版が必要です
OpenOfficeはJavaの機能を使ってるんですかね?どうもJRE32bit版がないと、フル機能が使えないようです。64bit版ではダメですよ。

以上の方法でとりあえずデータベースを復活できそうなので、個人的にはまあ一安心なんですが。。。互換性問題、、なかなか難しいですねぇ。



2020年2月4日火曜日

Excelのルビ振り機能を有効に使う

Excelのルビ振り機能にはちょっと変わった制約があります。
  • フォントリボン→ふりがなボタンによりルビ振りを呼び出す場合、シートに直接手入力した文字でないとルビを振ってくれない。つまりコピー&ペーストした文字についてはルビを振ってくれない
  • VBAでSetphonetic関数を使用すれば、コピー&ペーストした文字についてもルビ振りが可能(ただしWindowsのみ、Macでは不可)
なんでこんな事になってるんですかね?下記はSetphonetic関数の呼び出し例です。