タグ

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

  • Windowsで作ったzipファイルをMacで展開するとファイル名が文字化けする問題 - kuenishi's blog

    の商習慣として未だに残っているのが「ファイルをまとめてzipで渡す」というやつである。数年前までビジネスで使われるコンピュータはWindowsがデファクトスタンダードだったので、zipファイルを作成するのも、展開するのも同じソフトウェアを使っていたから特に問題が起きることはなかった。古き良き時代であるが、近年ではMacOSも普及し、ビジネスでファイルをやりとりするのに使えるようになってきた。複数のOSが併用されるようになったが、相変わらずファイルのやりとりはzipで行われるという商習慣の形として残った。 私の意見はそもそもそういう商習慣を撤廃するべきだということに尽きるのだが、家族を養う手前既存の商習慣に従わなければならない。そしてここ数年は、仕事でもMacOSを使っている。MacOSWindowsの間でファイルをやり取りするときの問題その1は暗号化zipである。問題その2は表題にあ

    Windowsで作ったzipファイルをMacで展開するとファイル名が文字化けする問題 - 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
  • GPG鍵を作って運用し、Git(hub)やMercurialで自分が書いたコードに署名をする - kuenishi's blog

    自分が書いたコードに署名をしておくことはプログラマの常識であり基動作です(かくいう私もメールは署名してないけど…)。なので私も一人前のプログラマになるべく、自分が書いたコードに署名をするようにしてみた。 GPG 鍵を作ったり準備したり GnuPGのインストール@MacOS $ sudo port install gnupg 鍵をつくります。有効期限は2年間。もし秘密鍵が漏れた場合でも、2年経てばほとぼりが冷める。 $ gpg --gen-key gpg (GnuPG) 1.4.20; Copyright (C) 2015 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent p

    GPG鍵を作って運用し、Git(hub)やMercurialで自分が書いたコードに署名をする - kuenishi's blog
  • 転職エージェントについて - kuenishi's blog

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

    転職エージェントについて - kuenishi's blog
  • 長時間作業するための快適そうなキーボードまとめ - kuenishi's blog

    学生時代は大学の情報センターにHHKBが常備され、研究室でも HHKB Pro2 をずっと使っていた。前職時代に手首に違和感を感じたこともあったが、今の職場で同僚が Kinesis を使っていたので 在宅勤務環境を整備した - kuenishi's blog の際に私も Kinesis を使うことにした。私自身特に肩凝りで悩んだことはなかったのだが、これで随分ラクになったものだ(騒音は大きくなったが)。さて山口君が ErgoDoxを購入して人生がバラ色になった - YAMAGUCHI::weblog のを皮切りに、某所で多くのキーボードが取り上げられた。私自身次のキーボードを買うまでに覚えておけるわけがないので、ここにそれをまとめておくことにする。 私自身は打鍵感に特に拘りはなくて、肩がある程度開くようになっていればそれなりに満足して使える。プログラムを書くことは多いけど、文字をタイプする

    長時間作業するための快適そうなキーボードまとめ - kuenishi's blog
  • クラウド時代の分散データベースを支える技術の応用と進歩 - kuenishi's blog

    teespring.com 分散データベースというのは、それ単体でもとても難しい、データベースと、分散システム双方の技術の粋を結集して実現されるアプリケーションだ。これをサービスといったり、ミドルウェアといったりする場合もあるが、今回は技術を応用してつくったものという意図でアプリケーションと位置づけることにする。まあ古くて新しい問題で、死屍累々の世界でありながら、それでいて金の鉱脈でもある世界だ。イカのようなトピックを概説していくことで、近年の流れをメモしておきたい。 Pre-cloud era: クラウド以前の時代 BigTable, DynamoとCAP定理 MegaStore 研究: Calvin Jepsen: できたら☎してよ〜 Coordination free database Spanner: 何でもできるよ!! Kudu+Impala Next? クラウド以前の時代 Sy

  • Riak Core の紹介 - kuenishi's blog

    Erlang アドベントカレンダー 2014の23日目の記事です。 Erlang/OTPでアプリケーションを書いていると、システムを冗長化するために複数ノードでうまく協調動作するようにさせるために、Distributed Erlangの上に構築されたFailoverやTakeoverを使う場面がいずれ出てくる。しかし、これらの仕組みは、Riakのようにシステムをスケールアウトさせたい場合には不十分だ。スケールアウトするシステムの質は アクセスしたいモノの物理的な位置を隠蔽して論理的な位置でアクセスできるようにする 物理的な位置が故障やスケールアウトのために変化しても常に追跡できて同じ論理的な位置でアクセスする アクセスしたいモノが偏らず、ほぼ均等に分散されている の3点がサポートされていることだ。これだけだといろんなものが該当するが、 Riak風に翻訳すると アクセスしたいデータがどのノ

    Riak Core の紹介 - kuenishi's blog
  • Riak CS 1.5 がリリースされました - kuenishi's blog

    Riak CS 1.5.0 が米国時間で昨日、リリースされた。OSSになってから1年余りになる。このリリースは、1.4系に残っていた多くのバグをなおしつつ、いくつかのAPI追加を行ったものだ。相変わらず運用まわりの地味な機能追加が多い。また、コレは Riak 1.4系の上で動作する最後のRiak CSになるだろう。1系の集大成だと個人的には思う。思えば一年半、遠くにきたもんだ。いろいろ怒られたり、ちょっとだけ売れたり、ちょっと前には Riak CS上で今をときめくトレジャーデータのシステムが動き始めたりと… なんでこんなことを書いているかというと、このリリースのために割といろいろ頑張ったからですね。こういう風にあちこちで使われている製品のソースコードに、技術的な難しさはほとんどないとはいえかなりの量をコミットしたのは私の人生では初めてのことなので、これはまたちょっと感慨深いのであった。1.

    Riak CS 1.5 がリリースされました - kuenishi's blog
  • LINE Developer Conferenceに行ってきた - kuenishi's blog

    ふとしたことから LINE Developer Conference の存在を知り、その中の「高可用データベース」という文字列をみて高可用データベースを作っている身としては黙っていられないので行ってきた。喉がかわいたので水をもらえてよかった。 ひとつめのセッションはLINEのシステム運用。インフラは基に忠実に、無駄に安いハードウェア買って困るくらいならそこそこの値段でいいヤツ買います、ソフトウェアも同様、必要なところでは VMware vSphereやOracleを使いますといった感じだった。やはりメッセージングなのでバーストトラフィックがあるらしく、それのせいでスイッチのパケットバッファが普通に溢れてパケ落ちが発生するらしい。ふつうのTCP/IPならその後の再送はランダムに時間置いて飛ぶはずだからそんなに溢れないと思ってたんだけど、TCP周りの設定をいじったらなんとかなりそうな気もする

    LINE Developer Conferenceに行ってきた - kuenishi's blog
  • IT業界(インフラより)のみんな!アニメのBDを大人買いしてる場合じゃないぞ - kuenishi's blog

    飲み会で話していたら、この危険さに気づいている人あまりいなかったようなので。 Google Drive、激値下げ―1TBが月額49.9ドルからなんと月額9.99ドルに アマゾン ウェブ サービスがAmazon Glacierを発表 Facebook uses 10,000 Blu-ray discs to store 'cold' data その衝撃的動画 こうやってニュースを並べると聡明な諸君は気づくだろうが、ストレージの単価がほぼ同じだ。Facebookの記事はコンシューマ向けではないが、単価はそのレベルだろうと想像される*1。 Glacierは登場した当初は「すわテープドライブまでクラウド化か?」という憶測が飛び交ったが、「テープではないらしいぞ」という憶測も登場して実際のところは分からない。GMailはバックアップにデープドライブを使っていたらしいが今でもそうなのかは分からない。

    IT業界(インフラより)のみんな!アニメのBDを大人買いしてる場合じゃないぞ - kuenishi's blog
  • なぜ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
  • データベースエンジニア養成読本のRiakのとこを書きました - kuenishi's blog

    養成読シリーズの最新作、データベースエンジニア養成読の、Riakの章を書きました。もともと10ページ程度といわれていたのですが、つい暴走してしまいちょっとオーバーしてしまい12ページちょいほどになりました。Riakの全てを書くにはあまりに短い(ていうかそういうのはソースコード見てください)のですが、数ある分散する系データベースのなかでもRiakだけが取り上げられ、原稿を書かせていただいたのはとても光栄であります。 そういうわけで、入門としつつも、実際にデータベースを選定してアプリを開発する立場になって書いてみました。アプリ側への負担を最低限にしつつ可用性とスケールアウトを求めるためにはベストなデータベースなので、アプリ側への負担や運用のポイントなどを書いて、ノリでRiakにしてみたけどやっぱりうちのアプリには合わなかった…みたいなことが起きないように、トレードオフになっている内容をなる

    データベースエンジニア養成読本のRiakのとこを書きました - kuenishi's blog
  • 【緊急】 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
  • メモリリークとは何か - 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
  • ./configure地獄に陥っている君へ - kuenishi's blog

    C++やCでプログラムを開発しているときに、依存ライブラリやら何やらの環境を沢山用意したくなりますよね?富豪ならここでVMware ESXiやKVMを使うところでしょうか。LLerなら、たとえばRubyPythonにはrbenvやvirtualenvがあります。FreeBSDを使っている人ならjailを使う場面ですね。ちょっと器用な人ならchroot(8)を使いこなしているかもしれません。しかしjailは私には窮屈だし、情弱な私はまさに今pficommonやらで困っていました。つまり、 ユーザ空間で 大して苦労もせずに いろんなUnix系OSで どんなものが入っていてもとりあえず 環境をコロコロ切り替えたいのです。これを手作業でやろうとすると沢山の環境変数をシェル毎に毎回exportする羽目になります。ld_configとか( ゚Д゚)ハァ?という感じですよね。rvmなんかよくできている

    ./configure地獄に陥っている君へ - kuenishi's blog
  • 1