タグ

javaとprogrammingに関するuchoのブックマーク (12)

  • セキュアなソフトウエア開発を支援する資料 | JPCERT コーディネーションセンター

    Java セキュアコーディング 並行処理編」 「Java セキュアコーディング 並行処理編」(原著 CERT/CC「Java Concurrency Guidelines」)は、カーネギーメロン大学ソフトウエア工学研究所の CERTプログラムと Oracle の共同作業の成果である「CERT Oracle Secure Coding Standard for Java」の中から、次のカテゴリに含まれる並行処理プログラミングに関連したガイドラインをまとめた資料です。 可視性とアトミック性(VNA) ロック(LCK) スレッドAPI(THI) スレッドプール(TPS) スレッドの安全性に関する雑則(TSM) セキュアな Java マルチスレッドプログラミングに取り組む際の手引きとしてご活用ください。 資料に記述されたガイドラインを含む「CERT Oracle Secure Coding S

    セキュアなソフトウエア開発を支援する資料 | JPCERT コーディネーションセンター
  • 一意番号採番 - asa nisi masa

    一意番号を採番したい。なお、採番処理はミリ秒より短い間隔で呼ばれる。DBは使わないため、sequenceは使えない。できれば、一意であるだけでなく、採番された番号の大小が逆転しないほうがよい。採番結果はユーザに見せるかもしれない。 いくつかブレストしてみた。 結論 方法1-(1) と方法2のMIX。 まず、スレッドID+ナノ秒でお手軽に採番(方法1-(1))し、重複した場合は、採番しなおす。(方法2) ソースの雰囲気 public class Hoge{ private String saiban(){ return Thread.currentThread().getId() + "" + System.nanoTime() + ""; } public void regist(){ MyObject obj = new MyObject(saiban()); boolean ok =

    一意番号採番 - asa nisi masa
  • HTTPサーバにJava NIOは必要か

    0x00. はじめに 筆者はJava製のWAF(Web Application Firewall)、Guardian@JUMPERZ.NETの開発とメンテナンスを行っている。元は自社のシステムを守るために(そして半分趣味で)作ったものだが、数年前にこれをコアのエンジンとしてさらに拡張し、SaaS型の商用サービス「Scutum(スキュータム)」を立ち上げた。 その後順調に顧客を獲得することができ、システムリソース的にも増強が必要となる段階などを経験した。Google、mixiやはてな等、さまざまな大規模サイトのインフラエンジニアの方々がインフラ設計に関する考え方などをインターネット上で公開してくれているおかげで、初期のシステム設計時に「将来的にスケールアウト可能なシステム構成にしておくこと」が重要であるということがわかっていた。その教えに従っていたおかげで、リソースの逼迫(ちなみに今回はCP

    HTTPサーバにJava NIOは必要か
  • Javaバイトコード入門

    PPLサマースクール2016「商用Java処理系の研究開発」のパート2です. http://ppl.jssst.or.jp/index.php?ss2016 Java言語処理系の実装について詳説する.まずJava仮想マシンの概要について述べ,その主要な構成要素として,クラス管理とインタープリタ,ヒープ管理とガベージコレクション,スレッド管理と同期機構,JITコンパイラとの連携,などについて説明する.性能改善のために行った各種手法についても触れる. 他のパート 1 Javaの登場と発展 http://www.slideshare.net/Tamiya_Onodera/java-66081108 2 Java仮想マシンの実装技術 http://www.slideshare.net/KiyokuniKawachiya/java-66003903 3 Java Just-In-Timeコンパイラの

    Javaバイトコード入門
    ucho
    ucho 2010/08/13
    みずしまくん!
  • Java変態文法最速マスター - プログラマーの脳みそ

    Java基礎文法最速マスター - いろいろ解析日記をリスペクト。 Javaの変態文法・技法一覧です。Javaの基礎をある程度知っている人はこれを読めばJavaの変態をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 エンクロージング型内部classの作成 外部classのインスタンスに紐付くインスタンスを生成します。外部クラスのインスタンス - 内部クラスのインスタンス間に、クラス - インスタンスのような関係を持たせることができます。 public class Outer { public class Inner { } } というようなクラスを作った場合、 Outer o = new Outer(); Inner i = o.new Inner(); となります。new

    Java変態文法最速マスター - プログラマーの脳みそ
  • 5年後に後悔しないJavaプログラムの書き方 - L'eclat des jours(2009-07-02)

    _ 5年後に後悔しないJavaプログラムの書き方 ここ数日、死ぬほど後悔しまくっているので、あらためて(というのは、数年前にも一度後悔しまくって、そのときの知見はあらかた処方箋とかコーディングの掟に書いているからだが)後悔しないための書き方をいくつか紹介する。 とにかく、ファクトリメソッドパターンを使うこと。 これは当に重要。しかも簡単でありながら効果は絶大。 だめな例。 public class FooBar { private Connection conn; ... protected void setup() { ... conn = DriverManager.getConnection(url); ... } urlを指定することや、DriverManagerの実装を交換すれば良いだろうと想定していても(というか、Connectionならそういう方法もあり得るが、そうはいかな

  • 八割の動詞 - Backnumbers: Steps to Phantasien

    PC は忙しい時ほど壊れる. 先週は職場の PC にこの経験則が降りかかった. 頻繁にフリーズしはじめる VisualStudio 2008. VS 単体での修復では問題が直らず困り果て, 結局 OS から入れ直す羽目に. まあディスクが故障しなかっただけ幸いだと思おう... OS の入れ直しは生活習慣を見直し悪習を捨てる機会でもある. 私の Windows 生活で最大の悪習は cygwin だ. ホスト OS への敬意を欠く cygwin には以前から後ろめたさを感じていたが, 惰性でずるずると使い続けていた. 今回のトラブルは良き市民たれという神(シアトル在住)の思し召しかもしれない. 啓示に耳を傾け, しばらく cygwin なしでがんばってみたい. PowerShell cygwin を捨てるということはシェルを乗り換えるということだ. いま Windows 民の間でホットなシェル

    ucho
    ucho 2009/03/20
    メソッド名の先頭に使われる動詞についての分析
  • GoogleのMapReduceアルゴリズムをJavaで理解する

    GoogleMapReduceアルゴリズムをJavaで理解する:いま再注目の分散処理技術(前編)(1/2 ページ) 最近注目を浴びている分散処理技術MapReduce」の利点をサンプルからアルゴリズムレベルで理解し、昔からあるJava関連の分散処理技術を見直す特集企画(編集部) いま注目の大規模分散処理アルゴリズム 最近、大規模分散処理が注目を浴びています。特に、「MapReduce」というアルゴリズムについて目にすることが多くなりました。Googleの膨大なサーバ処理で使われているということで、ここ数年の分散処理技術の中では特に注目を浴びているようです(参考「見えるグーグル、見えないグーグル」)。MapReduceアルゴリズムを使う利点とは、いったい何なのでしょうか。なぜ、いま注目を浴びているのでしょうか。 その詳細は「MapReduce : Simplified Data Proc

    GoogleのMapReduceアルゴリズムをJavaで理解する
  • Java におけるコード進化パターン (Code Evolution Patterns in Java)

    Java におけるコード進化パターン (Code Evolution Patterns in Java) asato shimotaki <asatohan at gmail.com> 最終更新日 : 2009/6/21 (2004/4/22 より) [...] For twenty years, I spent two or three hours a day looking at pairs of things -- buildings, tiles, stones, windows, carpets, figures, carvings of flowers, paths, seats, funiture, streets, paintings, fountains, doorways, arches, friezes -- comparing them, and asking my

  • Pro Java 6 3D Game Development

    Pro Java 6 3D Game Development (PJ3D) explains how to program 3D games in Java on a PC, with an emphasis on the construction of 3D landscapes. I assume you have a reasonable knowledge of Java, the sort of thing picked up in a first Java course at school. I've split the topics into three sections: Java 3D non-standard input devices for game playing JOGL Java 3D is a high-level 3D graphics API, and

  • JavaとLLをマッシュアップせよ from 丸レク (arclamp.jp アークランプ)

    arclamp.jp アークランプ ITアーキテクトが、ビジネス書とかデザインとか建築とかからシステム開発を妄想するブログ 追記2:Groovyのサンプルをまたもや修正。矢野さんにコメントいただいたとおりです。 追記1:Groovyのサンプルにウソがありました。ごめんなさい。eachやinjectはListの拡張なので、[1..5]のRangeでは使えません。eachするとRangeそのものが取れちゃいます。ちゃんと試さずに書いちゃいました。ちなみにデモは[1,2,3,4,5]とやってのでうまくいきました。 ブログもアップできず当に情けない…。さて、昨日の第2回丸山先生レクチャーシリーズ で「混ぜるな危険!? JavaとLLをマッシュアップせよ」というタイトルで講演させていただきました。資料はこちらからダウンロードできます。 Java業界でもJSR223を機会にLLに対する取り組みが盛り

  • Collection & Copy - RubyについてJavaプログラマが知るべき10の事柄

    翻訳原文:10 Things Every Java Programmer Should Know About RubyJim Weirichコンサルタント / Compuwarejim@weirichhouse.org Copyright 2005 by Jim Weirich (All Rights Reserved)自己紹介ジム・ワイリック (Jim Weirich)Compuware社コンサルタントJavaのプログラマRubyの熱狂的支持者大事なことを、まず先に私は以前、大規模製造会社の従業員に就業後のC言語コースを教えていました。提出されたCのコードのスタイルをちょっと見ただけで、生徒が以前にどんな言語を利用していたかを簡単に当てられました。全くもって当のことです。「どの言語でも、君はFORTRANを書けるね」 Rubyを調査中のJavaプログラマなら、Rubyが色々な点でJav

  • 1