5/9(水) 大正GeekNight Vol.1で話しました。 https://taisho-geek.connpass.com/event/85508/ 4ヶ月前のスライドです。 Javaのサポートについては続報も出てきていますし、思い込みで騒がないのが吉です。 いよいよ今月本命のJava11がリリースですね。どうなるかな。
まだまだ場所によってはShift_JIS文化は根強く、2015年が終わろうとしている現在でも、「ようやく我が社もUnicodeでシステムを作ることを考えるっ!」なんてところは多くあるかと思います。 そんな現場で、これまでJavaでShift_JISでシステム構築してきたSIer向けのUTF-8移行ガイドです。 文字長のチェック 文字長の入力チェックはShift_JISの世界では、半角文字は1バイト、全角文字は2バイトなので、以下のようなチェックロジックになっていたかと思います。 if (inputValue.getBytes("Windows-31j").length > 20) { errors.add("hoge", new ActionMessage("errors.maxlength", "ほげ", 10)); } UTF-8ではそれらの文字は、1バイト~3バイトで表されるので、バ
The Java Curses Library (JCurses) is a library for developing text terminal based applications using Java programming language. It is implemented as a Windowing toolkit similar to AWT, but built upon the UNIX "curses" windowing system. Features Console based windowing toolkitMulticolor console outputRecognize single keystrokes (PG-UP, PG-DOWN,......)Supports Windows and Linux, both 32 and 64-bit v
JIRA Advent Calendar 2011、15日目です。 ってすみません、ConfluenceネタですがまあJIRA使ってる人は連携して使ったりしますよねとか、そんな感じで。 GradleのユーザーガイドをPDFに変換するときにお世話になったので、紹介してみます。 Confluenceは、バンドルされているプラグインでページをPDFに変換して出力できるのですが、この機能に使われているライブラリを使って、XHTMLをPDFに変換しようという話です。 ConfluenceのXHTML→PDF処理にはFlying SaucerというJavaのライブラリが使われています。 Flying Saucerを使うと、XMLやXHTMLファイルを、PDFやSWT、Swingのスクリーンに出力させることができます。デザインはCSSで指定できます。 ただ、このFlying Saucer、PDFに変換し
2016/05/21(土) 17:00〜17:50 JJUG CCC 2016 Spring GH-6 2011年にリリースした弊社のサービスは、Seasar2ファミリーで構築しました。利用者数は1000万人以上となり、今もサービスとして成長しています。2016/9/26にSeasar2がサポートを終了するというアナウンスを受け、私たちもアクションを起こしました。 サービスには絶え間なく機能改善、機能追加の要件があり、その対応をしながらSeasar2から移行するという前提条件を考慮すると、選択肢は限られます。Scalaなど言語自体を変えることはなく、Javaのままとしました。新規アプリケーションを作成すると監視対象とするアプリケーションの数が増え、様々なコストが増えると考えたため新規とはしませんでした。こういったさまざまな条件のもと、まずはSeasar2で動作している機能から、まずリスクが
連休最後に咽頭炎を患ってしまい、そこから高熱で寝込んでいました。 休みが続いて周囲に色々迷惑をかけてしまいました(-_-;申し訳ないです。強くなりたい。 …… … これまで色々環境を触れてきて、概ね開発準備は整ったのですが、忘れていたことが1つありました。 次期開発では、海外パートナーである某社のあるエンジンライブラリを利用します。今まではC#開発だったのでCOMのラッパーを介して色々やっていたのですが、今回開発はJava EEで、幸い先方のライブラリにはJarがあるのでこれを使う予定です。 で、 あれ、 このJarってどこ置けば…。 orz 自分達で作ったライブラリは前に書いたエントリ TracLightningでMavenの部内リポジトリ(internal repository)を作成してみる のように部内リポジトリを作って、デプロイして登録しています。 パートナーのライブラリはJar
バッチ処理をおこなう実行可能jarを生成する場合にはコマンドラインでいちいちクラスパスを設定するのは面倒ですし依存関係がかわるとバッチ処理コマンドも変更する必要が出てくるので管理が煩雑です。 gradleを利用してjarを生成する際に依存jar内のクラスも含めて一つのjarに入れればデプロイが格段に楽になります。 やり方は簡単。 build.gradleファイルのjarの設定に from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } を加えるだけでできます。 apply plugin: "java" apply plugin: "maven" def defaultEncoding = 'UTF-8' [compileJava, compileTestJava]*.options*.encodi
JJUG CCC 2015 Fall 2015-11-28T15:00-15:50 の発表資料です。 話せなかった分は切りましたが、言いたいことは言い切っています。Read less
一人でプログラムを書いてたりすると、環境によってはあまりコードの書き方には指摘を受けなくて困りますよね。プロになっても、曲がりなりにもちゃんと動くコードを書けてしまうとあまりに当たり前のことなんかは指摘されることも稀で、そのままある程度偉くなっちゃった日には、もはや自分で気付くしかなくなってしまいます。 FindBugsとか、Effective Javaなら使ったり読んでみたり読ませたりすることはできますが、それ以前のところって難しいんですよね。よいコードと言うよりそれが当たり前だと思われているので、指摘するにしても「こうすればいいよ」(アドバイス)じゃなくて「なんでこうしてないの?」(詰問)になってしまいがちです。 そこで、最近そういうJavaニュービーに指摘している(したい)ことの多い、Javaの基礎的な事柄をまとめてみました。ワタシJavaチョットデキルって人は、これ以外にもやりがち
こんにちわ、みけです。 Servlet3.0のファイルアップロードを触ったことがなかったので、ためしにさわってみました。 作ろうとしたもの ファイルをアップロードできる 送信できるファイルのサイズは1Mまで 送られてきたファイルの名前はyyyy-MM-dd-hh-mm-ss-SSS.拡張子の形で保存 サンプルコード <input type="file" name="upload-file"/> @WebServlet(name = "file-upload", urlPatterns = "multipart", asyncSupported = true) @MultipartConfig(fileSizeThreshold = 1, maxFileSize = 1048576, location = "upload") public class FileUploadServlet ex
MyBatisのEclipseプラグインを作りました。 github.com といっても大げさなものではなく、MapperのJavaファイルから対応するXMLファイルへジャンプするだけのプラグインです。 それでも対応するXMLファイルがない場合には、テンプレートから自動生成しますので、少しは便利に使えると思います。 今回プラグインを作ったのは、S2DaoプラグインでJavaソースからSQLファイルへジャンプする機能が便利だったため、同様の機能をMyBatisでもやりたいと思ったためです。 プラグイン開発そのものが初めてということもあり、かなりいろいろなところでハマりました。 Web上で質問するのも初めての経験でした。 ja.stackoverflow.com 最終的に次の本のプラグイン開発の説明がドンピシャで役に立ちました。 JavaデベロッパーのためのEclipse完全攻略 [4.x対応
この表から解るように、一部の機能を除けばJUnit4の機能は継承されています。 したがって、JUnit4を理解していれば継承された機能をJUnit5に移行することは難しくないでしょう。 最初は多少の混乱はあるかと思いますが、すぐに慣れるレベルかと思います。 逆に、新しくJUnit5からJavaのユニットテストに入るのであれば、JUnit4の制約がないことは良い材料です。 特に、構造化テスト(ネストクラス)の時、JUnit4ではネストクラスをstaticクラスにすることを強いられていました。 これは、テストクラスをテスト毎に作成するという制約があったためです。 この制約がある以上、テストクラスからアウタークラスのインスタンス変数にアクセスできませんでした。 ユニットテストではテスト毎にテストインスタンスを作成することが原則なので、この制約は仕方ないと考えても良いでしょう。 しかし、テストがネ
About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)
アプリケーションエンジニアの多くは、眠れない夜を過ごしたことがあるでしょう。特に月に一度の…「月末締めバッチ」の日は。 そんなデータ量の多い日や、初モノのバッチが動く日でも安心して眠れるためのバッチ設計を考えてみます。 ログの設計 まず何はなくともログです。きちんとしたメッセージを出せていれば、専任の人がリカバリ可能にもなるってものです。 Audit用のログなど業務要件の強いものを除いては、だいたい3種類に分けるようにしています。 プログレスログ リカバリログ 例外ログ(調査のため) この分類でファイル単位も分けます。ログを必要とする人が、それぞれ異なるからです。 プログレスログ プログレスログは、特に長時間かかるバッチに対して、現在どのくらいまで処理が出来ているのかを目的として出力します。 トラブル発生時や、大規模移行作業時には、バッチの定期的なモニタリングと報告の必要が出てきます。「あ
広く Javaアプリケーションサーバに影響する Javaライブラリの脆弱性の存在が報道、公表されています。本件は多くの問題を内包し、複雑です。本記事では、その影響範囲と問題点を正しく理解するために、情報の整理を行いたいと思います。 ■この脆弱性の概要 この脆弱性は、Java のデシリアル化処理を利用して任意のコードを実行可能、というものです。すでに 2015年1月に行われた AppSecCali 2015の「Marshalling Pickles」と題する発表の中で、セキュリティ研究者の Gabriel Lawrence氏と Christopher Frohoff氏により、PoC(概念実証コード、攻撃コード)が公開されています。この PoC の対象のクラスは「Apache Commons Collections」「Spring」「Groovy」です。 ■この脆弱性の影響範囲と深刻度 そして
現場で使える[最新]Java SE 7/8 速攻入門 著者 櫻庭祐一 著 発売日 2015年11月19日 更新日 2015年11月19日
2015-11-12 追記あり。「SpringとGroovyにも直列化オブジェクト脆弱性」も参照してください。 昨日からJava界隈で話題になっているcommons-collectionsの脆弱性について。 元ネタはこちら。 対応するチケットはこちら。 InvokerTransformerなんてクラスは初めて知りましたが、そりゃこういうことになりますよねぇ…というのが感想です。 影響を受けるシステム InvokerTransformerはcommons-collectionsとcommons-collections4の両方に存在しています。 いずれかのライブラリ(commons-collections.jarまたはcommons-collections4.jar)がクラスパスに存在しているとき、 以下のいずれかの条件を満たしていると攻撃が成立する可能性があります。 直列化したオブジェクトを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く