■■■■■■□■■■■■■□■■■■■■□□□□□■■□■■■■■■
■■□□■■□■■□□■■□■■□□□□□■■■■■■□■■□□□□
■■□□■■□■■□□■■□■■□□□□□■■□□■■□■■■■■■
■■□□■■□■■□□■■□■■□□□□□■■□□■■□□□□□■■
■■□□■■□■■■■■■□■■■■■■□■■■■■■□■■■■■■

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

待ち望んでいるもの

METAPHYS node(12050)という電源タップ。
コレを初めて知ったのは確かまだ大学生だった頃5年以上前だったと思う。
ずっと発売を待ち望んでいたんだけど、なかなか製品化されず、
ここ数年はすっかり忘れていました。
が、久しぶりにHPを見てみたら、開発中とのこと!

しばらくそのページを見ていたらnodeが生まれるまでというところで
意味性の継承という言葉が気にりました。
コンセントは長い方がコールド、短い方がホット。
この長さが異なる2つの線を、
その関係を保ったままつないぐことによって
2重の輪ができている。
そう思って見ると、ますます美しいデザインに見えてきます。
役に立つかは分からないけど意味性の継承という言葉、
心に留めて生活していこうと思いました。

ただ残念なのが説明が間違えている…
スケッチを見る限りはあってるけど…
コンセントのアース(コールド)は一般的に長い方です。
まあ、極性気にせず工事しちゃう業者もいるらしいので、
極性を合わせる必要が出てきたときは
結局自分で調べなきゃないですけどね。
スポンサーサイト

テーマ:暮らし・生活 - ジャンル:ライフ

  1. 2010/11/20(土) 18:07:44|
  2. 未分類
  3. | トラックバック:0
  4. | コメント:0

Cool Wise Man 2010 ワンマン

昨日はCool Wise Manのワンマンでした!
はじめは「ちょっと盛り上がらないなぁ」なんて思ってしまいましたが、
後半は一転!スゲー楽しかったです。
てか正直、icchieさんと徹さんの存在は大きいなと感じました。
アンコール(だったよなぁ…記憶がw)ではyossyさんもゲスト出演。
yossyさんかわいいよなぁなんて思いながら観てました。

後半になると浜田さんもicchieさんもダイブ…
だったのか持ち上げられてあの状態だったのかは分かりませんが
客席に乱入!icchieさんに至っては一緒にスカダンス!
ちょっとだけどicchieさんと踊れたのは一生の思い出もとい想ひ出です。
と、いうことで最高の夜でした~!腿や背中やケツが筋肉痛ですw

で、ちょっと関係ないですが、
フライヤーの中にこんなのが
Blue Beat Playersのベストが出るようです、知らなかった!

テーマ:LIVE、イベント - ジャンル:音楽

  1. 2010/11/14(日) 19:57:39|
  2. 音楽とか
  3. | トラックバック:0
  4. | コメント:0

NYAOS -- Dirty Hack

すげーnyaosWhere is ckw ?の相関図がもう書き換わっている!

そして、nyaosのソースも弄ってみた。
promptでtcshの%cの様に
nyaosの$wで表示するディレクトリの深さを指定できるようにするパッチ。
ちなみにソース中の配列のサイズを変数で指定するのはGCCの独自拡張なので注意。

※うちの_にゃ
option prompt $e[30;40;1m$w3$g$e[0;1m

diff -ru orig/dosshell.cpp mod/dosshell.cpp
--- orig/dosshell.cpp   2010-11-11 13:16:18 +0900
+++ mod/dosshell.cpp    2010-11-13 15:29:51 +0900
@@ -129,12 +129,30 @@
                 case 'W':{
                     NnString pwd;
                     NnDir::getcwd(pwd);
-                    int rootpos=pwd.findLastOf("/\\");
-                    if( rootpos == -1 || rootpos == 2 ){
+
+                    int depth = 1;
+                    if ((*(sp+1) != '\0') &&
+                        ((0 < (*(sp+1)-'0')) && ((*(sp+1)-'0') < 10)) // 0 < depth < 10
+                       ){
+                        depth = (*(sp+1) - '0');
+                        sp++;
+                    }
+                    // ! GCC Extension ! //
+                    int posbuf[depth];
+                    memset(posbuf, -1, sizeof(posbuf));
+
+                    int rootpos = 2;
+                    // findLastOf w/ buffering
+                    while ((rootpos = pwd.findOf("/\\", rootpos)) != -1){
+                        for (int i = 0; i < depth-1; i++) posbuf[i] = posbuf[i+1];
+                        posbuf[depth-1] = rootpos++;
+                    }
+
+                    if( posbuf[0] == -1 || posbuf[0] == 2 ){
                         result << pwd;
                     }else{
-                        result << (char)pwd.at(0) << (char)pwd.at(1);
-                        result << pwd.chars()+rootpos+1;
+                        result << (char)pwd.at(0) << (char)pwd.at(1) << "...";
+                        result << pwd.chars()+posbuf[0];
                     }
                     break;
                 }

テーマ:フリーソフト - ジャンル:コンピュータ

  1. 2010/11/13(土) 16:01:33|
  2. フリーソフト
  3. | トラックバック:0
  4. | コメント:2

トリップ

この前新幹線中で寝てて朝勃ち(?)した時こんなことを考えた。
ブラジャーのカップサイズは
トップとアンダーの差10cmをAとして2.5cm刻みで
 7.5cm -- AA
10.0cm -- A
12.5cm -- B
15.0cm -- C
17.5cm -- D
20.0cm -- E

となる。
これってチンコのサイズに当てはめても
結構妥当な数字なんじゃないか?
もう一度
 7.5cm -- AA
10.0cm -- A
12.5cm -- B
15.0cm -- C
17.5cm -- D
20.0cm -- E

ほら!

ちなみに小生はB~Cです…
あと、高校の同級生で8cmというAAのヤツや
17cmというDが数名、20cm超のEのヤツも…

そんなくだらない事を考えながらの小旅行でした。
◆XZVKGve..k
  1. 2010/11/11(木) 07:47:39|
  2. 未分類
  3. | トラックバック:0
  4. | コメント:0

ckw mod -- 俺流改造

※2010.11.11にoption.cppのパッチを修正しました。

ご無沙汰です。
最近なんやかんや忙しくて…
さて、掲題の内容ですが
ckw -cd "C:\"
なんてカレントディレクトリのオプションを渡されると
ケツの"がエスケープされて
内部ではC:"で処理しようとしてしまいます。
それを回避する処理をmain.cppで処理してたんですが、
option.cppのオプションのパース時に処理するようにしました。
この方がスッキリするし…なんですが、もう1コ理由があって
-cdオプションに渡されたパスを
有効なディレクトリになるまで辿ってソコをカレントディレクトリにする
って処理を入れたくて、1箇所にまとめちゃおう!って言うのがそもそもの発端です。
以下のパッチを当てることで
-cd "C:\hoge\huga\foo\bar.txt"
というオプションが渡された時、
ディレクトリとして有効なのは
C:\hoge\huga\foo
の部分なので、カレントディレクトリはC:\hoge\huga\fooになります。
またhugaを間違えてfugaとして
C:\hoge\fuga\foo\bar.txt
とした場合、有効な(存在する)ディレクトリはC:\hogeなので
C:\hogeがカレントディレクトリになります。
まぁ手動で入力する人はいないでしょうがね…

これの何が嬉しいかって
ファイラのショートカットにckw -cd "%1"とか登録してて
ファイルが選択した状態でも
そのディレクトリをカレントとしてckwを起動できることです。
ってことで↓

diff -ru orig/main.cpp nocd5_mod/main.cpp
--- orig/main.cpp   2010-07-18 14:44:25 +0900
+++ nocd5_mod/main.cpp  2010-11-10 16:00:48 +0900
@@ -819,10 +819,6 @@
    si.hStdOutput = gStdOut;
    si.hStdError  = gStdErr;
 
-   if (curdir)
-       if (char *p = strstr((char*)curdir, ":\""))
-           *(p+1) = '\\';
-
    if(! CreateProcessA(NULL, buf, NULL, NULL, TRUE,
                0, NULL, curdir, &si, &pi)) {
        delete [] buf;
diff -ru orig/option.cpp nocd5_mod/option.cpp
--- orig/option.cpp 2010-07-18 14:44:25 +0900
+++ nocd5_mod/option.cpp    2010-11-11 22:21:02 +0900
@@ -997,6 +997,38 @@
        return(1); \
    }
 
+#define IS_NPOS(pos) (std::string::npos == (pos))
+static bool getParentDir(std::string &strDest){
+   int slash = strDest.find_last_of("/", strDest.size()-2);
+   int bslash = strDest.find_last_of("\\", strDest.size()-2);
+
+   int pos;
+        if (!IS_NPOS(slash) &&  IS_NPOS(bslash)) pos = slash;
+   else if ( IS_NPOS(slash) && !IS_NPOS(bslash)) pos = bslash;
+   else                                          pos = max(slash, bslash);
+
+   if (!IS_NPOS(pos)){
+       strDest.erase(pos+1);
+       return true;
+   }
+   else{
+       return false;
+   }
+}
+
+static std::string getValidDir(LPCSTR value){
+   std::string strDir = value;
+
+   // replace double-quotation to backslash
+   if (!strDir.empty() && (strDir.at(strDir.size()-1) == '\"'))
+       strDir.replace(strDir.end()-1, strDir.end(), "\\");
+
+   // trace back to valid directory
+   while (!PathIsDirectoryA(strDir.c_str()) && getParentDir(strDir));
+
+   return strDir;
+}
+
 int    ckOpt::setOption(const char *name, const char *value, bool rsrc)
 {
    bool    flagSW = true;
@@ -1028,7 +1060,7 @@
    CHK_MISC("transp",      "tr",       m_transp = atoi(value));
    CHK_MISC("transpColor",     "trc",      m_isTranspColor = lookupColor(value,m_transpColor));
    CHK_BOOL("topmost",     "top",      m_isTopMost);
-   CHK_MISC("chdir",       "cd",       m_curDir = value);
+   CHK_MISC("chdir",       "cd",       m_curDir = getValidDir(value));
    CHK_MISC("exec",        "x",        m_cmd = value);
    CHK_MISC("title",       "tl",       m_title = value);
    CHK_MISC("config",      "c",        setFile(value);loadXdefaults() );

diff -ru orig/main.cpp nocd5_mod/main.cpp
--- orig/main.cpp   2010-07-18 14:44:25 +0900
+++ nocd5_mod/main.cpp  2010-11-10 16:00:48 +0900
@@ -819,10 +819,6 @@
    si.hStdOutput = gStdOut;
    si.hStdError  = gStdErr;
 
-   if (curdir)
-       if (char *p = strstr((char*)curdir, ":\""))
-           *(p+1) = '\\';
-
    if(! CreateProcessA(NULL, buf, NULL, NULL, TRUE,
                0, NULL, curdir, &si, &pi)) {
        delete [] buf;
diff -ru orig/option.cpp nocd5_mod/option.cpp
--- orig/option.cpp 2010-07-18 14:44:25 +0900
+++ nocd5_mod/option.cpp    2010-11-10 22:48:00 +0900
@@ -997,6 +997,41 @@
        return(1); \
    }
 
+#define IS_NPOS(pos) (std::string::npos == (pos))
+static bool getParentDir(std::string &strDest){
+   int slash = strDest.find_last_of('/');
+   int bslash = strDest.find_last_of('\\');
+
+   int pos;
+        if (!IS_NPOS(slash) &&  IS_NPOS(bslash)) pos = slash;
+   else if ( IS_NPOS(slash) && !IS_NPOS(bslash)) pos = bslash;
+   else                                          pos = max(slash, bslash);
+
+   if (!IS_NPOS(pos)){
+       strDest.erase(pos);
+       return true;
+   }
+   else{
+       return false;
+   }
+}
+
+static std::string getValidDir(LPCSTR value){
+   std::string strDir = value;
+
+   // remove double-quotation
+   int dblquot = strDir.find_last_of('"');
+   if (!IS_NPOS(dblquot)) strDir.erase(dblquot);
+
+   // trace back to valid directory
+   while (!PathIsDirectoryA(strDir.c_str()) && getParentDir(strDir));
+
+   // add backslash at end
+   if (strDir.at(strDir.size()-1) != '\\') strDir += "\\";
+
+   return strDir;
+}
+
 int    ckOpt::setOption(const char *name, const char *value, bool rsrc)
 {
    bool    flagSW = true;
@@ -1028,7 +1063,7 @@
    CHK_MISC("transp",      "tr",       m_transp = atoi(value));
    CHK_MISC("transpColor",     "trc",      m_isTranspColor = lookupColor(value,m_transpColor));
    CHK_BOOL("topmost",     "top",      m_isTopMost);
-   CHK_MISC("chdir",       "cd",       m_curDir = value);
+   CHK_MISC("chdir",       "cd",       m_curDir = getValidDir(value));
    CHK_MISC("exec",        "x",        m_cmd = value);
    CHK_MISC("title",       "tl",       m_title = value);
    CHK_MISC("config",      "c",        setFile(value);loadXdefaults() );

テーマ:フリーソフト - ジャンル:コンピュータ

  1. 2010/11/10(水) 23:16:03|
  2. フリーソフト
  3. | トラックバック:0
  4. | コメント:0
home

プロフィール

Author:nocd5
30歳(男)
会社員

Last.fm



最近の記事

--年--月--日 (--)
スポンサーサイト
2010年11月20日 (土)
待ち望んでいるもの
2010年11月14日 (日)
Cool Wise Man 2010 ワンマン
2010年11月13日 (土)
NYAOS -- Dirty Hack
2010年11月11日 (木)
トリップ
2010年11月10日 (水)
ckw mod -- 俺流改造

カテゴリー

カレンダー

10 | 2010/11 | 12
Sun Mon Tue Wed Thu Fri Sat
- 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 - - - -

最近のコメント

最近のトラックバック

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

Amazonアソシエイト

RSSフィード

リンク

このブログをリンクに追加する

FC2ブログランキング

FC2Blog Ranking

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。