Life is Really Short, Have Your Life!!

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

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次フェーズってやつですね。ファーストユーザである先方には圧倒的感謝。自分が雑貨メーカーの中で業務を回していたこともあり、良くも悪くも細かい点に気がついて…

DataGridのSelectedItemsを任意のListにキャストする

WPF

DataGridのSelectedItemsは、「System.Windows.Controls.SelectedItemCollection 」というクラスに値が保持されます。バインドされるオブジェクトが何が来るかわからないので、型はobject。これを任意の型のListにキャストする場合はこう書く。 this.DataGri…

ITコンサルティングってやる意味あるのかな

微妙にそんな事を感じてしまった今日この頃。意味があるというか、意義を見出すのが本当に難しいなぁと。企業がITに期待することなんて「売上UP」か「生産性向上」のどちらかでしかない。で、大変残念ながら、導入するだけで売上UPするITソリューションなん…

SQLAlchemyの結合条件の制御

モデル定義で外部キー定義する場合は、こんな感じでJOINできる。Flask-SQLAlchemyの場合です。 Order.query.join(OrderDetail, Customer, Destination, Item) こんな感じのSQLが生成される。 FROM orders INNER JOIN order_detail ON order.id = order_detai…

Python3でZIP圧縮する場合の文字化け対策

結論 頼む!UTF8がわかるアーカイバソフト使ってくれ!!qiita.comピンズドなエントリ。やはり人類はエクスプローラーによるZIP圧縮や解凍に困っていた。Windows7でUTF8がわからない場合に辛い。パッチがMSから公開されているが社内のセキュリティポリシーが…

頭でわかるけどなかなか腑に落ちないサブネットマスク

ネットワーク構築の勉強として、AWSで/24でVPC作って、その/24を複数のサブネットに分割する、みたいなのをやればいいのかな?30台前後の疑似ネットワーク環境を構築できるような、今どきの演習環境って無いかな〜

dockerでWordPressのコンテナを作るときに、全てのファイルをマウントする方法

要は、/var/www/htmlフォルダそのものをvolumesでマウントする方法です。 volumes: - "$PWD:/var/www/html"これでいけました。$PWDは、docker-composeしたディレクトリを指すようです。

Pyodbcで共有フォルダのMDBにアクセス

という検証をやったのでメモ。 pyodbcをpipで入れるだけ dsnのパスに全角文字があるとつながらないので、ネットワークドライブを割り当ててASCII文字だけに pyodbcはc++のライブラリが必要らしく、それを別途入れる必要があった。 【python】ライブラリイン…

Dockerのnginx-proxyでSSL化対応

何番煎じかわかりませんが。あっさり出来たのでメモ。 nginx-proxy 側の docker-compose.yaml version: '3' services: rg-proxy: image: jwilder/nginx-proxy:latest container_name: rg-proxy privileged: true ports: - "80:80" - "443:443" volumes: - ./…

IT企画をちゃんとやりたい勉強会

っていうのをやろうとしているんだけど・・・プロジェクトの話を載せていくとNDA的にデンジャラスだし、講義っぽくなると「オレの方法論はこれだぜベイビーロック・ミー・ベイビー」みたいな感じになって寒くなる。要件定義系はどうしてもメソドロジーの勉強…