ブックマーク / higayasuo.hatenablog.com (10)

  • StrutsのClassLoader脆弱性はSAStrutsに影響しません - ひがやすを技術ブログ

    Struts2に見つかった脆弱性と同様の脆弱性がStruts1系にも見つかりました。 Apache Struts 2の脆弱性が、サポート終了のApache Struts 1にも影響 HTTP(S)のリクエストでJavaのClassLoaderのメソッドが呼び出せてしまうという脆弱性です。 もう少し噛み砕いて言えば、リクエストのパラメータをJavaBeansにセットする時に、リフレクションを使い、パラメータ名にaaa.bbb.cccのようなネストした名前をサポートしているフレームワークは同様の問題が起こる可能性があります。 パラメータ名をclass.classLoader.xxxのような感じにして、ClassLoaderのメソッドを呼び出す訳です。 このような問題を起こすリフレクションフレームワークで最も有名なのは、Apache Commons BeanUtilsです。リクエストのパラメータ

    StrutsのClassLoader脆弱性はSAStrutsに影響しません - ひがやすを技術ブログ
  • 残業を悪とするチームを作ろう - ひがやすを技術ブログ

    長時間労働やサービス残業は、基的には会社の問題であり、上司の問題です。 例えば、大手SIerで長時間労働やサービス残業が発生するよくあるケースを見てみましょう。 会社は、ワークライフバランスを向上させるために、年間360時間以上の残業をしてはいけないというルールを決めたとします。この段階で、会社は残業は社員のために良くないと認識しています。 現場は、社員の稼働率を上げるためにオーバーワーク気味に仕事をアサインします。仕事がないときに備えて、仕事があるときは、多めに仕事を振るのです。これが間違いなのですが、たいていの現場は、このように行動してるでしょう。つまり、仕事があるときは、多めに振られているので残業することが前提なのです。 ここで、会社の作った残業規制のルールが効いてきます。上司は、会社のルールがあるので、月30時間以上の残業をつけることを基禁止します。「残業をつけることを禁止する

    残業を悪とするチームを作ろう - ひがやすを技術ブログ
  • テストを書くときはコストベネフィットを考えろ - ひがやすを blog

    InfoQにKent Beckの最新の提案がでてますね。Kent Beck氏、ごく短期のプロジェクトではテストを省略することを提案 でも、これは、Kent Beckが「ごく短期のプロジェクトではテストを省略しても良い」といってるわけではないと思うんですよ。キャッチーなタイトルをたまたまつけられてしまっただけで。 重要なポイントはここだと思います。 Maxを開発しているとき、テストを書くか否かという質問は、要するに、そのテストが単位時間当たりにより多くの有効な実験をするのに役立つかどうかでした。もし役に立つのであれば、私はテストを書きます。そうでなければ、不要だと判断します。私はMaxの収入を軌道に乗せるためのチャンスを最大化しようとしているのです。 つまり、「テストがかけた時間の割りに役に立つと思ったら書くし、そうでなければ書かない」ということだと思います。別に短期のプロジェクトでも、コス

    テストを書くときはコストベネフィットを考えろ - ひがやすを blog
  • プログラミングをやるのは大手では難しい? - ひがやすを技術ブログ

    私は,現在就職活動をしているものです.仕事は,プログラミングなど(最終的には一連の作業をやりたい)をやりたいと思っているのですがプログラミングをやるには大手では難しいのでしょうか? ここ最近,大手を中心に何ヶ所か就職のセミナーに行きました.ある会社では開発を行っているらしいのですよくよく質問するとプログラミングは行わないらしいです. 難しいでしょうね。今の大手SIerは、単価の高い上流にほとんどシフトしています。それだけなら、別に問題はないのですが、新人にプログラミングなどを経験させずに、いきなり設計をさせることが多い。例えばこんな感じ。 どうも会社では、僕に上流工程を任せようとしているようです。しかしながら僕は、上流工程にはまったく興味がありません。上流工程のほうが付加価値が高いし儲かるということは一応知っているつもりですが、設計をしたり人の調整をしたり、なんていうことは好きでもないし、

    プログラミングをやるのは大手では難しい? - ひがやすを技術ブログ
    flakwing
    flakwing 2009/02/25
    特にコメントについてよく読む
  • java.util.Dateをjava.sql.Dateにきちんと変換する方法 - ひがやすを技術ブログ

    多くの人はこうやればいいと思っているかもしれません。 java.util.Date d = new java.util.Date(); java.sql.Date d2 = new java.sql.Date(d.getTime());確かにこれでも一応変換はできますが、きちんと変換してはいません。java.sql.DateのJavadocを見るとこう書いてあります。 SQL DATE の定義に対応させるために、java.sql.Date のインスタンスでラップされたミリ秒の値は、インスタンスが関連した特定のタイムゾーンで時間、分、秒、ミリ秒をゼロに設定することで、「標準化」する必要があります。 つまり、java.util.Date#getTime()をjava.sql.Dateにただ渡すだけでは不十分で、「特定のタイムゾーンで時間、分、秒、ミリ秒をゼロに設定しなければいけない」のです。そ

    java.util.Dateをjava.sql.Dateにきちんと変換する方法 - ひがやすを技術ブログ
  • Javaのコネクションプーリングの仕組み - ひがやすを技術ブログ

    Javaのコネクションプーリングがどのような仕組みになっているのか、知らない人は結構多いんじゃないかと思います。 Slim3のコネクションプーリングの実装を見ると、この辺が理解できるようになります。トランザクションとコネクションプーリングがどのように連携しているかを把握することは重要です。 http://svn.slim3.org/browse/trunk/slim3/slim3-datasource/src/main/java/org/slim3/datasource/ 登場人物は、4人しかいないから簡単ですね。 最初に見て欲しいのは、ConnectionWrapper。DataSource.getConnection()したときに戻されるコネクションの実態です。このコネクションを論理的なコネクションと呼ぶようにします。 主な役割は、コネクションがクローズされたときに、コネクションをプー

    Javaのコネクションプーリングの仕組み - ひがやすを技術ブログ
  • IBMの問題はアメリカナイズされた老害 - ひがやすを blog

    IBM周辺でトラブルが続出している。IBMの下請けとしてサブシステムの開発に携わっていたソフトウェア企業が4億円近い負債を抱え、2008年10月中にも破産手続きに入る。同社は、IBMから追加費用の支払いが行われていなかったと主張して訴訟準備に入っていたという。ほかにも、スルガ銀行やソフト開発会社など、IBMを相手取った訴訟も続発しているのだ。 この訴訟続発を問題のように受け止めている人も多いようだけど、IBM自身にとっては、そんなに問題じゃないと思う。ユーザーの発注が確定しなくてもその先の作業を進めるために下請けに先行発注したりすることがなくなったり、不採算案件は最初からやらない、あるいは早期に手を引くことが、徹底されたからだと思うから。 これまで、日的な空気を読むビジネスから、アメリカ的な白黒はっきりな契約ベースになったということなので、一方的に悪いことではない。 でも、契約を交わ

    IBMの問題はアメリカナイズされた老害 - ひがやすを blog
  • 下請け構造がなくならないのは大手SIerの社内人件費単価が高いから - ひがやすを技術ブログ

    今のSI業界は、大手SIerを中心とした多重下請け構造ですが、その原因の1つには、「大手SIerの社内人件費単価の高さ」があります。 ここでは「社内人件費単価」の意味をプロジェクトに課せられる社員一人当たりの単価とします。 大手SIerでは、社内人件費単価が外注の単価と比べて、べらぼうに高いことが多い。だから、プロジェクトマネージャも利益を出すために、社員の数を抑え、できるだけ外注しようとするのです。 なぜ、大手SIerの社内人件費単価が高いかというと、1つは、大会社であるため、オーバーヘッドが大きいことです。もう1つは、もともとの人件費の単価が高いこと。優秀な人を集めようとすると、必然的に単価を上げざるを得ません。 それ以上に大きな原因は、単価を下げようとするインセンティブが働かないことです。 大手SIer通しの競争もありますから、ぬるま湯なビジネスをやっているわけではありません。 見積

    下請け構造がなくならないのは大手SIerの社内人件費単価が高いから - ひがやすを技術ブログ
  • プログラミングファースト開発の必要性 - ひがやすを技術ブログ

    ここではフローチャートの是非を論じるつもりはない。クソだから。もっと一般化してしまえば、○○設計書みたいに「設計書」と名のつくものは全部クソだ。だって動かないんだもん。 動かない以上、それら設計書が正しいのか、漏れがないのかは保証のしようがない。机上検証なんていう工程もあるらしいけど、君たちの脳味噌は何MIPSなんだと問い詰めたい。もちろん、机上検証で見つかる凡ミスもあるだろうけど、そんなのはズボンもパンツも履かずに会社に向かうのと同じくらいのレベルの間違いだろう。 結局はコードを仕上げてから動かして初めて「だめだこりゃ」ということになる。 ○○設計書は、動かないから検証ができない。だから、だめだというのは、半分あっていて半分間違っていると思う。システム開発の大多数は、最初に○○設計書を作成する。顧客にレビューしてもらったり、自分たちでも内部レビューしたりするが、あれは、有効性が低い。 動

    プログラミングファースト開発の必要性 - ひがやすを技術ブログ
  • プログラミングファースト開発 - ひがやすを技術ブログ

    プログラミングファースト開発とは、ドキュメントを書いてからソースコードを書くのではなく、動くソースコードを書いてユーザに実際に触ってもらうということを何度も繰り返して、仕様を固める開発手法です。ドキュメントは仕様が固まった後に書きます。 テストサミットでは、極力ユニットテストを書かずに品質を確保する方法ということで、テストに重点を置いて話をしたのですが、今回のクロスコミュニティカンファレンスでは、「プログラミングファースト開発」そのものについて、会場の方々と一緒にディスカッションしました。 熱い(暑い?)ディスカッションになったので、思わず途中で泡のあるスポーツドリンクを飲まないといけなくなったほどです(笑)。 プログラミングファースト開発の開発手順は次のようになります。 実装してユーザに使ってもらうということを仕様が固まるまで繰り返す レビューの結果はその場で反映させる 仕様を決めながら

    プログラミングファースト開発 - ひがやすを技術ブログ
  • 1