トップ «前の日(11-11) 最新 次の日(11-13)»

PC関係のメモ


Gentoo Linux 1.4 install / tDiary 1.5.5 install / root 消してしまいました / [SQL]インデックス / [SQL]開始時間と終了時間 / tDiary-mode に草稿保存の機能があると嬉しいかも

Gentoo Linux 1.4 install

Pentium3 用の CD イメージをダウンロード。LiveCD から起動

fdisk でパーティションを作成

/dev/hda1 83  Linux
/dev/hda2 82  Linux swap
/dev/hda3 83  Linux

インストール

# ファイルシステムの作成
mke2fs -j /dev/hda1
mkswap /dev/hda2
mkreiserfs /dev/hda3
badblocks - badblocks.txt -v /dev/hda1
badblocks - badblocks.txt -v /dev/hda2
badblocks - badblocks.txt -v /dev/hda3

# パーティションをマウントする
swapon /dev/hda2
mount /dev/hda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/hda1 /mnt/gentoo/boot
cd /mnt/gentoo
tar -xvjpf /mnt/cdrom/stages/stage1-*.tar.bz2

# chrootを使ってGentoo Linuxシステムに「入る」
 mount -t proc proc /mnt/gentoo/proc
cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile

# 最新のPortage ツリーを取得する(GRPを使用しない)
emerge sync
nano -w /etc/make.conf
CHOST="i686-pc-linux-gnu"
CFLAGS="-O3 -mcpu=pentium3 -funroll-loops -pipe"
# binutils、gcc、gettext、glibcを構築し、glibcが構築された後、gettextを再構築(ステップ1)
cd /usr/portage
scripts/bootstrap.sh
# 残りのシステムをインストール(ステップ2)
emerge system
# ステップ3 ならここから

ln -sf /usr/share/zoneinfo/Japan /etc/localtime

# カーネルソースをemerge
emerge -k sys-kernel/gentoo-sources
# genkernelをemerge
emerge -k genkernel
# genkernelを使ってカーネルを構築する
genkernel
# hotplugをemergeし有効にする
emerge -k hotplug
rc-update add hotplug default
# システムロガーのインストール
emerge -k app-admin/sysklogd
rc-update add sysklogd default
# cron デーモン
emerge -k sys-apps/vcron
rc-update add vcron default
# ファイルシステムツールのemerge
emerge -k sys-fs/reiserfsprogs
nano -w /etc/fstab
/dev/hda1           /boot       ext3            noauto,noatime	 1 2
/dev/hda3           /           reiserfs        noatime         0 1
/dev/hda2           none        swap            sw              0 0
/dev/cdroms/cdrom0  /mnt/cdrom  iso9660         noauto,ro       0 0
proc                /proc       proc            defaults        0 0
# root パスワードの設定
passwd
# 日常的に使うユーザの登録
useradd your_user -m -G users,wheel,audio -s /bin/bash
passwd your_user
# ホスト名を設定
echo inspiron > /etc/hostname
echo mylab.jp > /etc/dnsdomainname
echo 3c59x > /etc/modules.autoload
nano -w /etc/conf.d/net
rc-update add net.eth0 default
# 基本設定
nano -w /etc/rc.conf

CLOCK="local"
KEYMAP="jp106"
# GRUB
emerge -k grub
grub
grub> root (hd0,0)
grub> setup (hd0)

nano -w /boot/grub/grub.conf
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title=My example Gentoo Linux (genkernel)
root (hd0,0)
kernel (hd0,0)/boot/kernel-2.4.20-gentoo-r8 root=/dev/hda3
initrd (hd0,0)/boot/initrd-2.4.20-gentoo-r8

無事起動

tDiary 1.5.5 install

root 消してしまいました

いつものように su - したら

root というユーザは存在しません

と言われる。

シングルユーザモードで起動して vipw してみると

oot:x:0:0:/root:/bin/bash

となってる。

昨日 vipw したときに最初の r を消してしまったらしい

かなり反省しつつ修正。無事元に戻りました。

インデックス

TIMESTAMP 型のフィールドにインデックスを作成したけど値が分散しすぎていてインデックスが効率よく使われない

時間だけで集計することもあるし DATE と TIME に分ける。

開始時間と終了時間

こうしたら先に書いたようにインデックスの意味がない

-- list1
CREATE TABLE event (
time1 TIMESTAMP, -- 開始日時
time2 TIMESTAMP  -- 終了日時
);

集計を考えるとこのほうがいい

-- list2
CREATE TABLE event (
-- 開始日時
date1 DATE,
time1 TIME,
-- 終了日時
date2 DATE,
time2 TIME
);

list2 を list1 の VIEW にする手もあるか

-- list3
CREATE VIEW event_view AS
SELECT
   ...略

どうせ VIEW 作るなら list1 の終了時間は期間でもいい

-- list1'
CREATE TABLE event (
time1 TIMESTAMP, -- 開始日時
intervals INTEGER  -- 期間(秒)
);

いずれにせよパフォーマンスの良いものを選択する

tDiary-mode に草稿保存の機能があると嬉しいかも

考えながら発行(保存)してるから間違いがいっぱい。

最終更新時刻: 2008年09月01日
コメント(2) [コメントを投稿する]

_ いちえ [うちの姫が使ってる日記cgiにはその機能があるよ。]

_ hrmubz [<a href="http://1test1.com/">1test1</a> <a href="http://1t..]


OpenJane - オープンソースの2chブラウザ / samidare - Rubyで書かれたアンテナスクリプト / jvimでSJISのrubyスクリプトを編集

OpenJane - オープンソースの2chブラウザ

samidare - Rubyで書かれたアンテナスクリプト

  • 設定がYAMLとHTreeで記述される
    • 設定のデータ構造である程度の挙動を制御可能
  • LIRS, RSS に対応
  • 更新チェック間隔を個別サイト毎に自動調整
  • HTTP GET を利用してコンテンツ差分による更新チェックができる
    • 他所アンテナからの情報はそのまま信用せず、自身で再チェックする
    • HTreeによる構造解析を行い、更新情報として無視する部分を指定できる(広告等の対策)

jvimでSJISのrubyスクリプトを編集

最終更新時刻: 2008年07月25日

オープンソースソフトウェアにとっての出版業界への参入機会 / Analog インストールメモ(Debian GNU/Linux)

オープンソースソフトウェアにとっての出版業界への参入機会

japan.linux.com | オープンソースソフトウェアにとっての出版業界への参入機会

Analog インストールメモ(Debian GNU/Linux)

Analogをインストール

apt-get install analog

ログを分割していなかったので日別に分割した。

apt-get install cronolog
cd /usr/local/apache2/logs
cronosplit --template "access_log.%Y%m%d" access_log

画像をコピー

cp /var/www/analog/* /var/www/htdocs/report/

/etc/analog.cfgを編集

LANGUAGE JAPANESE

LOGFORMAT COMBINED
LOGFILE /usr/local/apache2/logs/access_log.200511*
OUTFILE /var/www/htdocs/report/index.html
IMAGEDIR /report/

REFERRER ON
DAILYREP ON

REFREPEXCLUDE http://www.example.com/*

REFFLOOR -100r
最終更新時刻: 2008年10月31日

linuxでディレクトリの使用量を調べる

$ du --max-depth=1 -m /home/|sort -nr

--max-depthで1階層目までに絞って、-mでMB単位で表示。sort -nrで先頭数値評価の逆順ソート。

最終更新時刻: 2008年11月12日

ODE(Open Dynamics Engine)を使ってみた(2)

まずはとっかかりになるサンプルソースをコンパイルしてみることにした。

サンプルは下記サイトのソースを参考に(というかそのまま)させて頂いた。

http://demura.net/9ode/3993.html

#include <ode/ode.h>
#include <drawstuff/drawstuff.h>

dsFunctions fn;

void start()                                  /*** 前処理 ***/
{
  static float xyz[3] = {3.0,0.0,1.0};         // 視点の位置
  static float hpr[3] = {-180, 0, 0};          // 視線の方向
  dsSetViewpoint(xyz,hpr);                     // カメラの設定
}

void setDrawStuff()           /*** 描画関数の設定 ***/
{
  fn.version = DS_VERSION;    // ドロースタッフのバージョン
  fn.start   = &start;        // 前処理 start関数のポインタ
  fn.step    = 0;      // simLoop関数のポインタ
  fn.path_to_textures = "/usr/local/src/ode-0.11.1/drawstuff/textures"; // テクスチャ
}

void dmLoop(int w, int h){
        setDrawStuff();
  dsSimulationLoop(0,0,w,h,&fn);
}


int main()
{
  dmLoop(800, 600);

  return 0;
}

で、コンパイル。

g++ -I/usr/local/include/ode/ -I/usr/local/src/ode-0.11.1/include/ \
    -L/usr/local/lib/ \
    hello.cpp \
    /usr/local/lib/libode.a \
    /usr/local/src/ode-0.11.1/drawstuff/src/.libs/libdrawstuff.a \
    /usr/lib/libX11.so \
    /usr/lib/libglut.so

で、実行。

./a.out

動いた!

最終更新時刻: 2009年11月12日