Hadoop 1.0.0がリリースされた。まあ中身のほとんどはただの 0.20.x 安定板リリースなので特別に言うことはないんだけど。詳しくは以下のblogを読むのがよろしい。 hadoopのバージョン表記について - 科学と非科学の迷宮 ただしひとつだけびっくりしたのは、webhdfsなる機能が入ってきたこと。(このblogでよく話題にしている)Hoopと並んでそんなようなものがあること自体は知ってたけどあんまり興味なかったのだが、Apache Hadoopのパッケージに(Hoopより先に)入ったとなるとちょっと注目せざるをえない。 が、httpfs(Hoop)とwebhdfsじゃ名前も似てて超まぎらわしい。いったい何がなんなの。 なお自分はWebHDFSはAPIリファレンスを読んだだけで、実際にはカケラも触っていない。その状況での理解による内容なので、注意して読んでください。 先に結論
hits since 2002.1.3 Java Standard Edition Java 2,Standard Edition, v1.4(JDK1.4) 時代のHello Worldプログラム Java Platform Standard Edition 6(JDK6)時代のHello Worldプログラム import文は単独の型インポート宣言とオンデマンドの型インポート宣言のどちらを使用するべきか? タイマを使う。周期的に実行したいこと、一定時間後に実行したいこと。 整数型について 配列 コレクションを扱うプログラミングに役立つTips 型に安全な定数の作り方。シリアライズでも大丈夫なように作るには? 外部プロセスの起動方法 システムプロパティ総覧計画 JDBCでテーブルの中身を見る JAASでユーザ認証と権限制御 スタブ不要なRMI パッケージ・バージョン 文字列操作と正規表現
Javaタイマークラス Javaのjava.util.Timerは、処理を一定時間間隔で動かしたり、一定時間後に動かしたりする為のクラス。 Timerから、自分で指定したTimerTask(の具象クラス)が呼ばれる。 このタイマーの実行にはThreadが使用されている(マルチスレッドで動作する)。 一定時間後に一度だけ実行する例 public void timer_delay() throws InterruptedException { TimerTask task = new SampleTask(); Timer timer = new Timer("遅延タイマー"); System.out.println("main start:" + new Date()); timer.schedule(task, TimeUnit.SECONDS.toMillis(10)); //10秒後に
javax.swing.Timer Swingのクラスライブラリの1つとして提供されている。一定時間後にイベントを実行することができる。これは、Swingのイベントスレッドで実行されるので、描画に関わる処理を記述していてもSwingスレッドと干渉しないで済むのがメリット。実行はSwingのイベントキューに載せられるため、正確性には欠ける。 java.util.Timer 汎用のタイマとして提供されている。処理を周期的に実行したり、一定時間経過後に実行したり、指定した日時に実行したりと多彩な機能を持つ。Swingとは無関係なので、ヘッドレス(GUIが無い環境)でも使用できる。Timer専用スレッドで管理され、正確性もjavax.swing.Timerよりは高い。しかし、java.util.Timerの実装上欠点がいくつかある。まず、スケジューリングにシステムクロックを使用するので、システムク
Java Memo簡単なファイル転送プログラムを作ってみた。サーバ側のソースは以下。ソケットから受けとったバイト配列を、引数で指定したファイルのストリームに書き込んでいるだけ。特に理由はないが、32バイトずつその作業を行っている。 import java.net.*; import java.io.*; public class FileTranServer { public static void main(String[] args) throws IOException{ if (args.length != 2) throw new IllegalArgumentException("An argument should be port and filename"); int servPort = Integer.parseInt(args[0]); String filenam
JavaのサービスをApache commons daemonを使って起動する。 ようはOSの起動時にJavaのサービスを起動、そしてOSの停止時にJavaのサービスを停止したいということ。 ただし、OSはLinuxです。Windowsに関してはまだ調べていません・・・・ 昔は、sudo で対応していましたが、sudoで起動スクリプトを立ち上げるとsudoがなんかエラーを出力して、 設定を変えればいいらしいが、それも面倒なので何とかアプリの方で吸収できる方法をとるために、 Apache commons daemonにトライした。 (ちなみに、sudo のどんなエラーかは忘れてしまいました・・・) 必要なライブラリ Apache commons daemon download から、Javaのライブラリと Browse native binaries download area
意外と半日ぐらいかけてしまったので、今後のためにメモ。 (無理やりねじ伏せたところがあるので要注意) 環境OS: CentOS release 5.6 (Final) デーモン起動させたいプログラム:SVF Connect [Server] (svf.jar) 詳細はウィングアークさんのページへ。製品知らないと見てもわからんと思うけど、要は Java製の常駐プログラムです。 適宜、ご自身で作成したものと読み替えてください。 ※なんでデーモン起動用スクリプトが製品に付いてないのか(自作しなきゃいけないのか)、謎過ぎる。 (追記)インストール後のディレクトリ掘ったらいたわ…「SvfJavaConnectServer」。そういう大事なことはマニュアルかどっかに書いといてよ…半日潰したのに(涙) 基本方針/etc/init.d にスクリプトを用意してランレベル別にリンクを設定(基本が大事かなってこ
アルゴリズムの勉強で、DFS(深さ優先探索)とBFS(幅優先探索)を書いてみました。 サンプルケースでは動いているけど、これで間違いないかはそこまで自信ない。 DFS(非再帰版) コード def __logging(visited, rest=[]): if rest: print "visited:%s\n rest:%s\n" % (visited, rest) else: print "visited:%s" % (visited) def dfs(graph, start, end): stack = [start] visited = [] while stack: label = stack.pop(0) if label == end: visited.append(label) __logging(visited, stack) return visited if labe
日本におけるテスト駆動開発(TDD)のスペシャリストとして知られる和田卓人氏。講演活動やハンズオンイベントを通してテストの重要性を語り続けている。その深奥にあるプログラムの哲学とは── 父親がデータベース設計を得意にするソフトウェア・エンジニアで、受託開発の会社を経営していました。私は大学在学中からその仕事を手伝っていて、その延長で大学を出るとその会社の一員になりました。 そのころのことで一番印象に残っているのは、電子政府関連の公共システム開発に関わる大規模プロジェクトへの参加です。複数のSIerやソフトハウスが関わり、要件定義に時間をかけ、膨大な設計文書をつくっては、何千人というエンジニアを投入する、典型的な大規模システム開発です。私はそこにSEの一員として参加することになりました。 ただ、私は初日から生意気にも「Excelで設計書を書き続けるために来たのではありません」と嘆願して、基盤
こんにちは、運用部 アプリ運用グループの清水です。Golang鋭意勉強中です。 今回は、SNS「mixi」に限った話ではなく、ミクシィ社全体として利用している仮想環境について紹介したいと思います。パブリッククラウドも一部のサービスで利用していますが、今回は、自社で運用している仮想環境にフォーカスして書いてみようと思います。 今まで利用してきた仮想環境 今まで利用してきた仮想環境というと、手作業で構築したKVM(Kernel-based Virtual Machine)環境が中心でした。手作業といってもある程度手軽に構築できるように、シェルスクリプトとCobblerでVMを構築できるようになっています。構築の流れは以下のとおりです。 CobblerにVMのIPやホスト名などをスクリプトで登録する。 KVMのホスト上でスクリプトを実行(koanコマンドでCobblerと連携してVMをセットアッ
GitBucket 1.12ではssh経由でのリポジトリアクセスをサポートしていますが、これに使用しているのがApache MINAのsshdです。 https://mina.apache.org/sshd-project/index.html Apache MINAはNIOを使用したTCP/IP、UDP/IPベースのネットワークサーバアプリケーションのためのフレームワークで、sshdはMINAを使用して実装されたsshサーバということになります。MINAのsshdは比較的簡単に再利用できるようになっており、Javaアプリケーションでsshを使用した暗号化通信を行いたい場合に使用することができます。 Javaを使用したOSSのsshdの実装を提供しているのは僕の知る限りMINAだけであり(クライアントはいくつか実装がありますが)、JenkinsやGerritなどもこれを使ってsshサーバの
社内で開発環境についての情報を共有する会を開催した。 参加者全員が発表のスタイルで、ただ聞いてるだけの人がいないようにしたら いろいろな情報を共有出来て大変参考になった。 私は1日のほとんどをターミナル上で過ごすので、ここ数年GUIアプリにはあんまり関心が 無かったんですが、最近導入して便利だったやつを共有したら好評だったのでまとめておく。 Dash Dash - Documentation Browser, Snippet Manager - Kapeli ドキュメントブラウザ、スニペット管理ツール。ドキュメントをローカルにダウンロードして 利用するので高速。今日(2014/03/29)時点で130以上のドキュメントとAPIに対応していて、 プログラミング言語に加えて、MySQL、MongoDB、Puppet、Vagrantなどのドキュメントもある。 自作ドキュメントを追加することも可能
マイマップ+オフィシャルサイト iPhone アプリ ターンバイターン方式GPSナビを素早く起動する方法 ここから広島駅までをナビ検索してみました。 普通にナビとしての手順は、目的地を検索してそこまでの交通機関を選んでスタートとなります。 ▼「広島駅」を検索して、右下の交通機関アイコンをタップします。 ▼交通機関やルート等の選択画面になります。 ▼しかし検索窓に「広島駅」と入力し、右下の交通機関アイコンを「長押し」します。 ▼すると、アイコン交通機関(ここでは自動車)で即ナビが起動します。 右下メニューをタップします。 ▼経路のプレビューから経路詳細、音声案内をオフにしたりできます。 ▼参考に経路のプレビューをタップしてみます。 場所を保存してあとで利用する どこかに行く際に、あらかじめ目的地を検索します。 その際に保存しておけば、あとから再度調べるという手間を省くことができます。 場所を
最近、RubyやRails系の入門チュートリアルを中心にいくつかの記事があったので、知っている入門系チュートリアルを一式をまとめてみました。本当の初心者な方から、本格的にRubyを勉強したいと思う人にすっごいオススメです! (2016/02/20 17:30) 全般的に内容をリファクタリング 😎 スライド 拙著ですが、Railsをスタートダッシュして学ぶときに良さそうな記事や資料をまとめました。 Ruby 概論のスライド Spice Life CTOの五十嵐邦明さんの一橋大学での講義「Ruby概論」のスライド。 🎳 動画 Ruby入門 (全22回) Ruby on Rails 4入門 (全28回) 最初に見てほしいのがRuby/Railsのドットインストール。このあたりから少しずつ始めていくといいと思います! 🐞 ハンズオンProgate | プログラミングの入門なら基礎から学べるP
JavaScriptプログラミングのTOPへ 今から3分で,HTML5の JavaScript API の使い方を2つ覚えよう。 1:ドラッグ&ドロップAPI 画面上の要素を。 画面外から。 2:File API 読み込み。 書き込み ※これは覚える必要はない。 シンプルなサンプルコード付きで,これらの実装の方法を素早く学習する。 ※サンプルは,IE8のようなHTML5未サポートの古いブラウザでは動かないので注意。FirefoxやChromeを使うこと。 では,ここから3分の時間のカウントを開始。集中して読もう。 (0:00〜前半の1分半) 画面内でのドラッグ・ドロップ (後半の1:30〜3:00) 画面外からのドラッグ・ドロップ 参考資料 (0:00〜前半の1分半)画面内でのドラッグ・ドロップ まず,動作例を見てみる。「リンゴ」をバスケットにドロップしてみてほしい。 動作サンプル1 ht
【記事の紹介】 このたび、MacOS入門をしました。 以前までは、レッツノートを使用していたのですが あまりにも長く使用していたので、、、、 流行りのMacbookというやつを購入しました。 【なぜショートカットが大事か】 そこでなにより最初にやったのが、基本的なショートカットを覚えることでした。 「おいおい最初に覚えるの地味すぎるだろ」とか「ほかにやることあるだろ」とか思う人もいるでしょう。 自分が最初にショートカットをしっかり学習しようと思ったきっかけは単純で 今後の作業量に大きさ差がでてくるため です。 たかがショートカットキーですが、されどショートカットキーです。 使う人と使わない人だと、作業量が全く違います。 だからこそ、これからのことを考えてなるべく最初に覚えないともったいないと考えました。 作業量に関しては、実際に仕事を行っているときの経験談として 全くショートカットを使えな
"読み取り権限がなく実行権限だけのファイルが実行できるのはなぜ? - カーネルのソースを読む - - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く" こちらの記事が大変素晴らしかったので、実際の実行時システムコール呼び出しを追ってみました。 平たく言うと、strace・システムコールの入門です。 バイナリ実行するのに読み取り権限は必要ないことを実験で確かめる C言語でhello worldを書いてみます。 hello.c #include <stdio.h> int main() { printf("hello world\n"); return 0; } コンパイルして、パーミッションを100にします。 $ gcc hello.c -o hello $ chmod 0100 hello $ ls -l 合計 12 ---x------ 1 vagrant vagrant 6417 3
15分で分か(った気になれ)るDocker 2014-03-28 Xtone Ltd.ピザ会 Aki / @nekoruriRead less
IRCクライアント、皆さんは何を使われてますか? 私は今まで mac上で limechat や textual といった GUI クライアントを使っていましたが、最近社内のイケてる同僚エンジニアより勧められた weechat を導入したところ色々と捗ったので、私の設定をご紹介しつつオススメしたいと思います。 weechat とは? モジュール式: 軽量のコアと選べるプラグイン multi-protocols architecture (mainly IRC) C 言語、Python、Perl、Ruby、Lua、Tcl、Scheme で拡張可能 詳しく文書化され、数種類の言語に翻訳されている GPLv3 ライセンスのもとにリリースされるフリーソフトウェア スクリプトを作成する大きなコミュニティを持つ活発なプロジェクト (本家サイトより転載) weechat は主に IRC用として使う CUI
CheckiOを始めて3週間。1日1~2問のペースで、ほぼ毎日続いている。 現在のステータスはこんな感じ。 レベル 10 経験値 1139 クリアしたミッション 29 集めたバッジ 8 http://www.checkio.org/user/natsuki/ CheckiOのここがイイ やってて楽しい よくプログラミングの本に、章末の例題が付いてたりするが、ああいうのってやったことがない。じゃあ、なんでCheckiOだと毎日やってしまうのか考えてみると、 問題を解くと経験値がもらえて、レベルアップしていくのが嬉しい 経験値を貯めると、新しく行ける場所が増えるのも嬉しい 自分の解答を他の人に「いいね!」されると嬉しい 我ながら単純だなぁと思うけど、本当にこんなもんで、やる気が出るのだから人間って面白い。 他の人の解答がとても参考になる CheckiOでは、まず自分で解いてからでないと、他の人
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Dropboxの手軽さは修正したら自動で同期されるという点にあると思います。この変更したら自動という点が重要で、作業が終わったら手作業でアップロード…なんて手間をかけているから作業を忘れてしまったり面倒に感じるのです。 ということで今回はAuto SFTPを紹介します。ファイルを追加、修正したら自動でSFTPを使ってアップロードしてくれる、そんなユーティリティです。 Auto SFTPの使い方 ヘルプは次のようになっています。 $ ruby sftp.rb -h -f: sftp.yamlに書かれているファイルを呼び出してSSHで接続します。 example: $ ruby sftp.rb servername servernameはyamlに記載されている上位のキーになります。
他のサーバにrsyncしたいときがあります。その場合考えなければならないのが認証です。よく見られるのは送信先のSSH公開鍵を送信元に登録することで認証をスルーする方法です。しかしrsyncの場合、そんなことをせずともパスワードなしでrsyncできるということを最近知りましたので記録を残しておきます。 【送信先での設定】 まずはパスワードなしでrsyncするために、送信先サーバに下記の要領で/etc/rsyncd.confに追記します。rsyncdの再起動は不要です。 [USERDATA] comment=user data path=/home/user read only=false uid=user gid=user hosts allow=送信元サーバのIPやFQDN hosts deny=* 【送信元でのrsync実行】 続いて送信元でのrsync実行となります。下記の要領でrsy
以前の記事でトラブルが起きた後の初動対応を書いてみたが、いざトラブルに遭遇すると、まず再起動してからどうするか考えるケースが多いと感じている。しかし何も情報がないと『情報がない/再現方法が不明』などの理由からそのままお蔵入りになってしまう。今回はトラブルに事前に備えるために、地味だけど大切なJavaVMのオプションをまとめてみる。 GCログの出力とローテーション OutOfMemoryError発生時のヒープダンプ自動出力と出力パス設定 JavaVMクラッシュログの出力パス設定 JVMオプションの設定 (OpenJDK/OracleJDK) JavaVMにはGCおよびヒープメモリの状態をロギングする仕組みや、OufOfMemoryError時にヒープダンプを自動的に出力するような障害に備えて自動的に情報を出力する機能がある。おすすめのオプション*1は以下の通り。 java -Xms?g -
Jenkins+GradleでJavaのCIのための基本build.gradle設定 (JUnit,PMD,FindBugs,CPD,JaCoCo)JavaJenkinsgradlePMDFindBugs 私的Java開発をJenkinsでCIするためのbuild.gradleとJenkinsの設定です。要不要に応じて書き換えたり足したりが必要です。特にチェックルール。 環境 Java 1.7 Groovy 1.8.6 Ant 1.9.2 Ivy 2.2.0 Gradle 1.11 Mac OS X 10.9.2 全体の流れ Jenkinsに必要なプラグインをインストール GradleでFindBugs, PMD, CPDを実行するようbuild.gradleを作成 Eclipseでは Jenkinsにいれるプラグイン Gradle plugin - jenkins+gradle連携 Fi
注意 内容については一切保証しません。 ここでは、主に W3C ML での議論や各種仕様などに基づいて書いています。 ここに書かれていることが正しいかどうかは、自身で判断して下さい。 事実としておかしいところなどは、コメントでどんどん指摘して下さい。遠慮はいりません。 ただし、このエントリでは「form が PUT/DELETE をサポートするべきかどうか?」の議論はしません。 「REST の是非」や「PUT/DELETE の意義」についても議論する気はありません。 ここでやっているのは、あくまでもどういった議論の末現状があるのかの調査です。 そうした意見がある場合は、 W3C などに投稿するのが最も有益だと思います。 History 2014/03/29: 公開 2014/03/29: XForm と XHTML の関係を明確化(thanx koichik) 2014/03/29: HT
AWSなど様々な環境でサーバを管理してくると、すべて同一の監視ツールを使うのがなかなか難しくなってきます。そんなこともあり、私も定期的にいろいろな監視ツールを試しています。 http://nanapi.co.jp/blog/2013/09/11/monitor_nanapi_servers/ nagiosとクラウドの相性が悪い! 監視するには様々なツールがありますが、その中でも特に有名なツールはnagiosでしょう。古くから使われているツールで、プラグインも数多くあり様々な監視を行うことができます。 クライアント側にnrpeをインストールすることで、各ホストの詳細の状態まで監視することができますし、うまく活用すればかなり細かい監視までできます。 しかし、AWSのようなクラウド環境で使うには非常に使いづらいです。というのも、nagiosはサーバ側にどのホストを監視するのかという情報を持たなけ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く