データベース登録
PythonでMySQLDBを使ってSQLを実行してテーブルにデータ登録はできました。
SQLの構文がOracleの書き方に慣れてしまったので、MariaDBでSQL合っているのにエラーになる原因調査に時間を取られたりしました(汗
OracleはDelete文のFromは省略できるんですよ・・・
最近はSQLを直接コードに書いたらいけないコーディングルールもあるそうですね。
私はOracle屋なので実行計画も見ながらSQLを調整する事が普通だったのですが。
O/Rマッパーなんて使ったことが無いので、調べてみました。
Pythonだと、SQLAlchemyっていうのがあるみたいですね。
3. Pythonとデータベース - Emerge Technology
Python の O/Rマッパー SQLAlchemy を使ったリレーショナルマッピング基本 4... | CUBE SUGAR STORAGE
O/Rマッパーだけではなく、フレームワークですが、Djangoというのもあるみたいですね。
どうせなので、Djangoに手を出してみます。
XAMPP
PythonでWebからデータを取得するプログラムを作ったので、次はデータベースに登録しましょうかという事で、XAMPPをインストールしてみました。
データベースもMySQLからMariaDBというのに変わっていたのですね。
そして、ネットの紹介記事とインストールしたプログラムとで画面が違う・・・
このくらいは良くある話なので、更に調べたら設定が少し面倒になっていました。
参考サイト
【XAMPP】2015年10月から導入手順がまた難解に!対応の方法!securityが無い! | はぴすぷ
まあ、これでも十分に簡単だと思いますが。
MariaDBのパスワードを設定して、phpMyAdminからGUIでちゃっちゃっと普段使い用のユーザーやデータ登録用のテーブルを作成。
PythonからのMariaDBへの接続はMySQL用のパッケージで良いらしいですね。
私はOracleの方が使いなれているので、そのうち、そちらもインストールするつもりです。
iOSでアプリのアップデートがきたのにアップデートできない
アプリのアップデートがきたのに、App Storeの方では「開く」ボタンのままでアップデートができなく、アプリも起動できない問題が発生しました。
以下の対応をやりましたが、解決せず。
・しばらく待つ(3時間ぐらい)
・iPadの電源OFF→ON
・App Storeで画面を下にフリックしてデータ更新
「設定」>「一般」>「ソフトウェア・アップデート」を見たら、
iOSのバージョン11.1がリリースされていたので、
(インストールされていたのは11.0.3)
iOSをバージョンアップしたら解決しました。
「設定」>「一般」にバッジが付いていなかったのでバージョンアップに気づきませんでしたよ・・・
アプリが起動できなくなるのは焦りますね。
ログ出し
2022/10/06 追記開始
formatの設定で行番号もモジュール名も自動で出力出来ちゃうじゃあないですか。
2022/10/06 追記終了
どんな言語、プログラムでもログ出しは基本だと思います。
python勉強しだしてから、簡単に使えるログ出し関数が欲しくなったので、情報収集しました。
実装だけなら、テキストファイルに出力するだけでいいのですが、どうせならpythonっぽくということで、loggingとか色々使ってみました。
結果、ログ出し関数を呼んだファイル名とか、行番号まで出力できるというものが完成。
VBAでは自作関数に呼び出し元モジュール名とか関数名を渡していましたよ・・・行番号なんて手間かかりすぎて無理。
loggingではDEBUGとかINFOとかのレベルや、出力フォーマット整えたりもできるみたいですが、とりあえずはこれで十分。
区切りがTab文字なのは、テキストエディタから、そのままExcelに張り付ける事ができて、分析がやりやすいからです。
import logging import datetime import inspect import os def kanilog(msg): #ルートには出力しない logger = logging.getLogger('kanilog') logger.setLevel(logging.DEBUG) #ファイル名に日付を入れる LOG_FILENAME = 'kanilog_' + datetime.datetime.today().strftime('%Y%m%d') + '.log' handler = logging.FileHandler(filename=LOG_FILENAME) handler.setLevel(logging.DEBUG) logger.addHandler(handler) #出力日時 logmsg = datetime.datetime.today().strftime("%Y/%m/%d %H:%M:%S") #ファイル名(フルパスからファイル名のみに変更) logmsg = logmsg + '\t' + os.path.basename(inspect.currentframe().f_back.f_code.co_filename) #行番号 logmsg = logmsg + '\t' + str(inspect.currentframe().f_back.f_lineno) #メッセージ logmsg = logmsg + '\t' + msg #出力 print(logmsg) logger.debug(logmsg) #出力テスト kanilog('test')
参考サイト
http://pheromone.hatenablog.com/entry/20100817/1282055593
https://qiita.com/ymko/items/b46d32b98f013f06d805
http://docs.python.jp/2.6/library/logging.html
https://python.civic-apps.com/logifle-logger/
Accessから自動で仕様書
Accessから自動で仕様書を出力する機能を探しています。
ドキュメントとソースの不一致問題は、システム開発する上で、常に頭を悩ませますが、AccessはAccessの内部で完結できるので、まだマシな方だと思います。
Accessに標準で使える「データベースツール」>「データベース構造の解析」機能を使ってみたのですが、ちょっと使いづらいかなと。
出力すると、以下の画像のようなものが延々と続きます。
せめて、テーブルやフォームの一覧とか、フォームの画面イメージとかも表示してくれれば良かったのですが。
プロパティとかVBAのコードも網羅して出力してくれるので、これはこれで使い道はありそうですが・・・
WordとかHtmlに出力できるのは良いと思います。
とにかく仕様書の枚数稼がないといけない場合には便利かと。(汗
便利ツールが無いかなと探してみるのですが、テーブル定義書だけとかは見つかるのですが、フォームを含めると、なかなか無いですね。
見つけたところでは、「A Hot Document」が便利そうです。
(昔からあるツールですが、まだ続いていると驚きです)
コメントの書き方に規約があって、その通りに書くと、綺麗にドキュメントが出力されるのが特徴みたいです。
規約に沿っていない場合は、該当項目が空欄で出力されるようです。
少しライセンスが高いですが、使いこなして、仕様書を1から作るのを考えれば元は簡単に取れるはず?Access2016/Access2013/Access2010/Access2007/Access2003/Access2002/Access2000 ドキュメント 自動 生成ツール【A HotDocument】
他にもシェアウェアで「T's Doc 6」というのも見つけました。
こちらは試行もできて3000円なので、手を出しやすいですね。
■T'sWare Access2010/2007仕様書作成ツール T'sDoc 6
ツールができる事は、現状ある情報から成型して出力する事だけですので、
「何でこの機能作ったの?」といった開発の経緯とかは、ソースにコメントでも残さない限り、自動出力は難しいでしょう。
更に、運用手順書や操作説明書はツールでは自動出力できませんので、頭が痛いところです。
ドキュメントもシステムの一部なんですが・・・
私はプログラムもするので、コードに何でも書いてしまいますね。
Windows眼鏡型端末
東芝、エッジコンピューティングデバイス「DE100」の実機を展示 | マイナビニュース
DE100 Intel Unite® ソリューション対応モデル | 製品情報 | MECD | ダイナブック(東芝)
上記のURLのDE100と眼鏡型ウェアブルデバイスなのですが、ものづくりフェアで東芝の方が実機でデモをされていました。
こういう端末はアンドロイドが多かったと思うのですが、これはWindows 10 Proで動くそうです。
ちょっと開発の敷居が下がりますね。
バッテリーが1日の作業時間である、8時間持たないのが惜しいです。
DE100は普通に小さいPCとしても使えるそうです。
眼鏡型ウェアブル端末は眼鏡の上からかけられるタイプで片目のみ。
サイズが少し小さいですが、十分見えました。
しかし、屋内環境でしか見ていないので、野外でしっかり見えるかは分かりません。
当然、カメラ、マイクも搭載。操作は眼鏡の縁辺りの場所にあるタッチパッドで実施するそうです。
やっぱり、作業の時に両手が空くというのは作業効率上、大きいのです。
ARを駆使して情報を表示できれば便利そうです。
また、見ているものをカメラを通してチャットの相手に見せられるのも大きいと思いますが、これは無線LANが入る環境限定ですね。
カメラ使って、帳票や現品のバーコードを読み込んで、その場で眼鏡型端末のタッチパッドで実績登録とか便利そうなのですが・・・
お値段を聞いてみたところ、DE100と眼鏡型ウェアブルデバイスと合わせて、さすがに価格は10万切らないみたいです。
まだまだちょっと高いですね。
個人的にいじってみたい・・・