2007年09月08日

そしてスクリプトは完成した

完成したスクリプトを眺めて思うのだが、アプローチの仕方でこれほど変わるものかと・・・

前回は流れるデータに対して直線的なプログラミングを行ったが、今回データは流れない。
いかに大きなエクセルの表を見やすくするかに集中した。

この場合大切なのは、現場の意見を良く聞く事で、極力意見を反映させてあげる事だ。
データは動かず構造も変わらないので、前回とはまったく逆のアプローチとなる。

現場の意見を良く聞く事自体はいつも大切なのだが、データが流れる場合は、現場の意見よりもデータ構造を優先する。
そうしないとプログラム自体が成り立たなくなるからだ。

いつも迷っていた「どの程度現場の意見を反映するか?」ついて今回はある程度の回答を得た。
それは、「作業手順に従った範囲内で」ということだ。

現場の意見の中には、作業手順を無視した内容が非常に多い。気持ちは分かるのだが、これは受け入れられない。
例えば、便利な表を作ったとしたら、原本を見ずにソレだけを見てしまうなど。

現場の作業手順は、きっちり決められており、これを無視することは出来ない。
確認すべき表、品番、内容、注意点など、ソレらをキッチリ踏まえた上で、意見を入れプログラムを構築する。

そうして出来上がった表は、抜群の操作性と、見易さと、特別なギミックを兼ね備えていた。  
Posted by liners1 at 12:30Comments(0)

2007年08月26日

予感的中

いやな予感はしていた・・・

実は前回からしばらくの間、別のプログラミングに没頭していた。その時にふと思ったのだが、こんな稚拙なExcelVBAに何故こだわるのだ?
しかも、その時にデータ提示をかなり渋っていたのだ。・・・そうかこの為だったのか!

裏で大きなプロジェクトが進行しており、その兼ね合いもあって調整していたのか?

聞く所によると、ソレは億単位のプロジェクトで、システムの根本からの変更だった。そして、その資料を見る機会が訪れた。
それを一目見たとき私は愕然とした。フロント・エンドが単なるExcelの表だからだ。

普通はちゃんとしたデータベースのフロントエンドが有って、ソコからダウンロードでしょ!
しかも何?コレは?ハッキリ言って人間が見る表じゃない・・・

う〜ん例えて言うならフォルダのないファイル管理をするようなもの。階層化という概念がない!
これは、コンピュータに食わせる為の単なるデータある。

人間性を無視したシステムの末路は、混乱以外の何者でもない。コレが自他共に認める大企業のシステムとは・・・・

当然、改善を要求するが、根本は変わらないだろう。ソコは下請けのつらい所である。
しかし、見方を変えれば競合他社に差を付けるチャンスでもある。他社も条件は同じだからだ。

それにしても、この表は、ある意味「プロでも出来なかった」部分がある。
正確には、「システム内では階層化されているが、Excelではうまく表現できなかった。」といった所か。

当然、我々が億単位システムを導入出来る筈もなく、知恵と工夫で別の小さなデータベースに入れ、表を見やすくするしかない。
いずれにせよ「プロ級」の戦いがすでに始まっている。  
Posted by liners1 at 20:58Comments(0)

2007年06月14日

直線的なプログラミング

先のプログラミングで困難に輪をかけているのが、複数のソフトへの差し渡しデータを抱えてているにもかかわらずフォーマットが
統一されていないので、どうしてよいか解らない事。データが分断されバラバラであることなどが挙げられる。

通常のプログラマは、こういう乱立したソフトの中でのプログラミングに慣れていないため、独自路線に走る傾向にある。
今回の場合は、見た目だけにこだわった結果、使用者に極度の修正を強いている。

大体、レコードとフィールドの区別なくセルにデータを押し込むなど、言語道断! データベースのセンス・ゼロと言わざる得ない。
こんなことだから、とんでもない切り分け作業や、修正が永遠と続く、間違えるなと言う方が無理。

でもまあ、データ構造の不備は置いといて、こういった状況に追い込まれた場合の対処の方法なのだが、まず最初にトータルでの
重点をどこに置くかが重要。プレゼンではないので間違えてもプリント結果などに置いてはならない。

この場合、当然再利用されるデータなので、一般的で利用し易いデータ形式にしておくべきだ。
例えば、タブ区切りテキスト形式、CSVなど、これなら問題ないはず。

出力も単純なリスト形式とし、余分なものは一切ない。
「ファイルに出力するのは面倒だし、遅くなるのでは?」と聞こえてきそうだが、全面否定はしないもののYesとは答えない。

確かに昔はその傾向にあった。だが現在では高速CPU、大容量のメモリが当たり前。一度でも読込めばキャッシュにファイルが残り
高速に利用できる。複雑なロジックを通るよりも返って有利になる。

それでなくても困難なレベルなので、ファイル出力の件は後回しにしても良いだろう。


もう一つ困難にしているのが、プログラマ自身が特定の言語やソフトにこだわる傾向にあることだ。
例えばVBAにこだわると、出口は見えてこないだろう。下手をするとVBA使用禁止の可能性もある。

C言語にこだわると、その記述量の多さから開発期間が極端に長くなる。
どちらの場合も、不可能ではないけれども効率が良くない。つまり難しいワケだ。

「オマエだってUWSCに、こだわっているじゃねーか!」 そうではない。 UWSC 「も」 利用しているのだ。
現にVBAも使いたかったし、その他のソフトも使いたかった。だが、トータルでUWSCを選んだだけだ。

時と場合によっては、UWSCを全面否定し、排除する事すらあり得る。
つまり、ある特定のソフトに対して直線的なのではなく、その中を流れるデータに対して直線的にプログラミングしている。

データフローを真っ直ぐに流す為にソフトを選択しているに過ぎない。UWSCは、それがし易いだけなのだ。
特にUWSCの場合は自動化ソフトなので、ほとんどの場合「相手」がいる。単一の場合は少ないだろう。

また、UWSCでプログラミングしていると、「もっと便利で簡単に利用できないか?」と次第に他力本願になってくる。
そうした道具としての利用度を高めて、目的達成の近道としている。
  
Posted by liners1 at 23:03Comments(1)

2007年06月13日

Linersの長い一日

それは突然やってきた。社内で重大不良が発生し、それを防ぐためのプログラミング!
すでに人間の手に負えないレベル。しかし、データにあまりに変更点が多く、そのプログラミングは困難を極めていた。

すでに現役のプログラマ、元プロ、Excelの使い手もサジを投げてしまった。
しかし、私には声がかからなかった。プロに出来ないのだからダメだと思っているのだろうか?

元々部署が違うので、ある意味対岸の火事なわけだが、同じ会社の一員としては見過ごせないだろう。
そこで、内容を一部聞き出しサンプルを作って見ることにした。

なるほどプロがサジを投げるだけの困難さだ。一筋縄では行かない。
技術的な問題点が二つ、と重要なExcelの表には10年前のVBAが鎮座している。

そのVBAは外注で作成したらしく、プロらしい記述なのだが、奇妙な所も多い。
部分的には、すばらしいテクニックで仕上げられているのに、全体的には稚拙な内容。
コノ疑問にしばらく答えを出せなかった。

こんな奇妙なVBAを解析するよりも、一から作り直した方が速いと直感した。
元を正せば、ダメなデータのほとんどを人間が修正している為に起こったヒューマンエラーなのだから。

データのみ吐き出させてUWSCで処理するか?そのためにまず、技術的な問題点をNetで検索・・・ほとんど情報なし!
散々苦労してやっとのことで、何とか解決したが、VBAでのみ可能な為、ジレンマが生じた。

私は「餅は餅屋」の主義なので、VBAで出来ることはVBAでの基本方針が崩れる。
VBAで記述したい部分が、大きな10年前の予約者の為に、入る隙がない。

別マクロでの起動も考慮したが、複雑な先約マクロの上にリンクが張られており、誤動作の危険が高い。
結局、UWSC側でCOMを使い操作することになった。

主義を曲げた上に、COMバリバリのスクリプト。このスクリプトに関してはLinersを名乗れませんな。
それでは面白くないので、COMの記述量を最低限にして、一旦テキストデータに吐き出させ中間ファイルを作成。

他の表も同様にして、後はそのファイルで作業を進めることにした。約一日の激戦の末、ついに完成した。
プロに「無理!」と言わしめた内容が、抜群の操作性と高速性で実行される様は、感無量である。

今まで述べてきた内容プラス+ダークプログラミング(今回は曖昧部分削除)!
当事者が、このプログラムを目の前にした時の、驚きはたぶん隠せないだろう。

Excelのソートや置換え、検索、を駆使しながらも、気の遠くなるようなデータ照合。人間的な判断と工夫で修正たデータの
間違いを指摘されて凹んでいる当人。プログラムでは無理と自信を深めて、あきらめている。

しかも、プロのお墨付きで、その自信は、「ゆるぎない絶対の領域」へ昇華していることだろう。

それを、根底から破壊する。核地雷級スクリプト!。当人にとっては、まさに異次元の世界でしょう。

話を疑問点に戻しましょう。確かにコレを使えば、大きく改善されるでしょう。しかし、根本解決にはならない。
このスクリプトを多数実行してようやく答えが見えて来た。

元データがまったくダメなんだ! だから修正が多いし、間違える。
プログラム云々の前に、データ構造が崩壊している。

おそらくVBAの外注に出す時も、表(データ構造)を絶対変えないようにと強要したのだろう。
それなら、全体が稚拙で部分がテクニカルなVBAの説明が付く。

根本解決のためには、この部分の指摘が肝要だ。

・・・・

かくして、このスクリプトは封印され、ダークサイドで永い眠りについた。  
Posted by liners1 at 23:25Comments(0)

2007年05月29日

スピード狂

久々の更新です。Liners掲示板(uwsc.ini の書き換え)&Liners出張所ではやり過ぎた感があり少し反省。
初心者向きでは、なかったかな?

Linersのもう一つの顔(スピード狂)が出てしまった。
思えばUWSCを使い始めたころと比べても格段のスピードアップしてるし、パソコン自体も速くなった。
事実コンパイラを使う機会も少しずつ減っては来ているが、意味もなく高速化する趣味は捨てられないだろう。

今回の件はどちらかと言うとアルゴリズムの面からのアプローチで、コノ後は各種コンパイラの登場となる。
私の場合、スピード優先の場合が多くかつ、テキスト処理が多いのでその方面に強いコンパイラとなる。

基本的に「有名なC/C++より速い」が選択基準。もともとC系は文字列処理がどちらかと言うと苦手です。
特にファイル操作はスタンダードなルーチンを呼び出すことが多いらしくかなりスピードが落ちます。

算術演算のカリカリチューンに比べ、この部分ではむしろ後退している。改善してもらいものだ。
あと気になるのが、最近のコンパイラはネイティブコードを吐かなくなったこと。MS系では唯一C/C++のみ
悲しい現状ではある。もうMS以外に期待するしかない。

  
Posted by liners1 at 23:13Comments(0)

2007年05月07日

スクリプトに秘めた想い

サイトをフォローするためのこのBlogだったが、当初の予定終了でサイトの更新もないわけでして、そろそろUWSCのスクリプトに
まつわる話に切り替えようと思う。

その前にサイトの立ち上げから終了までを思う時、初心貫徹の難しさを改めて感じる。初めのころの想いをどれだけ持続できるか?
初心者に優しく、非COMでどれだけ出来たのだろか? スクリプトは短く、分かり易くなっているのだろうか?

長く続けるためには、ある程度「地」を出さないと続かないなと再認識している。その点ではよかったのではないかと思っている。

ソフトを使う側と、作る側の差が開きつつある現状では、その間を少しでも埋めてくれるUWSCはありがたい存在。
しかし、そうは言ってもスクリプトである以上、複雑な処理には言語的なセンスが要求される。

学習の切り口は何でも良いと思うのだが、教科書的な内容では興味も半減してしまうだろう。
そんな事も考えながら日々スクリプトを書いているわけなんだが、そんな想いが込められているなんて誰も思わないだろう。

でもいつか、自分が質問や課題に答えられるようになった時、先人が無償で多くの時間を割き答えてくれたのは、単なる自己顕示欲では
なく、それ以上の奉仕であったことに気付くだろう。
  
Posted by liners1 at 00:28Comments(1)

2007年03月08日

未公開スクリプト

未公開スクリプトには次のようなモノがある

1:会社関連スクリプト
2:自動生成系スクリプト(Optima ,ジェネシス)
3:ダーク・プログラミング系(マリオネット・アルケミスト?)
4:掲示板用、検証スクリプト(使い捨て?)

この中で流石に1〜3はヤバ目なので控えているが、4はボチボチLiners出張所などで出している。
最近では、投稿した別バージョン、INIファイルの入出力(DLL版、テキスト版)などがある。(いずれも未公開)

特にINIファイルの入出力は次期UWSCに搭載予定なのでどのように実装してくるのか今から楽しみ。
APIを使った時よりも一層使いやすくなっていることを期待している。

期待ついでに要望を書き連ねると、
・INIファイルパスをカレント優先にしてフルパスを省略できるようにしてほしい。
・受け取るバッファを自動確保してほしい。
・x00を含む文字列を受け取れるようにしてほしい。
・セクションの要素を配列ではなく、単一の文字列(改行区切りの)で扱えるようにしてほしい。
・関数の戻り値として文字列がほしい。

まあ、今はその比較用として大事に取ってあるといった所でしょうか。
  
Posted by liners1 at 00:02Comments(0)

2007年03月07日

またExcelで悪夢が・・・

またExcelで悪夢が・・・

久々にExcel/VBAでの問題にお目にかかった。今回は、本家掲示板にあったように大きな表に対してPasteSpecialの不具合。
かなり大きな表でないと出ないので、気付かなかった。

過去の経緯からExcel/VBAでのプログラムの作成は、処理を単純化し、細かく分割するようにしている。
今回も質問でなければ、素直に一度ファイル化してから読み込ませる手法を取っただろう。

しかも、内容が「要素が見つからない」など意味不明。それまでの何百回はどうしてたの?

ココからは推測の域を出ないが、複雑なオブジェクトを多数扱うようなると出現することから、VBAには内部で扱える記憶領域に限界があり
それを全て使い切った時に現れると考えると合点が行く。

Excelはとても優秀なソフトだが、過信は禁物。特にVBAを使う場合は慎重に行うのに越したことはない。
この他にも、配列の問題。丸めに関する問題など多数ある。

そのいずれも、大きな表でないと出ないなど原因がわかりずらい。
こんな調子なので、私は部分的な分析やグラフに活用し、大きな表ならサッサとデータベースで作るように心がけている。  
Posted by liners1 at 00:55Comments(0)

2007年02月18日

マクロの必要性。

マクロの必要性。

はっきり言って、現状では全ての要求にソフトが対応できないから、マクロが必要と考えている。おそらくコレは、今後も変わらないだろう。

多くの人が必要としているの機能は実装されているか、探せば見つかるものだ。だが、少数の人が必要とする機能は実装されないだろうし
探してもなかなか見つからないだろう。だからその要求に応えるためにマクロが必要なのではないだろうか?

同じようなソフトには同じような機能が搭載されている。だが、マクロがあるとなしでは、大きな差がある。
本当に必要とする機能が、マクロを組んででも実行できるか出来ないかの差は、かなり大きいものがある。

私は、こう考えている。Windowsが一つのデッカイ・ソフト考えると、痒いところに手の届くマクロが必要。バッチファイル、WSH、があるものの
どちらもイマイチGUIを操作できない。やっぱりWindowsのマクロはUWSCで決まりかな?  
Posted by liners1 at 23:40Comments(0)

実用的か否か?

実用的か否か?

私自身もそうなのだが、真の「実用的」スクリプトであるかどうかは、大いに主観性が入っている。
単に自分が使って便利だけなのかもしれない。

ただ、「遊び」にではなく仕事や生活の中で役に立っている、複数の人が便利さを認めている事を最低の基準にはしている。
もともと仕事の効率アップからUWSCを使い始めたので当然なのかもしれない。

現実には使い捨てのプログラムをどれだけ速く書けるか?であり、当然開発時間も重要だった。
C++でも書けるが、環境がなくてももっと手軽に、出来れば目の前の実機で作れないものか?そんな思いがあった。

凝った画面なんかはどうでもいい、素早く処理を行い結果をテキストでいいから受取って次の処理に繋げる。
それに最適なのは・・・UWSCでしたとさ!
  
Posted by liners1 at 23:00Comments(0)

2007年02月02日

ダーク・プログラミングの条件

ダーク・プログラミングの条件

1:通常プログラミングされないタイプ。
2:最終判断を人間に委ねるタイプ。
3:独自のアルゴリズムと人間的判断。
4:一点集中型の特殊スクリプト。

UWSCプラス!で紹介している部分ではあるが、もう少し掘り下げてみると・・・

「通常プログラミングされないタイプ」とは、少なくとも自分の調べた限りでは前例がないプログラムであること。
  単に知らないだけかもしれないが、自分にとってはブラックボックス(ダーク)であること。
  普通なら使う手法を活用できない条件がある場合や、結果が多岐に渡るものなど。

「最終判断を人間に委ねるタイプ」とは、分類できないデータや間違ったデータが含まれる可能性があるため。
  明確に判断できたものと、そうでないものを分けて知らせること。
  選択肢が多い為、データを列挙し選択してもらう。

「独自のアルゴリズムと人間的判断」一般に知られているアルゴリズムより、人間の思考パターンを優先的にシュミレートする。
  単に効率の良い答えを出すための機械ではなく、より人間的な内容を含む事を優先する。
  感覚的には、同じ数字を提示するにしても、「電卓」ではなく「アシスタント」であること。

「一点集中型の特殊スクリプト」単機能ではあるが、その熟考されたスクリプトは、その効果において他の追随を許さない。
  その人が最もほしいデータを、最善の形で提供出来ることを目指して作られたスクリプトであるからだ。


・・・とは言うものの、ある意味実当然だが「普通のプログラム」に酷似している。
もちろん、一通りアルゴリズムは勉強してきたものの、あえて白紙に戻してプログラミングしている。

「パソコンに計算させる」感覚ではなく、「一緒に考えてくれるパートナー」であり「自分の分身」である。
こんな事を念頭において、プログラミングが始まる。

正直始めは、何も変わらない「普通のプログラミング」であった。だが、次第に自分なら、こんな場合はこう処理するな。
こんなデータを集めるなぁ。こんな指示をするなぁ。そこにはパソコンはなく、自分の姿がある。

その為には・・・そう、それが「ダーク・プログラミング」への目覚めだった・・・・
  
Posted by liners1 at 01:23Comments(0)

2007年01月28日

ダーク・プログラミングについて

ダーク・プログラミング(以後DP)について質問が出ましたので、お答えします。
ただし、業務に使用してますので、スクリプトの公開は控えております。

>ダーク・プログラミングに外部ツールは必要なのでしょうか?
必要ありません。そもそもプログラミング手法ですので趣が異なります。

DPは私が勝手に名付けたプログラミング手法で、UWSCプラス!の最後に出て来ました。
「闇に閉ざされし禁断のプログラミング。あまりに人間的であるがゆえに「間違い」も犯してしまう。」通常はタブー視されている。

少し抽象的ですね。例えば、POSレジや伝票発行業務には「間違い」など許されません。けれども同じ事の繰り返しがあまりに多い。
それに対応するのが、Optimaです。操作自動化の最たるものです。

DPはちょうど、それと対極に位置するものと考えてください。
結果に判断しきれないデータ(間違いかもも知れないデータ)が含まれるので、最終判断を人間に任せています。
さまざまな手法により、人間くさい内容を提案します。(判断ロジックを人間の思考に出来るだけ沿っているため)

戦略データ提案のサポート・プログラム。または、特殊なワーニング・システムです。
業務を川の流れに例えると、企画・開発・設計などの上流から加工・製造・販売などの下流への流れがあり、どちらも非常に重要です。
その上流部を担当するのがDPで有用なデータ(人間が判断したようなデータ)を提供するのが目的です。

よく考えてみると、業務のコンピュータ化されているのはごく一部で、多様な判断は人間が行っています。
その判断も時として大幅に間違え(見込み違い)があり、下流部で甚大な損失を招きます。

その抑制の為に考え出したのがDPです。普段の生活とは違い、業務上ではインプットがある程度限られており、結果が多岐に渡るものの
その途中までは共通な思考パターンをたどるものです。

DPはその共通のインプットと共通な思考パターンをプログラム化したものです。ですので、応用範囲は広く、マクロ的には下流の現場であっても
作業者用のOptima、管理者用のDPと見ることが出来ます。実はLinersのプログラムの二面性はココから来ています。  
Posted by liners1 at 23:49Comments(5)

2007年01月26日

「UWSCって何?」と聞かれたら...

「他のソフトウェアとの比較」にも出てきたUWSCソフトの特徴とは?

UWSCというハタから見れば得体の知れないソフトに不安を抱くのは、ある意味当然でしょう。
あれこれ能書きを垂れて、説明するよりも「論より証拠」だと思います。

全面的に禁止をされているのでなければ、便利なツールの一つとして使いましょう。
UWSCは「他のアプリを操作する」ことに主眼の置かれたソフトです。

また、このタイプのソフトとしては最も実績のあるソフトと言えるでしょう。
他のマクロ、WSH、C言語で作られたアプリと比較して不足している部分があるのなら、それ自体を呼び出して操作すればいい。

実践を通して、鍛え上げられたとしか思えないUWSCは、特に仕事でその威力を発揮します。
本格的な開発言語ではないので、「UWSCって何?」と聞かれたら、「操作の記録再生が出来るWindows用の一種のバッチファイルだね」
と受け流しておいた方が良いのではないでしょうか?

しかし、その開発効率と効果は、他を寄せ付けませんね。
  
Posted by liners1 at 22:40Comments(3)

2007年01月22日

今後のちっちゃな方針。

今後のちっちゃな方針。

「意味不明でも、筋が通っていなくても良いから、数多く書き込む事。」

コミュニケーションと赤裸々な部分が逆に楽しめるのではないか? と考えています。
深く考えて書いてないので、揚げ足取らないでね。

まずは、「Liners出張所」から行くよ!
  
Posted by liners1 at 00:26Comments(2)

2007年01月01日

ジェネシス計画

明けましておめでとうございます。本年もよろしくお願いいたします。

去年は、プログラミングに関する仕事も一段落しサイトの予定も終了しました。
今年からは、より自由な発想でプログラミングできます。

仕事や効率優先の内容ではなく、趣味としてのプログラミングになりそうです。
年末から、頭の中を整理しているのですが、中々”もと”が悪いもので苦慮しております。

とりあえず、手をつけて頓挫している「ジェネシス計画」を再開するつもりです。
ただ、UWSC以外も視野に入れているので、公表するかは微妙なところです。

「こんなことがしたい。」を具現化する小さな一歩。
実現は難しいかも知れないけれど楽しんでプログラミングしたい。そんな想いがLiners流。

パソコンで作る喜びが味わえるプログラミング。貴方もそう思いませんか?
  
Posted by liners1 at 16:22Comments(1)

2006年12月17日

企画倒れのお話(でもいつかはきっと・・・)

<<< パワー・スクリプト! >>>

何だかよく分かんないんだけど、とにかくパワーを感じるスクリプトのこと。
ふ〜〜ん。

「へ〜〜。こんな凄いことが出来るんだ!」みたいなスクリプト。
それで?

例えば、スクリプトだけで星がきらめき、全画面に雪が降り曲が流れる。
あっ、ホワイト・クリスマスのアレネ。でも超重過ぎ!

うっう。じゃあプロジェクトXのようなテロップが出て・・・
それの どこがパワー・スクリプト?

ほんとはね。ほんとはね。僕、すっんごい仕事をするスクリプトが作りたかったんだ。
でもね。でもね。僕じゃちょっと無理みたいだからあんな風になっちゃたんだ。

ボウヤだからね〜〜。

うっう、もうやめぅ〜〜〜〜。


<<< スクリプト On スクリプト >>>

スクリプトのスクリプトによるスクリプトのためのスクリプト!(何のこっちゃ?)

つまり、スクリプトのマクロを作って見たかった。出来ればスタック言語みたいなもの。
スクリプトから呼び出せて、さまざまな機能を次々と定義できる便利なもの。

一つの機能や、一連の動作を実行中に定義して、どんどん再利用していく。
使えば使うほど、賢くなっていくそんなスクリプト! どうやってそんなもの作るんだ?

う〜〜夢は膨らむばかり・・・

でも、でも。その一部はRec2Exeで変換の形だけど実を結んだ。
まあ、これで良しとするか?


<<< 不可能を可能に >>>

umiumi様から現状では出来ません&実装していません。といわれた内容を擬似的にでも実現する。

例えば、同時に3つインプットボックス表示とか、ホイール操作の検知など。
実現は困難だけどトライする価値はあると思う。まあAPIを駆使することになるので掲載はしないかもしれない。

実際に仕事をしているとソフトに限らず困難な場面は数多く出くわす。その場合ソフトなら最適なソフトを最短で利用・作成を
行うが、その場では無理でも時間のある時に挑戦して見ることが大切。

こうして私は、いくつも不可能を思われることを可能にしてきた。諦めずに続けるときっと良いことが起こりますよ。


<<< 新たなるプログラミングの鼓動 >>>

以前から、まだ見ぬ天才たちによる新たなソフトの出現を予見しているが、具体的な説明は難しい。
なんせ具体的なモノはまだないのだから。

しかし、CPUはマルチコアが当然となりクロックアップに限界が見えてくると、より効率の良い平行処理が考え出される。
ある程度の処理は非コンパイラで十分となり、スクリプトがよりクローズアップされる。

しかも、OSが巨大化、複雑化の一途をたどると、ある時点でアプリの作成が困難となり始め、別の簡単な何かが模索され始める。
現に、Vista以降のメジャーアップは、少なくとも現在よりは間隔が置かれることになるだろう。

もちろん先進的な一部の開発現場では、それに気づき模索されはじめているが、いつの時代も実際のハードを手にした
一般の天才達が、画期的なソフトの素を作り出しているのは、事実である。

さらに、プログラミングそのものも検討され、コードを書くというより、プログラミング本来の指示を与える方向に振られるだろう。
現在では、フォームをGUIで作成出来るが、コードは打ち込みが多い。しかし、これからはコードもGUIか、それ以上のインターフェイスで
なされていくことだろう。(個人的には楽しみでしょうがない)
  
Posted by liners1 at 21:32Comments(0)

2006年12月03日

UWSCは難しい?

「UWSCは難しい」ちょっと引っかかりますねぇこのフレーズ。一般的に難しいか、簡単かの概念は、別のものと比較して判断されます。
UWSC以外の何と比較して難しいのかなぁ?と思ったりします。

また、スクリプトやプログラムが難しいのであれば、UWSCに限ったことではないでしょう?
主観的に見れば、その人にとっては難しいものでも、他人から見ばれば、もの凄く簡単な事かもしれません。

良く仕事でも指摘されるのですが、「これは難しい」と言うと、「じゃあドレなら簡単なんだ?」と返されます。
逆に考えると、ソレが変でないかどうかが、分かる場合が多いですね。

UWSCは初心者用に記録再生機能がありますし、さらに高度なことが出来るように、スクリプトエンジンを搭載しています。
いわゆる2WayToolで、このタイプとしては、簡単で、高度なことも出来て非常に良く出来ていると思います。

簡単:AutoItなどと比較して、記録再生機能があることなど。
高度:ロケットマウスなどと比較して、COM,DLLの利用、文法・関数が他の言語仕様に近くより細かい操作が可能な事など。
  
Posted by liners1 at 10:01Comments(1)

2006年11月28日

こちらLiners出張所

すでに、ひっそり&こっそり掲載してしまいました。

Liners出張所

主に質問に対する検証スクリプトに、切り口が違うタイプを乗っけています。
さまざまな手法があるのですが、王道とは違った方向で考えて見る訓練だと思っています。

「こんなのが訓練かい!」と言われそうだが、実際には、こんなもんですよ。
でもこんな中から自分だけのスクリプトが生まれてくるものです。

こうやって考えること自体が楽しくてやっている。それでいいんです。(自己納得)
仕事にも、趣味にも十分役立っていますし、このようなコミュニケーションも取れています。

今までは、書いてテストして、掲載も投稿もせず、そのうち忘れ去られていくスクリプトですが
(私の頭の中にはシッカリ残っている)ちょっと可哀想なので復活させることにしました。

それにしても、今までにかなりの数が死んでいるよなぁ。ちょっと思い出して見ようかな?

  
Posted by liners1 at 01:52Comments(1)

2006年11月24日

掲示板の質問に答えるには?

掲示板の質問に答えるには、多分の次のよな手順を追うだろう。

1:スクリプトがあればそれを検証。動作するか?何が問題なのか?
2:自分ならどう書くのか?>検証。
3:掲載。

ただし、私は次の内容を加味する。
4:初心者向けなのか? そのまま掲載するのか? ネットゲーム関連ではないか?
5:質問者の為なのか? 基本的過ぎるものは、あえてスクリプトを掲載しない。
6:通常ではないプログラミングは出来ないか?(ダークプログラミング)
7:短く、基本的な構文に出来ないか? etc...

という訳で、未発表の(変態?)スクリプトがゴロゴロしている。
時を見てどこかに掲載を伺っているが、私のサイトに乗せるには、あまりにも一貫性と、方針に反する。
かといって、他人のページや掲示板に掲載するには、単なる板汚しの気がしてならない。

ウーム。そうだなあ。何か良い方法はないのだろうか?

許してもらえるのなら、いりやさんのUWSC WiLiKiにでも個人ページを作ってこっそり乗っけようかなぁ。  
Posted by liners1 at 00:29Comments(1)

2006年11月05日

サイトの掟


その一つ、「このサイトの宣伝を自分自身からはしない事」があります。しかし、すでに予定が全て終了し、リンクや
紹介をされた事を考えると、スクリプトの紹介をしても掟を破る事にはならないのではないか? と考えています。

今までも 参考:URLなどの形でページは紹介してはいるものの質問に関連しての話であり宣伝ではないと考えています。

今後は、上記のような基本方針を変えるつもりは無いものの、より多くの方々の参考の為にサイトへの参照を増やし、
サイトには掲載していないスクリプトや、紹介されてしまったスクリプト(Optimaなど)に限り、公開していこうと
(宣伝ではなく)考えています。
  
Posted by liners1 at 18:38Comments(0)

2006年11月04日

最近のスクリプト

最も多いのは、Optimaによる使い捨てスクリプト、次に過去に書いたモノを必要に応じて書き直している。
特に書き直しの時は、連想配列に配慮している。以前からその傾向は強かったが、言語仕様になってからは
どちらでも良い場合でも連想配列の方を優先している。(一次元配列のみ)

よく考えてみれば分かる事だが、普通、私達は単純な一次元配列の照合を最もよく行う。
「あの人は、田中さんか?」「コレは食べ物か?」「これからどうしよう?」など。

一見かなり複雑な内容に見えても、その実、長大な一次元配列の中からせいぜい数百パターンを選択している場合が多い。
つまり実際には、かなり狭い範囲の中で行動している場合が多いものなのだ。

私が思うに、「世間は広いようで狭い」は世間は広いのだが、その中で行動している人間の行動範囲がパターン化されている
ため同じような行動を取る人が出会う確率が高いのではないかと考えている。


そうであるならば、これらを何とかプログラミングに取り入れることは出来ないか?
そんな考え方のホンの一部分を具現化したのがダークプログラミング。

その第一歩として引数の呪縛から逃れるために、意識して連想配列を多用している。まだまだ訓練中ですね。
  
Posted by liners1 at 09:14Comments(0)

2006年10月24日

予定終了!


当初の予定が全て終了しました。皆様ありがとうございました。

どうだった? 面白かった?

「こんなサイトが、あったらいいなぁ〜」 そんな思いを常に持って今までやってきました。
私にとっては全てが初挑戦で、結構ハードでした。でも本当に楽しかった。

窓もグラフィックもないUWSCで、どんな表現が出来るのだろうか?
みんなが驚くようなスクリプトとは?
初心者の方の為に何が出来るの?

少しでも参考になるような事が出来たのかなぁ?
いまだに疑問符がいっぱいです。しかし、これで良かったと思う。何もしないより、自分の想いが込められたから。
きっと良い何かが伝わったと信じています。

これらは、あまり顔を出すこともないでしょうけれど、呼べば答えますよ。なんせ初心者の見方ですから・・・
サイトの方はしばらくお休みします。Blogと掲示板は継続しています。
  
Posted by liners1 at 01:14Comments(1)

2006年10月08日

最近のパソコン

特に今の環境に不満は無いが、Vista搭載に向けて環境を一新する事にした。
しかし、手持ちのパーツを最大限に活かそうとすると、選択肢が狭い。

マザー、メモリ、CPU、HDD、VGA、電源の全てが旧タイプ。何百台と自作しているとは言えこの条件は厳しい。
マザー、CPUは仕方ないとして自作の楽しみでもある、徐々にパーツを交換して"育てる"事を軸とした。

特に悩みどころはCPUで、性能ならばCore2Duoで決まりなのだが、全てを交換しなければならず、予算的にも厳しい。
同じ理由でAMDのAM2ソケも二の足を踏む。

また昔ほどCPUクロックは上がりづらくなっており、価格の割には速さを体感できない。
結局流用パーツの多いAMDの939ソケにしたが、すでに終焉に近くCPU入手に一週間待った。(最も安い3200+)
CPUについては今後、高クロックのX2が中古で叩き売られていたら購入する事にしよう。

当然のごとく、枯れ切ったマザーでノントラブル。スピードも体感できるレベルだった。
一番安いCPUとは言えPen4の3.2GHz相当であり,今後コレが最低レベルと考えると、UWSCのようなスクリプトの欠点である
遅さの問題が小さくなり、手軽に活用される利点がますます重宝されるだろう。  
Posted by liners1 at 13:09Comments(0)

2006年09月30日

3つのコンパイラ


UWSCプラス!の+08 は当初「3つのコンパイラ」だった。コレはある環境でしか動かない事、スクリプトがUWSCでない
事。コンパイラバージョンでは制限が多く当初のスクリプトがまともに動かない事。などからボツとなっていた。

そんな事を露知らずのアイツは「え〜〜〜もったいない!!」と不満顔。
まあ、コマンドラインとチョット変わった話題を扱うUWSCプラス!では脱線しすぎの感があるので、まあいいか。

それでも「なんで?なんで?」としつこい。
"番外編を一本作るから許して"と提案すると、ようやく納得した様子。

ってな訳で番外編を一本追加します。今回は珍しく連想配列の話題。+0Bデータ構造の重要性(連想配列再び)の続きです。
コレも脱線してるよなぁ。  
Posted by liners1 at 10:08Comments(0)

2006年09月11日

人間的思考

UWSCプラス!後半に登場する「人間的思考」「人間的解析」「簡易AI」の言葉はかなり狭義(狭い意味)を指している。
独自の考え方なので、良い表現が見つからないだけなのだ。

「人間的思考」は人間と出来るだけ同じ手順をプログラムする事。
「人間的解析」はデータを数値ではなく、ココでは意味のある文字列として捉える事。
「簡易AI」は上記の判断を複数の「意味のある文字列」で行う事。(入力の優先順位学習機能付)

としている。いずれも業務目的なのでシンプルなモノになっていて全体的には、数値コードによるプログラミングではなく
非数値(文字列)が中心のプログラミングになっている。

UWSCプラス!「p0C配列マジック再び(人間的思考)」では「人間的思考」の部分を書いてみた。通常との違いが明確になる
だろう。「人間的解析」「簡易AI」でも同様だが、初心者向けでもあり詳細は避けている。

こうした考えのもとで作られた特殊なスクリプトは、通常のプログラム(定型業務用)とは全く異なった動作をする。
その特徴は、「スピード」で、スクリプトが速いと言うわけではなく、非数値を扱うので様々な工程の上流層での判断が
可能となり、早期の段階での検討や対策が打てるようなる。

この特徴は非定形業務でその威力を発揮する。こうした「スピード」や先人的な試みの意味と、その効果の大きさの意味を
込めて私は、この特殊なスクリプト達を「アルケミスト[錬金術師]」と呼んでいる。
  
Posted by liners1 at 00:20Comments(2)

2006年09月05日

本当の戦い

それでも作業現場では大好評。単純作業の繰返しが多い現場では、たとえ30分の短縮でも直接利益に跳ね返る。
「何故もっと速く作ってくれなかったの?」とは良く言われたものだ。(人の気も知らないでもう!)

しかし、当の本人は悩んでいた。空いた時間で多少残業が減っただけだからだ。もともと事務系の仕事はコンピュータ化が
進んでいて、定型業務はほとんど完了している。

だったら、コノ事務所の書類の山と混乱ブリは一体何なんだ〜〜〜!

配送人「伝票まだ〜?もうとっくに出発の時間なんだけど」
事務員「ごめんね〜。作業がトラブルで遅れているみたいなの」
担当者「お〜い。○○ちゃん!コノ指示書間違っているじゃないか!」
事務員「うっそー変ね。調べて見るわ・・・あーっ!48時間以内に変更がかかっているぅ。締めがあるから48時間以内に」
   「あたしが知ることは出来ないわ。それに全ての変更をこんなに速く見ることは絶対無理!」
担当者「そ、そんなあ〜。今から全数手直しじゃ間に合わないよ〜!!」

ん?!コ、コレだ〜〜通常の「表計算の頭」では出来ない処理! しかし、"絶対無理!"と言われる処理を一体どうしたら
良いのだろうか? そもそも、メインシステムが対応できない処理を個人が出来るのだろうか?

そんな中で生まれたのが、Linersの特殊スクリプト達。
もちろん"内面の壮絶な戦い"があったことなど誰も知らない・・・

Liners「最近事務所も静かになったね。」
事務員「コレが当然の姿よ!」
Liners「あの指示書間違いって最近ある?」
事務員「急な変更が少ないからじゃない? 間違いはないわよ」
Liners「そ、そう? じゃあお先にね〜〜」
事務員「お疲れ様〜〜」

帰りがけにLinersは、以前の3倍に増えた古い指示書の束をシュレッダーにかけていた。
  
Posted by liners1 at 01:31Comments(0)

2006年09月03日

表計算の頭

こんな業界に長く居ると妙な事に気が付くものだ。長い間事務処理をしていると、次第に頭の中が表計算になってくる。
何をやるにしても、縦横に区切って表にしてしまう。ハタから見ると一種の病気に見える。

確かに表は便利なものだが、冷静に考えると全データの中で表計算化出来るのはむしろ少数派だ。
ソレなのにそっちの方に傾くのは、データベースや表計算ソフトが便利だからではないだろうか?

しかもその「こね繰り回しているデータ」のほとんどは、なんら利益を生まないモノではないだろうか?
数字の羅列を、整理分析してグラフ化する。プレゼンの為であり、現場はそんな事初めっから知ってる場合が多い。

下手をするとマイナス効果になってしまう。決まりきった操作はサッサと済ませて、本当の利益の出る仕事をしないと
ライバルには勝てない。その為のツールとしてUWSCと出会った。

よ〜し。コレを使えば、大幅に効率アップ出きるぞ! しかし、現実はそんなに甘くはなかった。
確かに自動化して速くはなるのだが、せいぜい30分から1時間程度。変化が激しく、繰返し回数の少ない部署では効果が
少ない。Optimaの利用で大幅に作成時間は短いのだが、ただそれだけだ。何かが違う。

そう、「表計算の頭」からの脱却と、その先が見えていない事がこれほど困難だったとは・・・
本当の戦いは、この瞬間から始まっていたのだ!
  
Posted by liners1 at 22:53Comments(0)

2006年08月26日

UWSCプラス!の予定。

+04  ダブル・DOSコマンド
+05  フィルタ&(アンド)の威力
+06  D&D(ドラッグ&ドロップ)・フルパス取得
+07  WhileとRepeat
+08  トップダウンとボトムアップ
+09  コマンドライン引数(起動時パラメーター)
+0A  国民の休日
+0B  データ構造の重要性(連想配列再び)
+0C  配列マジック再び(人間の思考)
+0D  エピローグ (ダーク・プログラミングへのご招待)

この中で注目は+0A〜0Dで変わった考え方の連発になります。
特にエピローグ (ダーク・プログラミングへのご招待)ではLinersが持つスクリプトの全体像が明らかになります。

残念ながら、"「金」の弾丸"(戦略的特殊スクリプト)は有りませんが、その考え方にもココで触れています。
コレを持って全ての予定を終了いたします。  
Posted by liners1 at 00:42Comments(0)

2006年08月01日

UWSCプラス!

もう少しだけ、私のヨタ話を聞いてもらおうかな?

今回は、コマンドラインの使い方。Doscmdからコマンド、ショートカットに至るまでコマンドラインにまつわる簡単なスクリプトを紹介します。

ソレと良く耳にする単語や話題、UWSCのステートメントについてもう一歩踏み込んでみます。
短い文章の割には、Linersが出くわした内容が盛りだくさんだよ。

UWSCを使う上でプラスになったらいいな。
  
Posted by liners1 at 22:47Comments(2)

2006年06月29日

みなさん、本当にありがとう。

ふぅ。。。やっと終わったぁ。
このスクリプト物語を無事に終わらせることが出来たのゎ、あのサイトを訪れてくれた皆さんのおかげ
です!!
有難う御座います。。←(ホントに感謝してます。)

っえ?何??いつもの人と話し方が全然違うって???
そうなんですょ。実ゎ私、いつもの人と違う人なのです。
1つ前に更新した記事を見て下さい。

もぉ気が付きました?
私、決まり文句の「はじまり、はじまり〜。おしまい」は忘れてしまうし、テロップはいい加減に書い
てしまううっかり人間の女性の方の私です。
要するに、Linersの助手っていうところでしょうか・・・・。
まぁ、「Liners2世」ってことで。。。


っといってもこの私Liners2世ゎ、もう今日で物語が終わってしまうのでこれが「最初で最後の記事」
になると思いますが。


ちょっとここでLinersと私について話そうかな。。(3行ですんでしまいますが・・・。)
Linersと私の関係ゎ、○○関係ですね。
○○ゎ両方とも漢字です。
自由に想像してみて下さいな。。


でゎここでチョットこの物語についての感想を書こうと思います。

こんなことをいうとLinersに叱られるので秘密にしておいてほしいのですが。。。
正直私ゎ最初、スクリプトやプログラムが一体何者なのかすら、チンプンカンプンで、Linersが何をや
っているのかすら分かりませんでした。
まして、スクリプト物語を通して喜怒哀楽や感動を伝えることなんて出来るはずが無いと思っていまし
た。
スクリプトなんてただの文字配列、Linersゎどうしてそこまでして夢中になっているのか理解し難いも
のがありましたね。。。

でも、物語をやっていくうちにだんだんとLiners Worldに引き込まれて、今でゎどっぷりとつかってい
ます。
こんな私も物語に感動した1人だったりして。。
きっとそうですね。

けれど、いまだに分からないことが1つ・・・・。
「元々多分に女性の言い回しが入っていますが、マジで女性の意見を取り入れています。」(1つ前の
更新より)って何?何??何?!!
すっごく気になります。。。

このことについてゎLinersから後日ゆっくりじっくり教えてもらうことにしましょう。

ぢゃあ、私ゎそろそろおいとまさせて頂きますね。
なんか軽い感じでゴメンなさい。。
それでゎお待ちかねのLinersにバトンタ〜ッチ!!


な〜に言ってんだかコイツは。(勝手に2世を名乗るとは、いい根性しとる!)
まだまだ、何も分かちゃいねーな。物語にはかなり実話が入っているんだ。その現場に居合わせた人が読んだならば
その驚きはコイツの比じゃないよ。


さまざまな出会いを通して語られた物語。その辛さ、楽しさ、恥ずかしさ、その全てをまっすぐに伝えたかった。
きっと伝わると、そう信じて今日まで来れました。しかし、それも、もう終り・・・

そろそろ約束の時が来たようです。
  
Posted by liners1 at 22:44Comments(1)