投稿

11月, 2018の投稿を表示しています

雑感 〜修正と拡張編〜

ゆるいノルマ 大体、3日間隔で、いろいろ投稿していきたいな、とは考えていたのだけど、ナカナカ難しいのですな、ということを、今更ながらに、実感していたりします。脳内は元気なんだけど、作業まで移っても、既存の至極プライベートなScript修正とかになってて、どやねん!的には、ならないな、という日々でございます。ボチボチやります。 なんちゃってFormat 自家製のAndroidアプリは、DBを使用してて、複数Tableが多少複雑に絡み合っていたりします。更新前提なので、DB登録前のDataは、Tag付きのcsv的なんちゃってFormatだったりします。 一応、削除・追加・更新前提の仕組みはいれているのだけど、ざっくりとDataを入れ替えた方が楽、っていうこともあって、見直しをすることにしたのです。 時々思うのだけど、「われながら、(結構無駄に)作り込んでるなぁ」と。 Accessか、ExcelでMacroか、否、LibreOffice Baseか、CalcでPyUNOか、という流れもあるのだろうけど、なんだかんで、楽なのは、Textだよね、というのがあって、Tag無しのcsv的なんちゃってFormatを新規で起こし、Tag有りとTag無しを相互に処理するように、Encode/Decode用のScriptを作ることにした。無駄の再開発(笑) Tag有りが何で必要なのか、という話をすると、DBの更新処理時、ということになります。特定のDataのみを更新するので、それをを特定化させるためです。 sqlite> update hoge set a = 'moge' where id=5; カラム列が、id、a、b、cとあって、idが5の場合に、aのみ変更っていうのを表現したものになります。(テーブル名はhoge) bとcはそのままなので記述は不要となるわけです。 Network越しに、Data更新をしたら、上手くいきました。一息。 ついでに まじめに、自家製のDataは、いくつか作ってて、運用しているわけですが、次は、Data検索用のScriptの修正を。 $ ./hoge -m AAA -n 40 なんていうのがあるとします。AAAは毎回変わるのだけど、40のところは、数ヶ月に一回変更するだけ、という感じ。流石に、40を毎回...

Tabulatorで行こう! 〜ダイバー編〜

あれから半日 ある程度のところまで、というところで、寝たんだけど。寝付けないわけです(笑) 「何をどうすれば」「あれをこうすれば」「これがああなって」という感じで、脳は活動をやめてないわけです。 ルーチンなので、そのうち、眠りに落ちるのですが、ナカナカ抜けない癖のようなものです。 修正を加えていた「書庫アプリ」も、ほぼ所望には仕上がりをみました。 そうなんだよね Wiredのフロントエンド に関する記事なのですが、「そうね!そうね!」と思ってしまいました。ほんと、移り変わりが早いので、ナカナカ入るタイミングを見つけられないで、今に至ってしまってますからね。大縄跳びに、上手く入れないみたいな(笑) Sort機能 Defaultで、Sortすることになっているので、Sortさせない列に対しては、以下のような設定をします。(一部抜粋) var table = new Tabulator("#example-table", { layout:"fitColumns", columns:[ ... {title:"Gender", field:"gender", headerSort:false}, Full は、こちらに。 Filter機能 Exampleを見ると、いろいろできますが、ここでは、「Text入力」と「選択入力」の二つを紹介。 var table = new Tabulator("#example-table", { layout:"fitColumns", columns:[ {title:"Name", width:150, headerFilter:true}, ... {title:"Favourite Color", field:"col",           headerFilter:"select", headerFilterParams:{values:true}}, ... ...

Tabulatorで行こう! 〜違うじゃん編〜

あれから数日 タイトルに書いてしまってるので、なんですが(笑) 「 table.js 」に、再度落ち着いたと思いきや、結局、別のLibraryをいじってるという日々でした。 「 Tabulator 」という多機能のTable操作のライブラリです。 まだ、最終的にやりたいことはできてないのだけど、落とし所は過ぎてるので、カキコ。 初動のハマり箇所 いつものように、ぐぐる先生に、お手伝いをいただきますと、 $("#tabulator-example").tabulator({ layout:"fitColumns", ... と表現されているところが多いのですが、実は、 var table = new Tabulator("#example-table", { layout:"fitColumns", ... というのが、最新では紹介をされています。最初の方は、「 jQuery 」とセットになってるお話なんですが、最新では、いりません。ちなみに、最新は、 4.1 です。 それでも、jQueryという場合には、 <script type="text/javascript" src="dist/js/tabulator.min.js"></script> <script type="text/javascript" src="dist/js/jquery_wrapper.min.js"></script> Wrapperが用意されているので、それをimportしてください、ということになっています。(パスは読み替え要です) 必要な設定 最低限の設定は、以下になります。 <link href="dist/css/tabulator.min.css" rel="stylesheet"> <script type="text/javascript" src="dist/js/tabulator.min.js"></scr...

Pythonで行こう! 〜ごにょごにょ編〜

そこまで! 煮詰まっていたような、ないような感じだったので、久しく更新をしていなかった Flask ベースの「 書庫管理アプリ 」を見てみようと思ったわけです。 大昔は、 LibreOffice のみで管理をしていたものを、 TurboGears (今のPylons)ベースに変更をして、そこから Flask へシフトしたという経緯があります。ほんと、今でこそ、って感じな訳なんですけどね。 閲覧するだけの代物かしら、と思っていたら、更新機能を作り込んでいて、自分に、びっくり!(笑) 構成要素 Python 3.7 Flask SQLite3 Genshi jQuery and Others SQLite3 は、すっぴんで使用。 SQLAlchemy でラッピングもありなんでしょうが、まあ、すっぴんでいいかな、と。 Genshi は、テンプレートエンジンで、デフォルトだと、 Jinja2 。(確か、一時、 Mako を使ってましたかね)Genshiにした理由は、HTML内でのCodeの有り様が自分の肌に合ったから、ということでしょうか。 新規 微調整をしたら、先のアプリは、それなりに動いたので、 新規 で一つ作ろうかな、と。要素列も10に満たないので、テーブル1つでいいだろうから、即決して、作業を始める。 結局のところ いつものように、というか。一番時間がかかったのは、元となるDataの作成と微調整。それさえも、自動にできれば、そりゃぁ、楽だけど、大元の検索ワード自体は、与えないとダメ、かつ、多言語の扱いもあるので、そりゃ大変(笑)(否、考える価値はあるんだろうな、これは。。。) 当初 Julia で作り直そうかと思って、あれこれやってたんだけど、Version問題で、動かないものがゴロゴロしてて、上のように、ササッといきたいのに、その負担は負えないな、という判断で、Flaskになったという顛末です。 欲張る アプリと言っても、HTMLでTable表示をしているだけのもので、そこに、Javascriptでもって、SortやFilterを使用していたのです。「 table.js 」ってやつを使ってたのですが、気分転換的に、別のもいいかな、と、探すことにしました。 「 20 Best jQuery Filter and Sort P...

Fedoraで行こう! 〜ラリー編〜

Java Oracle版のJava 8の改版があったようなので、Installしてみようと思ったら、ConflictでNG。じゃあ、旧版、と思ったら、rpmはなく、tarballのみ。さて、どうしましょう、という自体に。 Fedoraが29になったので、Android Studioの動作確認をしよう!じゃあ、Javaは改版されているのかしら?という流れで。 SDKMAN これまでにも何度か書いてきたように、tarballだと、後々、面倒くさくなりそうなので、そうでない方法があれば、よいな、ということ。はたと気づく。 「 そうだ!SDKMANだ! 」と。現時点でも、 kotlin や gradle の新版は、 SDKMAN で対応しているので、ここに、Javaが加わってもなんら問題はないじゃん、と。 SDKMANは「Java関連のPackage Manager」というものなので、それがよい、と。 Which version do you select? $ sdk i java ... $ sdk i java 8.0-191-oracle ... $ sdk l java ================================================================================ Available Java Versions ================================================================================ 12.ea.15-open 11.0.1-zulu * 11.0.1-open 10.0.2-zulu ...