Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

ChromeDriverでtype="date"の扱いに注意が必要だった

これはちょっとハマった。 thinkami.hatenablog.com input type="date" を指定したHTMLは、Chromeの場合、以下のように年、月、日で各々別々のフォーカスを持ってしまうため、clear()とかやっても、全然消えない。 上記のエントリはC#だったが、PythonのSele…

Terraformをやってみた

AWSを触るのは2年ぶりぐらいかな… インフラはVPSに逃げがちでしたが、VPSで頑張ってもなんの成長にもならんので、AWSでインフラをコード化することにトライした。CloudFormationは、色々とググったYAMLを見た時にこれをちまちま書くのは無理!と思ったのでス…

Flutterのテストは、ウィジェットレベルだけでよくね

Flutterには3段階のテストパターンが存在する。 Unit Test Widget Test Integration Test アプリケーションの性質にもよるだろうけど、ローカル or HTTPでデータをフェッチして表示するというロジックが多くを占める場合、Unit Testでテストすることがかなり…

Flutter(iOS)でアプリがアンインストールされたかを知る

キーチェーンに書き込んだ情報はアプリがアンインストールされても残ってしまうので、ユーザーがアプリを再インストールした時にそのtokenが残ってちょっとやだ、みたいなケース。 結論から言うと、NSUserDefaultsに書き込んで逃げるしか無いっぽい。アプリ…

Flutterで任意の画面までPopUntilしたい

商品検索 商品詳細 会員登録 or ログイン ログインページ こういうページ遷移の時、ログインページでログインが完了したら、2番の商品詳細に戻したい場合のTipsです。 2の商品詳細は、1の親画面でタップされたデータを元に画面を初期化するので、予めroutes:…

大量のライブラリの面倒を見てくれるFlutterのありがたみ

Flutterを簡単に言えば、Dartでアプリを作るとiOS/Androidのネイティブアプリのプロジェクトに翻訳して、ネイティブアプリをワンソースで出来る仕組みです。 その中で、Flutterが提供してくれる多くのウィジェットや通信・DBのライブラリなどがあったりする…

Friendlyで「出来たらいいな」2つ

C#

WPFアプリのE2Eテストを書く必要があり、Friendlyを触ってみた。 ishikawa-tatsuya.hatenablog.com 2つほど出来たらいいな、があった。 1. ViewModelのオブジェクトを取りたい //WindowControl w var vm = w.AppVar.Dynamic().DataContext(); if(vm is Hoge…

DeployGateのコマンドラインツールのインストールでコケた

こんなログが出た "xcrun clang -o conftest -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin19 …

RiverPodをやってみた

Flutterの設計で一番悩ましいのが、ViewとModelの連携。状態遷移だと思われる。 2020年の初頭からFlutterやりはじめて、「Provider + ChangeNotifier」でやってた。これでも全然動く。 ただ、Providerは必ずcontextを経由する必要があるので、ウィジェットの…

FlutterでTextFieldに非同期で取得した結果を初期値に入れたい

色々探してやっとわかった.. flutter.institute initStateに直接awaitって書くことは出来ない。そりゃそうだな。ビルドが終わってから状態を変え、再ビルドするという方法を探していた。 class MyWidget extends StatefulWidget { @override State createSta…

PrismのDialogServiceでDIしたViewModelが毎回初期化される

WPF

PrismのDialogServiceでDIしたViewModelに限って、毎回ViewModelのコンストラクタが呼ばれるという現象がありました。 prism:ViewModelLocator.AutoWireViewModel="True"にしているのにね。この設定にした場合、ViewModelのインスタンスはSingletonになって…

Flutterでカメラで画像を撮って保存したい

まー、ありますわね。そーゆーのがね。 要件としては、写真撮ってメモを追加して何件かリストにしてPOSTだから、取った写真をリスト表示できることが必要。これが意外と難しくてワロタ。 最終的に、こういう風にするしかなさげ。 image_pickerプラグインで画…

Flutterのjson_serializableで無限ループになったら

おきまりの flutter pub run build_runner build を叩くと、エンドレスにビルドが走って終わらなくなった・・・。@JsonSerializable アノテーション以外のファイルまで見に行ってる。widget_test.dart を見に行くアホがおるかい。 英語でググってみたところ…

Vue.jsでは親子関係の画面をネストされたルーティングで対応する

router.vuejs.org例えば、お申し込みフォームが複数の画面に分かれているが、「1つの画面操作」として捉えて、データを管理したい場合等。 const router = new VueRouter({ routes: [ { path: '/user/:id', component: User, children: [ { // /user/:id/pro…

TypeScriptのUNION型、これ便利なのか・・・

let a: string | number; a = 'Hello'; // OK a = 123; // OK a = true; // NG //取る時はこう if(typeof a === "string") { } else if(typeof a === 'number') { } typeofで型を指定すれば、型推論により、自分の欲しい型でゲットできる。UNION型は便利だと…

Vue.js + TypeScript、なかなかおもしろいです

7月からそういうお仕事をやっている。色んなUIを作るライブラリが豊富で、コンポーネントをたくさん作っておけば、色んな案件に流用できるだろうなぁ。クールなUIが爆速で作れる時代になってきた。ありがてぇ。UI開発が一番面倒だからなあ。kintoneでもvue…

Flutter楽しいれす

前職の兼ね合いで、一緒になって作りたいサービスを5月から合間見て作っております。それにはスマホのネイティブアプリが必要だったので、Flutterで作り始めているのですが、これはすごいっすね。ありがとうFlutterを作ってくれたネ申エンジニア。儲かったら…

jqueryでappendした要素に対するイベントが必要なら、onを使おう

当たり前だけど、appendで後からつけた要素にはイベントは付与されない。onloadで指定してそのままだからね。が、jqueryのon関数を使うことで、動的にイベントをバインドしてくれる。あざーす。 だめなやつ $('.img_cancel_btn').click(function() { $(this)…

要件定義はアートなのでは

要件定義が死ぬとシステム開発無理、なので要件定義重要。それはそうなんだけど、上手くやるには人類には難しすぎた。要件定義はアートなのではなかろうか。再現性に乏しく、経験値や個々人のアンテナの感度によって、成果がブレる。それに、クライアントに…

kintoneに入門した学習メモ

kintoneはようやっとる。 基本のき RDB感覚でいえば、1テーブル=1アプリ RDBと違うのは、子テーブルをN件持つことが可能なので、親子関係を含めて1つのアプリになる 注文を親に持つ注文明細並びに発注明細などを持てる。 入力値に対する関数が少ない SUM, YE…

内製を支援するビジネスに再挑戦

会社を作った当初はそれを目指していたけど、しっくり来るツールがないのと色んな出会いがあってその方向性はトーンダウンしたが、内製を支援する方向に舵を切ろうと思う。PoCが増えてきたのもある。内製出来る規模のシステムを育てていくのが楽しかったし。…

SQLAlchemyのLazyLoadとEagerLoad

SQLAlchemyには、カラムを指定できるwith_entitiesという関数がある。こいつを指定してクエリを組み立てるときは、joinによって指定されたテーブルの中身を、予めもってきてくれるようだ。AlchemyのDebug=Trueで確認した。 db.session.query(Item).join(Cate…

レッツゴーFlutter

展示会運営のアプリをAndroid・iOSで各々ネイティブで作って運営しているが、やっぱりワンソースでいい感じにやりたい...2つ同じもの作るのは単純に辛い。メンテナンス・コストが単純に倍になるのがだるい。1から勉強したってのもあるけど、フルコミットでリ…

雑貨製造業向けの販売管理システムをリリースしました

Windowsフォーム→WPFに刷新して、空いた時間でコツコツ作っていた販売管理システムを、8月にリリースしました。他社利用も始まっており、後には戻れない〜。 技術的な話 フロントはWPF、バックエンドはPythonで、HTTPSでJSONのやり取りを行っています。MVVM…

CASE-WHENでWhere句を動的に組み立てる

Sql

kuniku.hatenadiary.jp日付で挟む時に、解約日があれば開始日〜解約日、なければ開始日〜終了日で挟みたいという事を実現するのに、ビューを作る必要があった。CASE-WHEN、幅が広い。 WHERE startdate >= curdate() AND curdate() <= ( CASE WHEN cancelDate…

Flask with Vue.js

やっと話が見てきた。qiita.comJavascript弱者だったため、Vue.js や Vue-cli 並びにJavascriptの開発環境とか、色んなことがつながるまで少し時間がかかった。 Vue.js のコンポーネント化にはCLIが必要 拡張子がvueのファイルにHTML/CSS/Javascriptをまとめ…

決算期で集計する場合は、決算月だけマイナスすればいい

Sql

3月決算の会社の場合、4月〜翌月3月までが1年という単位になる。これをCASE句でまとめるのはツライ。同じ年度であることさえわかればGroupByできる。4月1日〜翌3月31日を1年としたいなら、現在の日付から3ヶ月マイナスすればやっていける。2018年1月〜3月か…

PWAを覚えるぞ

販売管理システムのデスクトップアプリは、ほぼ出来上がってきた。日常業務をこなすには問題なく、あとは管理業務としての分析・帳票出力・権限管理などが控えているが、4月から試験導入予定。次の課題がスマホアプリ。主要の販売管理システムはクラサバなの…

WordPressの記事カテゴリを一括置換するSQL

プラグインとか入れるの面倒じゃないですか。WordPressには「wp_terms」(wp_はご自身のWordPressのプレフィックスに読み替えて下さい)というテーブルがあります。ここに記事のカテゴリ等が全て格納されています。記事のカテゴリと記事の紐付けは「wp_term_re…

販売管理システムのリリース間近

2017年10月頃からお話をもらっていた販売管理システム、MVPレベルでリリースできそうです。1次フェーズってやつですね。ファーストユーザである先方には圧倒的感謝。自分が雑貨メーカーの中で業務を回していたこともあり、良くも悪くも細かい点に気がついて…