ハリイカの焼売と中華炒め ハリイカをよく、見かけるようになりましたよ。生け簀で、泳いでいたものを一杯購入しました 立派な大きな墨袋や肝は冷凍保存して 柔らかな身は季節のお豆、お野菜と合わせて中華の炒めものに。新鮮なにんにくの茎は刻み、香り高く食欲そそられますね 下足はミンチにし…
![はてなブログ | 無料ブログを作成しよう](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)
以前、属性値でのXXE(Xml eXternal Entity)攻撃を試したのですが、やり方がよく判りませんでした。 最近また試してみて、属性値での攻撃方法が判ったので日記に書いてみます。 Servletプログラム 以下のようなJava Servletプログラムをサーバに置きます。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import org.w3c.dom.*; import org.apache.xerces.parsers.*; import org.xml.sax.*; public class AttrTest1 extends HttpServlet { public void service(HttpServletRequest request, HttpServletRes
Google App Engine Java のアプリを作ってみました。 ちょっと前に検索エンジンの開発に触れる機会があったので、今回の手習いは、形態素解析器を GAE/J で動かすことをテーマにしました。 まずは、下記ページに書かれている 「Eclipse を使用して(または使用せずに)App Engine Java プロジェクトを作成する方法」 にしたがって開発環境を作成します。 http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/introduction.html そして、ひと通りチュートリアルを試して、開発環境に慣れてしまいます。 実は、最初はチュートリアルは試さないで、他に GAE/J を紹介している記事を参考にして、必要なことだけをやろうとしたんですけど、後から考えると、先にチュートリアルを通し
JMeterで連続アクセスさせつつ、Quotaページのの数字を見る方法で計測。 bbsのやつ以外は「hello!!」と1行出すだけのもの。 bbsの2つはjruby-sinatra+低レベルAPIでのdatastore読み書き。 結果はこちら。"CPU Time"だけ。単位はreq/CPUh。 jruby-sinatra 59171java + jruby + rack + sinatra python-webapp 373000 python-hello 318058 java-hello 3167700 jruby-hello 68017java + jruby + rack bbs/write 14895java + jruby + rack + sinatra + datastoreWrite bbs/show 16376java + jruby + rack + sinatra
App Engineで使える言語は基本的にはPythonとJavaです。それでは、どちらを選ぶのが良いのでしょうか。 それ以外の言語の人向けの話は後から出てくるのでしばらくこのままお読みください。 趣味ならば単に好きなものを選ぶだけでいいのですが、仕事で使うためには、長所と短所をきちんと把握した上で選ぶ必要があります。また、ここでの話は言語としての一般的な話ではなくApp Engineで使うとき限定の話としてお読みください。 まず安定度ですが、インフラ部分の安定度は、どちらも基本的に同じです。もしかすると、まったく同じものを使っているのかもしれません。 その上で動くAPIの部分は、インフラと直接結びついている低レベルな部分と低レベルなAPIの上に構築された高レベルな部分とに分けて考える必要があります。 低レベルなAPIはLLAPIと呼ばれたりしますが、安定度は、PythonとJavaも同じ
技術者・SE・プログラマ面接時の技術的な質問事項というエントリをはてブで見かけたのだが、私もjavaプログラマーの面接を割とよくやっているので、よく質問する内容をまとめてみた。 (ちなみに、基本的にコーディング面接の形態を取っている) プロジェクトの性質にもよると思うが、私の場合には、情報処理技術者試験的に基礎が満遍なく抑えられているかどうかよりも、 すぐ答えが見つからないような課題に対して、きちんと自分でやり方を考え、対応することができるか 「変な」コードをコミットしたりしないか(見つけにくいバグを混入させるとか、汚いとか、遅いとか)といった点を重視している。 まず、何を知っているかよりも、どんなものを作れるか、どんなことができるか、という質問。 ここで強烈な回答が来る人は、たいていここより下の質問は「あー、はいはい」という感じでサラッと答えてくることが多い。 これまでに携わってきた開発
グーグルが新プログラミング言語「Noop」を公開しました。Noopは新旧のプログラミング言語からいいとこ取りをした、JavaVMで動作するプログラミング言語と説明されています。 Noopは、サン・マイクロシステムズで開催中の「JVM Language Summit」で、グーグルの2人のエンジニア、Alex Eagle氏とJérémie Lenfant-Engelmann氏によって発表されました。 すでにJVM Language Summitでの発表資料がPDFとして公開されており、その資料には、Noopのミッションが次のように説明されています。 Noop's mission Help teams develop software that is easier to understand and maintain. Noopのミッション 分かりやすくメンテナンスしやすいソフトウェアのチーム開
_既にあたり前になりつつある文字エンコーディングバリデーション 大垣靖男さんの日記「何故かあたり前にならない文字エンコーディングバリデーション」に端を発して、入力データなどの文字エンコーディングの妥当性チェックをどう行うかが議論になっています。チェック自体が必要であることは皆さん同意のようですが、 チェック担当はアプリケーションか、基盤ソフト(言語、フレームワークなど)か 入力・処理・出力のどこでチェックするのか という点で、さまざまな意見が寄せられています。大垣さん自身は、アプリケーションが入力時点でチェックすべきと主張されています。これに対して、いや基盤ソフトでチェックすべきだとか、文字列を「使うとき」にチェックすべきだという意見が出ています。 たとえば、id:ikepyonの日記「[セキュリティ]何故かあたり前にならない文字エンコーディングバリデーション」では、このチェックは基盤ソフ
以前の日記では、外部からのXMLをサーバサイドでParseするアプリへの攻撃の概要について書きました。 今日の日記では、何点か補足する事項について書きます。 ファイルの内容を盗み出す他の方法 前の日記の中で、サーバ上のファイルの内容を外部から盗み出すにはいくつかの条件があると書きました。 その条件のひとつに「コーディングのスタイル」がある、具体的には「textContent」で要素の内容を取得するアプリ(下のPHPコードではAのスタイルのアプリ)でのみ、サーバ上のファイルの内容を盗まれる可能性がある、と書きました。 <?php ... $elm = $doc->getElementsByTagName('test')->item(0); // A: 外部実体参照が展開される $var = $elm->textContent; // B: 外部実体参照は展開されない $var = $elm-
2008年4月7日に発表されたGoogle App Engineが、ちょうど1年後の2009年4月7日にJavaに対応したことが発表されました。さらに、Java開発には必須のEclipse用のプラグイン「Google Plugin for Eclipse」が同時に発表され、Java利用者は簡単にGoogle App Engine用のプログラム開発とEclipse上からのデプロイができるようになっています。今回はそんな便利な「Google Plugin for Eclipse」の使い方を説明します。 はじめに 2008年4月7日、Googleのインフラでウェブサービスを展開できるという「Google App Engine」が発表され世界中が驚かされました。この時点では利用できる言語としてPythonのみがサポートされており、Pythonの開発者がGoogleの社員であることを考えると当然なの
Jean-Christophe MartinによるブログにQuercus (PHP implementation in Java) is faster than the C version」という記事が掲載されました。 この記事によるとResinというServlet Container + Web Serer の上で動くPHPエンジンのQuercusというものがあり、それはC言語で実装されたPHP(普段使用されているPHPです)より高速に動作するというものです。 ブログにある内容はResin 3.0.18 performance notes | Caucho Forumsからの引用のようですが、簡単なファイルアクセスのベンチマークとMediaWikiやDrupalを動作させたときのベンチマークが掲載されています。 QuercusはPHP 5相当を実装しているようで、その他の情報として公式サ
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
GoogleのMapReduceアルゴリズムをJavaで理解する:いま再注目の分散処理技術(前編)(1/2 ページ) 最近注目を浴びている分散処理技術「MapReduce」の利点をサンプルからアルゴリズムレベルで理解し、昔からあるJava関連の分散処理技術を見直す特集企画(編集部) いま注目の大規模分散処理アルゴリズム 最近、大規模分散処理が注目を浴びています。特に、「MapReduce」というアルゴリズムについて目にすることが多くなりました。Googleの膨大なサーバ処理で使われているということで、ここ数年の分散処理技術の中では特に注目を浴びているようです(参考「見えるグーグル、見えないグーグル」)。MapReduceアルゴリズムを使う利点とは、いったい何なのでしょうか。なぜ、いま注目を浴びているのでしょうか。 その詳細は「MapReduce : Simplified Data Proc
Excelsior, LLCは28日(現地時間)、Excelsior JETの最新版となるExcelsior JET 4.0を公開した。Excelsior JET 4.0はJavaアプリケーションの高速化、最適化、難読化などを行うためのソリューション。主に次のコンポーネントから構成されている。 Excelsior JET Optimizer Excelsior JET Runtime Excelsior JET Installation Toolkit Excelsior JET OptimizerはJavaのクラスファイルやjarファイルをx86ネイティブコードに変換するソリューション。ネイティブコードに変換することで実行速度を改善し、逆コンパイルを防止する。Excelsior JET RuntimeはJava Compatibility Kit test suites for J2SE
つぎのツールを作りました。 ご興味がありましたら、ご試用ください。 (の) 2005/10/20 convcpp Ver.0.2 -------------------------------------------------------------------------------- ■概要 convcpp.groovy は、Jude から自動生成した Java ソース・ファイル (クラス名.java) をもとに、BCC 用の C++ のCPP ファイル (クラス名.cpp) と ヘッダー・ファイル (クラ ス名.h) を生成します。 あわせて、makefile も作成します。 convcpp.groovy は、指定されたフォルダーにある Java ソース・ファイル をすべて変換 します。 ■機能 変換するのは、つぎのとおりです。 class 宣言 -> cpp) なし h) ext
Sequitur is a method for inferring compositional hierarchies from strings. It detects repetition and factors it out of the string by forming rules in a grammar. The rules can be composed of non-terminals, giving rise to a hierarchy. It is useful for recognizing lexical structure in strings, and excels at very long sequences. Craig Nevill-Manning, Google Ian Witten, University of Waikato, New Zeala
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く