かばだんなさん かく語りぬ Header Image

今日のかばだんなさん

こんにちは。お久しぶりです。かばだんなさんです。

最近はめっきり忙しくしておりまして、もう文章書きたくないぐらいです(苦笑。

その理由はもう暫くしたらこの場でお知らせしますが、本日は生存確認代わりの小ネタ。

----

前から不思議だったのですが、

1.黒ヤギさんから白ヤギさんに手紙が届く。
2.白ヤギさんが手紙を読まずに食べる。
3.白ヤギさんから黒ヤギさんに「さっきのご用事なに?」と手紙を送る。
4.黒ヤギさんが手紙を読まずに食べる。
5.黒ヤギさんから白ヤギさんに「さっきのご用事なに?」と手紙を送る。

という繰り返しがありますが、
こんなに食いしん坊の黒ヤギさんなら、そもそも最初の手紙を書いてる時点で食っちまうんじゃね?

この前 気付いた時には「俺って頭良い~!」って自画自賛したんだけど、あまりのバカバカしさに周囲に言うタイミングを逃していました。(この辺にかすかに良識が残る)
せっかくなので生存確認代わりにご披露してみました。w



もうちょっと電力会社について –計画書の書き方–

ども、かばだんなさんです。先日の記事の「公開されない総合特別事業計画」の項で「探してみたのですが計画書の詳細はどこにも公表されていません」と書いたのですが、ちょうどその日に公開されていました。ちっ、タッチの差だったか(苦笑。

で、まぁせっかくなので計画書の詳細をざっと読んでみました。
 
・・・こりゃあひどい。いや、感情的に言ってるんじゃなくて、仮に私が下から上がってきたシステム開発計画書がこんなんだったら即座にリジェクトですよ・・・。

と、本当は電力関連については暫く黙っていようと思ったのですが、せっかくなのでまだ語ってみます。

(今回はシステム開発計画を初めて書く新人PMさんなんか想定して書いてみます。計画書をレビューする人がどこを見るか、参考になりましたら幸いです。)
… 続きを読む



さていよいよ電力会社について語ろうか

電力会社については言いたいことは山ほどありました。1年以上も前から。
しかし立場上 過去の守秘義務に違反してんじゃないのと疑われてもかなわんので公の場では黙っていました。
でもまぁ、もうそろそろいいかな?と思って語るとしましょう。
… 続きを読む



SQLServerのユーザー定義関数を作ってみた

師走でございます。こたつが恋しい季節になりましたがいかがお過ごしでしょうか。

最近かばだんなさんは初めてSQLServerに触れる機会を得まして。これ、いいです。
導入時の認証・権限管理の部分がちょっと難しいです。情報も分かりやすいのがまとまってるわけじゃないし。
たぶんこの難解さで、多くの人が目一杯に権限を緩くしてDB構築し、セキュリティリスクを作ってしまうんじゃないかと思います。(「そのうちちゃんと組みなおそう」と言いつつ時間が無くてそのまま本番運用、なんて光景が容易に想像がつきます。) もったいないよね。
・・・と、昨日ランチの時に有識者に話したら「お前がまとめ文章書け」と言われました。そのレベルにはまだ達していない(苦笑。

でも入り口はちょっとつまづきましたが、それ以外はクセもなくスムーズです。

で、面白がってSQLServerで使うためのユーザー定義関数を作りましたので今回はその一部を公開します。
現在日時を取得するNOW()日付書式を変換するためのDATE_FORMAT()です。

NOW()に相当するものはSQLServerにもあるので、これはクラウドサービスであるSQLAzure用ですね。
あ、SQLAzureもいいですよ。ローカルのSQLServerでやれることがまんまクラウド環境でもできるので開発効率もいいし。

またひとつ選択肢を入手してしまった かばだんなさんなのでした。



Java でのセキュアコーディング規約

JPCERTコーディネーションセンター から「CERT Oracle Java セキュアコーディングスタンダード」の日本語版が公開されましたね。(元ネタ

この資料の特筆すべきところは、

  • 機械翻訳・非技術者翻訳ではなく、技術者による翻訳なので分かりやすい。
  • 個々のチェックポイントについて、NG例・OK例が提示されているので、文章の意味が分からなくてもコードを見たらよく分かる。
  • 巷間話題のAndroidアプリで関係するチェックポイントはどれとどれか、別表で明確になっている。

といった辺りでしょうか。通常セキュリティ診断の会社にこの資料出してもらうとすれば数百万円は払わなくてはならないでしょう(それでも格安)が、それが無償公開だなんて!!!

何となくセオリーとしてやっていた事・やらずにいた事ってのが、実はセキュリティ的な意味があったという事が分かったりもしますので、ざっと読むだけでもなかなか面白いですよ。
特に「とりあえず作れ!」的な感じで質問できる先輩もいないのに Javaのプログラマになっちゃった方には必読の文章だと思います。腕磨いて下さい。(これ、特定の誰かを頭に浮かべてるわけではありません。ホントに(苦笑。)

しかしこんな情報が整理された状態で公開されるなんて、ホント、いい世の中になったよな~。

「CERT Oracle Java セキュアコーディングスタンダード」 日本語版
Androidアプリケーション開発へのルールの適用(日本語版オリジナル)



サーバーにメモリを追加したかっただけなのに・・・

以前、インストールマニアックス第1回大会に参加した際に頂いたWindowsサーバーですが、3年近くたった今でも元気に動いてくれていました。初期状態の1GBのメモリでしたが、いやぁ結構仕事してくれるもんです。
先日、同じ大会に参加した友人のサーバーが壊れたそうで、メモリだけ頂きました。なんとその友人は増設していたので8GB♪
昨日は祝日でしたのでサーバーを止めて増設しました。ハード系は得意ではありませんがメモリの交換ぐらいできるのです(笑。

そう、メモリの交換ぐらい・・・・
… 続きを読む



CakePHPのPaginatorに独自のパラメータを追加

本項はCakePHP1.3で動作するように記述しています。CakePHP2.3をご利用の方はコチラをごらんください。

CakePHP の一覧表示には標準搭載のPaginate機構を使う事が多いと思います。お手軽ですから。bakeで焼いたままで、ソートや改ページといった細かい手間も省いてくれますしね。

でも、一覧画面でありがちな「条件で絞り込み」みたいな要件にどう対応したらいいのかってドンピシャで書いてるところ少ないんですよね。前に確かに実装したのにな・・・って事で覚書。(今回はCakePHP 1.3.10 で動作確認しています。)

… 続きを読む



JavaScriptでループ毎に一定時間待つ方法

ぐるぐるループしながら処理を行う際に、一定時間 間をおいてから次の処理をしたい場合は多々あります。
他の言語ですと sleep() や wait() を使えばいいのですが、残念JavaScript にはそのようなコマンドはありません。まぁJSの使われ所を考えると当然かもしれませんが。
もちろん JavaScript では実現できないって意味じゃありません。setTimeout() があります。でもちょっと実装方法が違うので、最初のうちは少しだけ悩んじゃうんですよね。

先日そういった処理を実装する方法を質問されて、ちょっと説明に苦心しました。忘れてますね~(苦笑。

ということで本日は説明した時の備忘録。

… 続きを読む



団扇 買っちゃった

え~昨日、「水うちわ」なるものの存在を偶然知った かばだんなさん。どうしても欲しくなって青山まで買いに行ってしまいました。

あまりの薄さに向こう側がうっすら透けているのがお分かり頂けるでしょうか?
(カメラマンかばだんなさんの腕が悪いのですが、実物はもっともっと綺麗で上品です。)
かばだんなさんはこういう職人の仕事が大好きなので、テンションあがりまくりです。

ちなみに制作は家田紙工さん。イケてます。

工芸品は使ってナンボと信じているかばだんなさんは、こいつを相棒に夏を乗り切るつもりです。



CakePHP の HABTMって楽ですよ

ちょっと急用でCakePHPで簡単なサイトアプリを書いていたのですが、いや~半年近くやってないとCakeも忘れちゃいますね(汗。

そのサイトで多対多のテーブル連携ってのがありまして。
そのまま書くわけにはいかないので題材を変えると・・・例えば「会議議事録管理システム」としましょうか。

テーブルの構成としては「会議」のテーブルと「メンバー」のテーブルが n:n の関係で連携します。1回の会議には複数人が出席しますし、1人のメンバーは複数回の会議に出席しますからね。
モデルクラス同士のつながりは下記のイメージになります。

多対多のモデルイメージ

このような連携のアプリケーションを実装するために、CakePHPでは「HABTM(hasAndBelongsToMany)」という仕組みを使うわけです。
(サンプルのコードはCakePHP 1.3 を使用しています。)
… 続きを読む