並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 597件

新着順 人気順

クラスローダーの検索結果1 - 40 件 / 597件

  • ウェブアプリケーション開発に新言語を採用したときにインフラで考えたこと - ゆううきブログ

    この文章は、サーバサイドのウェブアプリケーション開発において、社内実績の少ない新しい言語を採用したときにインフラ面で考慮したことを社内向けにまとめたものです。 はてなでは、長らくPerlでウェブアプリケーション開発を続けてきた一方、ここ数年で社内でScalaまたはGoの採用事例も増えてきました。 今後開発が始まるプロダクトにおいても、Perl、Scala、Goもしくは他の言語を採用するかどうかを開発開始時に選ぶことになるでしょう。 新言語を採用するときに、考慮すべきことの一つとして、「インフラ」への影響があります。 新言語に関する雑談をしていると、ウェブアプリケーションエンジニアに「インフラ」への影響について聞かれます。 もしくは、ウェブオペレーションエンジニアから考慮するポイントを伝えることもあります。 ScalaやGo以外に、Node.jsやサーバサイドSwiftはどうかというのも雑談

      ウェブアプリケーション開発に新言語を採用したときにインフラで考えたこと - ゆううきブログ
    • プログラマー面接時の技術的な質問事項(アプレッソ版) : 小野和俊のブログ

      技術者・SE・プログラマ面接時の技術的な質問事項というエントリをはてブで見かけたのだが、私もjavaプログラマーの面接を割とよくやっているので、よく質問する内容をまとめてみた。 (ちなみに、基本的にコーディング面接の形態を取っている) プロジェクトの性質にもよると思うが、私の場合には、情報処理技術者試験的に基礎が満遍なく抑えられているかどうかよりも、 すぐ答えが見つからないような課題に対して、きちんと自分でやり方を考え、対応することができるか 「変な」コードをコミットしたりしないか(見つけにくいバグを混入させるとか、汚いとか、遅いとか)といった点を重視している。 まず、何を知っているかよりも、どんなものを作れるか、どんなことができるか、という質問。 ここで強烈な回答が来る人は、たいていここより下の質問は「あー、はいはい」という感じでサラッと答えてくることが多い。 これまでに携わってきた開発

        プログラマー面接時の技術的な質問事項(アプレッソ版) : 小野和俊のブログ
      • 連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)

        IBM Related Japanese technical documents - Code Patterns, Learning Path, Tutorials, etc. Please open new issue/pull requests in either English or Japanese if you would have any feedback or you would like to contribute this repo. We provide mainly "Japanese contents" by markdown text. IBM Developerの最新情報は https://developer.ibm.com/ にアクセスし、英語のコンテンツを参照してください。 このリポジトリは、IBM Developer Japan Webサイトで公開していた

          連載: IBM Watson Workspace #鬼わか アプリケーション開発: 第 7 回: IBM Watson Workspace で AI を利用したアプリ連携の実現 #鬼わか 解説(前編)
        • 夏のインターン講義「1営業日で書くJavaScriptコンパイラ」の設計と実装 - クックパッド開発者ブログ

          今年、クックパッドでは夏のインターンと題して20名弱のインターンを受け入れました。 このインターンは前半と後半に大きく分かれており、 後半が社員に混じって業務をするいわゆる普通のインターンで、 前半は7日間にわたってプログラミング関連の講義を受けるという仕組みです。 わたし(青木)はその前半の過程において、「プログラミングパラダイム」という 1 日の講義を担当し、 JavaScriptの処理系を書くという、ツッコミどころの多い課題を実施しました。 本稿では、その講義を開発する際に考慮したこと、特に難易度調整についてお話しします。 また講義のために開発したJavaScript処理系「JetSpider」についても軽くふれます。 ▼講義資料 Cookpad Summer Intern 2015 - Programming Paradigm from Minero Aoki JetSpiderコ

            夏のインターン講義「1営業日で書くJavaScriptコンパイラ」の設計と実装 - クックパッド開発者ブログ
          • 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変態文法最速マスター - プログラマーの脳みそ
            • Androidの機種依存問題を吸収するプロジェクトAndroid-Device-Compatibilityを公開したお話 - mixi engineer blog

              こんにちは。Androidユニットで開発とスクラムマスターをしています、横幕です。すっかり寒くなって、朝起きるのが辛い季節になりました。 先日、Android(TM)の様々な機種に依存する問題を吸収するためのライブラリプロジェクトをmixi, IncのGitHubリポジトリで公開しました。 今回は、このライブラリプロジェクトを公開するに至った経緯をお話しようと思います。 様々な種類の端末に対応するために乗り越えてきた困難 現在、Androidを搭載した端末には、多種多様なものがあります。 そして、OSのバージョンごとの違いだけでなく、同じAndroidを搭載していても、端末ごとに微妙に挙動が異なることがあります。 mixi公式クライアントアプリでも、端末ごとに微妙に挙動が異なることで発生する問題にいくつか直面してきました。 特定の端末で、文字が9,000文字までしか入力できない EditT

                Androidの機種依存問題を吸収するプロジェクトAndroid-Device-Compatibilityを公開したお話 - mixi engineer blog
              • Struts2が危険である理由

                はじめに 2017年3月、Struts2にまたしても新たな脆弱性(S2-045、S2-046)が見つかり、複数のウェブサイトにおいて情報漏洩等の被害が発生しました。筆者は2014年4月(およそ3年前)に「例えば、Strutsを避ける」という記事を書きましたが、今読み返してみると「やや調査不足の状態で書いてしまったな」と感じる点もあります。今回、良いタイミングなのでもう一度Struts2のセキュリティについてざっとまとめてみたいと思います。 なぜJavaなのにリモートからの任意のコード実行(いわゆるRCE)が可能なのか Struts2はJavaアプリケーションであり、Java製のアプリケーションサーバ上で動作します。Javaはいわゆるコンパイル型の言語であるため、通常はランタイムにおいて任意のコードを実行することはできず、RCEは難しいはずです。 JavaのウェブアプリケーションでRCEが成

                  Struts2が危険である理由
                • Javaのクラスとオブジェクトについて再度解説を試みる - 達人プログラマーを目指して

                  オブジェクト指向プログラミングの考え方については、今までこのブログでも何度か取り上げてきました。 [オブジェクト指向] - 達人プログラマーを目指して オブジェクト指向プログラミングはプログラミング技法のすべてではないとはいえ、Javaのようなオブジェクト指向言語で本格的なプログラムを作るには理解を避けて通ることができませんし、また、関数型言語など他のパラダイムの言語を利用するにしても、オブジェクト指向の考え方をまったく理解しないまま使いこなすということは困難でしょう。オブジェクト指向の考え方はデータ構造やアルゴリズムといったことと同様に、プロフェッショナルなプログラマーが理解しておくべき基本的な素養といってもよいと思います。実際、海外では募集要項でオブジェクト指向の理解を前提とすると書かれていることが普通ですし、プログラマーの面接試験で、アルゴリズムと並んでオブジェクト指向プログラミング

                    Javaのクラスとオブジェクトについて再度解説を試みる - 達人プログラマーを目指して
                  • プログラマが知っておきたいJavaと.NETの違い

                    システム開発がますます複雑化していく中、エンジニアには、テクノロジを理解して、さまざまな場面に適した選択が求められます。本連載では、Javaと.NETの基本的な仕組みから最新の傾向や技術などについて、数回に分けて紹介します いまさら聞けない、Javaと.NETの違い 今日、アプリケーション開発・実行のプラットフォームは、大きく2つのテクノロジに収束しているといえるでしょう。 1つは、エンタープライズ・アプリケーション開発の定番ともいえる「Java」です。 実行環境、開発環境の無償提供、OSを自由に選べること、フレームワークや開発環境が充実していることが人気の理由です。大規模アプリケーションの採用実績も多く、ほかのプラットフォームをリードしてきました。 もう1つは、マイクロソフトが発表した「Microsoft.NET」構想に基づいた「.NET」です。 プラットフォームが主にWindowsに制

                      プログラマが知っておきたいJavaと.NETの違い
                    • 例えば、Strutsを避ける

                      はじめに 筆者は10年以上ウェブアプリケーション開発を主な業務とするJavaプログラマであったにも関わらず、Strutsについてはこれまでずっと食わず嫌いでした。初期のStrutsは「XMLだらけで効率が悪そう」というイメージが強かったためです。最近はRuby on Rails等の影響を受けCoC(convention over configuration)を採り入れ、XML地獄もだいぶ解消したようです。 StrutsはJavaアプリケーションらしくない種類(任意のコード実行等)の脆弱性を連発することでも知られており、最近は我々の提供するSaaS型WAFサービス、Scutum(スキュータム)のお客様からも頻繁にStrutsについての問い合わせを受けるようになりました。また、去年見つかった任意のコード実行の脆弱性では、脆弱性の公表後すぐにPoCが出回り実際に攻撃が発生するなど、悪い意味で注目

                        例えば、Strutsを避ける
                      • 2014ブレイク確実!JavaベースのポータブルなWebフレームワーク Dropwizard - yojikのlog

                        最近Dropwizardというフレームワークが海外のJavaおよびJVMベース言語界隈で流行り始めている感しがします。 Thought Works Technology Reader でも Traialに入ってきています。 http://dropwizard.codahale.com/ このフレームワークはYammerのバックエンドWebサービスを提供するために作られたフレームワークで、アプリケーション開発者からみると、 JaxRSベースのREST提供フレームワーク ORM Jettyベースの組み込みWebサーバ Metricsを収集するためのライブラリ、管理ツール等 といった機能があります。 ここらへんまでは普通のフレームワークと基本的には違いが無く、むしろWebサービスに特化しているため物足りなく感じるのですが、特筆すべきは、このフレームワークが推奨するデプロイ・運用方法にあります。

                          2014ブレイク確実!JavaベースのポータブルなWebフレームワーク Dropwizard - yojikのlog
                        • Javaで「はじめてのプログラミング」を教えるのはキツイと思った話 - GoTheDistance

                          2017年4月から人生初めての新人研修講師を務めさせて頂くことになりました。プログラミング入門がテーマです。 先方は昨年までJavaでカリキュラムを組んでいたんですが、JavaをやめてPythonでやらせてもらえないかと提案し快諾頂きました。プログラミングの入門書を書いたから特に感じることなんですけど、Javaはプログラミングの初学者に向いていない言語だと思います。 クラスありきの言語設計 それがJavaの良いところでもあると思いますが、プログラミング自体が初めての方を対象に考えた場合、はじめの一歩として不適切だと感じます。 Hello Worldが重たすぎる お馴染みのHello Worldです。初めてのプログラミングで以下のコードを見たら、何のことやら分からないでしょう。 public class Test { public static void main(String[] args

                            Javaで「はじめてのプログラミング」を教えるのはキツイと思った話 - GoTheDistance
                          • Java8のHotSpotVMからPermanent領域が消えた理由とその影響 | ギークを目指して

                            今回も前回の記事につづき、Java8による変更点で未だあまり紹介されていないポイントを記事にしようと思う。 今回はJava8のHotSpotVMの話。Java8ではJEP122が取り込まれ、VMのメモリモデルが変更された。JEP122のタイトル「Remove the Permanent Generation」から想像できるとおり、Java8のHotSpotVMからは従来のPermanent領域が無くなった。 なぜ、こういった変更が行われたのだろうか?また、元々Permanent領域に格納されていた情報は何処にいってしまったのか?JVM付属のツールにどういった影響があるのか? 今回の記事ではこの点をまとめていこうと思う。 なお、HotSpotVMのメモリモデルについて詳しくない方は、先にこちらの項番(「補足 – HotSpotVMのメモリ構造概説)を読んでいただくとスムーズに読み進められるだ

                              Java8のHotSpotVMからPermanent領域が消えた理由とその影響 | ギークを目指して
                            • 自己流オブジェクト指向プログラミング&Javaお奨め本2007年版 - カレーなる辛口Javaな転職日記

                              http://d.hatena.ne.jp/JavaBlack/20050909/p1の改訂.*1基本的に改訂版への差し替えと一部の新刊の追加程度になっている. お奨めのJava&オブジェクト指向プログラミング関連の書籍/参考文献リスト.初心者向け入門書や参考書から上級者向けの専門書まで,オブジェクト指向だとかJava言語とかの初心者〜中級者が学習をすすめる上での参考にすることを想定して作っている. 初心者向け勉強の手引き:http://d.hatena.ne.jp/JavaBlack/20070825/p1 オブジェクト指向プログラミング とりあえず初心者なら「オブジェクト指向プログラミング入門」「オブジェクト指向における再利用のためのデザインパターン」と,あと「リファクタリング―プログラムの体質改善テクニック (Object Technology Series)」くらいかな.ただしリフ

                                自己流オブジェクト指向プログラミング&Javaお奨め本2007年版 - カレーなる辛口Javaな転職日記
                              • 内部から見たVert.xとNode.jsとの比較 - uehaj's blog

                                socket.ioがJavaやGrailsから扱えるかを調べている関係でvert.xを調べていて興味深かったので、こちらにあるVert.xの記事を翻訳してみました。JGGUG G*Workshopにおける杉浦さんのVert.x資料もお奨めです。 Vert.xは急速に発達つつあるサーバ・フレームワークです。 世にあまたあるサーバ・フレームワークのいずれもが、多様なプロトコルをサポートし、高速であることが特長であると主張していますが、Vert.xはそれらよりも一歩抜きん出ています。例えば、Vert.xは、サーバサイドのネットワーク環境の確立と操作も対象としています。言いかえれば、Vert.xは、単一サーバ上のデーモン実行だけでなく、クラスタリング環境での複数サーバデーモンの実行を考慮しているのです。 したがって、Vert.xを調査するにあたっては、どのように高性能を実現しているかだけではなく、

                                  内部から見たVert.xとNode.jsとの比較 - uehaj's blog
                                • Java のクラスアンロード (Class Unloading)

                                  作成日:2004.05.18 更新日:2005.06.21 今後、随時書き足して行きます。多分。 はじめに Java は動的にクラスのロードとアンロードが行われる仕組みになっている。 クラスはクラスファイルの形でディスク上やネットワークに配置され、プログラム中でそれらが本当に必要になった段階で JavaVM 上に読み込まれる。 またクラスはその使用が終わった段階でガーベージコレクターによって動的に回収され JavaVM からアンロードされる。 Servlet / J2EE サーバーなどはこの性質を利用して運用中にプログラムの一部を入れ替えるホットスワップ (Hot Swap) を実現している。 だがこの仕組みを実装するには少し工夫がいる。 この文書ではクラスのアンロードを実現するやり方について述べる。 1. クラスのロードとアンロードの基本的な仕組み クラスローダー Java VM がクラ

                                  • 【祝】:Java SE 7 正式リリース

                                    【祝】:Java SE 7 正式リリース 2011年7月29日 at 2:00 午前 3件のコメント 本日(2011年07月28日(日本時間29日 日本でもぎりぎり28日だったようです。))Java SE 7 が正式にリリースされました。5年ぶりのリリースとなる Java SE 7 ですが、Java SE 7 は進化として位置づけられているバージョンになります。ここで言う進化とは言語仕様に対する大幅な変更はなく、開発生産性の向上やライブラリのアップデート等が多く、今まで Java SE 5, 6 等で開発をしてきて頂いた Java 開発者は比較的かんてたんに移行が可能になっています。Project Coin, NIO.2 等により可読性、開発生産性が向上した最新の Java SE を入手頂き是非開発現場でご使用ください。 サポート環境はこちら Java SE 7に関するドキュメント チュー

                                      【祝】:Java SE 7 正式リリース
                                    • ビジネスとオープンソースの狭間で 〜 Embulk の場合 (前編)

                                      2023 年はビジネスとオープンソースの関係が難しくなった年であったように思います。 6 月には、フルタイムの Ruby コミッターとして研究開発を行っていたお二人がクックパッド社の人員削減の影響を受けたことに端を発して、オープンソースに深く関わってきた一部のソフトウェア・エンジニアを中心に、ビジネスとオープンソースの関係について議論がありました。 8 月には HashiCorp 社が自社のオープンソース製品群のライセンスを Business Source License 1.1 (BSL) に変更したことも話題になりました。 また 2023 年は、一年を通して大規模言語モデル (Large Language Models; LLM) が話題になった年でもあり、ビジネスにも大きな影響がありました。 大規模言語モデルとオープンソースの関係に焦点を絞っても、「非オープンソースのライセンスで公開

                                        ビジネスとオープンソースの狭間で 〜 Embulk の場合 (前編)
                                      • プログラマー面接時の技術的な質問事項(アプレッソ版) - 解答編 : 小野和俊のブログ

                                        昨日、プログラマー面接時の技術的な質問事項(アプレッソ版)を書いたところ、「自分ならこう答える」というエントリを書いてくれた人が何人かいて、個別にコメントしようかとも思ったのだが、昨日のエントリだけだと質問の投げっぱなしになってしまうところもあるので、解答編を書くことにした。 なお、「面接の質問項目を公表しちゃっていいの?」という指摘もあったが、ブログに書いたのはあくまでも質問項目の一例だし、解法を検討する過程を見れば普段どんな風に開発しているのかはだいたいわかるので、特に問題ない。 for (int i = 0; i < list.getLength(); i++) {}の潜在的パフォーマンスボトルネック list.getLength()がlist.getLength()回評価されてしまう。具体例としては、JREに標準で付属するDOMのライブラリのNodeListの実装はlist.get

                                          プログラマー面接時の技術的な質問事項(アプレッソ版) - 解答編 : 小野和俊のブログ
                                        • Tomcat7 でゼロダウンタイムデプロイ - mallowlabsの備忘録

                                          「Web アプリのバージョンアップ時に Tomcat を再起動してもいいのは小学生までだよねー」 ということで、Tomcat でダウンタイム無しで Web アプリのバージョンアップをする方法についてまとめてみる。 Parallel Deployment Tomcat 7 から Parallel Deployment という機能が追加され、同一 Web アプリの複数バージョンを同時にデプロイができるようになった。 war のファイル名を somewebapp##001.war 等にしておくことで、 - $CATALINA_BASE/ - webapps/ - somewebapp##001.war - somewebapp##002.warのように配備をすると、 http://localhost:8080/somewebapp/ でアクセスした場合に、セッションが継続している場合には古い方(

                                          • 技術者が知っておきたいTomcat 7の新機能20連発

                                            ■ リクエスト処理のアーキテクチャ Tomcat 4時代から採用されているリクエスト処理のCatalinaアーキテクチャは変更なしで、そのまま採用しています。Tomcatが受け付けたリクエストは、リクエスト処理パイプラインによってServletまで到達し処理されます。 ■ クラスタリング(セッションレプリケーション) 若干のインターフェイスの改良はありますが、基本的には同じ仕様です。 「All-to-All」「primary-secondary」の2つのレプリケーション方式が利用可能となっています。 ■ DBコネクションプール 今までどおりApache Commons DBCPを使用し、バージョンはDBCP 1.4系(JDBC 4用)を採用しています。Tomcat独自のjdbc-poolを利用する場合は別途ビルドが必要です。jdbc-poolは近いうちに同梱されるかもしれません。 では、T

                                              技術者が知っておきたいTomcat 7の新機能20連発
                                            • 達人プログラマーを目指して

                                              本日、日本Javaユーザーグループ(JJUG)主催のCCC 2014 SpringというJavaの勉強会に行ってきました。会場は、ベルサール西新宿で、都営大江戸線都庁前のA5出口を出て、新宿中央公園の5分くらい歩いたところにありました。今はスマートフォンで地図を確認しながら行けるので、初めての場所でも方向音痴の私でも電車の駅さえ間違わなければ大丈夫ですね。 CCCというのはCross Community Conferenceの略で、さまざまなコミュニティーの交流の場となる会議という趣旨でしょうか?このCCCというイベントは2012から開催されているようなのですが(CCC | 日本Javaユーザーグループ)、今回初めて参加させていただきました。残念ながら個人的な都合から、基調講演と午後の前半のセッションのみで後半と懇親会には参加できませんでしたが、参加したセッションについてまとめます。その他

                                                達人プログラマーを目指して
                                              • なぜ Play は Servlet を使っていないのか(Why there is no servlets in Play 翻訳) - ikeike443のブログ

                                                まだ正月休みなのです。暇なので訳してみました。 この記事は 1年半以上前に Play の生みの親である Guillaume Bort がブログに書いたものです。 (2012/8/19追記: リンク切れしていたためリンクを貼り直しました) なぜ Playframework では Servlet が一切使われていないのかについて、簡潔に書いています。 丸山先生が Play に注目し始めた今、Play2.0 のリリースが間近に迫った今、あらためて読むと面白いかも知れません。 なぜ Play は Servlet を使っていないのか Servlet API に準拠せずに Java web フレームワークを作ることはかなり変に思えるかも知れない。大抵の人はなぜこんな普通じゃない選択をしたのかを聞いてくる。気に入ってくれる人も何人かいるが、大半は毛嫌いする。正直に言うと、 Play フレームワークの一番

                                                  なぜ Play は Servlet を使っていないのか(Why there is no servlets in Play 翻訳) - ikeike443のブログ
                                                • 第1回 Progression3に触れてみよう | gihyo.jp

                                                  はじめまして、Progressionを利用してFlashコンテンツの制作を行っている楢山と申します。このたび、Progression3のプロダクトマネージャーである阿部貴弘さんより本稿執筆のお話をいただき、本特集を執筆させていただくことになりました。このような機会を提供してくださった阿部さんに深く感謝いたします。 また、このような形で記事を執筆させていただくのは初めてですので、至らない点もあるかと思いますが、よろしくお願いいたします。 さて第1回の今回は、Progressionの概要と開発環境設定についてを説明していきます。 Progressionとは? Progressionを一言で表現するならば、「⁠Flashコンテンツを制作するためのフレームワーク」です[1]⁠。Progressionで提供されている様々な機能を使用することで、場面の切り替えや、ムービークリップの出現・削除、外部ファ

                                                    第1回 Progression3に触れてみよう | gihyo.jp
                                                  • Javaのジェネリクスで,T.class や new T() ができず悩んだ話 (型パラメータのインスタンス化に関し、フレームワーク設計からケーススタディ) - 主に言語とシステム開発に関して

                                                    Javaのジェネリクスで,型パラメータ T のインスタンスが欲しくなったことはあるだろうか? 昨今のオブジェクト指向プログラミングにおいて,ジェネリクスは必須の基本文法だ。 扱う対象のクラスが抽象化されて汎用的になりつつ,なおかつ型安全性が確保される。 そのおかげで,処理の重複や分岐をコーディングする必要が無くなり,コード量が驚異的に削減される。 そういう基本的な原則を踏まえると, 「型パラメータのインスタンスが欲しい」 というシチュエーションは,Javaのジェネリクスの本来の導入目的に真っ向から逆らう。 なぜなら,ジェネリクスは型を抽象化して透過的に扱えるようにするための機構なのだから, せっかく抽象化した物をわざわざ具体化してどうするというお怒りを生む事になるのだ。 頑張って詳細なクラス情報を「T」でパラメータ化して具体性を隠ぺいしたにも関らず, その T に対して .class で具

                                                      Javaのジェネリクスで,T.class や new T() ができず悩んだ話 (型パラメータのインスタンス化に関し、フレームワーク設計からケーススタディ) - 主に言語とシステム開発に関して
                                                    • Java Programming Tipsクラスローダーを自作する方法

                                                      【概要】 クラスローダーを自作する方法の紹介。クラスローダーの自作が有効なケースとして代表的なものは次の通り。 ・同一 FQN で異なるクラスを扱いたい(複数バージョンのライブラリを同一 JVM 上で取り扱いたいときなど) ・クラスの定義を Jar ファイルからの読み込み / HTTP からのクラス定義のロードなどの標準的な方法ではなく、独自の方法で動的にロードできるようにしたい。 【キーワード】 クラスローダー、ClassLoader、自作、つくり方 1. DirectoryClassLoader の作成 今回はクラスローダー作成のはじめの一歩として、極めてシンプルで原始的、かつ不完全なクラスローダーを作成する。具体的には指定されたディレクトリに格納されているクラスファイルを動的にロードするだけの DirectoryClassLoader を作成する。 import java.io.Bu

                                                        Java Programming Tipsクラスローダーを自作する方法
                                                      • James君!

                                                        ふう、久々の新ページである。いろいろと仕事しだしていて、ホントはいろいろと新しい知識とか仕入れているんだが、このホームページで公開するとなると、やっぱり筆者はウルサイのだ... まあ、そういうわけで新ネタは James ということにした。何で James か、というとこれにはいくつか理由もあるわけだ。 それなりに有能なフレームワークだ。 けどマニュアルがいい加減過ぎるぞ。 MTAなんで、他のMTA(sendmail,postfix,qmail)との協調動作はどうすれば?? こいつのベースになっている Avalon(Phoenix) が謎だ... というわけで、筆者の他のページと同様に、深く追求していく。それこそ「いい加減なサーバを Phoenix で書いてみる」なんてことまでやってみるので、ハッカーは期待するように。 James 編基礎 単純に起動してみる 他のMTAと協調するには? Fe

                                                        • 「わかる!JavaVM ― 2時間でわかる?JavaVM入門」に行ってきた - 永遠に未完成

                                                          わかる!JavaVM ― 2時間でわかる?JavaVM入門 : ATND Java の処理系は以前趣味ですこーしだけかじった程度の私が参加してきました。 例によってメモとか取ってないので記憶の断片から感想をば。 クラスローダーについて - @ashigeru 発表資料: http://www.slideshare.net/ashigeru/classloader クラスローダーの移譲モデルとかそういう話。 クラスローダーについてはよく知らなかったので、とても勉強になりました。 Stack on JavaVM - @skrb 発表資料: http://www.javainthebox.net/publication/20100806JVMseminar/stackmachine.html Java in the Box の人。やけに余談が多くておもしろかった。あとスタック操作時の効果音いい。

                                                            「わかる!JavaVM ― 2時間でわかる?JavaVM入門」に行ってきた - 永遠に未完成
                                                          • Javaライブラリを配布する際のログ周りにおける配慮と実践 - Kengo's blog

                                                            2020-07-22更新: 以下の投稿で情報をアップデートしています。 https://blog.kengo-toda.jp/entry/2020/07/21/223136 いつも購読させていただいている id:teppeis さんのブックマークに以下のエントリが流れてきて、なるほどこいつはたしかに厄介だと思いました。 javaのロガーが多すぎて訳が解らないので整理してみました - 文系プログラマによるTIPSブログ ただSLF4Jが最も先進的かつ著名なインタフェースである以上、配布側としてはSLF4Jを使いつつ問題を解決したいところです。他のインタフェースを使ったりオレオレ実装を使ったりしてしまうと、それこそユーザの自由度を奪ってしまう形になります。 実際、SLF4Jを配布パッケージに含めないという簡単な解決法がありますので、簡単に紹介します。悲劇を繰り返さないためにライブラリ開発者がす

                                                              Javaライブラリを配布する際のログ周りにおける配慮と実践 - Kengo's blog
                                                            • ふわっと JVM のヒープ領域監視について考える - ようへいの日々精進XP

                                                              ども、かっぱです。 はじめに Java アプリケーションを運用する上では避けて通れないであろうヒープ領域の監視についてフワッと考えてみた JVM には幾つか領域があるがヒープ領域に焦点を当てる 参考 http://www.whitemark.co.jp/tec/java/javaHeap.html http://www.whitemark.co.jp/tec/java/javagc.html http://d.hatena.ne.jp/ogin_s57/20120623/1340463194 http://d.hatena.ne.jp/ogin_s57/20120709/1341836704 https://docs.oracle.com/javase/jp/1.5.0/guide/management/agent.html http://chonaso.hatenablog.com/en

                                                                ふわっと JVM のヒープ領域監視について考える - ようへいの日々精進XP
                                                              • FindBugsのバグパターン一覧 - たかのり日記

                                                                Javaに対する静的解析ツールには、以下のようなものがあります。 FindBugs PMD Jlint Lint4j Jtest(有償) 近頃の動向を見ていると、OSSのツールでは、FindBugsがデファクトスタンダードになりつつあるように思います。FindBugsは、2007/11/08にリリースされた1.3.0以降、1〜2ヶ月に一度の頻度でリリースされており、チェックルールも充実してきています。最近、FindBugsのチェックルールを調べる機会があったので、どんなルールがあるのかをまとめてみました。 FindBugsが検出するバグパターンは、次のような括り方となります。 バグカテゴリ > バグコード > バグタイプ 左側がより大きい括りになっており、バグタイプが1つの検出ルールに対応付きます。 FindBugsは、1.3.4時点で、8個のカテゴリと354個のチェックルールから成り立ち

                                                                  FindBugsのバグパターン一覧 - たかのり日記
                                                                • MySQL Connector/J (JDBC ドライバ)の罠まとめ - ~saiya/hatenablog

                                                                  MySQL JDBC ドライバ(MySQL Connector/J)、Java で MySQL といえばまずコレだが、これまた地味に罠が多い(そして多くの人が踏んで苦しむ)のでまとめてみた。 (2015/03/19) こちら のコメント欄でご指摘ただいた wait_timeout の件について記事修正いたしました。 Summary 以下、いずれもプログラム設計時に理解しておかないと、開発中は大丈夫そうでも実用した途端に苦しまされれてしかも設計から治す羽目になる要注意な罠である: SELECT 結果は全部メモリに載ってしまう (デフォルト設定で) 大量 SELECT する場合は FetchSize, ResultSetType を要設定 利用時には制約があるので、設計段階から考慮しなければならない (後述) idle 時間の「合計で」コネクションが切られる 前回のクエリ処理から一定時間以上経

                                                                    MySQL Connector/J (JDBC ドライバ)の罠まとめ - ~saiya/hatenablog
                                                                  • Fluentdのバッチ版Embulk(エンバルク)のまとめ - Qiita

                                                                    Embulk(エンバルク) (2016/10/05からロゴが変わりました。変更理由) Embulkのまとめ2ndを作ってます。 Embulk v0.11 でなにが変わるのか: ユーザーの皆様へ をご一読ください。 更新時にコメントを書くようにしました。変更内容に興味のある方は編集履歴をご覧ください。 2018年1月30日リリースのembulk 0.9からgemは提供されなくなりました。gem版は0.8.39までとなっています 種類 バージョン ロゴの下のバージョンは開発版の最新バージョンを表しています。一般の方は0.9系を利用しましょう 2015年1月27日、Fluentdのメインコミッターの一人古橋さんが中心となって開発した、fluentdのバッチ版のようなツールEmbulk(エンバルク)がリリースされました。 この記事は、Embulkってなに?、どんなプラグインがあるの?、どうやって独

                                                                      Fluentdのバッチ版Embulk(エンバルク)のまとめ - Qiita
                                                                    • LL言語でのhot deployとJavaでのhot deploy - wyukawa's diary

                                                                      JVM Operation Casual Talksで出てた話としてJavaでhot deployってどうしてんの?ってのがありました。 hot deployっていうのはアプリケーションコードを変更してもAPサーバーを再起動せずに反映する技術です。 この辺別に僕は全然知らないし答えを持っているわけではないですが、まあちょっと興味があったのでLL言語でのhot deployとJavaでhot deployを簡単に調べたのでメモっときます。 コードを変更してAPサーバーを再起動する場合、APサーバーが止まっているときにアクセスが行くと困るので、ロードバランサから外してAPサーバーを再起動してまた戻すみたいなことをやるのがオーソドックスな方法のようですが、hot deployだとそういったことをやる必要が無くなります。 Server::Starterから学ぶhot deployの仕組み - $s

                                                                        LL言語でのhot deployとJavaでのhot deploy - wyukawa's diary
                                                                      • EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して

                                                                        十年一昔といいますが、文字通り一昔前の書籍ではJ2EEのEJBコンポーネントはプロセスが分散化されたリモート呼び出しにより処理を行う分散コンポーネントとして説明されています。そして、残念ながら現状Java EE関連の日本語の書籍はこうした古い時代に書かれたものがほとんどとなっています。それゆえ、 開発効率がきわめて悪い 実行性能が悪い*1 仕様がきわめて複雑で理解が大変 といった悪いイメージが定着してしまっているのではないかと思います。しかしながら、最新バージョンのJava EE6では、Spring、Guice、SeamなどのOSSの軽量コンテナのアイデアを取り込むことにより、以前とは比較にならないくらい開発効率が改善されているという事実があります。 ここでは、Hello WorldのEJBの書き方を以前の古いバージョンから順次振り返りながら比較してみることで、EJBのプログラミングモデル

                                                                          EJBコンテナが分散コンポーネントモデルから軽量なDIコンテナに変化してきた歴史を振り返る - 達人プログラマーを目指して
                                                                        • リクルート全社検索基盤のアーキテクチャ、採用技術、開発体制はどうなっているのか

                                                                          リクルート全社検索基盤のアーキテクチャ、採用技術、開発体制はどうなっているのか:Elasticsearch+Hadoopベースの大規模検索基盤大解剖(1)(1/2 ページ) リクルートの事例を基に、大規模BtoCサービスに求められる検索基盤はどう構築されるものなのか、どんな技術が採用されているのか、運用はどうなっているのかなどについて解説する連載。初回は全体的なアーキテクチャ、採用技術、開発体制について。 連載目次 大規模BtoCサービスで求められる検索基盤は、どうあるべきなのか カスタマー(消費者)が求めるものが日々変わっていく現在において、BtoCの検索基盤はどうあるべきなのでしょうか。 例えば、リクルートで使われている検索基盤の「Qass(Query analyze search system)」は単に全文検索機能を提供するのではなく、以下を軸としています。 サービスごとに最適化され

                                                                            リクルート全社検索基盤のアーキテクチャ、採用技術、開発体制はどうなっているのか
                                                                          • Strutsの脆弱性CVE-2014-0094について改めてまとめてみた - piyolog

                                                                            Struts2においてクラスローダーの操作を許してしまう脆弱性(CVE-2014-0094)について先日調べたのですが、その後のセキュリティベンダの調査により当初に比べて影響範囲が変わってきていることから、再度整理をかねてまとめます。尚、これら情報はpiyokangoが全て検証したわけではないためご注意ください。また当然ながら悪用することは厳禁です。 Apache Software Foundationより、当該脆弱性情報に関するアナウンスが出ました。 24 April 2014 - Struts up to 2.3.16.1: Zero-Day Exploit Mitigation S2-021 クラスローダーが操作される脆弱性の影響範囲 NTT-CERTやMBSD、LACの調査により次のStrutsのバージョンが影響を受けることが判明しています。またBeanUtilsを使ってリクエスト

                                                                              Strutsの脆弱性CVE-2014-0094について改めてまとめてみた - piyolog
                                                                            • ibmURL(変更不可)

                                                                              IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

                                                                                ibmURL(変更不可)
                                                                              • Androidの仮想マシン Dalvik編

                                                                                本書はDalvik仮想マシンの内部についての解説書です。Dalvik仮想マシンの仕様、概念、実装などの深部を知りたい人のための本です。 内容紹介本書はDalvik仮想マシンの内部についての解説書です。Dalvik仮想マシンの仕様、概念、実装などの深部を知りたい人のための本です。Android LからDalvikからARTへ仮想マシンの変更が予定されていますが、ARTの技術はDalvikの仕様、技術などを引き継いでいます。Dalvikを知りたい人だけでなく、ARTを理解するのに足がかりにするのにも最適な本になっています。 書誌情報 著者: 松永卓也 発行日: 2014-07-30 最終更新日: 2015-04-03 バージョン: 1.0.0 ページ数: 387ページ(PDF版換算) 対応フォーマット: PDF, EPUB 出版社: 達人出版会 対象読者 Dalvik仮想マシンの内部に興味のあ

                                                                                  Androidの仮想マシン Dalvik編
                                                                                • オブジェクト指向分析/設計概論

                                                                                  1 はじめに Javaプログラミングを行っていくうえで、大きな関門となるのはオブジェクト指向分析/設計でしょう。「クラスとオブジェクトの違いは」といった初歩的なものから、「再利用性を高めるためのフレームワークとコンポーネントの責任の配分の度合」といった高度なものまで、Javaプログラミングの要諦(ようてい)はオブジェクト指向分析/設計との関係の中にあるに違いありません。 Javaプログラマという立場からオブジェクト指向分析/設計を取り巻く状況を整理してみるのが本稿の目的です。 業界標準のオブジェクト指向モデリング言語であるUMLと、代表的なオブジェクト指向分析/設計プロセスであるユニファイドプロセス、そして最近発展が著しいパターン技術をベースにJavaプログラマに取ってのオブジェクト指向分析・設計の枠組みを総括してみました。 2 オブジェクト指向とは何か オブジェクト指向といえばクラスやイ