タグ

ブックマーク / dsas.blog.klab.org (8)

  • DSAS開発者の部屋:Vista で動くプログラムを書くために 〜UAC編〜

    ■ はじめに 今年(2007年) 1 月末にマイクロソフト社が発売した Windows Vista は今なお様々な話題を集めています。 発売から半年余を経た現在、普及率はまだあまり高くありませんが、現在主流の Windows XP は 販売もサポートも次第にフェードアウトしてゆく運命にあり、今後 Windows 用プログラムの開発を行う際には Vista での動作に留意する必要があります。 Vista 初出の仕様のうち、一般のアプリケーション開発者にとって最も重要なものは次の二点と言えるでしょう。 UAC (ユーザアカウント制御) による管理ユーザ権限の抑制 JIS2004 対応に伴う日語文字セットの拡張 随所で取り沙汰されているように、旧バージョンの Windows や他のプラットフォームとの間でテキストデータをやりとりする 上で後者は悩ましい話題です。しかし、前者への考慮が不十分なプ

    DSAS開発者の部屋:Vista で動くプログラムを書くために 〜UAC編〜
    bayan
    bayan 2012/12/19
  • swfmillでFlash Lite 1のswfを扱えるようにしてみた : DSAS開発者の部屋

    Flashに関連するオープンソースなツールのひとつに、swfmillがあります。swfmillは、swfファイルを解析してxmlファイルに変換したり、逆にxmlからswfファイルを生成することができるツールです。swfmillの使い方についてはいろいろなところで紹介されているので、ここではFlash Lite 1.xのswfファイルをswfmillで扱うときの問題点について紹介したいと思います。 swf内の文字コード FlashはVersion 6からUnicodeに対応しました。Unicode対応前と対応後でswfファイル内の文字エンコードが異なり、対応前はcp932(日語の場合)、対応後はUTF-8になります。 そして、Flash LiteとFlashのバージョン間対応ですが、Flash Lite 1.xはFlash 4がベースになっており、Flash Lite 2.xはFlash

    swfmillでFlash Lite 1のswfを扱えるようにしてみた : DSAS開発者の部屋
    bayan
    bayan 2012/04/06
  • DSAS開発者の部屋:lvs

    こんにちは。インフラ担当の岡村です。 「LVSの高負荷対策 その2 〜障害の再現とその原因〜」の記事で、LVSに備わっている高負荷対策機能であるdrop entry機能について紹介しました。今回は、drop entry機能が有効になった時のサービスへの影響を調査したので紹介します。 前回のおさらい 詳しくは前回の記事を見ていただきたいのですが、簡単にまとめると次のようになります。 drop entryは、IPVSのエントリをランダムに削除する機能。 SYN_RECV状態とSYNACK状態のエントリについては、1秒おきにIPVSのコネクションハッシュテーブルからランダムに選んだ範囲(全体の32分の1)をスキャンし、その中のエントリを削除する。 ESTABLISHED状態のエントリについては、「最後のパケットが届いてから60秒以上経過」かつ「最初のパケットが届いてからの受信パケットの合計数が8

    bayan
    bayan 2010/07/08
  • IPMIで遠隔からサーバの電源をオン/オフ : DSAS開発者の部屋

    みなさん、IPMI (Intelligent Platform Management Interface) ってご存じでしょうか? Wikipedia - IPMI IntelのIPMIのページ 簡単に説明すると、IPMIとは、OSに依存することなく、遠隔からハードウエアをモニタしたり管理したりするためのものです。 DSASでは、Supermicroのサーバを使っているので、AOC-IPMI20-EというIPMIカードを使っています。 具体的にこのカードで何ができるようになるか、というのを列挙します。 コンソールリダイレクション 温度、電圧、ファン回転数の確認 リセット 電源のオン/オフ これらのことが、LinuxだろうがWindowsだろうがOSに依存することなくできるようになります。 しかも! これらの操作がネットワーク経由 (UDPのポート623) でできるんです。 IPMIを導入す

    IPMIで遠隔からサーバの電源をオン/オフ : DSAS開発者の部屋
    bayan
    bayan 2010/02/22
  • DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋

    Cでプログラムを書いていて大量のメモリを確保したくなったとき、大抵は mallocを使うと思いますが、その際には戻り値がNULLかどうかを判断してエラー処理に飛ばすと思います。しかし、Linux のメモリ管理サブシステムには「メモリ・オーバーコミット」という機構があり、実装されているメモリ以上の領域を確保できてしまいます。 #include <stdio.h> #include <stdlib.h> int main() { int i; char *p; for(i=0;i<65536;i++){ p = (char *)malloc(65536); if(0 == (long)p){ break; } } printf("SIZE=%dMB\n",i*65536/1024/1024); return(0); } swapoff したメモリ 1G のマシンでこれを実行するとこんな感じにな

    DBサーバ向けLinuxチューニングを考える 〜 メモリオーバーコミット編 : DSAS開発者の部屋
    bayan
    bayan 2008/07/23
    OOM Killer
  • KLab での在宅勤務のこと : DSAS開発者の部屋

    私はいま山口県に住み、在宅勤務の形態で働いています。 KLab との縁ができたのは数年前の春でした。大阪での面接を経て内定を受けたまではよかったのですが、同じ時期に郷里の家族の健康状態に異変があり、考えた末に長年住み慣れた関西を離れる決心をしました。 KLab へお詫びと辞退の連絡を入れたところ「事情確認のために再度面談を」と言われ、電車の中で謝る練習をしながらその場へ赴き事情をひと通り説明した後に聞いたのは思いがけない打診でした。 「事情が許せば契約社員としてリモートで働いてみませんか?」 それからおよそ半年間の社勤務を経て、郷里での遠隔勤務が始まりました。 # ちなみに、現在は遠隔勤務のまま正社員になりました 近年、在宅勤務という仕事の形は少しずつ世の中に広がり始めているようです。 今回は技術の話題ではなく、僭越ながら KLab での私の勤務のことなどあれこれお話ししたいと思います。

    KLab での在宅勤務のこと : DSAS開発者の部屋
  • DSAS開発者の部屋:ネットワークパケットを覗いちゃえ

    レイヤを問わず (ethernet から HTTP や SMTP まで) 、ネットワーク絡みのトラブルシューティングや挙動の確認をするときにパケットの流れが見られると非常に有益です。 開眼すると「パケットの流れが目で見える」そうですが、私などはまだまだ修行が足りず裸眼では見えないので、tcpdump というツールを使って見ています。 tcpdump はその名前があまりよくないと私は思っていて、"tcp" だけでなく udp やICMP や ethernet フレームまで覗ける超強力ツールです。 というわけで tcpdump の簡単な説明を書いてみます。 tcpdumpについて tcpdump は UNIX 系の OS で使えるツールなのですが、Windows 用にはWinDumpという CUI のツールがあり、tcpdump と同じように使えます。 GUI がお好みの方は、後でも紹介するE

    DSAS開発者の部屋:ネットワークパケットを覗いちゃえ
    bayan
    bayan 2008/05/14
  • DSAS開発者の部屋:こんなに簡単! Linuxでロードバランサ (1)

    DSASのロードバランサは高価なアプライアンス製品ではなく、LinuxのLVS (Linux Virtual Server)を利用しています。 安価、というか、ハードウエア以外は金銭的コストがゼロなので、一般のクライアントからのアクセスを受ける外部ロードバランサのほかに、内部サービス用のロードバランサも配置しています。それぞれactive, backupで2台ずつあるので合計で4台もロードバランサがあることになります。(こんな構成を製品を使って組んだら数千万円すっとびますね) また、ネットワークブートでディスクレスな構成にしているので、ハードディスが壊れてロードバランサがダウンした、なんてこともありません。 ですので「ロードバランサは高くてなかなか導入できない」という話を耳にする度にLVSをお勧めしているのですが、どうも、 なんか難しそう ちゃんと動くか不安 性能が出ないんじゃないか 等々

    DSAS開発者の部屋:こんなに簡単! Linuxでロードバランサ (1)
  • 1