[ カテゴリー » PC関連 ]

CentOS4起動中にルート(/)がマウントされているとエラー

突如CentOS4起動中に
/ is mounted.  e2fsck Cannot continue, aborting.
なるエラーメッセージが出て、ルートのパスワードを求めるようになりました。パスワードを打てば管理コンソールに突入。見るとルート(/)しかマウントされていない。そこからmount -aとすると全てマウントが成功し、コマンドも使えるのですがexitで管理モードを抜けると再起動、また上のエラー発生の繰り返し。

ネットでこのエラーメッセージで探るといろいろ出てくるのですが、

  • CentOS4のCDからレスキューモードで起動 → md(ソフトウェアRAID)問題なく構成可能、fsckエラーなし。LVMは不使用。
  • /etc/fstabを編集、/の行の最後を"1 1"から"0 0"に変更 → 効果なし。
  • initrdを作り直せ → OSが起動しないんだってば
  • /etc/rc.d/rc.sysinitを編集、/をremount,rwでマウントしなおしている行をremount,roに変更 → 起動後/が読み込み専用になるので不便

要は既に読み書きモードでマウントされている状態で、なぜだかファイルシステムチェックであるfsckが起動されてしまうのが直接の原因。とりあえずtouch /fastbootで起動時fsckを無効、さらに/etc/rc.d/rc.sysinit内で/fastbootを削除しないように変更をしてその場をしのぐことに。

う~ん、何が起きているのだろう。

[2011/10/28 追記] どの箇所でエラーが出るのだろうと、/etc/rc.d/rc.sysinitに細工(3箇所あるエラーメッセージに違いを作った)をして再起動したら問題が出なくなってしまった。嫌な展開…

— posted by mu at 06:18 pm   commentComment [0]  pingTrackBack [0]

Visual Studio 2010でWebReferenceを参照する

blog20111025-WebReferenceOnVS2101

備忘録。

どうもVisual Studio 2005より後ではWebServiceは別の技術に変わってしまったようで、Visual Studio 2010プロジェクト内のService Referencesから参照しようとすると、似て非なるサービスが出てきたりしました。

.NET Framework 2/Visual Studio 2005ベースのWeb Serviceを参照するには、

  1. Service Referenceからサービス参照を追加
  2. アドレス入力画面のところで左下のAdvancedボタンを押す
  3. さらに出てきた画面の左下、Add Web Referenceを押す
  4. 次に出てきた画面に、.NET Framework 2ベースのWeb Serviceのアドレスを入力する

画像・メニュー表記は英語版のものを書いてますので、読み替えてくださいませ。

[参照]Visual Studio 2010: Adding a Web Reference (Steve Novoselac's Tech Blog : 2010/10/1) Link

— posted by mu at 03:41 pm   commentComment [0]  pingTrackBack [0]

LINQ to Objectsの結果をDataGridViewに表示

blog20110912-LinqToObj

LINQ to ObjectsLink でクエリから得た結果をお手軽にDataGridViewに表示する方法(Visual Studio 2010)。ポイントは、

  • 検索対象となるクラスが保持する値のうち、DataGridViewで表示したいものをプロパティとして宣言する。{get; }を付けないとDataGridViewには表示されない。読み取り専用にしたい場合は{get; private set;}にする。({get;}だけだと初期化不能になる)
  • クエリで得られた IEnumerable<T>をToList()で変換して、DataGridView.DataSourceにセットする

列名もプロパティ名が自動的に反映されます。デバッグ目的にはとっても便利。

今まで仕事上Visual Studio 2005を使っていたので、2008から加わったLINQは最近知りました。こんな便利なものができていたとは…Microsoftやりたい放題だな。

[参考]Linq to object with DataGridView (C# Corner)Link

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LINQ2Objects
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            List<TouristResort> TouristResorts = new List<TouristResort>();
            TouristResorts.Add(new TouristResort("Fuji", 120.7, LINQ2Objects.Location.Mountain));
            TouristResorts.Add(new TouristResort("Enoshima", 60.1, LINQ2Objects.Location.Ocean));
            TouristResorts.Add(new TouristResort("Atami", 95.1, LINQ2Objects.Location.Spring));
            TouristResorts.Add(new TouristResort("Aso", 599.3, LINQ2Objects.Location.Mountain));
            TouristResorts.Add(new TouristResort("Nichinan", 620.4, LINQ2Objects.Location.Ocean));
            TouristResorts.Add(new TouristResort("Beppu", 598.7, LINQ2Objects.Location.Spring));

            IEnumerable<TouristResort> subTouristResorts =
                from TouristResort aTouristResort in TouristResorts
                where aTouristResort.Distance<600
                orderby aTouristResort.Distance descending
                select aTouristResort;

            dataGridView1.DataSource = subTouristResorts.ToList<TouristResort>();
        }
    }

    enum Location
    {
        Mountain,
        Ocean,
        Spring
    }

    class TouristResort
    {
        public string Name { get; private set; }
        public double Distance { get; private set; }
        public Location Loc { get; private set; }

        public TouristResort() { }
        public TouristResort(string name, double distance, Location loc)
        {
            Name = name;
            Distance = distance;
            Loc = loc;
        }
    }
}

— posted by mu at 09:32 pm   commentComment [0]  pingTrackBack [0]

ラプター一応完成

blog20110814-3DCG_Raptor_c

前回Link より更に2週間経過。当初描く予定がなかったアフターバーナーには5日間かかり、お絵描きの最終段階恒例堂々巡りの微修正に入りだしたのでここで一区切り。

背景をつけると一気に雰囲気が出ますね。前回参考にした雲の描き方Link はやはり処理が重すぎたので画面隅の数個に止め、雲海の大部分は一枚板で描くことにしました。

具体的にはBlenderArtists.orgのVolume Render in 2.5...Link にあるHere's a tutorial I made on somewhat how to do it with nodes....とされるビデオLink を参考に(Blender 2.5以降必須)。

  1. 雲の形状となるメッシュを作成。形は角を取った直方体とか凸凹つけた楕円球体をSubsurf modifierで滑らかにしたもの。今回の場合は巨大な直方体(雲海は直方体の一面)
  2. メッシュにマテリアルを作成、そこにテクスチャを追加し雲模様(Cloud)テクスチャを設定する。
  3. レンダリングすると凹凸の少ないのっぺりとした雲になりやすい。
    • ビデオではNode Editorでテクスチャを設定、Cloud設定をHardにした上、MathのGrater thanでしきい値以下の暗い部分を切り捨て(真っ黒に)している。
    • ただししきい値を高めに取ると凸凹がくっきり出る反面、レンダリング結果にノイズが乗りやすい(しきい値からいきなり黒になるため?)。雲海に横縞が乗っている画像例Link
    • 私の場合は元のCloudテクスチャをMathで二乗した上で低いしきい値を設定しました。具体的にはしきい値に0.3を指定していたのを、二乗したテクスチャにしきい値0.09(=0.3の二乗)を設定することで、同じエリアを切り捨てつつしきい値と黒との差を小さくしてます。
  4. マテリアル設定に戻り、マテリアルタイプとしてVolumeを設定。DensityとDensity Scaleは勘と試行錯誤で決定。雲が暗くなってしまう場合は以下の設定をいじる(明るすぎる場合は逆を)
    • Reflectionを大きくする
    • Scatteringを小さくする
    • LightingをShadelessにする
  5. ライトとカメラの設定をお忘れなく。太陽光の他に空色で上からのHemi、地面や海の色で下からのHemiを付けるといい感じです。

アフターバーナーも基本は同じでVolumeマテリアルを使用、散乱(Scattering)も反射(Reflection)もしない(=0)一方、自らオレンジ色に光るEmissionを設定しています。

[参考]

[SVGAサイズ]

— posted by mu at 08:53 pm   commentComment [0]  pingTrackBack [0]

ラプター途中経過

blog20110801-3DCG_Raptor

前回Link から2週間、描き始めてからだと既に2ヶ月。2週間前にあとは微調整かと思ってたのですが、その微調整が結構多いかつ分かっているだけでもまだ数箇所修正したい。我乍ら2Dでも3Dでも描くのが遅いw

あんまり細かい所をちまちま直していても息が詰まるので、ジェット戦闘機がよく出す翼端の雲を付けて気分を盛り上げようかと。当初はGIMPなど2Dグラフィックエディタで後から描き足そうかなと思ってたのですが、調べてみるとBlenderLink でも雲が描けるらしい。

ここLink を参考に雲のオブジェクトを追加。端に黒点ができるなど修正が必要なものの、なかなかいい感じです。が、大量のメッシュを作った上にレイトレーシングしているためか、雲を追加しただけで一挙にソフトの動作が重く(通常の設定変更が数秒かかる、レンダリングが1秒以下から20秒に)なってしまいましたorz

雲オブジェクトを別のレイヤーに置いて非表示にしておけばそれほど支障はないのでこの方法をやめる気はないのですが、背景にもっと大きな雲を描いたら更に遅いだろうな。ガムバレCore i7(注: 第1世代)。

[参考]

— posted by mu at 12:34 am   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0267 sec.
prev
2024.5
next
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31