Windows での shlauncher のプラットフォームは PowerShell v2 がいいか?

CLI 大好きな wtnabe です。もう何回も書いているような気がしますが、CLI のよいところは

  • 補完が利く
  • 履歴から同じ作業をくり返しやすい
  • 履歴から以前の作業を呼び出し、これを編集してちょっと違う作業をくり返しやすい
  • ほぼそのまま sh スクリプト化して定型作業として切り出しやすい

などです。これだけでも十分強力なのですが、さらに一歩進めて作業の標準化を図るために shlauncher を作りました。しかし Windows の場合、このベースとなるコマンドライン環境がとても貧弱で困ります。

  1. コマンドを検索してくれない
  2. コマンドの対象となるファイル名を保管してくれない
  3. 履歴を辿れない
  4. Windowsで共同作業する際にまず必要となるであろう UNC に対応していない

などです。本当に悲しくなるくらいダメです。この問題に対するソリューションは昔からいくつかありましたが、cygwin は大げさなうえにファイルアクセスが遅い、NYACUS は UNC に対応していないなど、意外に普通の人の作業を普通に支援してくれるものがありません。

しかしついに出ました! PowerShell v2 が!

Learn PowerShell with codesamples, PowerShell scripts and tutorials for free | Join the PowerShell Community | Windows PowerShell

12:28:15 >wtnabe< おっ! Power Shell v2 は外部のコマンドも補完できるぞ!
12:28:51 >wtnabe< おっ! UNC のパスに cd できたぞ!
12:38:12 >wtnabe< あとはExplorerで開いてるフォルダをカレントに開ければ
無問題か?

v1 は外部コマンドの補完は利きません。v2 じゃないとダメです。

多少インストールも動作も重いけど、素の cmd.exe ではやはり不便なので、

  • .NET Framework 3.5
  • PowerShell v2
  • Ruby
  • shlauncher

を用意して Windows 上の作業を標準化&支援していくのがいいんじゃないかなぁと思い始めたところです。

※ Un*x 系の人間が管理しやすい環境としては期待していません :-P

yum リポジトリで特定のパッケージだけを扱う

最近すっかり yum 使いに。たまに portinstall とか、手が不思議な動きをするのは内緒。それにしても yum はなんか遅くないですか。apt にした方がいいのかなぁ。でも運用始まったらこんなの頻繁に使わないだろうしなぁ。

えー基本的には /etc/yum.repos.d/ 以下でリポジトリごとに .repo ファイルを置いてあるものとする。

そのファイルの中で

exclude=除外パッケージ名のカンマ区切りリスト

or

includepkgs=利用するパッケージ名のカンマ区切りリスト

という形で特定する1。ともに *, ? の glob が利用できる。

この指定があれば search などの際に該当するパッケージ、あるいは該当するパッケージ以外だけがリストアップされる。試しに以下のように

[fedora-extras]
name=Fedora6 - Extras
baseurl=http://ftp.riken.jp/Linux/fedora/extras/6/i386/
gpgcheck=1
enabled=1
gpgkey=http://ftp.riken.jp/Linux/fedora/extras/RPM-GPG-KEY-Fedora-Extras
priority=2
protect=1
includepkgs=namazu*,kakasi*

fedora extras の riken mirror を指定してやると、

$ yum list all | awk '$3 ~ /fedora/'
kakasi.i386                              2.3.4-22.fc6           fedora-extras
kakasi-devel.i386                        2.3.4-22.fc6           fedora-extras
kakasi-dict.i386                         2.3.4-22.fc6           fedora-extras
namazu.i386                              2.0.16-1.fc6           fedora-extras
namazu-cgi.i386                          2.0.16-1.fc6           fedora-extras
namazu-devel.i386                        2.0.16-1.fc6           fedora-extras

てな感じで fedora-extras の中で利用できるパッケージは kakasi と namazu 関係のものだけになる。2

ま、man 5 yum.conf の劣化コピーなんですが自分のためにメモ。

cf. CentOS 初挑戦で yum リポジトリに悩む

  1. include は最後の s とか忘れがちなので注意。 

  2. ただこれやっちゃうと何か追加したいパッケージが出てくるかもしれないというときに不安になるよね。別名で同じリポジトリを enabled=0 でセットしておくといいのかも。 

今さら PHP の気に入らないところ

※ 出ました「今さら」シリーズ。

こういう話はすでにあちこちで挙がってると思うけど、自分の中で最近いちばんでかいのは

変に「名前」や「文字列」を要求するところ

かな。まぁ標準で入ってる callback 処理する関数群なんかが分かりやすいんですが。

callback 関数名って基本的にグローバルな名前空間のものを要求するので、オブジェクトを作りまくってると使いにくい。一応

array( $obj, 'funcname' )

でイケるんだけど1、こんなところにもわざわざ array() なんて場所を取る記述しなきゃいけないのがイヤ。

create_function も結局変数名が必要だし、中も文字列で書かなきゃダメだし2、どうも使いやすくないんだよな。JavaScript の function や Ruby のブロックみたいにすっきり書きたい。

なんかこう、変なところでカタイというか、C っぽいというか。元々のツクリの制限がモロに表に出てきてるようなそういう感じ。LL なのにあんまり wrap されてないっていうか、LL らしくない気がする。

※ Lisp 回帰ってのはよく言ったもんだなぁ…

  1. これは人に聞いた。どこ調べりゃ分かるんだか想像もつかなかった。 

  2. この制限は正規表現周りでもよく思う。文字列としてエスケープして、正規表現としてエスケープして…って分かりにくいんじゃっ。 

林先生が顧問に

いつの間にかナイトスクープで林先生、顧問なっとるやんけ。

FDclone 2.06a on cygwin

ports が上がっていたのでまた cygwin でやってみるテスト。2.04c で対応していたはずの cygwin で初めて動きました!

  • machine.h を何も編集せず
  • そのまま make

で ok.

make install で

/usr/local/man/ja_JP.eucJP/man1

に man を入れようとしてエラーが出る。これは

/usr/local/man/ja

とか適当なところに fd.1 をコピーすればよいが、jgroff を入れてないのでどっちみち無意味だな。

起動したらちまちまとエラーが出たが、これは Linux 上で使っていた .fd2rc が悪さをしていたもので、uuencode とか、jless とかそういう設定を外していったら「重いのを除けば十分使える FD」ができあがった。これで remote の Windows のファイル管理がさらに楽になる。Emacs の dired だとどうしても不得意な操作があれこれあってね。CLI :-) がきらいなわけじゃないが、こういうビジュアルシェルの方が便利なシーンは確実にあるのですよね。

PowerPointが先導するプレゼンテーション

from CNET Japan

うーん。読まなきゃいいんだけど、例の SFC の人。

なんていうか読むたびに否定の仕方がひどくなっていく気がするが、文章の構成がうまくないなぁ。前振りが長過ぎる。学生が夜なべして PowerPoint でへたくそなプレゼンを作っている、というだけの話なのにどうしてこんなに寄り道が多いのか。

おかげでその教授が Flash の特性をつかみきれていないのか、学生がつかみきれていないのか、教授が学生に Flash の良さをちゃんと伝えられていないのか、とかどうでもいいところに引っかかってしまう。

単に自分が SFC に幻想を抱き過ぎなんだろうか。まぁ「SFC のすごさは PC うんぬんじゃないところに出るはずだ」とも期待してるんだけど。あーもう変にイライラするな。やっぱ読むべきじゃないのか? そして次回は PowerPoint のプレゼン以外での使い方の話だそうだ。今日日そういう「間違った Office のワザ」を開発する人はいくらでもいるの。問題はへたくそなプレゼンがどうよくなっていくか、でしょ? 違うの? PowerPoint ありきになってしまっているのは良くないよね、というのが今回の主旨でしょ? そしてその問題は放置されるのか。うーーーーん。

どーでもいいがパワポとか略しちゃうのはかっこ悪いからやめた方がいいと思う。

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm