SQLインジェクションのお話

注意: 本日のお話はフィクションです。

うっかりしていると陥りがちなミスなので、野暮を承知で注意喚起。

前置き

株式会社コラショは、青森県八戸市に本社を構える菓子メーカーである。国内7拠点に工場を持ち、独自の生産管理システム「BNS」を運用している。

このシステムは、もともと5年前に準大手ITベンダのトリッピーソリューションズ(株)がスクラッチ開発したものである。しかし、運用中に品質的課題が多発したことから、このたびベンダを弊社うちに切り替えて品質向上と機能強化を図ることとなった。

僕は、その案件にプログラマとして参戦している。

ある夜。

しんと静まったオフィスの中で、僕は顧客から受領した現行ソースを解読していた。が、さっそく怪しげな実装を目の当たりにすることとなる。

続きを読む

Processing.js(3Dモード)ではぅ君をふわふわさせる、の巻(メイキング篇)#p5advent

この記事は 本篇 のつづきです(ページが重くなりすぎたので分割しました)。

【もくじ】

  • はじめに
  • でこぼこ感のつくり方
    • 概要と実装手順
    • 高さマップを作る
    • 高さマップを法線マップに変換する
    • 法線マップからピクセルごとの陰影情報を計算する
    • ピクセルごとの陰影情報を、面のテクスチャと合成する
  • Processing.jsのバグと回避策
    • ライティング(シェーディング)がレンダリングに反映されないバグ
    • テクスチャを書き換えてもレンダリング結果に反映されないバグ
  • その他がんばったこと
    • ゆるふわ感アップ大作戦
    • 描画の高速化(焼け石に水)
  • あとがき
  • 謝辞
  • 参考文献
続きを読む

Processing.js(3Dモード)ではぅ君をふわふわさせる、の巻 #p5advent

みなさんこんにちは。

Processing Advent Calendar 2015 5日目担当の たーせる と申します。

今回は、小さなスケッチをひとつだけ投稿します。
(スマフォやタブレットでご覧の皆様は甚だしく処理落ちするかもしれません

続きを読む

DiffアルゴリズムをC#でてきとうに実装した

本日のあらすじ

Diff アルゴリズムC# でてきとうに実装しました(タイトルそのままです)。

ちなみに 2 年半ほど前にも Java で似たようなことをしていましたが、当時はスクリーンショットだけ載せてはいおしまいでした。今回はせっかくなので超カオスC#のソースも載せておこうと思います。tercel-tech.hatenablog.com

Diffって?

Diffディフとは異なるデータの差分を検出する処理のことで、業界の符丁では「Diffを取る」などと言ったりします。例として、2つのテキストのDiffを取ってみましょう。ちなみに例文はアンサイクロペディアからパクりました

テキスト1:

個のよ鵜な返還ミスノお御杉る分掌はな2がなん打か輪からないの出、中石て乳緑し魔性。

テキスト2:

このような変換ミスの多すぎる文章はなにがなんだか分からないので、注意して入力しましょう。

テキスト1とテキスト2のDiffを取った結果:

本日の成果物

リハビリも兼ねてDiff情報を求めるための拡張メソッドを作りました。

以下の使用例のように、stringオブジェクトに対して直接Diffメソッドを呼べるようになります。

使用例:

// 「おっぱい」と「いっぱい」のDiffを取る
var result = "おっぱい".Diff("いっぱい");

// 結果を出力する
foreach (var item in result)
{
    Console.WriteLine("{0} {1}", item.Key, item.Value);
}

実行結果:

い +
お -
っ =
ぱ =
い =

これを見た人は、「あぁ、『おっぱい』を『いっぱい』に書き換えるためには、1文字目に『い』を追加して、代わりに『お』を削除すればいいんだね。『っぱい』は共通要素だからそのままでいいんだね」とたちどころに理解できます。よかった。めでたい。

なお、出力の見た目をもう少しマシにする方法をこの記事の最後に載せておきました。

続きを読む

外観をカスタマイズしたチェックボックスをASP.NET MVCで利用する

やりたいこと

問題の背景

デフォルトのチェックボックスはイケてない上に変更が面倒

HTMLフォームの中でも、チェックボックスは外観のカスタマイズに技巧的な手法を要します。

とはいえ適当にぐぐるだけでも 「CSSだけでチェックボックスをカスタマイズする方法」 の解説ページがいくつか見つかるので、外観を変えるだけならば特に問題なくできます。

ちなみに今回はこちらの記事を参考にしました。感謝!plustrick.com

外観を弄ったチェックボックスASP.NET MVC 5 とうまく連携できない

そこまではよかったのですが、 外観をカスタマイズしたチェックボックスASP.NET MVC 5 でそのまま使おうとすると、入力値がモデルにうまくバインドされず、丸一日ドはまりしました(具体的には、チェックボックスにチェックを入れても、Post 先のアクションメソッドでは入力値が常に false と見なされてしまう現象です)。

加えて、カスタマイズ版チェックボックスはデフォルトのビューヘルパーで生成できないため、一筋縄ではいきません。


まるでサウザー戦で北斗神拳が通用しないことに落胆するケンシロウのようなみじめな気持ちになりましたが、とりあえずなんとかなったのでここに書き留めておくことにします。

続きを読む

青空を撮りたくて

前回に引き続きカメラネタです。

今日は、2つほど秘密兵器を入荷したのでご紹介しようと思います。

秘密兵器1: 円偏光フィルタ

きれいな青空を撮るために、円偏光フィルタというチートアイテムを購入しました。

これを手持ちのレンズ SEL1635Z に取り付ければ、白飛びしがちな空を蒼々と写すことができて超便利。

image

これからの季節、秋空や紅葉などを撮る際にも重宝しそうです。

秘密兵器2: 中望遠レンズ

続いての商品は、中望遠マクロレンズ SEL90M28G です。シルバーウィークに備えて調達しました*1

まさかの単焦点。まさかの中望遠。まさかのマクロ。

なにやら一癖ありそうですが、これがまた面白いレンズで、そこらへんに生えている木とか草とかを割と適当に撮るだけでも奇跡のショットになります。ちなみにこの写真、新宿のすみっこで撮りました。

image

image

おまけ。ペットボトルもなんか格調高くなります。まりこって誰

image


そんなわけで、連休が楽しみだなと思うたーせるなのでした(今日のわんこっぽく)。

いじょ。

*1:本当はBatis 1.8/85も気になりましたが、、、

Copyright (c) 2012 @tercel_s, @iTercel, @pi_cro_s.