<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Windows &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/windows/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Wed, 13 Aug 2025 06:03:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>デザイナーの為の黒い画面入門（前）</title>
		<link>https://blog.mach3.jp/2017/12/15/kuroigamen.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Fri, 15 Dec 2017 04:00:37 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Command]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=4379</guid>

					<description><![CDATA[Web制作の現場で「黒い画面」を使うことは、近年ではごく当たり前な事になってしまいました。 フロントエンドエンジニアの方はもちろん、マークアップエンジニアの方ならば抵抗は無いでしょう。 しかし、デザイナーさんには未だに「 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/ENwiBnvZJNeajEckqEMI7vL1oGLn8jCZo8b4CggIOMn-W_hMbpv8AwNcgBQtKRlXvos2pt3M6_KAjONWZ0zGBtFBV9qTdHOLRW43rJ5-AdSBoxEbfq4E57yfLZCvG93YriTEx9NipQ=w600-h315-no" alt=""/></figure>



<p></p>



<p>Web制作の現場で「黒い画面」を使うことは、近年ではごく当たり前な事になってしまいました。 フロントエンドエンジニアの方はもちろん、マークアップエンジニアの方ならば抵抗は無いでしょう。 しかし、デザイナーさんには未だに「黒い画面」は苦手意識がある方も少なくないのではないでしょうか。 その苦手意識を払拭する為に、少しばかり「黒い画面」への理解を深めてみましょう。</p>



<span id="more-4379"></span>



<ol class="wp-block-list">
<li>デザイナーが触れる「黒い画面」</li>



<li>「黒い画面」ことターミナルとは</li>



<li>「黒い画面」の基本</li>



<li>「黒い画面」の怖い話</li>



<li>Windows環境での「黒い画面」</li>
</ol>



<h2 class="wp-block-heading">デザイナーが触れる「黒い画面」</h2>



<p>そもそもデザイナーが「黒い画面」に触れる事は数年前まではあまり考えられていませんでした。 黒い画面上の作業はあくまでもバックエンドエンジニアやプログラマーの領域であって、デザイナーが触れるのはPhotoshopやIllustratorといったグラフィカルなアプリケーションまでに留まっていたと思います。</p>



<p>ところがWebの技術が度重なる変化・進化を遂げ、JavaScriptやCSSをビルドするようになったり、Node.jsが台頭してきたりで、プロジェクトの「黒い画面」への依存度が一気に上がってきました。 マークアップエンジニアは勿論のこと、肩書がデザイナーの人間も「黒い画面」を触れるようになる必要が出てきたのです。</p>



<p>例えば、こんなケースであったり</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>人手不足でデザインに加えてマークアップもやる事になった。 CSSをビルドする為に「黒い画面」が必要だ。</p>
</blockquote>



<p>また例えば、こんなケースもあるでしょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>プロジェクトにデザイナーとしてジョインしたが、 マークアップエンジニアが作った画面をレビューする為に「黒い画面」でコマンドを叩かなければならない。</p>
</blockquote>



<h2 class="wp-block-heading">「黒い画面」ことターミナルとは</h2>



<p>まず「黒い画面」とは何なのか。その正体について軽く触れてみます。</p>



<p>Macにおける黒い画面である「ターミナル」は、GUI（グラフィカルインターフェース）によらず、 CUI（キャラクタユーザーインターフェース）、つまり文字列のコマンドでコンピュータを直接操作する為の物であると理解しておけば良いでしょう。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/t3M2x5B7re2YXricMJ3BMQHGJZrS2ytVZ52rM1iX0X5b4aaWmC1fSi7omPdMLpCbFzGBaEnCyLSjb2zFHeineH3x8Vw-liGb5enKgIdaDa1WeSh4BtohWwBAsWYo6Qd8zoLUtWAajg=w600-h400-no" alt=""/></figure>



<p></p>



<p>例えばMacでファイルを探し出すのにFinderを使用しますが、これはGUIによる機能ですね。 ターミナルでは、CUIで謎の呪文こと、コマンドを打ち込む事でそれとほぼおなじ事をすることが出来ます。 （勿論CUIなので見た目はただの文字列です） Finderをはじめとした、私達が普段パソコン上で使っているGUIアプリケーションは、ターミナルで行える処理を視覚的に見やすい形、そして操作しやすい形でラッピングされているのです。</p>



<p>ちなみに、MacOSXは元々Unix系のFreeBSD由来のOSで、 Unix系のコマンドの多くがそのまま使用できるのはその為です。 （Windowsについては後述しましょう）</p>



<h2 class="wp-block-heading">「黒い画面」の基本</h2>



<p>まずは黒い画面を立ち上げて触ってみましょう。 Mac環境ならば「アプリケーション」 &gt; 「ユーティリティ」 &gt; 「ターミナル」と辿っていけば立ち上がります。 あるいは Spotlight 検索で &#8220;term&#8221; あたりまで入力すれば出てくると思います。</p>



<p>ここまで「黒さ」を連呼していますが、Macでのデフォルトは白ベース黒文字の「白い画面」になっています。なんとなく、怖さが少し和らぎますね。</p>



<h3 class="wp-block-heading">コマンドを入力してみる</h3>



<p>黒い画面への入力については、キーボードで文字を入力するだけなので難しいことはないでしょう。 試しに一つコマンドを打ってみましょう。</p>


<pre class="wp-block-code"><span><code class="hljs">$ whoami</code></span></pre>

<p>[your user name]</p>



<p><code>whoami</code> コマンドは、現在ログインしているユーザーの名前を出力します。 貴方のユーザー名が表示されましたか？</p>



<h3 class="wp-block-heading">「何処」で「何」を対象に「何」するか</h3>



<p>コマンドを覚えていく前に、次の3つの事を意識するようにしてみましょう。</p>



<ol class="wp-block-list">
<li>現在どこのディレクトリにいるか</li>



<li>そこで何をするか</li>



<li>何を対象に行うか</li>
</ol>



<p>例えばこんなコマンドを打ったとします。</p>


<pre class="wp-block-code"><span><code class="hljs">$ mkdir myfolder
</code></span></pre>


<p>上の例では、現在いるディレクトリの中に <code>myfolder</code> という新しいディレクトリ（フォルダ）を作成しています。</p>



<p>もう少し詳しく見てみましょう。 コマンドはコンピューターへの命令であり、文法で言うところの述語です。 基本的に、コマンドは英語の文法に則っていて、述語であるコマンドの後には目的語を指定します。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/wasceiJfvA922YoSep9ps2wNuPvzLT9jvD7F6Az4gFN-V3ThCQNONIkLd99IdcRlAt4pska0jbltPNoszBd18bf8PS61tsd_hFM1mb5I8aFmynxm7FMAo25WHkZFAbE5M7axwyDb3Q=w600-h400-no" alt=""/></figure>



<p></p>



<p>この目的語は「引数（ひきすう）」と呼ばれ、上の例では <code>myfolder</code> が引数に値します。 つまり、 <code>myfolder</code> という名前で、ディレクトリを作る命令（ <code>mkdir</code> ）を行ったわけです。</p>



<p>また、命令によっては目的語を持たない（あるいは省略できる）場合もあります。</p>


<pre class="wp-block-code"><span><code class="hljs language-php">$ <span class="hljs-comment"># ユーザー名を出力するだけなので引数が必要ありません</span>
$ whoami
$ <span class="hljs-comment"># 引数を省略すると、ユーザーのホームディレクトリに移動します</span>
$ cd
</code></span></pre>


<p>さらにまた、目的語を二つとる命令もあります。</p>


<pre class="wp-block-code"><span><code class="hljs language-php">$ <span class="hljs-comment"># 目的語1（foo.txt）を、目的語2（bar.txt）として複製する</span>
$ cp foo.txt bar.txt
</code></span></pre>


<h3 class="wp-block-heading">ファイルやディレクトリを引数にする</h3>



<p>先程言ったように、コマンドには目的語である引数を渡す事が多いのですが、 その引数となるのはファイル名やディレクトリ名がほとんどです。</p>


<pre class="wp-block-code"><span><code class="hljs">$ rm ./needless.txt
</code></span></pre>


<p>上の例では、今いるディレクトリにある &#8220;needless.txt&#8221; という名前のファイルを削除しています。 ファイル名の前についている &#8220;./&#8221; は一体なんでしょうか？ これは「今いるディレクトリにあるファイル」という事を明示的に指定しています。</p>



<p>Unixのファイルシステムでは、ファイルの場所（パス）について次のような表現を用います。</p>



<ul class="wp-block-list">
<li>&#8220;.&#8221; &#8230; 現在のディレクトリ</li>



<li>&#8220;..&#8221; &#8230; 一つ上のディレクトリ</li>



<li>&#8220;/&#8221; &#8230; ディレクトリの境目</li>



<li>一番頭が &#8220;/&#8221; &#8230; ルートディレクトリからの絶対パス</li>
</ul>



<p>つまり上の例では、「現在いるディレクトリ下にあるneedless.txt」を指定しているわけです。</p>



<p>ここで「&#8221;./&#8221;は要らないのではないか」という疑問が浮かんだのではないでしょうか。 その通り、&#8221;./&#8221; は省略でき、次のように表現しても同じ処理を行います。</p>


<pre class="wp-block-code"><span><code class="hljs">$ rm needless.txt
</code></span></pre>


<p>省略できるのならば、なぜ例示でわざわざ &#8220;./&#8221; を付けたのかというと、その方が安心出来るからです。 <strong>ファイルを指定する時は、&#8221;./&#8221; や &#8220;../&#8221; からはじまる相対パスで表現する事をお勧めしたいです。</strong></p>



<p>特に、上で例に挙げている <code>rm</code> コマンドはファイルやディレクトリを削除してしまう<strong>破壊的</strong>なコマンドです。 必ず &#8220;./&#8221; ではじめる事を意識すれば、現在いるディレクトリを誤ったり、朦朧としながら作業をしていて操作ミスをしたりして、<strong>処理してはいけないファイルを処理してしまう</strong>危険性をわずかばかりではありますが、和らげる事ができます。</p>


<pre class="wp-block-code"><span><code class="hljs language-php">$ rm /the/path/to/target <span class="hljs-comment"># NG</span>
$ rm target <span class="hljs-comment"># NG</span>
$ rm ./target <span class="hljs-comment"># Good</span>
</code></span></pre>


<h3 class="wp-block-heading">「どのように」行うか（オプション）</h3>



<p>多くのコマンドは、「オプション」を渡すことで挙動をコントロールする事ができます。 ここでは <code>ls</code> コマンドを例に上げてみます。このコマンドは、ディレクトリ内にあるファイルをリスト表示してくれます。</p>


<pre class="wp-block-code"><span><code class="hljs">$ ls
bar.txt         directory       foo.html
</code></span></pre>


<p>何もオプションを渡さない場合、ただファイルの名前のみが羅列されます。 ファイル名だけだと情報が足りないので、<code>l</code> オプションを追加してみましょう。</p>


<pre class="wp-block-code"><span><code class="hljs">$ ls -l
total 16
-rw-r--r--@ 1 mach3  staff  212 12 12 16:03 bar.txt
drwxr-xr-x@ 2 mach3  staff   68 12 12 16:02 directory
-rw-r--r--@ 1 mach3  staff  248 12 12 16:03 foo.html
</code></span></pre>


<p>色々な情報が詰まったフォーマットで出力されました。 さらにドット（&#8221;.&#8221;）からはじまる隠しファイルも表示する為に、くわえて <code>a</code> オプションを指定してみます。</p>


<pre class="wp-block-code"><span><code class="hljs">$ ls -la
total 16
drwxr-xr-x@ 6 mach3  staff  204 12 12 16:19 .
drwxr-xr-x@ 8 mach3  staff  272 12 12 16:01 ..
-rw-r--r--@ 1 mach3  staff    0 12 12 16:19 .hidden
-rw-r--r--@ 1 mach3  staff  212 12 12 16:03 bar.txt
drwxr-xr-x@ 2 mach3  staff   68 12 12 16:02 directory
-rw-r--r--@ 1 mach3  staff  248 12 12 16:03 foo.html
</code></span></pre>


<p>またさらに、<code>t</code> オプションを追加して更新時間順にソートしてみましょう。 （デフォルトでは名前順です）</p>


<pre class="wp-block-code"><span><code class="hljs">$ ls -lat
total 16
drwxr-xr-x@ 6 mach3  staff  204 12 12 16:19 .
-rw-r--r--@ 1 mach3  staff    0 12 12 16:19 .hidden
-rw-r--r--@ 1 mach3  staff  248 12 12 16:03 foo.html
-rw-r--r--@ 1 mach3  staff  212 12 12 16:03 bar.txt
drwxr-xr-x@ 2 mach3  staff   68 12 12 16:02 directory
drwxr-xr-x@ 8 mach3  staff  272 12 12 16:01 ..
</code></span></pre>


<p>オプションを指定するルールがお分かりいただけたでしょうか。 オプションは主に1文字の英数字や短い言葉で指定し、 ダッシュ（&#8221;-&#8220;）の後ろに続けて打ち込む事で複数のオプションを合わせて利用する事ができます。 （このルールに則らないコマンドも存在するのでご注意ください）</p>



<p>各々のコマンドは、それぞれのオプションを持っています。 とても全てを覚えきれる物ではないので、その説明は次回に持ち越す事にします。</p>



<h2 class="wp-block-heading">「黒い画面」の怖い話</h2>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/txCfbYC-cAQIYd9z7Tw8xXo-vhALKquiYtaJeHsN9l7b8OPIB3SHrrD2XuDqjJmjYgy3ZZUpUSmkyvzvpYg8HGdZ_w1Vpxbg_4L6A7mkkUuKu5UiSby0hdadnT0GUAIeIseWpNLC7A=w600-h400-no" alt=""/></figure>



<p></p>



<p>「黒い画面は怖くない」と言いたいところですが、残念な事に「黒い画面」は怖いのです。</p>



<p>GUIのアプリケーションで警告が発せられるような処理でも、「黒い画面」は警告を発してくれません。 GUIのアプリケーションなら行わないような危険な処理も、「黒い画面」は実行してしまいます。 良く知らないままにコマンドを実行して、環境を壊してしまうなんていう悲劇も往々にしてあり得る事です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>うまく動かないからネットで検索したコマンドコピペして実行したら、パソコンが起動しなくなった</p>
</blockquote>



<p>ジョークみたいな話ですが、実際に私の観測圏内で起こった出来事です。</p>



<p><strong>ネットで拾ったコマンドを調べずに実行しては絶対にいけません。</strong> コマンドがどのような処理を行う物なのか、渡している引数は何なのか、どのようなオプションで実行されているか、コピーしたコマンドはつまるところどういう命令なのか、 それらを調べて理解したうえで実行しましょう。 そして、インターネットは怖いところだという事を肝に銘じておきましょう。</p>



<h2 class="wp-block-heading">Windows環境における「黒い画面」</h2>



<p>Windowsにおける「黒い画面」は「コマンドプロンプト」と呼ばれる物ですが、これはおすすめできません。 WindowsはUnix由来でない為、Macで使えるような基本的なコマンドも使用できず、そもそもコマンド自体が非常に少なく、使い勝手がよくないのです。 「他と違う」という事は、つまり問題が起きた時に調べても解決策にたどり着きにくいという事です。</p>



<p>いくつか代替の手段があるので、そちらを使うようにした方が良いでしょう。</p>



<h3 class="wp-block-heading">1. Git Bash</h3>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/u9aXb_ZU7VmIGnpLgcfA-AIzV8TxNwTvuKGy6h6SXii5wSs8CXZc72179YudoHGVe7a9XufZU4lRZrYzzJClRlt6XlAKBjyOd1Mbqk9GClm2FWbKWeku4NnQqt7u-YF4qWtVwz1k_Q=w600-h400-no" alt=""/></figure>



<p></p>



<p>Windows環境で開発作業を行うのならば <a href="https://git-for-windows.github.io/">Git for windows</a> は恐らくインストールされているはずなので、 これにバンドルされている「Git Bash」を活用します。 インストールされてない場合は、インストールしましょう。Gitはもはや開発環境に無くてはならない存在です。</p>



<p>Git Bash は <strong>msys</strong> と呼ばれるエミュレータで動いており、いささかLinuxやMacとは使い勝手が違いますが、基本的なコマンドは使用する事ができます。 （msysは、昔なつかしのcygwinからのフォークです）</p>



<p>Git Bashのメリットは、Windowsにおける実行ファイル（.exe）が容易に呼び出せる点です。 ショートカット（.lnk）もちゃんと追随してくれるので、「好きな名前で好きなアプリを立ち上げる」なんていう設定も簡単にできます。（ここでは説明は割愛します）</p>


<pre class="wp-block-code"><span><code class="hljs language-php">$ <span class="hljs-comment"># 現在いるディレクトリでエクスプローラーが立ち上がります</span>
$ explorer .
</code></span></pre>


<h3 class="wp-block-heading">2. Bash on Windows</h3>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/ci-gV4Us80WAwwRw3PgIrG7nK0D6OV69ubJazbRmKRIYKjMCTS2x3R63tBoXL3i0OOtlPw6_0Wi1ckRQcIp4mX0PX2DNq_mTF63fRawHeS30GHJvhJQVgbip5sS1AVBv-2TrwGdfKQ=w600-h400-no" alt=""/></figure>



<p></p>



<p>Windows10ならば、Windows上でUbuntuが動作します。 Windows Subsystem for Linux（WSL）と呼ばれる仕組みで、まさにLinuxがWindows上で動作していると思って良いでしょう。</p>



<p>中身はUbuntuなので、<code>apt</code> で楽々パッケージを追加インストールできるのが大きな魅力で、 参考になる情報もネットで収集しやすいです。</p>



<ul class="wp-block-list">
<li><a href="https://qiita.com/Aruneko/items/c79810b0b015bebf30bb">Bash on Ubuntu on Windowsをインストールしてみよう！ &#8211; Qiita</a></li>
</ul>



<h2 class="wp-block-heading">前編まとめ</h2>



<ul class="wp-block-list">
<li>デザイナーも「黒い画面」が必要な時代になった</li>



<li>「黒い画面」の基本的な使い方を学ぶ</li>



<li>「黒い画面」は怖いので用法を守って正しく使う</li>



<li>インターネットの情報は鵜呑みにしてはいけない</li>



<li>Windowsでの「黒い画面」は Git Bash または Bash on Windows を活用しよう</li>
</ul>



<p>後編では最低限覚えておくと捗るコマンドと使い方を書くかもしれません。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ドラッグドロップに対応したLessのGUIコンパイラ「WinLess」</title>
		<link>https://blog.mach3.jp/2012/04/05/winless.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Wed, 04 Apr 2012 16:20:51 +0000</pubDate>
				<category><![CDATA[WebClip]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Compiler]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[LESS]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=2352</guid>

					<description><![CDATA[WindowsのLessコンパイラといえばLessParserの記事を書きましたが、 個人的にはさらに使い勝手の良いGUIコンパイラが見つかったのでご紹介します。 WinLess 公式サイト : WinLess &#82 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>WindowsのLessコンパイラといえば<a href="/2011/11/lessparser.html">LessParserの記事</a>を書きましたが、<br />
個人的にはさらに使い勝手の良いGUIコンパイラが見つかったのでご紹介します。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/-wiRFLLeF8dY/T3xvbqUMmMI/AAAAAAAABe8/My0zYsJUV4U/s400/20120405-01.png" alt="WinLess"/></figure>



<p></p>



<span id="more-2352"></span>



<h2 class="wp-block-heading">WinLess</h2>



<p>公式サイト : <a href="http://winless.org/">WinLess &#8211; Windows GUI for less.js</a></p>



<p>MacではLess.appをはじめとして、UIが優秀なコンパイラが複数あるようですが、<br />
Windowsはまだコレ！という物に出会えていませんでした。が、これはかなり良いです。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/-2edseKKNefI/T3xvbrMsrfI/AAAAAAAABe8/zAXVKlVVmJ8/s500/20120405-02.png" alt="WinLess Webサイト"/></figure>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>WinLess is a Windows GUI for LESS.js. WinLess is a must-have for the webdeveloper who uses Windows.</p>
</blockquote>



<p>先日記事にしたLessParserはLess.appの模倣をうたっているだけあって確かに似ていましたが、<br />
個人的に欲しい機能である、「フォルダのドラッグドロップ登録」が出来ませんでした。</p>



<p>WinLessはそのドラッグドロップ登録に対応している他、</p>



<ul class="wp-block-list">
<li>通知メッセージの表示</li>



<li>デフォルトで「Minify」をチェック</li>
</ul>



<p>などの設定項目があり、親切です。</p>



<h2 class="wp-block-heading">アプリケーション画面</h2>



<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/-Xr3EGJxbZnI/T3xvbtlqSuI/AAAAAAAABe8/DRAc4GBqlDA/s499/20120405-03.png" alt="WinLess アプリ画面"/></figure>



<p></p>



<p>こんな感じになっていて、基本的にはLess.app（LessParser）と操作法はかわりません。<br />
File &gt; Settings で設定を変更できます。</p>



<p>現行バージョンの設定項目は以下の通り。<br />
（本稿執筆時のバージョンは1.5.2）</p>



<h3 class="wp-block-heading">General</h3>



<ul class="wp-block-list">
<li>Start with Windows</li>



<li>Start minimized</li>
</ul>



<h3 class="wp-block-heading">Compiling</h3>



<ul class="wp-block-list">
<li>Minify by default</li>



<li>Automatically compile files when saved</li>



<li>Show message on successful compile</li>
</ul>



<p>通知メッセージをONにすると、<br />
タスクバーのアイコン付近にポップアップでメッセージが表示されます。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>概ねLessParserで満足していたのですが、<br />
唯一物足りなかったドラッグドロップに対応するコンパイラが出てきてくれて、<br />
きっとLessniumも思い残す事はないでしょう…。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>TitaniumDesktopの多重起動を抑制する（Windows）</title>
		<link>https://blog.mach3.jp/2011/04/07/titaniumdesktop%e3%81%ae%e5%a4%9a%e9%87%8d%e8%b5%b7%e5%8b%95%e3%82%92%e6%8a%91%e5%88%b6%e3%81%99%e3%82%8b%ef%bc%88windows%ef%bc%89.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Thu, 07 Apr 2011 01:00:47 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Titanium]]></category>
		<category><![CDATA[TitaniumDesktop]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1751</guid>

					<description><![CDATA[最近Titaniumを少々いじっておりましたが、軽くハマったのでメモなど。 Titanium Desktopで作ったアプリの多重起動を抑制してみる実験。 環境の都合などで、Windowsのみ。 概要 普通につくるといくら [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>最近<a href="http://www.appcelerator.com/">Titanium</a>を少々いじっておりましたが、軽くハマったのでメモなど。<br />
<a href="http://www.appcelerator.com/products/titanium-desktop-application-development/">Titanium Desktop</a>で作ったアプリの多重起動を抑制してみる実験。<br />
環境の都合などで、Windowsのみ。</p>



<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/_JJkNs5Ixl70/TZyzIP00O4I/AAAAAAAABRE/rbUuNocuR_M/201104070334.png" alt="TitaniumDesktopの多重起動を抑制する（Windows）"/></figure>



<p></p>



<span id="more-1751"></span>



<h2 class="wp-block-heading">概要</h2>



<h3 class="wp-block-heading">普通につくるといくらでも立ち上がるよ！</h3>



<p>Titaniumで普通にデスクトップアプリを作ると、いくらでも立ち上げられます。<br />
連打すれば連打しただけアプリウィンドウがぽぽぽぽーんと増えていく。<br />
アプリの性格にもよりけりですが、不都合が生じる事の方が多そうです。</p>



<h3 class="wp-block-heading">ざっくりとした仕組み</h3>



<ol class="wp-block-list">
<li>タスクリストにある自分の名前の数を確認。</li>



<li>2個以上あったら多重起動されてしまっているので、自分を落とす。</li>
</ol>



<h2 class="wp-block-heading">ソース</h2>



<p>見ての通り、<em>Windows用の処理しか書いていません</em><br />
Mac/Linuxではcaseを書き足してやらねば動きませんのでご注意を。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">var</span> SingleLaunch = <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"> appName, callback </span>)</span>{
    <span class="hljs-keyword">var</span> name, args, prc;

    <span class="hljs-keyword">switch</span>( Titanium.platform ){
        <span class="hljs-keyword">case</span> <span class="hljs-string">"win32"</span> :
            name = appName + <span class="hljs-string">".exe"</span>;
            args = &#91; <span class="hljs-string">"tasklist"</span>, <span class="hljs-string">"/NH"</span>, <span class="hljs-string">"/FI"</span>, <span class="hljs-string">"IMAGENAME eq "</span> + name ];
            <span class="hljs-keyword">break</span>;
        <span class="hljs-keyword">default</span> :
            <span class="hljs-keyword">throw</span> <span class="hljs-string">"このプラットフォームはサポートされていません"</span>;
            <span class="hljs-keyword">break</span>;
    }
    prc = Titanium.Process.createProcess( args );
    prc.processCount = <span class="hljs-number">0</span>;
    prc.setOnRead(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">e</span>)</span>{
        <span class="hljs-keyword">this</span>.processCount += e.data.toString().match( <span class="hljs-built_in">RegExp</span>( name, <span class="hljs-string">"g"</span> ) ).length;
    });
    prc.setOnExit(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
        <span class="hljs-keyword">if</span>( <span class="hljs-keyword">this</span>.processCount &gt;= <span class="hljs-number">2</span> ){
            alert( appName + <span class="hljs-string">"は既に起動しています"</span> );
            Titanium.UI.currentWindow.close();
            <span class="hljs-keyword">return</span>;
        }
        callback();
    });
    prc.launch();
};

SingleLaunch( <span class="hljs-string">"YouApplication"</span>, <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>)</span>{
    <span class="hljs-comment">/* アプリを初期化 */</span>
});
</code></span></pre>


<p>タスクリストを取得するには、<em>Titanium.Process</em>を使って「<em>tasklist</em>」コマンドを呼びます。<br />
<em>createProcess</em>メソッドの引数に、コマンドとその引数を配列にして渡して<em>launch</em>。</p>



<p>cf) <a href="http://developer.appcelerator.com/apidoc/desktop/latest/Titanium.Process-module">Appcelerator Developer Center &#8211; API for Titanium.Process (version 1.1)</a></p>



<p><em>setOnRead</em>は出力が返される度に呼ばれるので、そこで自分の名前を探して数を加算。<br />
すべての出力が完了したら<em>setOnExit</em>が呼ばれるので、合計の数を見て条件分岐します。<br />
2個以上であれば自身を落とし、そうでなければcallbackを呼んでアプリの初期化を行いましょう。</p>



<h2 class="wp-block-heading">ポイント</h2>



<h3 class="wp-block-heading">tasklistが正しい値を返してくれない</h3>



<p>既に1個起動しているはずなのに自分の名前が見つからない。<br />
Titanium.Processで呼んだtasklistと、コマンドプロンプトで呼んだtasklistで結果が変わってしまう。</p>



<p>どうやら、TitaniumProcessがヘッダの行数を勘違いしている事に起因する模様。<br />
見出しを出力しない<em>/HN</em>オプションを付けることで解決出来ました。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">args = &#91; <span class="hljs-string">"tasklist"</span>, <span class="hljs-string">"/NH"</span>, <span class="hljs-string">"/FI"</span>, <span class="hljs-string">"IMAGENAME eq "</span> + name ];
</code></span></pre>


<h3 class="wp-block-heading">exit()とclose()</h3>



<p>アプリを終了する<em>Titanium.App.exit()</em>と、<br />
現在のウィンドウを閉じる<em>Titanium.UI.currentWindow.close()</em>がありますが、<br />
どのような違いがあって、どちらの方が良いのか、というお話。</p>



<p>試してみた結果、実行後即閉じるclose()に比べ、<br />
exit()は終了処理的な事をしているらしく、かなり動作がモッサリとしています。<br />
ただし、close()したらすぐにプロセスが消えるかというとそうではなく、<br />
だいたいexit()と同じぐらい待たされてからタスクリストから姿を消します。</p>



<p>exit()の方が安心そうではありますが、<br />
見た目だけでもサクッと閉じてほしいので、取り急ぎ今回はclose()を使っています。<br />
（そう思わせる程度には、exitはモッサリしています）</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>ひょっとしたら多重起動防止用の何かが既にあるかもしれないし、なくても今後実装されるかもしれませんが、<br />
とりあえず情報が見つからなかったので書いてみました。ツッコミありましたらよろしく願います。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Vimでのオートコンプリート設定覚書</title>
		<link>https://blog.mach3.jp/2010/11/19/gvim-autocomplpop.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Fri, 19 Nov 2010 02:40:36 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Notepad++]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=1150</guid>

					<description><![CDATA[エディタは長らくNotepad++を愛用していたのですが、 スクリプトを書くときはやはりViの方が速い…という事できちんと導入しておくことに。 gVimでオートコンプリートさせる設定のまとめです。 autocmplpop [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>エディタは長らくNotepad++を愛用していたのですが、<br />
スクリプトを書くときはやはりViの方が速い…という事できちんと導入しておくことに。<br />
gVimでオートコンプリートさせる設定のまとめです。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TOUyoiITtRI/AAAAAAAABGI/8wBfF8f9Gmg/201011182257.png" alt="Vimでのオートコンプリート設定覚書"/></figure>



<p></p>



<span id="more-1150"></span>



<h2 class="wp-block-heading">autocmplpop.vimを導入</h2>



<p><a href="http://www.vim.org/scripts/script.php?script_id=1879">AutoComplPop &#8211; Automatically opens popup menu for completions : vim online</a></p>



<p>デフォルトのままのVimでは、<c-o>や<c-x>の後に、<br />
<c-n>, <c-p>とする事で入力候補をポップアップで表示させる事が出来ます<br />
…が、ちょっとまどろっこしい。</c-p></c-n></c-x></c-o></p>



<p>これを自動的にポップアップしてくれるようにしてくれるのが<br />
このAutoComplPopというプラグインです。<br />
導入方法はディレクトリにコピーするだけなので割愛。</p>



<p>尚、当方のUbuntu環境ではl9.vimも必要とされました。<br />
うまく動かなかったら一緒に導入してやりましょう。</p>



<p><a href="http://www.vim.org/scripts/script.php?script_id=3252">L9 &#8211; Vim-script library : vim online</a></p>



<h2 class="wp-block-heading">導入後の設定</h2>



<p>以下が、導入後の設定を極めて分かりやすく紹介してくれている記事。</p>



<p><a href="http://blog.blueblack.net/item_164">autocomplpop.vimでリアルタイムにキーワード補完 &#8211; ナレッジエース</a></p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TOUynye84cI/AAAAAAAABGE/Bd0gX57VRmM/201011182304.png" alt="autocomplpop.vimでリアルタイムにキーワード補完 - ナレッジエース"/></figure>



<p></p>



<p>以下、リンク先の記事より拝借・抜粋させて頂きます。</p>



<h3 class="wp-block-heading">ポップアップ中でもEnterキーで候補決定しない様に設定</h3>



<p>候補を無視して改行を入力したい場合もあるので、<br />
ポップアップ中のEnterキーで決定しないようにします。<br />
修正箇所は、autoload/acp.vimの192行目付近。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml">if pumvisible()
    " a command to restore to original text and select the first match
    return "\<span class="hljs-tag">&lt;<span class="hljs-name">C-p</span>&gt;</span>"
endif
</code></span></pre>


<p>これだとEnterでポップアップが消えるだけで、その時はまだ改行は挿入されません。<br />
私はこっちのほうが使いやすいのですが、改行を挿入したい場合はvimrcに下記を追記。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml">inoremap <span class="hljs-tag">&lt;<span class="hljs-name">expr</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">CR</span>&gt;</span> pumvisible() ? "\<span class="hljs-tag">&lt;<span class="hljs-name">C-y</span>&gt;</span>\<span class="hljs-tag">&lt;<span class="hljs-name">CR</span>&gt;</span>" : "\<span class="hljs-tag">&lt;<span class="hljs-name">CR</span>&gt;</span>"
</code></span></pre>


<p>他にもTabで候補を巡回する為の設定等も掲載されていましたが、<br />
私は無い方が使いやすかったので、割愛致します。詳しくはリンク先で！</p>



<h2 class="wp-block-heading">『オプション &#8216;omnifunc&#8217; は設定されていません』</h2>



<p>…なんていうエラーが吐かれた場合の対処について。</p>



<p>当方の環境では挿入モードで「&lt;」を入力中に上記のエラーが吐かれました。<br />
omnifuncというのはオムニ補完、つまり入力補完のポップアップの事らしく、<br />
これを設定してあげれば黙るかな？というわけで設定してみました。</p>


<pre class="wp-block-code"><span><code class="hljs language-php">setlocal omnifunc=syntaxcomplete<span class="hljs-comment">#Complete</span>
</code></span></pre>


<p>無事静かになってくれました。<br />
参考：<a href="https://forums.ubuntulinux.jp/viewtopic.php?id=9456">Ubuntu日本語フォーラム / vim autocomplpop エラーについて</a></p>



<h2 class="wp-block-heading">ついでなのでPHPの辞書を突っ込んでおこう</h2>



<p>異常に関数の多いPHPこそ入力補完が役に立ちますね。<br />
辞書ファイルはただ改行で候補を連ねるだけなので、簡単に作成出来ます。</p>



<p>参考：<a href="http://www.asahi-net.or.jp/~wv7y-kmr/memo/vim_php.html">Vim で PHP 関数の辞書を作成する方法についてのメモ</a></p>



<p>上記リンクより抜粋。多謝！<br />
こちらのコードを走らせる事で辞書ファイルを生成出来ます。</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="php"><span class="hljs-meta">&lt;?php</span>
$keywords = <span class="hljs-keyword">array</span>(
    <span class="hljs-string">'if'</span>, <span class="hljs-string">'else'</span>, <span class="hljs-string">'elseif'</span>, <span class="hljs-string">'endif'</span>, <span class="hljs-string">'while'</span>, <span class="hljs-string">'endwhile'</span>, <span class="hljs-string">'do'</span>, <span class="hljs-string">'as'</span>, <span class="hljs-string">'for'</span>, <span class="hljs-string">'endfor'</span>, <span class="hljs-string">'foreach'</span>, <span class="hljs-string">'endforeach'</span>,
    <span class="hljs-string">'break'</span>, <span class="hljs-string">'continue'</span>, <span class="hljs-string">'switch'</span>, <span class="hljs-string">'endswitch'</span>, <span class="hljs-string">'case'</span>, <span class="hljs-string">'default'</span>, <span class="hljs-string">'declare'</span>, <span class="hljs-string">'enddeclare'</span>,
    <span class="hljs-string">'try'</span>, <span class="hljs-string">'catch'</span>, <span class="hljs-string">'return'</span>, <span class="hljs-string">'exit'</span>, <span class="hljs-string">'const'</span>, <span class="hljs-string">'class'</span>, <span class="hljs-string">'function'</span>,
    <span class="hljs-string">'require'</span>, <span class="hljs-string">'include'</span>, <span class="hljs-string">'require_once'</span>, <span class="hljs-string">'include_once'</span>,
    <span class="hljs-string">'abstract'</span>, <span class="hljs-string">'final'</span>, <span class="hljs-string">'interface'</span>, <span class="hljs-string">'private'</span>, <span class="hljs-string">'protected'</span>, <span class="hljs-string">'public'</span>, <span class="hljs-string">'static'</span>,
    <span class="hljs-string">'__LINE__'</span>, <span class="hljs-string">'__FILE__'</span>, <span class="hljs-string">'__DIR__'</span>, <span class="hljs-string">'__FUNCTION__'</span>, <span class="hljs-string">'__CLASS__'</span>, <span class="hljs-string">'__METHOD__'</span>, <span class="hljs-string">'__NAMESPACE__'</span>
);
$functions  = function_exists( <span class="hljs-string">'get_defined_functions'</span>   ) ? get_defined_functions()   : <span class="hljs-keyword">array</span>();
$constants  = function_exists( <span class="hljs-string">'get_defined_constants'</span>   ) ? get_defined_constants()   : <span class="hljs-keyword">array</span>();
$interfaces = function_exists( <span class="hljs-string">'get_declared_interfaces'</span> ) ? get_declared_interfaces() : <span class="hljs-keyword">array</span>();
$classes    = function_exists( <span class="hljs-string">'get_declared_classes'</span>   ) ? get_declared_classes()  : <span class="hljs-keyword">array</span>();

$arrays = array_merge(
    $keywords,
    $functions&#91;<span class="hljs-string">'internal'</span>],
<span class="hljs-comment">//  array_keys( $constants ),   // 定数を補完したい場合はこの行を有効にする</span>
    $interfaces,
    $classes
);
sort( $arrays );
$arrays = array_unique( $arrays );
<span class="hljs-keyword">echo</span> implode( <span class="hljs-string">"\n"</span>, $arrays );
</span></code></span></pre>


<p>生成した辞書ファイルをvimrcで登録しておけば完了です。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">autocmd FileType php :<span class="hljs-keyword">set</span> dictionary=~/.vim/dict/php.dict
</code></span></pre>


<p>Windowsの場合は下記のような感じ。<br />
&#8220;$VIM&#8221;はgVim.exeがインストールされているパスです。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">autocmd FileType php :<span class="hljs-keyword">set</span> dictionary=$VIM/vimfiles/dict/php.dict
</code></span></pre>


<p>辞書は必要に応じて追加していきましょう。<br />
ActionScriptなんかも欲しいなぁ…</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>ひとまずこんな感じで、Win/Linux共にまともに動いてくれています。<br />
オムニ補完はバッファの中身のみならず、<br />
辞書を設定しておけば辞書内からも候補を表示してくれる優れもの。<br />
Linxではパスの入力もこれでかなり楽になりますね。</p>



<p>ノートでのコーディングがとても快適になりました！すごいやVim！</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>使ってますか「ファイル名を指定して実行」 : Windows Tips</title>
		<link>https://blog.mach3.jp/2010/10/26/windows-run-by-filename.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Tue, 26 Oct 2010 05:02:18 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Command]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=970</guid>

					<description><![CDATA[WindowsユーザーなWeb開発者にはごく当たり前なTipsかもしれませんが、 今回はWindowsのショートカット「ファイル名を指定して実行」の拡張方法のお話。 ショートカットでランチャーいらず。 「ファイル名を指定 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>WindowsユーザーなWeb開発者にはごく当たり前なTipsかもしれませんが、<br />
今回はWindowsのショートカット「ファイル名を指定して実行」の拡張方法のお話。<br />
ショートカットでランチャーいらず。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TMWhqyM5JBI/AAAAAAAABEc/Bhy6XdZL0U0/201010260024.png" alt="ファイル名を指定して実行"/></figure>



<p></p>



<span id="more-970"></span>



<h2 class="wp-block-heading">「ファイル名を指定して実行」とは</h2>



<p><em>「ファイル名を指定して実行」</em>というのは<br />
コマンドを入力することでプログラムを実行出来るダイアログボックスの事です。<br />
「calc」や「notepad」や「cmd」等々、Windowsを使っていれば結構使っているはず？<br />
以下のショートカットキーで呼び出す事ができます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Windowsキー＋R</p>
</blockquote>



<figure class="wp-block-image"><img decoding="async" src="http://lh6.ggpht.com/_JJkNs5Ixl70/TMWhrAywnRI/AAAAAAAABEg/vnabXFnIAH0/201010260025.png" alt="ファイル名を指定して実行"/></figure>



<p></p>



<p>例えば「calc」と入力してOK/Enterすると、<br />
Windows標準装備の超クールな計算機が立ち上がります。<br />
なぜcalcで計算機が立ち上がるのかというと、<br />
「パスが通っている場所」にcalc.exeがあるから。それだけ。</p>



<h2 class="wp-block-heading">使えるコマンドを増やそう</h2>



<h3 class="wp-block-heading">増やし方</h3>



<p>コマンドの追加方法は至ってシンプルで、<br />
パスが通っているフォルダにショートカットを作っておくだけ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<ol class="wp-block-list">
<li>スタートメニュー>プログラムで好きなプログラムのショートカットをコピー</li>



<li>パスが通っている場所（例えばc:windows）にペースト</li>



<li>お好みの名前にリネーム</li>
</ol>
</blockquote>



<p>例えばPhotoshopのショートカットを「ps」という名前で保存しておけば、<br />
「ファイル名を指定して実行」&gt;「ps」で簡単に呼び出す事が出来ます。<br />
名前さえ覚えておけばランチャーいらずで何でも一発起動できますね。</p>



<h3 class="wp-block-heading">保存場所は自分で作ろう</h3>



<p>上の例ではc:/windowsなどと書きましたが、<br />
そんな所においてしまっては管理しづらい上に妙な物を弄ってしまわないか心配です。<br />
新たに作成したフォルダにパスを通して、そこで管理した方が安全です。</p>



<p>パスを通すのは簡単で、下記の場所の「Path」の項目に追記するだけ。<br />
あとは再起動すれば適用されるはずです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>「システムのプロパティ」&gt;「詳細設定」&gt;「環境変数」&gt;「Path」</p>
</blockquote>



<p>c:aliase等、分かりやすい場所が良いですね。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>よく使うアプリケーションはすぐ起動出来るようにしたい。<br />
作業効率上、できるだけキーボードから手を離したくない。<br />
そんな時に大変役立つ小技です。</p>



<p>また、パスを通しておけば「ファイル名を指定して実行」だけでなく、<br />
コマンドプロンプトからも一発起動出来るので、<br />
バッチファイル等を保存しておいても何かと便利ではないでしょうか。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WindowsでSSH接続をローカルにマウントできる「Dokan SSHFS」</title>
		<link>https://blog.mach3.jp/2010/09/12/dokan-sshfs.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Sun, 12 Sep 2010 03:57:53 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[WebClip]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">http://blog.mach3.jp/?p=660</guid>

					<description><![CDATA[タイトルの通りですが、これはなかなか便利ですよ。 SSHの接続先をローカルのドライブとしてマウント出来るWindowsアプリケーションです。 Dokan Ubuntu等では標準で搭載されている機能なのですが、 Windo [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>タイトルの通りですが、これはなかなか便利ですよ。<br />
SSHの接続先をローカルのドライブとしてマウント出来るWindowsアプリケーションです。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TIxKrj04T6I/AAAAAAAABBU/VaUPGC02aNs/201009121233.png" alt="Dokan SSHFS"/></figure>



<p></p>



<span id="more-660"></span>



<p><a href="http://dokan-dev.net/">Dokan</a></p>



<p>Ubuntu等では標準で搭載されている機能なのですが、<br />
WindowsでSSHの接続先のファイルを編集する場合は<br />
<a href="http://www.tab2.jp/~winscp/">WinSCP</a>等のクライアントを経由して行っていました。<br />
それが、DokanSSHFSを利用する事で簡単に出来るみたいです。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/TIxKrjwqkHI/AAAAAAAABBY/yYDPLhQLB7g/201009121234.png" alt="マウント設定画面"/></figure>



<p></p>



<p>こちらがマウント設定画面。勿論鍵を使用しての接続も可能。<br />
WinSCPではPutty形式の鍵をジェネレートする必要がありましたが、<br />
DokanSSHFSではOpenSSHの鍵をそのまま使用出来ます。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/TIxKrrCMZkI/AAAAAAAABBc/1MXv05-iP_o/201009121235.png" alt="マウントされました"/></figure>



<p></p>



<p>接続に成功すると、ドライブとしてマウントされます。<br />
ドライブレター(ここではM）は設定画面で選択可能です。<br />
これは便利だ！</p>



<p>※尚、DokanSSHFSの動作にはDokanライブラリが必要なのですが、<br />
Dokanライブラリの0.5.0以降には対応していないそうなので…</p>



<p><a href="http://dokan-dev.net/download/#sshfs">Dokan » Download</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>DokanSSHFS は Dokan 0.5.0 以降に対応していません。 Dokan SSHFS を Dokan 0.5.0 以降で使用したい場合は、DokanSSHFS.exe と DokanNET.dllをこのファイルで上書きしてください。</p>
</blockquote>



<p>だそうです。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
