ログ日記

作業ログと日記とメモ

2013-01-01から1年間の記事一覧

Microsoft Update が終わらないのでIE6とさようなら

Microsoft Update が終わらない。自動アップデートも終わらないし、ブラウザで見ると確認中のバーの画面から進まない。 ただ終わらないだけならまだ良いのだが、CPU 100% の状態で終了しない。これは困る。 旧Windows Updateに変えたり修復ツールぽいものを…

gitのソースコードを読む2: freeは不要?

C

昨日の続き。 *1 今日が本題。 C言語で構造体を領域をどのように確保するのがいいのかを調べるのが目標。 コミット 7fa6b4e を主に読む。 全てのデータの基本となる構造体 struct object struct object { unsigned parsed : 1; unsigned used : 1; unsigned …

gitのソースコードを読む

C

C言語の書き方を調べていて、やはりここは何かのソースを読むべきだと思ってgitを読むことにした。 http://cdn8.atwikiimg.com/git_jp/pub/git-manual-jp/Documentation/chunked/ch10s02.html ここも参考にしつつ。 https://github.com/git/git ここからソー…

mallocの使いどころが分からない

C

既存のAPIがmalloc前提の場合は置いといて、自分で構造体を作る場合。 例えばデータの数が多い場合 struct very_long_list { char *name; void *data; }; static struct very_long_list *list_head; static int list_count = 0; struct very_long_list *very…

libiconvで文字コード変換

C

C言語でのiconvの使い方が分からない。 #include <iconv.h> size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft); http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/iconv.3.html このインターフェースは何な</iconv.h>…

Amazon S3 で ファイル一覧をディレクトリ単位で制限することは出来ない?

AWS

http://teketeke55.hatenablog.com/entry/2012/12/11/151743ここに書いているように、ConditionにStringLikeでpathを指定してListBucketの権限を指定すると特定ディレクトリの許可は一応できる。 しかしそうするとルートの一覧が見れない。グラフィカルなツ…

PHPの自作フレームワーク現状まとめ

https://github.com/nishimura/laiz2 基本方針 DB設計最優先 HTML構造優先 コード量を少なく 大抵の処理はPage(Action)クラスに書く。いわゆるAction肥大化。もし「この二つのテーブルは大抵joinして取得している」という状況になったらModelを作っても良い…

Debianデスクトップ環境をsqueezeからwheezyにアップグレード

手順は期本通り。 Ctrl + Alt + F1 でコンソールから。 apt-get update apt-get upgrade apt-get dist-upgrade aptitude install reboot 時間のかかるパッケージ officeなどデスクトップ環境のアップグレードに時間がかかるかと思ったら、texとghc環境に時間…

Debian KVM仮想化環境をまとめてsqueezeからwheezyにアップグレードした

検索しても仮想化環境のOSアップグレードをやった記事がヒットしない。 探し方が悪いだけ? 方針は次の通り。 ホストOS一台のゲストOSをライブマイグレーションで移動して空にする ホストOSアップグレード ゲストOSアップグレード アップグレードしたホストO…

テンプレートエンジンにフォーム値の設定機能を付けた

PHP

https://github.com/nishimura/laiz-templateこれでデザイナーから大量のinput type="checkbox"が入ったHTMLを渡されても、正規表現置換で一瞬で対応できる。 簡単なマニュアル書いた。 if文 hasError変数がtrueの時(if ($hasError))だけタグ内を表示します…

Zend\Di の依存関係ループを解消する

勘違いしていたので追記SessionManager は 複数扱えないので、セッションを複数持つ場合は以下のようにして名前空間だけ分ける。 storage = $storage; } } class SessionManager{ public function __construct(SessionAdapter $adapter){ $this->adapt…

'Invalid instantiator of type "NULL" for "Zend\\ServiceManager\\ServiceLocatorInterface".

Zend\ValidatorPluginManager や Zend\Filter\FilterPluginManager などの PluginManager系をDIで取ろうとするとエラーになる。 同じ問題をやっている方が居た。 http://d.hatena.ne.jp/noopable/20130304 ここを詳しく読む前にやったので、全然別の方向から…

Zend\Di でコンストラクタインジェクションをチェーンするのは面倒くさい

一般ユーザー用画面と管理者画面があるとする。この二つで別々のセッション管理をしたい。 その場合、ここにあるようにaliasを設定すれば一応できる。 addAlias('dbadapter-readonly', 'MyLibrary\DbAdapter', array( 'username' => $config->db->readAdapte…

PHPのフレームワークを作った

ソースはここ: https://github.com/nishimura/laiz2composerの使い方を見るのも兼ねてサンプルアプリを置いたのですぐにインストールできるはず。 https://github.com/nishimura/laiz-sample-task composer.phar create-project laiz/laiz-sample-task laiz-…

yasnippet の php-mode を更新した

https://github.com/nishimura/minimal-yasnippet-php-mode今更ながらPHP5.3 の namespace に対応した。

Zend Framework の一部を使おうとしてハマった

PHP

症状は、composer.phar で zendframework/zend-validator を入れようとすると zendframework全体がインストールされる。 原因は、zendframeworkのcomposer.jsonが良くないっぽい。 依存関係を追っていくと、どうもzendframework/zend-i18nを入れようとすると…

PHPのフレームワーク再考

PHPのフレームワークを考えている。 2006年からLaizを作り始めたわけだけれど、普通に利用する機能と実験的機能がごちゃ混ぜでフレームワークが肥大化している。 特に、PHP5.3用に変更したときにPHP4のコードをそのまま持ってきたり新しい仕組みを取り入れた…

GitLab CI が連携できないのでカッとなって簡単なhookを作った

Git

https://github.com/nishimura/gitlab-simple-hookメールを送る、コマンドを実行する機能を作った。 コマンド実行できるからあとはスクリプトで何とかしてくださいという感じで。 追記: コマンドの実行結果をメールに追加するようにしたので、phpunit --ver…

GitLab CI のインストール

Git

前回の日記で、どうも参考資料が少ないと思ったら GitLab は5.0にバージョンアップしたところだったのね。 http://blog.gitlabhq.com/gitlab-5-dot-0-has-been-released/ もう少し待って様子を見た方がいいのか不安が残るが GitLab CI を入れる。 https://gi…

GitosisからGitLabに乗り換えメモ

Git

Gitosisはパッケージで入れたものを使っていた。 リポジトリが増えてGitosisの設定ファイルも増えてきたのでGitLabを使ってみる。 https://github.com/gitlabhq/gitlabhq/blob/5-0-stable/doc/install/installation.md ここを参考に、ちょっと変えつつインス…

PHPで内部用ストリームAPI

PHP

内部用のAPIを作ろうと思ったときに、データが多い場合のことを考えると面倒だったりする。 offsetでページ切り替えするか?とか。 で、基本に返ってストリームから少しずつデータを取得すればいいんじゃないか、というC言語の初歩的なやつをPHPで。 put.php …

名前ベースのバーチャルホストでSSLが使える!?

驚きの脊髄反射でメモ。 しかも何年も前からじゃないか…。 新しいことが大抵できないDebianでもOK。 http://www.manabii.info/2012/07/apache-2-2-16-ssl-sni.html http://rails.soracid.com/133 しかし Windows XP がダメとなると、今年のうちに堅い系サイ…

パブリッククラウドって何だ?

クラウドなんてバズワードでしょ?と思っていたら意外と使われていて浸透してきているようだったので、ちょっと調べた。 パブリッククラウドとは何か パブリッククラウドとは、VPS+管理ツールの従量課金プラン名である。 パブリッククラウドは何でないか 分…

Xenライブマイグレーション失敗の原因を探るログ

http://d.hatena.ne.jp/n314/20130226/1361901155 Xenのライブマイグレーションのエラー原因探索編。 もう一度データセンター側にプライマリ&セカンダリ指定してインスタンスを作り、マイグレーションを往復してみたけれどエラーは起きなかった。 なんか深…

変数に型がないということの利点について考えるが盛り上がっているらしい

http://d.hatena.ne.jp/perlcodesample/20130227/1361928810 完全に間違っているとか正反対のことを言っているとかいう場合は分かりやすいが、全体的にずれていて一部は合ってる感じなので盛り上がっている。 微妙に日本語がおかしくて、反論も微妙にずれて…

無停止でサーバーをデータセンターに引っ越し: OpenVPN, Ganeti, Xen, LVM, DRBD

社内に置いてあるサーバーをOSごとデータセンターに移したのでその作業ログ。 はじめに。 長いです タイトルは大げさです テストではうまくいったけど実際の社内サーバーではカーネルパニックが発生、再起動の時間分だけ停止 ライブマイグレーションがうまく…

IP変更やOS再インストール時のssh警告を削除

メモ。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someo…

パズドラに課金する理由

http://toaru-sipro.com/?p=3991 こちらのエントリを読んでいたら書きたくなったので。 まずは簡単なソーシャルゲーム歴を思い返してみる。 エルアーク 最初にゲームを始めたのがこれだった。SQUARE ENIX のオンラインRPG。 オンラインRPGというか ゲームブ…

参考: http://gihyo.jp/dev/serial/01/heroku/0002まずは http://heroku.com/ でアカウントを作る。 gem install heroku heroku listEmail、Passwordを入力するとsshの公開鍵を聞かれるので番号を選択する。 自動で公開鍵がアップされるようだ。 rails new d…

Debian squeezeにrvm、Ruby1.9.3とrails3.2.12を入れる

rootで aptitude install curl一般ユーザーで $ \curl -L https://get.rvm.io | bash -s stable --ruby https://rvm.io/rvm/install/ まとめて入れずに敢えて順番にいく。 インストール後に表示されるコマンドを実行する。そしてrcファイルにコピペ。 .zshrc…