Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

public class Server extends VerticleBase { public Future<?> start() { return vertx.createHttpServer() .requestHandler(req -> req.response() .putHeader("content-type", "text/plain") .end("Hello from Vert.x!") ) .listen(8080); } } class Server : VerticleBase() { override fun start(): Future<*> { return vertx.createHttpServer() .requestHandler { req -> req.response() .putHeader("content-type", "text/
最近、Javaを勉強したりしていて、RubyがJavaとの対比で昔より客観的に見られるようになったので、Rubyの記事を書きたいと思います。自分でも消化しきれていない話なので、反論は大歓迎です。 内容は、大クラス主義とダックタイピング、そして名前重要に関してです。 大クラス主義 Rubyの考えでよく言われるものに、大クラス主義があります。例えば、RubyのArrayは配列を表すクラスです。しかし、Arrayができることは、単純に値を複数持てるだけではありません。Arrayを調べてみると、popやpushやshiftやunshiftがあります。つまり、RubyのArrayはキューやスタックとしても使えます。一方、JavaのArrayやArrayListでは、配列の要素を扱うことはできますが、そのままではキューやスタックとしては使えません。Javaでキューやスタックが使いたいのであれば、例えば
オライリーが主催するイベント「Open Source Convention 2011」が7月25日から米国ポートランドで開催されました。 その中で、TwitterがなぜRuby on RailsベースのシステムをJavaVMベースへ移行しようとしているのかを解説したセッション「Twitter: From Ruby on Rails to the JVM」が行われ、ビデオが公開されています。 13分程度の短いセッションのポイントをまとめて紹介します。 世界最大のRuby on RailsによるWebサイトをJavaVMへ移行 Twitterのアプリケーションサービスグループ、Raffi Krikorian氏 Twitterは世界中からのツイートをリアルタイムで扱っている。リアルタイム処理が、ツイッターにおけるもっとも難しい処理だ。 Twitterは、おそらく世界最大のRuby on Rail
Mirahは、静的に型づけされ、コンパイルされる言語ですが、スクリプトでも充分動きます。ほとんど「いくつかの型アノテーションをもったRuby」を書いて、それからスクリプトとして走らせるために"mirah" コマンドを使うか、 "mirahc"コマンドを使ってコンパイルし、JVMバイトコードかJavaのソースに変換します。両方のコマンド共、 "-e"フラグで、即コマンドラインからスクリプト実行ができます。 InfoQ: 一度、コードがJVMバイトコードにコンパイルされたら、ランタイムのどれだけが引きづられるのですか? (動的呼び出しのサポート以外、)言語フィーチャは、あなたが直接、自分で参照するクラス以外に、いかなるライブラリ依存性も、課しません。できるだけ長い間、言語特有のランタイムを避けるのが、言語の第一の設計目標です。そうすることを永久には、できないかもしれませんが、目指すのはいいこと
プログラミング言語は人が作ったもの。人は誤るもの。なので完璧なプログラミング言語は存在しない。 「人は誤るもの、しかし誤りに固執するのは馬鹿の所業だ。」(キケロ) プログラミング言語も、間違った設計をして、馬鹿でない人がそれを修正することの繰り返しで発展してきた。 というわけで言語間での設計判断の食い違いとか失敗した設計とかを収集中。一部抜粋して講義資料に入れるつもりなので他の事例をご存知でしたらぜひ情報をいただけるとありがたいです。 if(x = 0) C言語では代入が式であるためif(x == 0)のつもりでif(x = 0)と書いてしまい、常に偽になってしまう。 x = 0の値はint、条件式はboolでないといけないので型エラーだよ派: Java x = 0は式ではないので条件式に入れたら構文エラーだよ派: Python 条件式にx = 0をいれたらx == 0と解釈するよ派: H
数百枚のVGA程度の解像度の画像にそれぞれ数十のアルファチャンネルあり画像をcompositeして書き出す処理なら、RMagickよりjavax.imageioをJRubyから使うのがいいんじゃないの javax.imageio、JAIともにJavaで書いてもJRubyから使っても速度差は無かった(とりあえず画像の読み込み、フォーマット変換、書き出し、width heightなどのパラメータ取得は確認) Java1.5→1.6にするとjavax.imageioの画像読み込み/書き出し速度1.3〜1.5倍になる Java1.6じゃないとJAIで画像を書き出せない Java1.6じゃないとimageioでpng形式で画像を書き出せない(getTypeがエラーになる) javax.imageioとJAIでは縦横1000ピクセルなどの大きい画像の時は読み書き速度はJAIの方が速いが、320x240
所属する草野球チーム「IN3ニャンキース」の出欠表明アプリがサイバーテロに遭った。まぁ実害はなかったんだけど気持ち悪いので、ちゃんとした出欠システムを完備したニャンキースWebサイトを開発することにした。 ホスティングサーバーにはタダで使える(正確には普通の範囲では無料)ことからGoogleAppEngineを選択する。この時点でもはやWeb開発者のおれしかWebサイトのメンテナンスはできなくなることが決まる。まぁ仕方ない。 GAEの上では現在PythonとJavaが公式にサポートされている。ところでJVMの上には色々なプログラミング言語が動くようになっていて、jRubyもその一つ。PythonもJavaも勉強するのがめんどいなと思い、jRubyとSinatraでアプリケーションを作ることに決めた。 ここまでの決定に参考にしたサイトは以下の通り(作者の方本当にありがとうございました) まち
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く