FibBuzzをJavaで書いてみる

FizzBuzz は時代遅れらしいので FibBuzz を発案します | cod.noteJavaで書いて見ました。CodeGolf的に頑張るのはJavaっぽくない(偏見)のでまあ普通に。longだとフィボナッチ数列がn=92で桁あふれしてしまうのでBigIntegerでやってます。このため非常に見づ…

Scalaで「アラビア数字・ローマ数字変換」

お題はこちら。お題:アラビア数字・ローマ数字変換 - No Programming, No Lifeテストは割愛。ご覧のとおり、 アラビア数字→ローマ数字の場合は、大きい単位から順に元の数字から引いていって、引けた記号を積むだけ ローマ数字→アラビア数字の場合は、左側…

Scalaで「フルパスから相対パスを求める」

懲りずにやってみた。 お題はこちら。お題:フルパスから相対パスを求める - No Programming, No Lifeお題とは直接関係ないけど、例外のテストを行うための@Test(expected=classOf[HogeHoge]) をうまく略記する方法はないものでしょうか。※仕様が追加されて…

「ある金額になるコインの組み合わせ」をScalaで

続いてやってみた。お題はこちら。 お題:ある金額になるコインの組み合わせ - No Programming, No Lifeあまり芸のない総当たりだけど、こんなんでいいのかな。 object CoinAssort { def search(coinList: List[Int], sum: Int, curAssort: List[Int] = Nil)…

FizzBuzz(Nパターン)をScalaで

お題:FizzBuzz(Nパターン) - No Programming, No Life こちらのお題にScalaで挑戦。手続き脳が頑固で苦戦しました。 object FizzBuzzN { def main(args : Array[String]) : Unit = { fizzBuzzN(List(3, "Fizz", 5, "Buzz", 7, "Hoge"),100).foreach(s => pr…

try-with-resourcesを試してみる

少し時間ができたので、↓の記事を参考にJava7のtry-with-resourcesを試してみました。 Java7 体当たり/try-with-resources Statement - 日々常々まあ他の言語からするとアレですが、Java6以前から比較すると地味にありがたい拡張ですね。特にcloseのチェッ…

ScalaでJUnitテストケースを書く

とりあえず、Scala用のテストフレームワークは使わず、素のJUnitを使った例。Eclipseから使う場合、JUnit関連クラスのimportはクラススコープの外側に書いておかないと、右クリックからテスト実行できないようです。あと、Scala2.8からアノテーションのパラ…

Monadについて

勉強中。あとでまとめる。 (2010/09/06)ざっくりまとめ オブジェクト指向・手続き型脳味噌で理解したモナド(の概念の一部) モナドは、副作用の範囲を封じ込めるコンテナとして見ることができる 高階関数を受け取り、モナドの中身に適用して、その結果をまた…

EclipseのJavaプロジェクトや動的WebプロジェクトでScalaソースを混在させる

「EclipseでのScala+Webアプリ開発 」の件で、とりあえずScalaコードを混ぜ込んでもビルドされるようになったので、方法の簡単に書いておきます。ただしちゃんと検証できてないので真似する際は自己責任で。 Scala IDE for Eclipse (Scala Plugin)をインスト…

機能のテンプレ化に関する考察

大規模システムのフレームワークとか作っていると、まずは「機能の標準化」というお題目で、画面の流れのモデルケースを作り(例:検索→一覧→選択して編集→DB更新→検索画面へ戻る)、個別機能の設計ではこのモデルケースに極力準拠してもらいつつ、実装作業…

EclipseでのScala+Webアプリ開発

Praiades All-In-OneにScala Plugin 2.8.0.finalを入れて試してるのだけど、これってScalaプロジェクトじゃないとScalaソースをコンパイルしてくれないのでしょうか?Dynamic Web プロジェクトを作成して、ソースフォルダにScalaソースを置くと、javacでコン…

フレームワークとして共通化する部分の抽出

処理の整理の段階で大体分類は終わってるんですけど、基本的には、前回([id:shout_poor:20100817#1282021845])での整理のうち、「本処理」の部分が個別ロジックとなり、それ以外のところは共通化できると考えます。以下、切り分けが微妙な部分の検討。 入力…

ServletもScalaで書ける

そりゃそうだ。多忙な Java 開発者のための Scala ガイド: Scala とサーブレット

Webアプリケーションが行う処理の整理

ひとまずUIはおいといて、ボタンクリック等のイベント発生から、次の画面表示(またはWebAPIのリクエストからレスポンスまで)に行われる処理の一覧を書き出してみる。(8/18 例外処理、その他の追記) 前処理 個別ロジックの選択 セッションデータの取得 アク…

Oracle JDBCドライババージョンによる日付型の扱いの違い

元記事最終更新:2010/08/26 概要 Oracle10gになってJDBCドライバの仕様が変わり、OracleのDATE型に対応するJava型が、java.sql.Timestampからjava.sql.Dateへ変更となった。また、Oracle側にTIMESTAMP型が追加となった(従来のDATE型は秒までの精度だが、TIM…

例外のスタックトレースが途切れる

元記事最終更新:2007/04/19 概要 Sun Java VMに含まれる、HotSpot Servet VMでアプリケーションを実行する際、たまに例外のスタックトレースが省略されてしまう件に関して記述。 現象 Sun Java SE 1.4.1_08 のHostSpot Server VMで確認。 同じ箇所繰り返しN…

crontabで月末日を指定

元記事最終更新:2009/05/08crontabで、月末日にスケジューリングしたいときの記載例 50 23 28-31 * * /usr/bin/test $( date -d '+1 day' +%d ) -eq 1 && /hoge/job Solaris(非gnu tool)だと date -d が使えないんだけど…… 環境変数TZでごまかすとか。 /usr…

RFC1123形式での時刻出力をJavaで実装する

元記事最終更新:2007/04/19HTTPヘッダ等に時刻情報を付加する場合、通常、RFC1123形式でフォーマッティングする必要がある。 以下は、現在時刻をRFC1123形式の文字列で取得するJavaコード例。 /** * RFC1123形式で現在時刻を取得する * @return 現在時刻をR…