サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
aroundthedistance.hatenadiary.jp
SQLそれ自体は一番最後にあります。 detail.chiebukuro.yahoo.co.jp 天才的なソリューションだった。驚いた。日付から締日を引き算すれば、何月締めであるかを判定できるとは。シカクいアタマをマルくする必要性を痛感した。 締日集計のめんどいところは、締日がN件あること。5日、10日、15日、20日、25日、月末の6パターンある場合、2017年12月の締日別の合計は以下の期間を元に算出する必要がある。 2017年12月の締日別集計期間 締日 集計期間 5日 2017/11/06〜2017/12/05 10日 2017/11/11〜2017/12/10 15日 2017/11/16〜2017/12/15 20日 2017/11/21〜2017/12/20 25日 2017/11/26〜2017/12/25 月末 2017/12/01〜2017/12/31 当たり前だが、月
改めて読むと勉強になる。確かにここは気になる。 python - Flask - generate_password_hash not constant output - Stack Overflow Flaskでは色んなスニペットが登録されており、パスワードのハッシュについても項目がある。ベストプラクティスを提示してくれている。 Salted Passwords | Flask (A Python Microframework) from werkzeug.security import generate_password_hash, \ check_password_hash class User(object): def __init__(self, username, password): self.username = username self.set_password(pas
微妙にそんな事を感じてしまった今日この頃。意味があるというか、意義を見出すのが本当に難しいなぁと。 企業がITに期待することなんて「売上UP」か「生産性向上」のどちらかでしかない。で、大変残念ながら、導入するだけで売上UPするITソリューションなんて、どこにも無い。 ビジネスモデルやそれを支えるビジネスプロセス、更には営業戦略やマーケティング等の総合的な取り組みがあって、初めて売上をUPするための対策が取れる。単価を上げるのか、顧客を増やすのか、商材を増やすのか、購入回数を増やすのかを決めた上で、ITを活用するノウハウを貯めて成功する確率を高めていくしか無い。差別化を図るのは、目に見えない所であるべきだ。 生産性向上というのは「今までやっていることをもっと速く出来るようになること」ではなく「手を動かさなくてもいいようにすること」が達成できていないと意味がない。そのためには、企業内に流れる情
c#のDataBindingで必ずと言っていいほど使われる、ObservableCollectionというやつ。 こいつはコレクション自体の変更を検知する仕組みはあるけど、そのコレクションに格納されているオブジェクトの変更までは検知されない。色々とStackOverFlowとかStackOverFlowを見て雰囲気をつかみ、最終的にこのような形にしてみた。 行を追加するときにPropertyChangedをリッスンするのは、追加された時にPropetyChangedイベントハンドラが空のため。削除するときにイベントを消しているのは、消さないと古いアイテムにリッスンしっぱなしのイベントが発行されるため。たぶんのこの理解であってる。 値の変更時には、古いアイテムのイベントを消して新しくなったオブジェクトにイベントを付与している。削除からの追加って感じでイベントを再登録している。 もちろん、Ob
aroundthedistance.hatenadiary.jp これは、2016年になってから前職の内製したWindowsフォームの密結合過ぎるデスクトップアプリを、WPFで刷新している時に書いた記事です。画面がレスポンシブじゃないのを除けば別にWPFやる必要なくねって書いていました。できること同じじゃん、っていう。 が、この時から1年半。もう1回WPF(with Prism)に向き合ってみると、PrismのようなMVVMライブラリを活用できなかった自分がアホやっただけなのでは、という気持ちがドンドン大きくなってきました。 Windowsフォーム→WPFに焼き直すメリットがあまり無いのも事実でしょうが、新規アプリでWindowsフォームを採用するメリットも特に無いわけです。 レイアウトを作るのはWPFの圧勝 改めて思いました。XAMLで画面デザインできることに慣れると、Windowsフォ
自分一人が食っていく分には困らないけど、事業を作っていくのは本当に大変だなと改めて実感。サービスを販売して軌道に乗せるためには、年商1000万は無いとだめ。年間100万で売るなら10本、年間1万円にするなら100本売らないと販管費や広告宣伝費等を含めるとペイしない。ここまで育て上げるのに使うお金は、1000万では効かない。自分の人件費等を含めたら。 業務委託で自分のスキルを売るのが、手っ取り早く売上になって定期的にお金が入ってくるので、すごく楽です。僕自身も(かなり自由にやらせて頂いてますが)お世話になっている。スキルがあれば買ってくれる人は、どこかしらにいる。スキルの切り売り感は個人的には全く無いし、何かしら新しい発見があるよね、問題意識さえ持っていれば。いつまでもこのままお世話になるのは嫌だけど、生命維持装置のようなもので、なかなか外すことが困難。 サービスを販売するための原資や時間を
WPFアプリ構築の敷居もグッと下がったと思う。このライブラリがMicrosoft標準でないというのが、WPFの悲劇なのでは。 Prismを使ってWindowsのデスクトップアプリを作っているのですが、だいぶ慣れてきた。かずきさんのレポジトリを見て写経すればまずOK。MVVMのやり方と画面遷移のあり方が書いてあるので、その2つがあれば生きていける。Prismはよく出来ているライブラリですわ。 github.com XAMLが好きになってきた 最初はなんだよこのハイパー拡張HTMLはと思いましたが、XAMLに慣れてしまうとWindowsフォームで画面を作るのは無茶苦茶だるくなりました。テキストで全部が表現されているのは正義だ。似たような画面作るのすごい楽。ViewModelのインスタンスはDIしてくれるのも楽なんだよな〜 画面遷移が便利すぎて感動 Region機能を使わないでPrismでアプリ
Contact Form 7を使っていて、チェックボックスのチェックの有無でメールに吐き出す内容を変える必要があるという要件がありました。 というわけで、吐き出す内容を変えるものを適当なタグをつけてメールテンプレートに入れます。僕の場合は[_proxy]というタグをつけて、メールテンプレートに入れておきました。 で、当然ですがこの[_proxy]というタグに対して内容をセットしなければなりません。Contact Form 7のフィルターフックを利用します。functions.phpにこんな内容を書きます。 <?php //フィルターフック add_filter('wpcf7_special_mail_tags', 'my_special_mail_tags',10,2); function my_special_mail_tags($output, $name) { //画面に入れた適当な
WPFでデスクトップアプリを作りまして、画面操作のテストが非常にめんどくさい。Seleniumに該当するものが無いかを簡単に調べてみた。大きく分けてこの3つがあるようだ。 UIAutomation Winium Friendly UIAutomationというのはMSが標準で用意している画面操作のテストライブラリ。VisualStudioを起動して、そこにテストコードを書いていく。WiniumはSeleniumにインスパイアされたWindowsのデスクトップアプリを操作するライブラリで、UIAutomationのラッパーライブラリのようだ。どっちを使っても大差は無さそう。FindByXXXの呪縛からは逃れられない。 github.com で、もう1つの選択肢がこちらのFriendly。 www.codeer.co.jp 対象プロセス(端的に言えばテスト対象のアプリのexe)を別のプロセスか
よくあるよね。 楽なコードないかなーって思ったらregtanのエントリがGoogleトップに出てきた。 動的にoptionを書き換える - regtan’s TechNote サーバー側でオブジェクトゲットしてJSONにパースして、jqueryでcallback指定して読み込ませる。 僕もこうやろうかなーと思ってたんですが、もっとシンプルな手法があった。 jQueryのAjaxでSelect入替 | MT Systemsより $(function() { $("選択するプルダウン").change(function() { $.get("サーバへのアドレス"+$(this).val(), function(data) { $("連動したいプルダウン").html(data); }); }); }); イェア!パースめんどいからHTMLごと丸ごと置き換えればいいってCOOL! サーバー側では
Pythonを題材とした、プログラミングの入門書です。8月刊行予定。今月いっぱいで全ての作業を終わらせる見込みです。 僕が右も左も分からない頃に「こんな本が読みたかったな」という思いを込めて、丁寧に書きました。かわいいイラストもたくさんあります。先輩が後輩に「とりあえず読んどけ」って回し読みされるような本になってほしいです。
ずっと同じことを考えている気がするけど、微妙に違うしれないので書くだけ書く。 人月で工数積算してマージンを抜くビジネスが、そもそもマージン抜けるほどの工数で値段付けするのが通用しなくなってきたよねというのがここ数年の変化だとしましょうか。人を出すだけで金を儲けるなんてそれってITエンジニアの無駄遣いだよねっていう。このモデルが崩壊した場合、今後は誰がどうやってビジネスアプリケーションを作っていくの? 担い手はいるの? というのが全然見えて来ないのではないでしょうか。 AWSがいくら破壊的だろうが、あれはプラットフォームのサービスであってアプリケーションのサービスではない。最高のメンテナンスが出来る環境があっても、どんなプラント建てるんですか御社はって問いに答えは出せない。エンプラになればプラントの工程の一部やつなぎをAWSでやるんだろうけどさ。 上流と下流が分断しているのがSI業界の最もあ
非常によくわかるお話だった。特にここ。 kiwosuke.hatenablog.com MVVMの原則に従って一生懸命、コードビハインドからコードを追い出したところでほとんどメリットが感じられません。 業務系のアプリはデスクトップのテンキーをベースに操作ができることを求められるから、キー関連のイベントを拾わざるをえなくなり、結局コードビハインドは追い出せない。ボタンをクリックするの?Enterで検索開始すればいいじゃない、とかさ。 MVVMをやる時に一番困るのがコードビハインドからViewModelに処理を投げてそのViewModelからUIにメッセージを返すところ。ココがよくわからなかった。WPFのMVVMは敷居が高く、オレオレ実装でやると予期せぬバグを生み出す温床になります。同じデータなのにAさんとBさんで表示結果が1個のセルだけ違うというバグが... WPFはWindowsFormの
qiita.com めっちゃええ話。これはすごく意味がある。細かいツッコミをすれば、上記はSQLを簡単に投げられるようになった話でありSQLを駆使できるようになったわけではないのだけど、そのうち覚えるやろ。 弊社では商品企画を担当する社員がおりまして、ExcelでVLOOKUPはできるけどデータベースの操作はしたことがない、というレベルです。僕が隣でSQLを書いているのを見て、「これなら出来そうだから教えて」と言われたので、教えました。2時間の講習でここまで覚えてくれました。 データベースとテーブルの関係 SELECT,FROM,WHERE,LIKE,ORDER BY JOIN,GROUP BY,CASE-WHEN 簡単なDB関数 なので、「エプロンという品名の商材を抽出して、伝票日付が4月と5月の売上の2013年以降の年度別の対比が見たい」というSQLが書けるようになりました。具体的には
自社業務システムのDB設計メモ(請求業務編) - Life is Really Short, Have Your Life!!から約1年。昨年8月にリリースしたシステムも日常業務を回すということについては機能がそろったので、DB設計含めて皆さんとノウハウを共有したいと思います。 2013/04/08 更新 ER図で請求明細を作っていましたが、売上TBLに請求IDを付与すれば良いだけだったので、記述を変更しました。 ER図 https://cacoo.com/diagrams/2ih6FjObuO18CLts 現在の請求処理の流れ 請求データの作成は以下のような手順で行っています。 .先月に請求がある顧客を探して当月の請求データを作る 2013年1月で締日が20日なら、請求日が2012-12-20の請求を探す。 当月の入金額を集計する。 先月と当月を足して請求データを作る .当月のみの請求が
この種の議論は僕が10年前に通った道だ。10年間何も変わっていない。 今のIT技術者への期待論を見ていると、まるで建築士に、「何でも良いからカッコいい家を作ってよ」とそっくりかえって言い放つ住人の姿のようだ。自分がどんな暮らしをしたいのかも言えないくせに、提案だけを求める。そして、出てきた図面を見ると、「こんな値段じゃ高すぎるよ!」と、必ず文句をつける。 ユーザ側の『ITイノベーター』こそ、急いで育成するべきだ : タイム・コンサルタントの日誌から なんでこうなるかと言えば、ITシステムというのは建物ではなくプラント(工場)だからだ。建物はそれを作るだけで良い。ただ、プラントになれば話は別。どういった情報を収集し、集計もしくは加工し、最終的にどんな価値を提供すれば良いのかを考え無くてはならない。 で、問題は「どういった情報を収集し、集計もしくは加工すれば、経営に資する価値が生まれるのか」を
Python3.4 && mysql-connector-python2.0.2で起きたこのエラー。 表題の通り、コネクションプールをしているオブジェクトが利用できないと申される。接続は死んでないっぽいのが謎。活きているのに死んでいるみたいな、そんな感じのエラー。MySQL Server has gone awayではないメッセージが返ってきているのが気になる。SQLAlchemyでは活きている(Valid)なコネクションを利用しようとしたら死んでいた可能性もあるから、mysqlのwait_timeout、interactive_timeout系の時間を長くして、flask-sqlalchemyのSQLALCHEMY_POOL_RECYCLEの時間をタイムアウトより小さくしたんだけど、1日おいてもまだこのエラーが消えなかった。 MySQLのコネクション自体は活きているのにSQLAlchem
これが簡単だった。 kecodoc.com ターミナルからちょいちょいといじるだけで、確かにNTFSへの書き込みができた。 で、書き込み途中でロックされたファイルがあって、それは下記で直った。 macosx.com for f in *.*; do xattr -d com.apple.FinderInfo "$f"; done いろいろ勉強になる。
めっちゃよくまとまっているので、大変助かりました。 blog.mogmet.com t-wada氏の「とりあえず削除フラグはアカン」については、僕も全く同感です。論理削除をしなければならないビジネス上の理由がスッポリ抜け落ちている。「とりあえず削除フラグ立てて何かあれば戻せるようにすればいいンゴ」ってのは論理設計を放棄していると言い換えても良いし、「ユーザーの言葉ではない」という指摘も重要。こちらに書かれています。 ledsun.hatenablog.com じゃ、フラグやめてどーすんのって話。フラグを立てたくて立てる人はおらん(はず)。「削除フラグを追加するとSELECT時に常にWHERE句で削除フラグを引っ掛ける必要があるのでクソ」→「削除日や状態カラムを使おう」では解決にならん。t-wada氏の資料でも解決策で上げられてたけど「×」マークがついてます。下記に変わっても誰も嬉しくないと
関数型プログラミングって頭が柔らかくないと辛みがすごい....完全に今の自分は素人に戻っている。楽しいけど。 Scala関数型デザイン&プログラミング―Scalazコントリビューターによる関数型徹底ガイド 作者: Paul Chiusano,Rúnar Bjarnason,株式会社クイープ出版社/メーカー: インプレス発売日: 2015/04/30メディア: Kindle版この商品を含むブログ (1件) を見る これを読んでいたら「末尾再帰」って言葉が出てきた。知らないのでググってみたら、ものすごい丁寧に解説してくれている方がいた。あなたが神か。 rn4ru.com 末尾再帰ではない再帰 再帰といえば階乗の計算ですね。 def factorial(n:Int) :Int = { if(n == 1) n else n * factorial(n-1) } これに5を入れて実行してみると、5
僕も7月の終わりから、「顧問エンジニア」のロールのあり方を模索しています。で、こちら。 iritec.jp これはいわば、「Developer as a Service」というモデル。御社のために出張料理人を派遣しますので、うまいこと使って下さいと。それだけITの裾野が広がり個人でもITシステムを作れる環境が整ってきた、ということでしょう。この流れは鈍化する理由がないので、似たようなサービスが増えていくと思います。 ただ、僕の考える「顧問エンジニア」とはちょっと違います。僕が考える顧問エンジニアは、開発をしないことを前提としています。なーに言ってんだとお思いでしょうが、先日書いた「要件定義+PaaSの活用」で作らない開発を目指し、顧問エンジニアの主な仕事はIT戦略立案から自動生成ツールへの落とし込みです。ノンプログラミングで作れたら、それに越したことはないのです。 aroundthedis
元クロノスの山本さんと飲んでて、あーそうだな〜と思った話。忘れない内に書いておかないと。 エンジニアは料理人にすごく似てるということ。 料理をつくるのにはオーダーメイドで受けることもあればコース料理を用意することもある。前菜、メイン、お酒、デザートなどなど、組み立てを考えて全体図を描く必要があるのもよく似ている。素材にもある程度理解がなければならない。全ては素材から始まるのは、エンジニアで言えば全てはコードから始まるということに近しいだろう。 料理を作るにはレシピという設計図が要る。でも、その設計図の良し悪しは、その道に通じている人でないと理解できないからわからない。また、同じ醤油ラーメンでも、イケてる料理人と素人同然の料理人では出来上がってくるラーメンが全然違ってくる。レシピの意味がわかり、更にその先の工夫を凝らす能力の有無がそこに現れる。おお、まさしくエンジニア的だ。 料理の世界には、
Eメール、グループウエア、Officeソフト、レンタルサーバ。用途が限定的なものは便益がすぐにわかるのでどんな企業だって導入できる。でも、業務システムは別。インストールすればいい、契約すればいいというものではない。ハードルがくそみそ高くなる。 経営に資するITを正しく手に入れる手順 自社の事業の全体図(ビジネスモデル)を描き それを支える業務プロセスを描き 何をITに載せる意味があるかを描き ITに落としこむだけの情報を揃えて 実際のITシステムを導入する この5段階のプロセスを踏まねばならない。正しくやろうとしたら、ね。これを提供できる技術がITじゃないってことぐらい、誰でもわかる。何をITに載せる意味があるのかを見出すのが最も大切で、その意味にもベクトルやレベル感がまちまちだ。ある企業は見積のプロセスを強化したいだろうし、ある企業は在庫のリードタイム短縮を目指しているかもしれない。エン
コンセプトはいい感じ。事業化出来るかどうか、粘り強く考え始めるのが僕の良いところ。 aroundthedistance.hatenadiary.jp 「要件定義+PaaS」なんて言葉は業界の人にしか理解できないので、これらを包括したエモいキーフレーズが求められており、それが一番悩ましい。とりあえず背景とビジョンを整理する。恐らく、会計士のような顧問ビジネスになると思う。 要件定義+PaaSの背景と未来像 どんな業種でも自社のビジネスを見渡せば必ずIT活用のメリットを享受できる箇所がある。企業においては単一部門のみで仕事が完結することはほとんど無く、売上を稼ぐために複数部門を跨いでビジネスプロセスを作り上げていく。現業を強化するためにITを使う意味は必ずある。 事業環境は時間の経過とともに必ず変化していく。求められる最適解は世の中の流れという大きなうねりが決定するので、事業が成長するために継
前回のエントリが意外とブクマされたので驚いてる。いつかこのメモたちは立派なER図になって各業務ごとにポイントを書いた素敵なPDFに姿を変えることになるでしょう。その時は資料を公開します。1万円で(え 在庫は商品のプロパティ? そう思ってた時期が僕にもありました。最初は在庫はエンティティだという気持ちがあったのでテーブルを作ってたんですが、商品のステータスに変動して在庫を管理する必要がないので、商品テーブルと在庫テーブルを分ける意味がないという結論になりました。それが「うほ・・・」となったのが1年ほど前にお手伝いした出版流通業者さんのお仕事。同じ商品でも「良品」と「不良」で在庫を別に分ける必要があり、かつ不良の商品が良品に戻ることがある。書籍は再販制度により、不良の商品を改装して良品扱いにすることが可能なので、良品と不良品を行ったり来たりする必要があるわけ。更に言えば改装中・断裁・献本みたい
取引先(倉庫業)が受託でシステム組んでもらって無事失敗して、業務が分かる人とシステム組める人で内製チームを作ってWagbyで3ヶ月〜半年で内製してリリースできたって話を聞いてきた。メッチャええ話や。 wagby.com 内製における最大の問題は、エンジニアを雇っても使いこなせないことだと感じています。エンジニアありきでは始められない。ITシステムを作ったことがなく運用改善をしたことがないのに、エンジニアを雇ってさぁはじめましょう!は無理がある。車がほしいけど工員を雇って一から車を作りましょうって言われてもねという。 僕の観測範囲で話すけど、年商10億前後の雑貨製造・卸・倉庫業の業務系システムなんて、2人体制で充分回せる。利用人数だって多くて数十名だし、パフォーマンス問題などまず起こらない。業務システムはビジネスモデルが安定すれば開発作業は落ち着くので、エンジニアがずっと張り付く意味が無くな
親のViewControllerのHeaderみたいな感じでUIToolBarをセットして、その下に子供のUIViewControllerをセットしてremove/addで切り替えたら便利そうだと思ってたら、UIViewControllerにはchildviewControllersとかいうプロパティがあり、storyboardではContainer Viewを使ってバインドできることを知った。こいつは便利だ。 で、肝心の切り替えはこんな感じで実装した。Storyboard+AutoLayoutで画面作ってるので、StoryboardのIDを使って初期化することにした。ベタベタだけどこんな感じ。 func changeContainer(identifier:String) { //Remove var beforeVc: UIViewController = self.childView
iOS8.0以上をサポートするSwiftアプリを作っております。ちゃんと動くけど汚い。色々辛みがある。 というわけで、ノーガードでその辛みを書いていこうと思います。 StoryBoardの辛み 僕の作ったアプリのStoryBoardはこんな状態になっている。Main.storyboardだけを使ってる。 UITabController UINavigationController ViewController UITabControllerをメインに使いながらEmbeddedしたUINavigationControllerを、各画面に挟んでいる。で、そのViewControllerで2つほどsegueでPUSHして戻す処理(小画面連携)があるのでそれを定義している。これでも小規模な部類に入るんだろう...画面数は10個弱だし。 AndroidのようにテキストでXMLを書いて画面を作るという
僕の最近の楽しみは全国の地方IT企業のWebサイトを片っ端から巡回すること。下記リストにある秋田県を現在見ています。 IT・SIer・ゲーム企業リンク集(WEB企業リスト): 秋田県 30社近く見てきて感じたことを書きます。 メインの顧客は各種公的機関 地方自治体が100%って明記している会社さんもあったぐらい、公共機関の比率が高い。地方自治体・なんとか福祉法人・なんとか組合・JAなど。歴史がある企業ほど、民間の企業の仕事の比率が滅茶苦茶少ない傾向にある。無いんだろうねぇ、業務システム開発の機会なんて。 20〜30年前の地方のIT需要なんて公共と金融ぐらいしか無いので、そこを抑えたシステムを開発した会社さんが生き残るという話なんだろうなぁ。公共機関は予算消化の意味で高く買ってくれるし、潰れないし、金は払う(サイトは長いらしいが)から、ええこと尽くめ。 WebのUIを作るのはとても苦手 コー
次のページ
このページを最初にブックマークしてみませんか?
『Life is Really Short, Have Your Life!!』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く