HogeHoge

2018年振り返り

今年も楽しいことが多かった年です。 Keep 仕事以外の楽しいことも増えた1年でした。 ・折り畳み自転車を買った。電車で出かけてポタリングが楽しかった。 ・Amazon VIDEOでいっぱい映画を見た。家族からはディスられているがアニメはお気に入りだ。 ・ソー…

WebAPIのCSRF対策

Cookieベースの認証とかの場合にX-Requested-Withをつけるようなアイデアがあったのですが、 認証して利用するAPIだったらAuthorizationヘッダーをつけるようにすればそれでOKだよね。 Microsoft Graphもこのタイプ。https://leastprivilege.com/2015/04/01/…

アジャイル=スクラムで良かったんでしたっけ?

企業向けの開発でも最近アジャイルという言葉が良く出る。その際のキーワードの多くにスクラムが出ている。 スクラムマスター何人いるの?みたいな話もあり。アジャイル開発=スクラム開発みたいになっている。 で実際にスクラムをやっているところもそれな…

くそストアドプロシージャ

ビジネスロジックを全てSQL Serverのストアドプロシージャで書いていてパフォーマンスがでなくて困っている話を聞いた。 どうも数千行のストアドで内容的にも分からないので、なかなか前に進まないらしい。 性能向上の第一歩は計測なのですが、その影響で性…

シンタックス的VSセマンティック的プログラミング

リファクタリングはシンタックス的な改造。リストラリングはセマンティック的な改造。 安全なのはシンタックス的な改造。改造以外のプラグラミングにおいても同様のことが言えるのではないかと最近思っています。 逆に言うとセマンティック的な観点が多く含…

起業の科学

アマゾンの一位になっていたので読まれた方も多いと思いますが 久しぶり一気に読破しました。この手の本は翻訳本が多いのですが、日本の方が日本のスタートアップも含めて書かれています。起業の科学 スタートアップサイエンス作者: 田所雅之出版社/メーカー…

最近SIerがBizDevOps組織を立ち上げている?

最近アジャイル開発の話を良く聞くようになった。その中で、SIerも従来のウォーターホールではなくアジャイル開発に対応すべく組織の変えて行っているとのこと。 この話の文脈にはスタートアップのような新しいビジネスモデルをローンチするための開発部隊と…

2017年振り返り

今年は案外良い年になったと思う Keep 今年は楽しく新しいことにチャレンジができた。この楽しくできたのが良かった ・TRYしたかったDeep Learningを使ったFXもやることはできた ・新しい楽しみとして映画館で映画を見ることもできた ・My FinTechもNASDAQの…

Build 2017

Buildのビデオが上がっていたので、今日は昼から酒を飲みながら、見てます。 Kyenoteの2目のビデオ編集は凄いな。9月のWindows10のアップデートが楽しみです。 あとは最近使っているMicrosoft Graph関連とCNTK関連を見る予定です。

モダンエンタープライズJavaScript

それなりにWeb関連の知識はあると思っていましたが、なにかこの2・3年で大きくWebの開発技術が変わったように感じていました。 なので情報収集しながら最近キャッチアップを開始しました。まだいろいろ試してみたいものはりますがいろいろ分かってきたので感…

2016年振り返り

去年もやったので今年も振り返り。50歳になったのでやはり結果が重要だと思う。 Keep 今年もいっぱいコードを書いた。来年もいっぱいコードを書こう。 スタートアップビジネスの面では、もともと期限にしていた2年を過ぎて一旦諦めたが、やっぱり諦めきれず…

オンライン・バッチ処理高速化 測定

Dapperを使って10万件のデータの追加・更新・削除を比べてみました。結果は以下の通りでBulkCopyが1/10から1/20倍高速になっています。意外なのがDapperのListを渡した更新処理が思った以上に速い点です。 10万件をループして更新すると測定するのが大変なく…

オンライン・バッチ処理高速化

オンライン・バッチで高速化が課題になっているプロジェクトがあったので、少しお手伝いが必要になった。 昔いろいろやってきたが、ちょっと忘れ気味なので、整理しておきます。 今回のターゲットは SQL Server。 DB設計 ・検索インデックスの最適化 アクセ…

2015年振り返り

KEEP 昨年よりチャレンジしているスタートアップについては、自分なりの方法でビジネスを作っていくことが少しは分かってきたようのな気がします。このエリアについては学びは多かった1年です。マーケティングよりも技術力をコアにしながらニッチでも強い製…

車輪の再発明をする開発者

車輪の再発明とは「既にあるものを再びいちから作ってしまう」ことなのですが、その理由がその存在を知らないとか以外に、存在を知っているけど再発明することが案外あるように思っています。なぜ既存のものを使わなかったか理由を聞くと、、そのライブラリ…

2014年の振り返り

今年も終わりですね。とりあえず今年の振り返り(KPT風)をしておこうと思います。 Keep 技術的には今年はBigData関連を中心にいろいろやりました。クラウドの普及でHadoopのような技術も簡単に試せるのは驚きでした。自然言語関連もいろいろ試して、ある程度…

C#で日本語キーワード抽出。しかも1ライナー

日本語のキーワード抽出をするためにはテキストマイニングのライブラリが必要になったりします。 テキストマイニングとかだとPythonとかを使うことが多いかもしれませんが、C#でもそれなりにライブラリがそろっています。 たとえば形態素解析エンジンMeCab.N…

ヨコシマなプログラミング

以前からビッグデータに興味をもっていて、昨年ぐらいから勉強しないといけないと思っていました。 ただ単に勉強だけではモチベーションも上がらないので、どうせなら何か実用的なことと合わせてやろうと思いました。 ビッグデータの利用の1つに将来を予測…

2013年のまとめ

去年の年末に記事を書いて今年は一度もブログを書いていませんでした。 今年は今までと違う方向でテクノロジを模索をした一年でもあり、あまりブログを書くネタもモチベーションもありませんでした。 ただ今年もいくつか新しいチャレンジをしたのと来年に向…

バッチ処理を50倍高速化する

DBデータをストリーム処理するを応用するとバッチ処理を高速化できます。SQL Serverに1億件のテストデータを高速に作成するの結果からすると、ストアドプロシージャで作成する場合に比べて50倍高速に処理できることになります。メインフレーム上の基幹系のバ…

ASP.NET MVC3+Entity Framework Code Firstでオフショア開発

今回規模が大きくないオフショアの開発案件があって少しチャレンジをしています。 オフショア開発を行うとなかなか仕様が伝わりにくかったり期待しているコードがあがってきません。 以前もDBやアーキテクチャは日本側で作成して渡すようなことはあったので…

継続的インテグレーション(CI)とは毎日ビルドすることではない

ソース管理を利用する場合どのようにブランチを作成していくか決めなくてはいけません。ブランチの切り方として大きくリリース都合単位に切る方法と開発機能都合単位に切る方法があるようで、それぞれのブランチをリリースブランチと機能ブランチなどと呼ば…

Entity FrameworkでUPDLOCKを指定する方法

WITH (UPDLOCK)付きのViewを作成して、マッピングしたエンティティを検索すれば自動的にUpdateロックがかかります。具体的には まずはWITH (UPDLOCK)付きのViewを作る CREATE VIEW [dbo].[EmployeesWithLock] AS SELECT EmployeeID, LastName, FirstName, Ti…

C#のvolatileって結局なんの効果があるの?

volatile 修飾子 C#にはvolatileという修飾子がある。MSDNのC# リファレンスでは以下のように説明している。 volatile キーワードは、同時に実行中の複数のスレッドによってフィールドが変更される可能性があることを示します。 volatile と宣言されているフ…

SQL Serverに1億件のテストデータを高速に作成する

SQL Serverに1億件を超える大量のテストデータを作成する必要がありできるだけ高速な方法を調べてみた。 ストプロを試してみる まずはストプロを作成してどの程度になる確認してみる。単純にループを回してINSERTを1件づつ行う方法でまずは100万件で試してみ…

導入するアーキテクチャの均衡点を探す

優れたアーキテクチャや手法があっても開発チームが使いこなせなければ絵に描いたもちである。 目指すべきアーキテクチャ(TOBE)と開発チームが実際に回せる(ASIS)レベルとのギャップが大きいとなかなか大変だ。この均衡点(CANBE)を探すことがアーキテクチャ…

意思決定コスト

業務システムを構築する際に多くの意思決定を行う。業務仕様、利用技術、アーキテクチャパターン、本当に沢山の意思決定を行う。この意思決定を迅速にできないと作業が待ちになりムダが発生してしまう。 この意思決定のコストは、プロジェクト組織のサイズ(…

DB設計にアグリゲートの考えを導入する

RDBMSはテーブルがフラットに配置されています。テーブル間にリレーションを設定できますが、親子のような関係を定義することはできません。アグリゲートは、複数のオブジェクトを集約して意味的に1つの概念として扱うことで、複雑さを低減するテクニックで…

タイプセーフなDB開発

HibernateやEntityFrameworkなどのORMライブラリはどの程度使われているのであろうか?EntityFrameworkなどいくつかのライブラリはDBからクラスを生成できる仕組みがあるので、この仕組みを使うとプログラムからDBアクセスをタイプセーフなコードで記述でき…

アジャイル開発の価値をマネージメントに訴求する

マネージメントは開発コストが大きな関心事である。 開発コストは単純化すると以下のような式になる。 開発コスト=開発規模/生産性*単価 そうすると、開発規模を小さくするか、生産性を上げるか、単価を下げるしかない。開発規模はパッケージの導入、単価…