本記事は、こちらに移動しました
本記事は、こちらに移動しました
I generated two matrices of 1000 x 1000: First Matrix: O and #. Second Matrix: O and B. Using the following code, the first matrix took 8.52 seconds to complete: Random r = new Random(); for (int i = 0; i < 1000; i++) { for (int j = 0; j < 1000; j++) { if (r.nextInt(4) == 0) { System.out.print("O"); } else { System.out.print("#"); } } System.out.println(""); } With this code, the second matrix too
class FastScanner { private final InputStream in = System.in; private final byte[] buffer = new byte[1024]; private int ptr = 0; private int buflen = 0; private boolean hasNextByte() { if (ptr < buflen) { return true; }else{ ptr = 0; try { buflen = in.read(buffer); } catch (IOException e) { e.printStackTrace(); } if (buflen <= 0) { return false; } } return true; } private int readByte() { if (hasN
Javaのgetter/setterのお話。 僕は当時を語るには若すぎるのだけど、過去を振り返って書いてみる。当時を知る人は誤りがあれば指摘してほしいし、情報があればコメントなりトラックバックなりして欲しい。前世紀の話というのは今となっては探すことがなかなか難しくなりつつある。 「privateな変数にpublicなアクセサを定義する」? - ネットの海の片隅で getter/setterとは何か Javaのオブジェクトにフィールドがあったとして、そのフィールドに値を設定するメソッドがsetter(せったー)、そのフィールドの値を取得するメソッドがgetter(げったー)と呼ばれる。慣習としてsetterはsetXXX(int value)といった様にsetから始まる名前をつけ、引数はひとつ。戻り値はvoid型。getterはgetXXX()といった様にgetから始まる名前をつけ、引数はな
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近新人研修(プログラミング未経験者・大学で専攻など、ごちゃまぜ)に関わることがありました。 適当なタイミングでEclipseのショートカットキーを教えていたのですが、実演してあげると食いつきがよかったです。 ウケがいい≒新人から需要があるといえそうですし 教えるほうも教わるほうもモチベーションを保ちやすいです。 その点で、ウケるかどうかは大切な視点のひとつだと思います。 なので、ウケのよさランキングの形式で、ショートカットを紹介したいと思います。 環境は、WindowsでPleiadesのやつ(http://mergedoc.sour
あなたがJava開発者なら、2013年はあなたにとってさぞや仕事のチャンスに恵まれた一年だったことだろう。 少なくともStack Overflowの統計によればそうだと推測できる。何千もの会社が毎年特定の開発スキルを持った求職者を見つけるためにこのサイトの「Careers 2.0」検索機能を利用している。そして2013年は、Javaが最も頻繁に検索されたキーワードだったのだ。 関連記事: 2013年に米国で最も需要の高かったジョブスキルとは? Stack Overflowは、14,000件もの全検索履歴から最も多く使われたキーワードを計測し、そこから最も需要のあった開発者スキルを割り出してそのトップ10データを提供してくれた。 Stack OverflowでCareers 2.0のプロダクト・マネージャーを務めるウィル・コールによれば、このJavaの人気は雇用者のモバイルの開発に対する関心
CPUのクロックアップに限界が訪れ、マルチコア化することで処理性能向上を目指す時代になりました。これからのプログラマには、マルチコアで処理性能が向上するプログラム=マルチスレッドで並列処理が可能なプログラムを書く能力が必要になります。今回は「関数型」でプログラムを書くことによって、いとも簡単に並列化ができることを実例を元に解説します。 関数型プログラミングと並列処理 「関数型でプログラムを書くことで簡単に並列化できる」と書きましたが、そもそもここで言う「関数」とは何なのでしょうか? 関数型プログラミングの特徴 関数型プログラミングの「関数」を理解するためには、数学における「関数」を想像するとわかりやすいでしょう。 例えば三角関数を用いた y=cos(x) という式を考えてみます。この式に入力値 x=0 を与えた場合、いつでも必ず結果は y=1 になります。x= π/3 の場合は y =
Java8にはOptionalクラスが導入されたのですが、5月にエントリを書いた時点ではモナドではありませんでした。 Java8でのプログラムの構造を変えるOptional、ただしモナドではない それが、5月末にどうもソースにモナドに必要なメソッドが追加されたらしいということになって、いつ使えるようになるか待っていたら、いつの間にか使えるようになっていました。 Optional (Java Platform SE 8 b101) こちらからダウンロードできます。 JDK8 Early Access Releases ― Project Kenai 他にもいくつか便利メソッドが追加されたおかげで、このようなコードが書けるようになりました。 String str = "abcd"; Optional.ofNullable(str) .map(st -> st.toUpperCase()) .f
PERSON antlabo(あんとらぼ) 蟻の実験工房本館 / twitter 業務系のSEをやっていますが、仕事ではPMだったりPLだったりPGだったり アプリ開発してたりインフラ構築してたり運用保守してたり 何でも屋さんなマルチな日常を過ごしています。 PROJECT minecraftで地球を再現できるかな? GISデータを用いてminecraftで地球を再現するプロジェクト。minecraftの公式フォーラムでマップデータを公開しています GIS小さな地球minecraft PROJECT 24Hの出来事 on Google Earth - 2011.03.11 Japan 2011.03.11 あの日に日本で起きた24時間の出来事をGoogleEarth上に可視化しています。地震発生から各地域で発生している事象をマップ上で時系列で確認することが出来ます。 可視化タイムラインGo
気象庁の地震情報|平成25年04月13日05時48分 気象庁発表 4/13のAM5:33にM6.0らしい地震がありました。各地で大きな被害が無いことを祈りつつ。 フジテレビのアナウンサーさんが淡路島の電車の状況を聞いたと言う話 【放送事故】フジテレビが淡路島民に「電車動いてますか?」と質問 「淡路島は電車ありません」 - NAVER まとめ だいたい見てると「電車無いのを知らずに聞いてしまった」のを叩く向きに思えます。実際のところ、聞いたこと自体はNGなのでしょうが、これをシステム開発の話に置き換えると見えるものがある気がしました。 以降はJavaの語彙で書きますが、これって NullPointerException っぽいなと。 コードっぽい何かで書いてみる こんな感じ。 運行状況 = 淡路島.get路線().get運行状況(); get路線() が何を返すのか知らないけど、これが nu
事例で学ぶデザインパターン 第6回 Strategy パターンとデザインパターン活用の総まとめ (株)オージス総研 福田 直樹 連載の最終回となる今回は、アルゴリズムをクラスとして抽出する Strategy パターンを検討します。変動しやすい一連の処理を持つ部分を分離し、それを簡単に切り替えて実行できるような仕組みを構築します。Strategy パターンを検討した後、その Strategy パターンに見られる設計指針を確認してデザインパターン活用のポイントを振り返ることにしましょう。 ※雑誌『Java WORLD』 2006 年 9 月号に掲載した記事のオリジナル原稿を Java WORLD 編集部の了解を得て掲載しています。 前回のおさらい 前回は、GUI クラスと GUI に依存しないデータ処理クラスを分離し、リアルタイムに情報を更新するような仕組みを提供する Observer パター
オライリーが主催するイベント「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
「JavaとJavaScriptの20年戦争」 http://wise9.jp/archives/2245 なんというか全体に「これはひどい」ネタ記事なんだが*1,なんでコレが絶賛されてるか分からん.*2 そもそもJavaとJavaScriptを比較する時点でねえ... さて、Javaだが、JavaはC++の流れを汲む言語だ。 C++の源流は言うまでもなくCにあり、Cの源流はPascalやFORTRANといった手続き型言語にある。 Javaが本格的に登場したのは1996年。 うーん,こういう書き方している時点で,プログラミングのことを全く知らないんじゃないかと思うくらいに酷い. さらっと流しているが,「JavaをC++の流れを汲む言語」と捉える人はそんなに多くないのでは. 「C系の表記+オブジェクト指向」というならJavaと近い部分もあるが,それだけならObjective-Cだってあったわ
メインウィンドウのクラス(あるいは制御クラス)のGGG4W、GGG4M、GGG4J(以下GGG4X)にはメインウインドウに配置したGUI部品の反応を作りこむのだが、検索にからみ検索を担当しているTGraphicSearchクラスから 1. いまどのファイルを処理しているか 2. 何がヒットしたか 3. 検索が終わった の3つを通知する方法が必要である。 一般的にコールバックと呼ばれており、古典的Cでは関数ポインタの登録という方法で行われている。GGG4Xクラス側の関数をTGraphicSearchクラスに登録して呼んでもらうのである。 C++ではメンバ変数のない多重継承を用意するのが正統かと思うが、GripGropではそのまま単にメインウィンドウのクラスを登録してメソッド呼び出しをしている(nfind.cppのNFind::DisplayInfo() など)。下が上の構造を知っているという
Java:The Good Parts Jim Waldo(著) 矢野勉(監訳)笹井崇司(翻訳) オライリージャパン 2011年2月 ISBN-10: 487311487X ISBN-13: 978-4873114873 2310円(税込) ■言語ごとの特性を理解し、使い分ける人が一流のプログラマ あらゆる面で完ぺきなソフトウェアは存在しない。プログラミング言語もソフトウェアである。ゆえに、あらゆる面で完ぺきなプログラミング言語は存在しない。 人間の言語が現実世界をうまく表現できないのであれば、まず間違いなく、プログラミング言語が現実世界をもっとうまく表現できるとは期待できないだろう。プログラミング言語は現実世界にあるものをモデル化するための抽象概念を提供するが、その言語の表現力は現実世界と言語とを直接対応付けるには不十分なところがある(p111)。 完ぺきなプログラミング言語は存在しない
Javaだし、大変そう。という先入観が有って今まで触って無かった「Processing」。最近、使い始めてみました。 Processing.org http://processing.org/ ライブラリの充実した環境くらいのイメージだったのですがインストールしたProcessingを起動するとIDEが表示され簡単にプログラムが始めれました。 もっと色々と設定が必要だったり、プログラムは別途エディタを準備する必要が有るかと思っていたので、これはとても嬉しい誤算でした。 IDEはこんな感じです。 「再生マーク」でアプリを実行可能です。 print() や println() でデバック出力などを行った場合には下部の黒い部分に出力されます。 メニューの「Examples...」でこの様なウィンドウを表示できます。これはサンプルコードで、ダブルクリックすると表示されます。 この様にサンプルが本体
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く