ラベル Software の投稿を表示しています。 すべての投稿を表示
ラベル Software の投稿を表示しています。 すべての投稿を表示

2010年3月26日金曜日

クリティカルスピード

コードが少なくて驚いた。

面白いかも。


リアルアンリアル 高速配信Webサーバシステムをオープンソース化

2010年2月8日月曜日

Kindle Development Kitがリリースされた

Amazon.comのヒット商品である電子書籍リーダー Kindle開発キットベータリリースされた。

今更ながら、おさらい

レベニューシェア : 開発者 70% 。Amazon 30%。

アクティブコンテントの価格設定は三種類。

  1. 無料コース
    • コンテントが1M以下で、月に100K以下の通信量なら無料でリリースできる
  2. お買い上げコース
    • 月に100K以下の通信量
  3. 月額コース
    • 毎月お支払い。

アクティブコンテントは最大で100Mまで。
10Mを超える場合は無線でダウンロードはできない。PC経由でUSBで転送する必要がある。

Kindleは無料で無線ネットワークを使えるので、それを考慮したガイドラインになっている。

Request to become a Limited Beta Developerに登録しようかと思ったけれど
「君が作ろうと思っているアクティブコンテントアプリケーションはどんなものかね?」
と聞かれた。回答必須だと。

今のところNo Idea。

2009年8月21日金曜日

virtualboxの仮想HDDをwritethroughにしてみた

VirtualBoxの仮想HDDは3つのモードがある。
GUIでは操作できないみたいだけど、コマンドラインで簡単に変更できる。
  • 普通のモード
  • スナップショットを作成できないモード
  • 再起動するともとに戻るモード
VBoxManage modifyhd --type [normal|writethrough|immutable]

仮想化したときのメリットとして、なんでも試してみて気に入らなければ気軽にロールバックしちゃうなんて使い方がある。
でも、ホームディレクトリなんかはロールバックしちゃったらもったいない状況も多々ある訳で、そんなときにスナップショットを作成できないモードにしておく。writethroughモード。

2009年8月5日水曜日

PassengerTempDirを設定したほうが幸せ?

Apache + PassengerをCentOS 5.2で稼働させているのだけれど、たまに、落ちる。
Apacheのerror_logには

The spawn server has exited unexpectedly.

とか

Exception Errno::ENOENT in PhusionPassenger::Rack::ApplicationSpawner (No such file or directory ...

と記録されている。

/tmp/passenger.????

を見てみたら・・・あれ?なんだかキレイ・・・

/tmpなのでファイルを消されちゃっても文句は言えないのかも?

ってなわけで、httpd.conf で PassengerTempDir を勝手にいじられるはずがないところに変更してみた。
この設定でしばらく様子を見てみよう。

せっかくなので、PassengerTempDirは、アプリと同じパーティションのディレクトリを指定。
ファイルアップロードでコピーじゃなくてリネームを使えるかも~?

2009年6月23日火曜日

"make install"したソフトウェアを管理できる超便利ツール「Paco」

"make install"したソフトウェアを管理できる超便利ツールPaco
へぇ~
もうちょっと早くきがついていたら、使ってみる気になったかもな~。

CentOS 5.2 で swfmill をソースからビルド

pkg-configが使えなくてちょっと苦しんだ。

libxml2-2.7.3.tar.gz を ./configure ; make ; make install
libxslt-1.1.25.tar.gz を ./configure ; make ; make install
freetype-2.3.9.tar.bz2 を ./configure ; make ; make install
libpng-1.2.37.tar.bz2 を ./configure ; make ; make install

最後に、swfmill-0.2.12.tar.gz を

patch -p 1 <>
export XML_CFLAGS=-I/usr/local/include/libxml2
export XML_LIBS="-L/usr/local/lib -lxml2"
export XSLT_CFLAGS=-I/usr/local/include/libxslt
export XSLT_LIBS="-L/usr/local/lib -lxslt -lexslt"
export FREETYPE_CFLAGS=-I/usr/local/include/freetype2
export FREETYPE_LIBS="-L/usr/local/lib -lfreetype"
export PNG_CFLAGS=-I/usr/local/include/libpng12
export PNG_LIBS="-L/usr/local/lib -lpng"
./configure
make

swfmill.cpp:395: error: ‘xslt_simple’ was not declared in this scope
こんなこと言われたので、vi +395 src/swfmill.cpp して、適当な位置に extern const char* xslt_simple; 追加。

make
su
make install
ldconfig

2009年5月25日月曜日

いまやInfernoはopen sourceなのね

懐かしい。
ベル研究所で開発された分散OS、Inferno。
今ではオープンソースになってるのね。

2009年5月4日月曜日

VirtualBox 2.2.2 released !

2009年4月28日に VirtualBox 2.2.2 がリリースされてた。
メンテナンスリリースとはいえ1ヶ月たたないうちにアップデートとは、がんばってる感がビシビシ伝わってくる。
応援したくなるなぁ~

2009年4月19日日曜日

NTEmacs 22BASE をインストール

自宅のマシンのEmacsは、公式サイトからダウンロードした22.3だったのだが、IMEパッチが適用されていないので不便だった。

普段使っている.emacsもロードできず、キーバインドになれていなくて用途が限られていた。

ようやく日本語インライン変換パッチ適用済みバージョンに差し替えたので、ついでに.emacsも書き換えてみた。
.emacs.el
;; [2009-04-19 01:25:04]

(setq inhibit-startup-message t)

(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(display-time-mode t)
'(current-language-environment "Japanese")
'(tool-bar-mode nil)
'(line-number-mode t)
'(column-number-mode t)
'(show-paren-mode t)
'(transient-mark-mode t))

(fixed-width-set-fontset "msgothic" 14)

(setq default-frame-alist
(append '((foreground-color . "black")
(background-color . "LemonChiffon")
(border-color . "black")
(mouse-color . "white")
(cursor-color . "black")
(top . 0)
(left . 1040)
(width . 96)
(height . 77)
(line-spacing . 0)
(cursor-type . box))
default-frame-alist))

(setq-default tab-width 4 indent-tabs-mode nil)

;;(add-hook 'c++-mode-hook
;; '(lambda()
;; (c-set-style "cc-mode")
;; (c-set-offset 'innamespace 0)))

(defconst my-c-style
'((c-tab-always-indent . t)
(c-comment-only-line-offset . 4)
(c-hanging-braces-alist . ((substatement-open after)
(brace-list-open)))
(c-hanging-colons-alist . ((member-init-intro before)
(inher-intro)
(case-label after)
(label after)
(access-label after)))
(c-cleanup-list . (scope-operator
empty-defun-braces
defun-close-semi))
(c-offsets-alist . ((arglist-close . c-lineup-arglist)
(substatement-open . 0)
(case-label . 4)
(block-open . 0)
(innamespace . 0)
(knr-argdecl-intro . -)))
(c-echo-syntactic-information-p . t))
"My C Programming Style")

;; offset customizations not in my-c-style
(setq c-offsets-alist '((member-init-intro . ++)))

;; Customizations for all modes in CC Mode.
(defun my-c-mode-common-hook ()
;; add my personal style and set it for the current buffer
(c-add-style "PERSONAL" my-c-style t)
;; other customizations
(setq tab-width 8
;; this will make sure spaces are used instead of tabs
indent-tabs-mode nil)
;; we like auto-newline and hungry-delete
(c-toggle-auto-hungry-state 1)
;; key bindings for all supported languages. We can put these in
;; c-mode-base-map because c-mode-map, c++-mode-map, objc-mode-map,
;; java-mode-map, idl-mode-map, and pike-mode-map inherit from it.
(define-key c-mode-base-map "\C-m" 'c-context-line-break))

(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

;;;; IME

(mw32-ime-initialize)
(setq default-input-method "MW32-IME")
(setq-default mw32-ime-mode-line-state-indicator "[--]")
(setq mw32-ime-mode-line-state-indicator-list '("[--]" "[あ]" "[--]"))
;; y/n, yes/no の問い合わせ時に IME をオフにする
(wrap-function-to-control-ime 'y-or-n-p nil nil)
(wrap-function-to-control-ime 'yes-or-no-p nil nil)

;;;; TAKUMAKEI

(defun kei-scroll-up ()
(interactive)
(scroll-up 1))

(defun kei-scroll-down ()
(interactive)
(scroll-down 1))

(defun kei-line-up ()
(interactive)
(let ((save-marker (point-marker)))
(kill-region (line-end-position) (point-marker))
(previous-line)
(yank)
(kill-region (line-end-position) (point-marker))
(goto-char (marker-position save-marker))
(yank '(nil))
(previous-line)))

(defun kei-line-down ()
(interactive)
(let ((save-marker (point-marker)))
(kill-region (line-end-position) (point-marker))
(next-line)
(yank)
(kill-region (line-end-position) (point-marker))
(goto-char (marker-position save-marker))
(yank '(nil))
(next-line)))

(load-library "time-stamp")
(defun kei-insert-date-string ()
(interactive)
(insert
(format "[%s %s]"
(time-stamp-yyyy-mm-dd)
(time-stamp-hh:mm:ss))))

(defun kei-load-memo (df)
(find-file
(expand-file-name
((lambda (today)
(format
"c:/Users/kei/Documents/memo/%s/%s(%s).txt"
(format-time-string "%Y" today)
(format-time-string "%Y-%m-%d" today)
(aref [ "日" "月" "火" "水" "木" "金" "土" ]
(string-to-number (format-time-string "%w" today)))))
((lambda (ts)
(let ((dt (decode-time ts)))
(encode-time 0 0 0
(+ (car (nthcdr 3 dt)) df)
(car (nthcdr 4 dt))
(car (nthcdr 5 dt)))))
(current-time))))))

(defun memo ()
(interactive)
(kei-load-memo 0))

(defun memox ()
(interactive)
(kei-load-memo (read-minibuffer "何日後?> " "")))

(defun kei-set-alpha1 ()
(interactive)
(set-alpha '(100 100)))

(defun kei-set-alpha2 ()
(interactive)
(set-alpha '(50 50)))

(defun kei-set-alpha3 ()
(interactive)
(set-alpha '(20 20)))

(global-set-key [(meta d)] 'kei-insert-date-string)
(global-set-key [(meta n)] 'kei-scroll-up)
(global-set-key [(meta p)] 'kei-scroll-down)
(global-set-key [(meta up)] 'kei-line-up)
(global-set-key [(meta down)] 'kei-line-down)
(global-set-key [(meta g)] 'goto-line)
(global-set-key [(meta o)] 'open-line)
(global-set-key [(ctrl h)] 'backward-delete-char-untabify)
(global-set-key [(ctrl o)] 'toggle-input-method)
(global-set-key [(ctrl \\)] 'kei-set-alpha1)
(global-set-key [(ctrl ,)] 'kei-set-alpha2)
(global-set-key [(ctrl .)] 'kei-set-alpha3)

2009年4月14日火曜日

MigemizeExplorer

エクスプローラを日本語でインクリメンタルサーチできるのだそうだ。
すごい!便利~!

...なのだろうけど...

こういう機能はデフォルトでついていて欲しかった。

Windowsをカスタマイズしまくってめちゃくちゃ使いやすくなってしまうと、他の環境に引っ越しする時に面倒なことになったり、たまたま使わなくちゃいけないWindowsとかを使う時に、あれ?あれ?って驚いてしまう。

Explorerは特に使用頻度が高いだけにたちが悪い。

それにフォルダ名の命名規則(と言うほど大げさなものではないが)がなんとなくできていて、検索対象にしそうなフォルダ名の先頭には日本語を使わないように馴らされているので、インストールはしないかもな。

もう少し若い頃に出会えていれば良かったね。

2009年4月12日日曜日

WindowsでGitを使えるようになりたい

デファクトスタンダードと呼ばれる分散バージョン管理システムはまだないが、Gitは有名。
先日見つけたGit Extensionsに触発されて、Gitが(自分のなかで)盛り上がっている。
そんなさなかに見つけた「分散バージョン管理システムGitを活用しよう」というこの記事は勉強になりそうだ。

KubuntuをVirtualBoxで動かしてみた


VirtualBoxが2.2.0にバージョンアップしてた。
早速アップデートして、ついでにkubuntu 8.10をインストールしてみた。
24インチのiMacBootCampつかってWindows Vistaをいれて、VirtualBox 2.2.0 for Windows hosts動かしてkubuntuを動かしてる。
動かしてるだけで楽しい。

...ところでkubuntuのダウンロードのページの中央のiFrame(?)にubuntuが表示されるのだけど、これって意図したことなんだろうか。

2009年4月11日土曜日

WindowsでGitを使う

分散バージョン管理システムを使いたいと思っていたけれど、TortoiseSVNが便利すぎてなかなか手をつけられなかった。
もしかしたらGit Extensionsは答えになるかもしれない。

2009年4月9日木曜日

VirtualBox 2.2.0 released !

2009年4月8日に VirtualBox 2.2.0 がリリースされてた。

2009年4月4日土曜日

Windows Live Writerを試す

ブラウザでBloggerの記事を書くのはちょっと不便。

Blog Editorを探してみよう。

まず最初はWindows Live Writer。

ん♪

sample
#include <stdio.h>

int main(int argc, char* argv[]){
printf("hello world\n");
return 0;
}

これは便利かも!プログラムのコードなどを載せるために使っているカスタマイズしたスタイルシートを適用した状態でプレビューできる。これは便利かもしれない。

2009年3月24日火曜日

EclipseNSISを試してみる

NSISでインストーラを作ってみることを思い立ち、久しぶりにしらべてみたところ、EclipseNSISという便利そうなプラグインが開発されていることを発見。早速試してみることにする。

手元にあったEclipseはEuropa(3.3.2 M20080221-1800)で、EclipseNSISは3.4以上でないと動かないとのこと。早速eclipse.orgからeclipse-jee-ganymede-SR2-win32.zipをダウンロード&インストール&アップデート。(3.4.2 M20090211-1700)
※jeeは163Mもある。Eclipse IDE for C/C++ Developers (68 MB)こっちでも良かったかも。

そして、EclipseのSoftware Updates and Add-onsでhttp://eclipsensis.sf.net/updateからインストールする。EclipseNSIS(0.9.7.2)とEclipseNSIS InstallOptions Editor(0.9.7)の2つを選択した。

NSISを使うためには当然ながらNSISをインストールしなければいけない。NSISのウェブサイトからNSIS 2.44 Feb 21, 2009(現時点での最新版)をダウンロード&インストール。

以上で環境構築完了。

プロジェクトの作成は、EclipseのFile>New>Other...からEclipseNSIS>NSIS Scriptを選択するとWizardが起動するので必要な情報を入力していくだけ。

驚くほど簡単だ。

2008年12月30日火曜日

コンテキストメニュー自由自在

FileMenu Tools

Open++というツールも見てみたけれど、個人的にはFileMenu Toolsの方が気に入った。