タグ

2015年6月27日のブックマーク (30件)

  • 製作物 置場 - argius

    製作物について ライセンスは、独自も含めて修正BSDライセンス相当のつもりです。 ここにあるのは、今のところJavaで書いたものだけです。 ビルドに拡張ライブラリが必要なものは(今のところ)ありません。 バージョン *.9.* は、ベータ版です。 バックポートは行いません。 目次は、「活発なプロジェクト」順です。 Stew Calendar LifeGame Frui/篩 SlotMachine LogicalCircuitSimulator Stew Stewは、JDBCプログラミングのテストのために作られた、SQLクライアントユーティリティです。極力、特定のデータベース製品に依存しないように作られていますので、JDBC接続が可能であればほとんど同じように操作できます。また、コマンドラインモードとGUIモードが使えます。簡単な国際化も対応(現在は英語と日語のみ)。 Stew - ver

  • プログラマーでない人のための「共有ライブラリ」講座

    初版作成:2003/01/11 2015年時点での参考資料追記:2015/06/29 目次 前書き 題 後書き或いは感想 2015年時点での参考・推薦資料 前書き 2015年時点での、より正確で分かりやすい参考書籍の紹介を追記しましたので、そちらもぜひご確認ください。 LinuxやUNIXを扱っていると「共有ライブラリ(shared library)」「ライブラリ(library)」という言葉をしばしば耳に します。特に、最新版を使おうとソースコードから見よう見まねでビルド、コンパイルとやらをおそるおそる行っては見たものの 見事に失敗したときや、或いは上手く動かないときのログファイル中で現れることもあります。 プログラマーであれば、例え初めてLinuxに触ったとしても何となく語感だけでぼんやりと原因が想像できます。 しかしごく普通の ---つまりプログラミングなどに興味関心も無かった--

  • configureでソフトウェア固有の設定を変更してみる

    前回に続いてconfigureの設定について説明します。今回はソフトウェア固有の設定について解説します(編集部) ソフトウェア固有の設定 前回はインストールディレクトリやコンパイラの種類をconfigureスクリプトで指定する方法を解説しました。インストールやコンパイルはどのソフトウェアでも必要な作業ですから、configureが付属しているソフトウェアでは共通の方法で設定できるようになっています。今回はソフトウェアごとに異なる固有の設定について説明します。 configureで指定できるソフトウェア固有の設定は、インストールディレクトリと同様に引数で指定します。「--help=short」という引数でconfigureを実行すると、その一覧を表示できます(図1)。 Configuration of GNU Hello 2.7: Optional Features: --disable-o

    configureでソフトウェア固有の設定を変更してみる
  • ライブラリが足りなくてビルドできないときは?

    前回、Apache HTTP Serverをビルドしてみたところ、ライブラリが足りないために失敗しました。このようなときに打つ手を紹介します(編集部) configureの結果やヘルプから状況を読み取る 前回に引き続き、Apache HTTP Server(以下Apache)のビルドを実践形式で進めていきます。ドキュメントに従ってビルドを試みたところ、mod_deflateモジュールの依存関係で、configureスクリプトがエラーで停止するというところで前回は終了しました。mod_deflateモジュールを無効にすればコンパイルまで問題なく進むので、現状の問題はこの1点だけです。今回はこのmod_deflateモジュールの問題を解決していきます。 現実的に考えると、mod_deflateを使わないとはっきり確定しているなら、無効にしてそのままにしておく、というような判断もあるでしょう。こ

    ライブラリが足りなくてビルドできないときは?
  • NOSQLの新顔、分散KVS「okuyama」の機能

    NOSQLについて解説した前回の記事は、いかがだったでしょうか。今後のアプリケーションでは、増え続けるデータを扱うことが非常に多くなると思います。前回の記事が、こうしたケースに適した新たなストレージの1つとして、NOSQLを理解するきっかけになっていたら幸いです。 連載2回目の今回は、NOSQLの1つである「okuyama」の全体概要と、機能的な特徴を紹介します。 1. 「okuyama」の概要 okuyamaは、まだ聞きなれない方も多いかと思いますが、筆者が開発している分散キー・バリュー・ストアです。2009年12月ごろから開発を始めました。現在はSourceforge.jpにて公開しています。もともとは学習を兼ねて作成したため、一部のログ・ライブラリなどを除き、すべて1から実装しました。2010年1月にファースト・リリースを行い、現在はバージョン0.8.6となっています。 以降は、ok

  • ビルドツールGradleをEclipseで使うための手順 - DukeLab

    ビルドツールGradleをEclipseで使うための手順です。 Gradleは、AntやMavenのようにビルドを自動化するツールですが、 AntやMavenよりシンプルで便利な感じです。 Eclipse 4.4(Luna) WTP 英語版を立ち上げたことを前提にして説明します。 日語版でも問題ないと思います。 Help > Eclipse Marketplace > Searchで、FindフィールドにGradleを入力後、エンターキーを押します。 名前にGradleが入ったプラグインの一覧が出ますが、Gradle IDE PackでInstallボタンを押します。 Confirm Selected Featuresで、Gradle IDE Packにチェックを入れて、Confirmボタンを押します。 Review Licensesで、I accept ...にチェックを入れて、Fin

    ビルドツールGradleをEclipseで使うための手順 - DukeLab
  • GitHub - apache/hadoop: Apache Hadoop

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - apache/hadoop: Apache Hadoop
  • 新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに 今年、書いた幾つかの記事のタネであったり、新卒教育の際に参考書籍としてあげたものを中心にリストアップします。一応amazonへのリンクも貼っておきますが、先輩が持ってたりすると思うので、冬休みに借りて一気に読んでおくのもいいかと思います。 その時々、必要な技術の習得に日々追われているんじゃないかと思いますが、いつまでも使

    新人プログラマに正月休み中を使って読んでみてほしい技術書をセレクトしてみた。 - Qiita
  • ZooKeeper を使ってみる(1) - hidemonのブログ

    Hadoopのサブプロジェクトの一つにZooKeeperというのがある。分散システムを作るためのビルディングブロックとして非常に重要になってきそうなので、ちょっと調べて見ようと思う。ストリームコンピューティングシステムのS4でも使われているそうだ。どう使われているのかは知らない。 ZooKeeperとは ZooKeeperは、GoogleのChubbyを模したシステム。HadoopがGoogleのGFSとMapReduceを模したのと同じ構図だ。 じゃあ、Chubbyはなんなのか、というとこれも一言で説明するのは難しい。非常に小規模なファイルに特化した分散ファイルシステム、ということになるのだろうが、実にさまざまな目的に使われているらしい。DNS代わり、ロックサービス、サービスの死活判定などなど。ZooKeeperは一通りこれらの目的に使えるようにできているようだが、どのくらい機能的に忠実

    ZooKeeper を使ってみる(1) - hidemonのブログ
  • Java RMI 入門

    このチュートリアルでは、おなじみの Hello World プログラムの分散システム版を JavaTM Remote Method Invocation (Java RMI) を使って作成する手順を説明します。このチュートリアルを学習するうちに、関連する多くの疑問に直面することでしょう。Java RMI FAQ および RMI-USERS メーリングリストのアーカイブには、さまざまな疑問に対する回答があります。RMI-USERS メーリングリストを購読するには、ここをクリックしてください。 ここで例として紹介する分散型の Hello World プログラムでは、単純なクライアントを使用して、リモートホスト上で稼動しているサーバへのリモートメソッド呼び出しを行います。クライアントでは、サーバから「Hello, world!」メッセージを受信します。 このチュートリアルでは、次の手順を実行しま

  • いぬごやねっと

    4geek.net 2024 著作権. 不許複製 プライバシーポリシー

    いぬごやねっと
  • いぬごやねっと

    Lマウント機材で撮影された写真紹介と愛と偏見で燻製されたコラム。

    いぬごやねっと
  • メモリリークとは何か - kuenishi's blog

    メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ

    メモリリークとは何か - kuenishi's blog
  • いぬごやねっと

    4geek.net 2024 著作権. 不許複製 プライバシーポリシー

    いぬごやねっと
  • オンメモリ高速KVSをjavaのstatic変数で実現する - 開発めも2

    やりたいことは、メモリの高速さをフルに活かした超シンプルなKVS。 用途は、機械学習アルゴリズムのモデル用。 ・大量のKeyValue値を高速に読み書きできること。 ・モデルはシリアライズを使って、ファイルに保存/読み込みもできるようにしたい。 ・サーバを再起動したり、しばらく使わないときは、ファイルにしておく。 ・モデルを更新したい時もメモリ上のデータに対して高速に操作できる。 そういうシンプルで高速なオンメモリKVSが欲しかった。 しかし、以前にも書いたように、メモリの高速っぷりを活かしたシンプルなKVSはありそうでなかった。 Redisはネットワーク越しに使われることが前提とされているとかなんとかで、その辺りがボトルネックになって素のメモリ処理に比べると桁違いに遅かった。 Tokyo CabinetはTokyo Tyrantと違ってインターナル用途が想定されているものの、レコード数が

    オンメモリ高速KVSをjavaのstatic変数で実現する - 開発めも2
  • JavaでJVM言語を作ってみる - 目次 - argius note

    断片的な知識と想像に任せて、行き当たりばったりでプログラミング言語の作り方に挑戦しています。 (2012-02-11〜2011-02-27) JavaでJVM言語を作ってみる(1) - 環境を準備する JavaでJVM言語を作ってみる(2) - バイトコード解析 JavaでJVM言語を作ってみる(3) - BCELでclassファイルを作る JavaでJVM言語を作ってみる(4) - 四則演算式をコンパイル JavaでJVM言語を作ってみる(5) - JavaCCとJJTreeの導入 JavaでJVM言語を作ってみる(6) - 処理系の実装

    JavaでJVM言語を作ってみる - 目次 - argius note
  • Guavaをざっくり紹介 - ellerの日記

    Guava librariesをご存知でしょうか?Googleが開発・使用しているコアライブラリです。OSSであり簡単に入手できます。 http://code.google.com/p/guava-libraries/ このライブラリは結構多機能で、海外の著名プロダクトでもよく見かけるのですが、日のネットでの知名度はいまいち高くない気がします。もともとの名前(Google Collections)はそこそこ知名度があったと思うのですが、この差はなぜでしょうか?私の観測範囲が狭いだけかもしれませんけども……。 自分が使ってみて思った「へーこんなことができるんだー」をまとめてみますので、共感するところがあればぜひ検証してみてはいかがでしょうか。 何が嬉しいの? Guavaはできることを増やすライブラリではなく、普段やっていることを短く書くためのライブラリです。Apache commonsなど

    Guavaをざっくり紹介 - ellerの日記
  • Javaプログラマが読むべき7個のAPI実装 - Kengo's blog

    10周くらい遅れている感がありますが気にせず紹介します。なお実装はJDKによって異なる可能性があるので、お手元のJDKに付属しているコードをご覧になることをおすすめします。 java.util.concurrent.atomic.AtomicInteger ロックフリーでスレッドセーフな実装を実現ことで有名なjava.util.concurrent.atomicパッケージの代表格。そんなすごいことをどう実装しているのか?というのは誰もが1度は気になるはず。openjdk7のコードを読むとこんな感じです。 public final int incrementAndGet() { for (;;) { int current = get(); int next = current + 1; if (compareAndSet(current, next)) return next; } } C

    Javaプログラマが読むべき7個のAPI実装 - Kengo's blog
  • JVM用アセンブラJasminを触る - Kengo's blog

    自分はJVMの仕様について比較的知っている方らしいということに最近気づき、バイトコードについて人に説明するためのツールとしてJVM用アセンブラJasminの利用を検討。 バイトコードの理解があれば困らずに利用できるツールだと思うが、説明に使うには若干不足かも。CASL2シミュレータのようにスタックを見ながらバイトコードをステップ実行できることを期待していたのだが……。Javaプログラムとバイトコードの関連が見えるjadやjdの方がまだ役に立つかもしれない。 Hello, world! .class public Hello .super java/lang/Object .method public ()V aload_0 invokespecial java/lang/Object/()V return .end method .method public static main([Lj

    JVM用アセンブラJasminを触る - Kengo's blog
  • Java仮想マシンの教育用シミュレータを実装しました - Kengo's blog

    JVM内部の挙動、特にframeやoperand stackやconstant poolについて人に伝えるためのツールが欲しいと考えていました。高速で省メモリなコードを書いたりマルチスレッドプログラミングしたりするには(Javaヒープの使い方と並んで)役立つ知識ですし、Scalaなどの"JVM言語"が脚光を浴びている今だからこそJVMそのものに対する理解を深めることに意義があると考えたためです。 しかしこのへんの情報には決定版と呼べる日語ドキュメントもなく*1、いちいち紙やホワイトボードにスタックの絵を描いて説明しないと理解を得にくい状況だと認識しています。もちろんJVM仕様書を読んでもらえれば話が早いのですが、あれだけの量を喜々として読む人はそうは居ないわけで。 ということでoperand stackやlocal variableなどJVM内部の挙動を観察できるシミュレータを実装しまし

    Java仮想マシンの教育用シミュレータを実装しました - Kengo's blog
  • 「From Lambdas to Bytecode」を読んでinvokedynamicの使い方を学んだ - Kengo's blog

    @skrb氏のツイートで知った2011 JVM Language Summitのプレゼン資料のひとつ、From Lambdas to Bytecodeを読みました。ラムダ式をどうバイトコードに変換するか、そこでInvokedynamic(indy)がどう効いてくるかという話です。 今さらながらJVM Lang Summitの資料を見ている。これはおもしろい。 http://www.wiki.jvmlangsummit.com/Main_Page invokeDynamicを知りたいのであれば必見かな。less than a minute ago via HootSuite Favorite Retweet ReplyYuichi Sakuraba skrb まだ内容の7割程度しか理解できていないように感じるのですが、現段階での理解をここにまとめておきます。 内部クラスでラムダ式を実現する

  • GitHub - redis/redis: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.

    Redis is often referred to as a data structures server. What this means is that Redis provides access to mutable data structures via a set of commands, which are sent using a server-client model with TCP sockets and a simple protocol. So different processes can query and modify the same data structures in a shared way. Data structures implemented into Redis have a few special properties: Redis car

    GitHub - redis/redis: Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.
  • javaでメモリ操作 - ナンセンス不定記

    カーネルでプロテクトがかかっている(c0000005がでるはず)はずなので、メモリのどこでもアクセスできるわけじゃないけど、C言語と同レベルのことは(やろうと思えば)できる。 int x;に対して、*((byte*)x+1)みたいなこと。インスタンス変数やstatic変数はオフセットが取れるけど、ローカル変数は無理かな。 import sun.misc.Unsafe; import java.lang.reflect.Field; public class Test { private byte a = 12; private short b = 2345; private int c = 34567890; private char d = 4567; public static void main(String args) throws Exception { //Unsafe uns

    javaでメモリ操作 - ナンセンス不定記
  • JavaにREPLがやってくる - mike-neckのブログ

    表記の通り、今(2015/06/26)現在KullaというプロジェクトでREPL機能が開発されていて、Java 9で(今更ながら)搭載される予定です(jshellと呼ばれるらしい)。 以前はこのJava REPLを試すのが大変だった(@zephiransasさんのブログ記事を参照)ようですが、今はかなり簡単に、ナイトリービルドを試すことができます。Kullaのコミッターの@bitter_foxさんのブログを参考にインストールが可能です。 d.hatena.ne.jp 概要を書くと… Java 9 early access版を入手する Project KullaのJenkinsから最新版の成果物を入手する Java 9 eaにパスを通す(java -versionでjava version "1.9.0-ea"と出てくればよい) java -jar kulla-0.xxx-yyyymmddh

    JavaにREPLがやってくる - mike-neckのブログ
  • 君のための本 -- ソフトウェア開発を一生の仕事としていいのか悩んでいる開発者に贈りたい1冊:2015年版 - 思っているよりもずっとずっと人生は短い。

    (これは、『100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊』に寄稿した原稿の草稿を元に、XP完全新訳版に合わせて加筆修正したものです。なんで完成稿ではなく草稿を元にしたかというと、草稿の方が長かったため短くまとめたものが完成稿になったからです。完成稿の方は『100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊』をどうぞ。) エクストリームプログラミング 作者:ベック,ケント,アンドレス,シンシア発売日: 2015/06/26メディア: 単行 コンピュータ書を読むのが好きだ。だから「誰かに贈りたい」と言われると、たくさんのが思い浮かぶ。 たとえば君の問題が「プログラミングのスキル向上に思い悩んでいる」という話であれば、『Code Complete』辺りを勧めるだろう。プログラミング技術を10冊あげろと言われれば20冊くらいあげるかもしれない。 け

    君のための本 -- ソフトウェア開発を一生の仕事としていいのか悩んでいる開発者に贈りたい1冊:2015年版 - 思っているよりもずっとずっと人生は短い。
  • Linuxコンソールで上下にスクロールする方法 | 俺的備忘録 〜なんかいろいろ〜

    Linuxのコンソールでコマンドを打っていると、上下にスクロールしたいときがある。 そんな時は、「Shift」 + 「PageUp(Down)」でスクロールを行う事が可能だ。

  • 俺の最近のRailsのJS開発環境を教えてやる - Qiita

    はじめに railsのsprocketsがキツイ。特にjsファイルが多くなると開発がとっってもキツイ。 layoutに こうやってるだけでも出力されたhtmlにはscriptタグが30個ぐらいならんでて、ページの読み込みに10sec以上かかる。 だけど、単にapp/assets/javascriptsをgulp watchとかはしたくない。 なぜならビルドはブラウザのリロード時に変更がある場合だけして欲しかった。 あとwindow.AppNamespace以下にモジュール追加していくのも辛い。 モジュール同士の依存関係もよくわかんないし、何よりwindow.AppNamespace.Modules.UserList.ItemViewとか長すぎ! browserify-railsってやつ使ってみた browserifyがrailsの仕組みの中で動くようになる。 browserify-rail

    俺の最近のRailsのJS開発環境を教えてやる - Qiita
  • HDFS Architecture Guideを読んだ - ほげほげ日記

    HDFS(Hadoop Distributed File System)はHadoopのデータストアとして使われる分散ファイルシステムである。 「Google File System」を元に設計されている。 高い耐障害性を持つこと、高いスループットが大きな特徴である。 また、大規模データ処理に使われるため、巨大なデータを格納できるように設計してある。 以下、メモ書き。 3 NameNode and DataNode HDFSはマスタースレーブ型のアーキテクチャを採用している。 マスターノードのことをNameNode、スレーブノードのことをDataNodeと呼ぶ。 NameNodeはファイルやディレクトリの操作をとり行う。また、ブロック(後述)をどのDataNodeで作成するかを決定する。 DataNodeはNameNodeからの命令を受けて、ブロックの作成・削除・複製を行う。 4 The

    HDFS Architecture Guideを読んだ - ほげほげ日記
  • ノードの追加・削除 - kikumotoのメモ帳

    ノードの追加・削除といった Hadoop の運用面について少し調べてみたのでメモ。 ノードの追加 ノードを追加するにはだいたい以下のような手順となる。 Hadoop のソフトウェアをインストールする。 このとき、hadoop-env.sh や conf/*.xml も設定しておく。 NameNode、JobTracker ノードからパスワードなしで ssh ログインできるようにしておく。 NameNode, JobTracker の conf/slaves に追加したノードを追記する。 最後に、追加したノードで以下のコマンドを実行する。 $ cd $HADOOP_HOME $ ./bin/hadoop-daemon.sh start datanode $ ./bin/hadoop-daemon.sh start tasktracker これで、Hadoop クラスタにノードが追加され、HD

    ノードの追加・削除 - kikumotoのメモ帳
  • ひとりZooKeeperコードリーディング(1) クライアント編 - kuenishi's blog

    さて準備ができたので読み始めることにする。この手のシステムは大体の機能が分かっているならAPIを見るのが手っ取り早い。もろもろの名前でなんとなく雰囲気と使い方が分かるので下手にドキュメントだけを読み込むよりもよい場合もある。Javadocだとクラス毎になってしまうし*1慣れているのもあってC APIというかヘッダにまずは目を通す。基的には znodeのCRUD それのsync, async, w系のAPI initialize / finalize multiops (3.4+ などである。特徴的なのはZOO_SEQUENCEとかZOO_EPHEMERAL。Chubbyの論文にはEphemeral fileというのが出てくるから後者は分かりやすいけど、前者はZK特有。ACLなんかは気になるけどとりあえず質的ではないので後回し。 ZooKeeper.java というわけでExampleを

    ひとりZooKeeperコードリーディング(1) クライアント編 - kuenishi's blog