Hatena::ブログ(Diary)

(ひ)メモ このページをアンテナに追加 RSSフィード

2007-09-30 (Sun)

カレーはのんでものまれるな

まるでcurry oceanに浮かぶ小さなrice island。そんなすてきな1枚をパチリ。

f:id:hirose31:19700101090056j:image

2007-09-28 (Fri)

第3のmemcachedクライアントライブラリ (C言語)

C言語のmemcachedクライアントライブラリは、

の2種類が存在していたのですが、第3のライブラリがリリースされたようです。

So why implement another C client library? (since that is the first question I expect some one to ask)


1) The libmemache library I was using for a while for the MySQL memcached storage engine leaks memory and after toying with it I decided I didn't want to fix it.

2) The APR one has the drawback that its the APR. I don't need/want the entire APR and I don't really want to deal with the Apache License either (great license, I use it myself, but not what I want)


So I wrote one for myself :)

libmemcached C client library

作者のBrian Akerさんは、件のメールでもふれているようにmemcache_engine (MySQLのストレージエンジンとしてmemcachedを使う実装) の作者であり、また、MySQL ABのDirector of Architectureという肩書きももっている方のようです。

先日行われたMySQL Users Conference Japan 2007でも多くのセッションを持っていました。



個人的には、今までlibmemcacheを使っていたのですが、次の機会にはlibmemcachedをちょっとの試してみようかなと思ってまんす。

2007-09-26 (Wed)

『日経ソフトウエア』に青いショートカットの女の子が出ています

超絶たまたま、『日経ソフトウエア 2007年11月号』を手に取って「特集1:プログラムの仕組み完全理解 」という記事をみました。

件の特集のサンプルPDFが、

にあります。サンプルPDFでは1カットだけですが、本誌のほうは何カットもあります。

香川のこんにゃくに次いで今日、2番目におもしろかったです。本屋でほんのスライトリィ吹いちゃいました。

2007-09-20 (Thu)

sarge → etch

2007-09-19 (Wed)

Google ドキュメントの「プレゼンテーション」でリモート参加

Google ドキュメントのプレゼンテーションがよさゲ臭。

  • 発表を共有できる
  • 進行役(プレゼンテータ)と視聴者
  • 進行役がページを繰ると、視聴者の画面もそれに応じてページが変わる
  • テキストチャット機能もある
  • 発表後の資料はそのまま公開

音声を別の手段で共有すれば(Google TalkとかSkypeとかなんとか)、プチ勉強会的なものを、地理的な制約なしでカジュアルにできそげ。

ustreamを併用すれば、音声+演者のみぶりそぶりも共有できるのでよりイイかも。


pptをアップロードしてインポートする機能もあるんすけど、試しに手元のpptをうpしたら何度やっても「このドキュメントをアップロードできませんでした。」でした。残念また今度。あと、Safarはいまのところ未対応だそうで。


プレゼンのページ中に0x0のswfファイルが埋め込んであって、これは、Web版のGoogle Talkのswfと同じ。なので、テキストチャットはGoogle Talkベース(ということはXMPPか)なんではないかと思います。

おおおおーかっとw

2007-09-12 (Wed)

ESI - Edge Side Include

I've been working on implementing a ESI (Edge Side Include) Proxy caching server. The idea is very similar to SSI (Server Side Include), except the includes are remote instead of local.

Listing Keys in Cache ??

ほーほー

ほーほーほー

2007-09-10 (Mon)

AllowEncodedSlashesはVirtualHostの中で指定する

トップレベル(server config)でOnにしてもVirtuallHostん中のハンドラには効果がなかった(なんでだろね?)んで、VirtuallHostの中でOnにしたす。

Apache 2.2.6。深追いはしておらず。

Yahoo! Pipesで文字化け

レスポンスヘッダが

  • Content-Type: text/xml

なフィードが化けてたので、proxy的なものをこさえて、

  • Content-Type: application/xml

or

  • Content-Type: application/xml; charset=utf-8

にしてPipesに流したら文字化けなおった。

追記

んー ばけたりばけなかったりするなぁ。。。

2007-09-09 (Sun)

指標としての、PV数の単位時間

単位時間によって推し量れるモノがまったく異なるんすよね。

月間nPVとかnPV/日とか
サイトの規模、人気度。
PV/秒
総体システム(=アプリ+インフラ)の性能。

なので、

  • システムの性能目標値としてPV/月とかPV/日の値を提示される
  • エンジニアと話をしててPV/秒の値を把握してない

とかとかいう場面に遭遇すると、困惑してしまうのです。

続きを読む

2007-09-06 (Thu)

ゎゎゎヮ

はずかしながら、こういう文字があるということを今日知りました><

2007-09-05 (Wed)

ファイルシステムはどれがいいかなー

用途にもよると思うけどつらつらと。なにでmkfsするのがナウいんすかねー

ext3

モダンじゃないけど枯れてるので安定性は期待できるかも? 無難な選択。候補その1。

ext4

まだexperimental。将来的には有力候補か?

XFS

いいような気もするので候補その2。

かなりニッチなニーズだけど、ファイルのタイムスタンプがナノ秒まで保持できるのがいい。

"citation needed"となってるものの、こういう記述が。

XFS delays allocation and ordering of meta-data and data flush to disk. XFS may choose not to write data to the disk when it is received, so loss of data during crash is more likely.[citation needed]

XFS - Wikipedia

ググれば同様の「XFSは信頼性の高いハードウエアでの使用を想定されてるので、対クラッシュはあんま重要視してない」的コメントが散見される。

個人的には、過去(覚えている範囲で最近だとkernel 2.6.17ぐらい)何回か致命的なバグがあったので、若干、信頼度は低め。

ReiserFS 3

inodeの上限がないのがいい。

深追いしてないすけど、fsync(2)してもディスクにちゃんと書き込まれる前にリターンする気がするのでちと怖い。

ファイルが多い場合、壊れてreiserfsck --rebuild-treeするともうれつに時間がかかる。

開発者自身に関してはコメントを控えます。


ReiserFS 4

使用経験なし。

JFS

使用経験なし。

ZFS

使用経験なし。

Linuxの場合はライセンスの問題でFUSE経由での使用となるため、パフォーマンス的に不利か?

2007-09-04 (Tue)

行末の無駄なスペースなどを強調表示 - develock.el

エディタで行末に存在するスペースを強調表示する設定。

今流行の.emacs & .vimrc - グニャラくんのグニャグニャ備忘録@はてな

Emacsだと、

がよさげです。

こんな感じ:

f:id:hirose31:20070904011315p:image:right


こんだけ目立てばインデントおかしなコードを書くのを防げます。が、副作用として他人のコードをかたっぱしから直しなくなるので注意が必要です。

ついでにそのほか色関連のを晒します。

(defun recenter-and-fontify-buffer ()
  "comment..."
  (interactive)
  (recenter)
  (font-lock-fontify-buffer))
(define-key esc-map "\C-l" 'recenter-and-fontify-buffer)

;; カーソル位置のfaceを調べる関数
(defun describe-face-at-point()
  "Return facce used at point."
  (interactive)
  (message "%s" (get-char-property (point) 'face)))

;; develock
;; http://www.jpl.org/elips/
(require 'develock nil t)
(if (featurep 'develock)
    (progn
      (setq develock-max-column-plist
            (list 'java-mode  90
                  'jde-mode   90
                  'emacs-lisp-mode 90
                  'lisp-interaction-mode 90
                  'html-mode  nil
                  'html-helper-mode nil
                  'cperl-mode 90
                  'perl-mode  90))
      (let ((elem (copy-sequence (assq 'message-mode develock-keywords-alist))))
        (setcar elem 'html-helper-mode)
        (setq develock-keywords-alist
              (cons elem (delq (assq 'html-helper-mode develock-keywords-alist)
                               develock-keywords-alist))))
      ))

;; izonmoji-mode from navi2ch
(require 'izonmoji-mode nil t)
(if (featurep 'izonmoji-mode)
    (progn
      (defface my-izonmoji-win-face
        '((((class color) (type tty)) (:foreground "cyan"))
          (((class color) (background light)) (:foreground "cyan4" :strike-through "cyan4"))
          (((class color) (background dark))  (:foreground "Aquamarine3"))
          (t (:underline t)))
        "Windowsの機種依存文字のフェイス。")
      (defface my-izonmoji-mac-face
        '((((class color) (type tty)) (:foreground "magenta"))
          (((class color) (background light)) (:box (:line-width 1 :color "SteelBlue3") :strike-through "SteelBlue3"))
          (((class color) (background dark))  (:foreground "pink3"))
          (t (:underline t)))
        "Macの機種依存文字のフェイス。")
      (setq izonmoji-win-face 'my-izonmoji-win-face)
      (setq izonmoji-mac-face 'my-izonmoji-mac-face)
      ))

;;; タブ、全角スペース、行末のスペースに色を付ける
;;; http://www.bookshelf.jp/soft/meadow_26.html#SEC313
;;; http://homepage1.nifty.com/blankspace/emacs/color.html
;;(defface my-face-r-1 '((t (:background "gray15"))) nil)
(defface my-face-b-1 '((t (:background "gray26"))) nil)
(defface my-face-b-2 '((t (:background "gray70"))) nil)
(defface my-face-u-1 '((t (:foreground "SteelBlue" :underline t))) nil)
;;(defvar my-face-r-1 'my-face-r-1)
(defvar my-face-b-1 'my-face-b-1)
(defvar my-face-b-2 'my-face-b-2)
(defvar my-face-u-1 'my-face-u-1)

(defadvice font-lock-mode (before my-font-lock-mode ())
  (font-lock-add-keywords
   major-mode
   '(("\t" 0 my-face-b-2 append)
     (" " 0 my-face-b-1 append)
     ("[ \t]+$" 0 my-face-u-1 append)
     ;;("[\r]*\n" 0 my-face-r-1 append)
     )))
(ad-enable-advice 'font-lock-mode 'before 'my-font-lock-mode)
(ad-activate 'font-lock-mode)

(defun toggle-colorful-space()
  "toggle while space font-lock"
  (interactive)
  (if my-face-b-1
      (progn
        (setq my-face-b-1 nil)
        (setq my-face-b-2 nil)
        (setq my-face-u-1 nil)
        (if (featurep 'develock)
            (develock-mode 0)))
    (progn
      (setq my-face-b-1 'my-face-b-1)
      (setq my-face-b-2 'my-face-b-2)
      (setq my-face-u-1 'my-face-u-1))))


2003 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 05 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 12 |
2012 | 01 | 02 | 03 | 06 | 08 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |
2015 | 01 | 02 | 07 | 10 |
2016 | 01 | 05 | 10 | 12 |
2017 | 07 |
2018 | 05 |