タグ

ブックマーク / kuenishi.hatenadiary.jp (19)

  • P言語の素晴らしさについて - kuenishi's blog

    先週Microsoft社がP言語に関するブログ記事を公開し一部界隈で話題となった。 P言語くん pic.twitter.com/uULzxIO4ct— Kuntaro Ishiyama (@_iamkuntao) 2017年3月26日 「いまさら一文字言語かよ…」「何個目だ?」といった批判的諦念的なものから、「RustGoとErlangの間の子みたいなのだなあ」「なんか読みにくい」といった反応が多くこの言語の重要性やインパクトに対して正しく理解しているものがあまりなかった。尊敬しているTD勢ですらあまり重要性が伝わってないようだ 1 2 。上記のブログ記事を読んだり、マニュアルを読んだらすぐ分かるようなことではあるが、日語で解説しておこうと思う。なおいわゆる言語入門とかそういった類のものではないことをご理解いただきたい。 TL;DR 並行処理や分散システムの形式証明や形式検証はそれ自体

    P言語の素晴らしさについて - kuenishi's blog
  • あなたの知らない time(1) の世界 - kuenishi's blog

    自分が書いたプログラムのメモリ使用量を測定したいことがある。プログラムがOOM Killerによってお亡くなりになった場合や、ページフォルトをなくして高速化したい場合などだ。定常的に起動するサーバーのプログラムなら、sarや meminfo など(今なら Datadog とかだろうか)を使ってじーっと見つめるわけだ。もっとモダンにやるなら perf や DTrace を使ってもよいかもしれない。しかしこれらのツールは基的にプロセスIDを渡してサンプリングして外から覗く方法だ。 わたしのユースケースはデーモンプロセスではなく、 main から入って必要な計算をして、それが終わったら main を抜けるバッチジョブ(単にコンソールから実行して終わるまで待つ、いわゆる "Hello world!" 的なやつ)だ。これだと、プログラムが起動して終わるまでそこそこの時間で終わってしまって、外部プロ

    あなたの知らない time(1) の世界 - kuenishi's blog
  • 転職エージェントについて - kuenishi's blog

    さて先日いくつかの転職エージェントと接触したので、その経緯や結末をうまくボカしつつここに記しておくことにする。日曜の午後のヒマつぶしになると幸いである。 狭い業界、知り合いの方が多いのだがなぜ転職エージェントにアクセスしてみようと思ったかというと、実は世間は広くて、私の知らない面白いことをやっている会社が沢山あるのではないかとふと不安に駆られたからだ。このままでは大海を知るためには、結局アメリカや欧州へ渡るしかなくなってしまう。このままでは拙い。酔っていたせいでもある。ある日思い立って、Gmailを "Opportunities" とかそういうので検索しまくって、適当にメールをいくつかのエージェントに送った。夜中に酔った勢いで書いたものだから、短く簡潔で素晴らしいメールになった。 Thank you for reaching out to me. I'm getting more inte

    転職エージェントについて - kuenishi's blog
    a2ikm
    a2ikm 2016/05/22
  • 分散プログラミングモデルおよびデザインパターン - kuenishi's blog

    同名の某記事について。僕がタイトルから想像する期待を、なんだか意外な方向に裏切ってくれた記事であった。批判するだけではよくないので、同じタイトルで僕ならどういう話になるか…という話をしよう。絵のない長文だ覚悟して読め(ΦωΦ)フフフ…。 分散プログラミングモデル プログラミングモデルとはなんであろうか。 …CもJavaもMPIも登場していない1972年の論文を持ってこられてそれがオリジナルだみたいなこと言われてもえー…って感じで、Flynnの1972年の論文は並列計算やHPCの方面へ非常に大きな影響を与えていると思う。ただしそれはCPU内の話であって、時代が進むと共にたとえば牧野先生の日記「並列計算機のプログラミングモデル」で書かれているような議論につながるといえば繋がるには繋がるが、このレベルで計算を並列化する議論にしか応用できない。せいぜい、プログラミングモデルとひとくちにいっても様々

  • リアルタイムとバッチの違い - kuenishi's blog

    昨日、分散DB読書会のあとに品川のラーメン屋でリアルタイムとは何ぞや〜みたいな話になった。自分の思いついたポエムをここに書いておこう。現場の問題とはあまり関係がない。 Stream Data Processing: A Quality of Service Perspective (Advances in Database Systems)というによれば、DSMS (Data Steram Management System) とDBMS (Database Management System)の違いは、クエリを発行するデータ集合の性質にある。つまり、DBMSは今ある有限のデータに対して操作を行うための仕組みで、DSMSはこれからやってくる無限のデータに対して操作を行うための仕組みと定義されていた。このDSMSというやつは、古式ゆかしいストリーム処理システムのことで、まあいわゆるCEP

    リアルタイムとバッチの違い - kuenishi's blog
  • Netflixのモダンなクラウドベースのプラットフォーム - kuenishi's blog

    生活リズムが乱れることがしばしばあって、たとえば遅くまでプログラミングの仕事やネットサーフィンをすると脳が興奮してなかなか寝付けない。もともと寝付きが悪くて、遠足の帰りのバスも一人だけずっと起きてるような子供だったのでまあ仕方がない。さらに歳のせいか、連続して睡眠できる時間が短くなり、パフォーマンスの低下につながることが多くなった。 そこで真人間を目指していくつか施策を打っているのだが、そのひとつが布団のなかでPodcastを聞くというものだ。これは @omo2009 さんがTwitterでLeslie Lamportのインタビューの話をしていて、聴いてみたら思っていたより面白かったのがきっかけである。 そういうわけで、ちょっと眠れなそうな夜には、イヤホンを寝室に持ち込んでこのIEEEのPodcastを聴くことにしている。他にもいくつかチャンネル登録しているものがあるのだけど、それはいい話

    Netflixのモダンなクラウドベースのプラットフォーム - kuenishi's blog
  • 日本のデータベース系のコミュニティ、なぜイマイチ盛り上がらないのか - kuenishi's blog

    11月の19,20日に開催されたWebDB Forumに参加してきた。カンファレンスそのものは、いろんな人に久しぶりに会えたり、ネット上でなんとなく知っていても話したことなかった人と話したり、意外な人の意外な一面をみることができたりと、とても楽しむことができた。立場としては所属している会社のスポンサー枠で参加して目的もあって発表もしてきたわけだが、いくつか思うところがあるのでここにまとめておきたい。 現実にアカデミックで起きていること WebDB Forumと銘打ってはいるものの、データベースに関する研究発表は非常に少ない。OSやネットワーク、システム系の研究と併せても、機械学習NLP、Webなどの技術に感心を持つ人は多く数で圧倒されている。体感では 90% だ。それをいえば別に VLDB や SIGMOD などのトップカンファレンスもデータベースの技術を直接扱うことは少ないし、データベ

    日本のデータベース系のコミュニティ、なぜイマイチ盛り上がらないのか - kuenishi's blog
  • 遅ればせながら「「特許庁業務・システム最適化計画」の改定について」について - kuenishi's blog

    Slashdotでみた56億円返還の件で興味が湧いて調べていたら、 「特許庁業務・システム最適化計画」の改定についてというやつを見つけたので目を通してみた。一度失敗したプロジェクトをどう再出発させるのかということと、実社会に直接影響を与えるこのシステムがどういう風になっていくかに興味があるからだ。 28枚という短い文書だが、短いだけに情報が凝縮されていてとても面白い。リンクされているPDFの文書は、平成25年3月という、一作年度末に書かれたものであることがわかる。この文書は、改定前の失敗とかそういったことには一切触れない。おそらく改定前のものと比べながら読んだら非常に味わい深いものになること請け合いであるが、ここではとりあえず措くこととする。 まず、特許庁の業務は大きく分けて、受付発送、方式審査、実体審査、登録、公報発行、審判の6種類があること、そのために平成2年に世界で初めて電子化された

    遅ればせながら「「特許庁業務・システム最適化計画」の改定について」について - kuenishi's blog
    a2ikm
    a2ikm 2014/08/04
    “情報システムに払う金はコストではなくて投資になっていくべきだと思っている。つまり、ハードやネットワークのコストは当然下がっていくが、ソフトウェアや運用にかかる金額はもっと上がっていくということだ。”
  • ひとりでやるRiak Advent Calendar 2012 day5 - REST API編 - kuenishi's blog

    さて今日はREST API編。今日から三日間は今日のセミナーで離した内容を引っ張れるのでいささか楽であります(スライド)。RESTといってもPUTとかGETとかDELETEしたら終わりだと思ってるアナタ、僕もそう思ってたよ!しかし現実はそんなに甘くない。 PUT Riakは当然立ち上げた?いえーい常識だね。まずは http://localhost:8098/ping でOKが返ってくることを確認しよう。 $ curl http://localhost:8098/ping OK OKがきたかな?OKなら準備OKだ。こんどは サンプル画像その1をダウンロードしてriak.pngという名前で保存しておこう。次にサンプル画像その2を、右クリックからそのままtest_image.jpgという名前で保存しておこう。そして、これらの画像をRiak上に保存だ。 $ curl -X PUT http://l

    ひとりでやるRiak Advent Calendar 2012 day5 - REST API編 - kuenishi's blog
    a2ikm
    a2ikm 2014/03/14
  • なぜErlang/OTPなのか - kuenishi's blog

    このテーマ自体はさんざん語り尽くされていることである。たとえば山口君によるWhy Erlang? というブログ記事の翻訳や、戦闘機Programming Erlang: Software for a Concurrent World (Pragmatic Programmers))を読めば世間でいわれていることはよく分かる。もしくは、同僚が最近書いたソフトウェアデザインの記事を読んでもらってもよいだろう。 Software Design (ソフトウェア デザイン) 2014年 02月号 [雑誌] 出版社/メーカー: 技術評論社発売日: 2014/01/18メディア: 雑誌この商品を含むブログ (3件) を見る 私自身もErlangに出会ってから5,6年が経とうとしているが、当初はそのよさがよくわかっていなかったように思う。しかし、仕事で高可用性が要求される複雑な分散システムに携わるよう

    なぜErlang/OTPなのか - kuenishi's blog
    a2ikm
    a2ikm 2014/02/17
  • 筑波大学でデータベースの話をしてきました - kuenishi's blog

    筑波大学の川島先生に呼ばれて木、金と情報システム特別講義Dというやつに参加してきた。こんなことになるとは思っていなかったが、あろうことか講師側で呼ばれてしまい、思えば遠くへ来たものだと感慨深い。フリは「RiakとNoSQLの話をしてもらえたら」という非常に自由度の高い内容なので、せっかくなので僕の知っていることを全部詰め込んで話してやろうと思ったら10分延長してさらにスライド10枚分くらいを消化不良で終了という、みっともない感じになってしまった。かなり端折ってポイントだけ説明したので流れが分からず苦労した方も多いと思うが、まあ僕の性格なので許してほしい。データベースの講義をひと通り終えた院生レベルを想定してスライドを作ったので、もしかすると、わりと難しかったり分かりにくかったりするかもしれないので、わからないことがあったら適当に質問してください。 言いたかったことの流れを僕なりにまとめると

    筑波大学でデータベースの話をしてきました - kuenishi's blog
  • node.js vs Erlang (ネタ) - kuenishi's blog

    ついぞ最近node.jsなんてのがでて、繁華街のあちこちでチヤホヤされてる。そんなときに、モヒカン族Erlang村(erlang-questions)に「node.jsってどうなの?」的燃料が投下されたわけですよ。これは炎上しそうだ…と追いかけてたら、ネタどころか案外真面目なハナシばっかりだったのですが。まずは真面目に問いかけをする純朴な成年(想像)。 「Erlang好きだし使ってるんだけど、Erlangとnode.jsてそれぞれどういうジャンルがすごいの?RabbitMQとかejabberdみたいなのつくろうとしたらどうなるの?簡単なチャットサーバーつくるくらうならnode.jsのが断然簡単だよね?分散システムで使うなら断然違うとか? Ulf Wigerによると、ブロックする関数の問題を簡単に解決してくれるとか書いてあるみたいだけど (link)」 おっお。素直な質問。これはみんな釣られ

    node.js vs Erlang (ネタ) - kuenishi's blog
  • ソフトウェアデザイン 10月号はRiakでの全文検索の話です - kuenishi's blog

    まだやっとるんかい、というツッコミをいただきそうですが、ソフトウェアデザイン10月号にRiakでまた記事を書きました。今回はRiakで全文検索をする、というか、JSONログを掘るはなしです*1…が、記事を書いた時と若干手順が変わっているので補足。 Software Design (ソフトウェア デザイン) 2013年 10月号 [雑誌] 出版社/メーカー: 技術評論社発売日: 2013/09/18メディア: 雑誌この商品を含むブログを見る これを書いたときは0.8.0が最新版だったのですが、いまは0.9.0がリリースされていて、インストールの方法が変わっています。そして、年内に出る(と期待される)Riak 2.0の開発ブランチにすでにマージされていて、いくつか変わっています。 設定ファイルのフォーマットが変わった こう、ものすごく…ふつうの.iniフォーマットっぽい感じになっています。どれ

    ソフトウェアデザイン 10月号はRiakでの全文検索の話です - kuenishi's blog
    a2ikm
    a2ikm 2013/09/16
  • memcached API で Riak を叩けるようになりました - kuenishi's blog

    その名もダイコーン。まずはget, set, delete だけなんですが、とりあえず適当に作ってもMemcachedの速度の1/40くらい出ます。そのうちいろんなデータベースのAPI備えて、クライアント側を書き換えなくてもRiakを叩けるようにしたいなーと思っています。memslapの結果だと $ ./clients/memslap --servers=localhost:11211 --non-blocking --concurrency=10 とすると memcached dicorn/mem dicorn/riak 1.987 2.705 88.487 てな感じです(単位は秒)。 構成としては1プロセスで動くただのプロキシで、メモリもCPUもほとんど使いません。Memcachedがいたところに代わりに立ち上げて、Riakの場所を教えてあげるとそれだけでMemcachedとして動いて

    memcached API で Riak を叩けるようになりました - kuenishi's blog
  • メモリリークとは何か - 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
  • そろそろGoについて一言いっておくか - kuenishi's blog

    昨日、GoCon(ごうこん)なるイベントに参加してきた。以下に続く話は5割以上がフィクションなので虚実織り混ざっている様を楽しみながらお読みいただけたらと思う。 最初に発表されたニュースを聞いたときは、Goはよい車輪のよい再発明で、結局GoogleC++Javaを使い続けるだろうし、世間はGoogle独自言語としてみなすのだろうなという予感はあったし、2010年だから2011年ころはそういう見方をされていたように記憶されている。私もそういうものだと思っていたし、特に関心を持つこともしなかった。いま思えば正常性バイアスだったのだろう。 実際に昨日のカンファレンスで一番興味深かったのは鵜飼さんによるGoの解説だった。比較対象がC++, Python, Javaだったことが最も印象的で、普段からErlangやOCamlといった関数型言語に接していた身として新鮮だった。話を聞くうちにGoogl

    そろそろGoについて一言いっておくか - kuenishi's blog
    a2ikm
    a2ikm 2013/04/14
  • 【緊急】 Riak Cloud Storage が OSS になりました【速報】 - kuenishi's blog

    BashoのRiak CSがオープンソースになり、さらに、同時に Riak CS 1.3.0 がリリースされました。Riak CSの日語の紹介もあります。概要を知りたいというひとは第五回クラスト研の僕の発表スライドもよいかと思います。 今まではトライアル版と申しこめば無料で使えていましたが、これからはバグを見つけたりすると自分で直してPull Requestすることができるようになります。素晴らしいですね。Bashoジャパンで開発した機能もいくつか入っているらしいですよ。 ドキュメントにあまり時間をかけられなかったらしく(他人ごと)、公式のドキュメントもなかなかなので、ヒジョーにニッチなQuickStartをここに書いておきます。もう開発者向けといっていいレベル。Tarballも配布されると思うので特に心配はしていません。基的には公式のQuickStartと同じですが、ちょいと長いので

    【緊急】 Riak Cloud Storage が OSS になりました【速報】 - kuenishi's blog
    a2ikm
    a2ikm 2013/03/21
    S3と同じAPIってのがよさげ
  • ひとりでやるRiak Advent Calendar 2012 day15 - fluent-plugin-riakで快適ログ生活 - kuenishi's blog

    さてそろそろネタも切れかけ…てない!!まだまだある!! みなさんご存知&大好きFluentdは、簡単にログを拾うことができて、しかも集めたログをS3やらHDFSやらいろんなところに書き出せるというスグレモノ。当然だけど、Riakにはまだ書き出せない(Riak CSには書き出せるよ!)。大抵のユースケースだと、長期間の分析用途にはHDFSに貯めつつ、短期間の分析用にはMongoDBに書き出すというのが鉄板だと思う。 Riakはその間くらい、Hadoopを運用する体力はないけどMongoDBじゃスケール感が足りないという人に割と合うんじゃないかと思って作ってみた。fluent-plugin-riakは、fluentdから出てくるログをいい感じでRiakに書き出すことを目指している。Riak自体は実績のあるソフトウェアなので、例えばTBからPBくらいのオーダーなら、データの保存はこなせる。クエリ

    ひとりでやるRiak Advent Calendar 2012 day15 - fluent-plugin-riakで快適ログ生活 - kuenishi's blog
  • Riakについてちょと調べたよ - kuenishi's blog

    Python Hackathon #3で、今手元で作っているモノのバックエンドに使えないかなぁと思ってRiakを調べてみたのでメモ。Riakは、bashoが作っているDynamoクローンにHTTP/JSONなインターフェースを出して、MapReduceもできるようにしたというキワモノ。でもConsistent HashingとMapReduceって激しく相性悪いと思うんだけどどうなっているんだろうという辺りが疑問点。 とりあえずインターフェースはJSON/HTTPだけど、Erlang APIもある。 Riak's primary programming interface is JSON over (RESTful) HTTP, which is as close as you can come these days to a universal language and protocol

    Riakについてちょと調べたよ - kuenishi's blog
    a2ikm
    a2ikm 2011/12/04
  • 1