デフォルトではConEmuで複数のタブを開いた状態でタスクバーのアイコンをクリックすると、どのタブを選択するかを選ばないとアクティブにすることができません。

自分はとりあえずクリックしたらアクティブになって欲しいので設定を変えてしまいます。

変え方

ConEmuのタイトルバーを右クリックしてSettingsを開いて
左上のFind:のところでActive console onlyと検索します。

するとMain->Task bar->Taskbar buttonsの項目のShow all consolesがデフォルトで選ばれてると思うので、それをActive console only (ConEmu window)に変えてSave settingsすればOKです。ステキ!


基礎知識

コンソールとシェルは別物です

bashとかnyaosとかコンソールウィンドウの中で動くものがシェルです。この用語の違いをわかってないとそもそもコンソールというものを探すことができないので必須の知識になります。

シェルは nyaos がオススメ

Windows上で使うシェルはcygwinのbashとかGit付属のbashとかMSYSあたりのbashとか試してみましたが、結局はちゃんとWindows用に作られてるnyaos が一番便利だという結論にたどり着きました。

コンソールを変えよう

標準のcmd.exeで起動するコンソールウィンドウは文字幅が固定でコピペもまともに出来ない何かの罰ゲームではないかという出来なので別のものを探します。

候補はこんな感じ

  • ConEmu
  • Console 2
  • ckw-mod
  • ColorConsole
  • PowerCmd

ConEmu

現在一番よさそうなコンソールです。タブが使えて、新しいタブを開くときに現在のディレクトリを残したまま開けるのもポイントが高い。

Ctrl-aで行頭に移動とかそういうのも実装されてるし日本語も使えるし開発もさかんでStackoverflowに質問すると製作者が該当タグをウォッチしてるらしく直接回答をもらえる率が高いです。

ただ、何故か自分の環境だと時折動きがカクカクしだしビープ音が連続で鳴り響く時があります。間違えて大量にイベントが飛んでるくさいんですが、これが発生するとイライラするので使うのを控え中。

Console 2

動作も安定してるしタブも使える海外では定番のコンソールのようですが日本語が使えません。はい詰んだ。

ColorConsole, PowerCmd

この2つはそもそもシェルの変更ができませんでした。

ckw-mod

日本人が作られてるらしいので日本語周りのバグはなさそうなのですが、いかんせんタブがない。古くからのタブ信者である自分には使いづらい。

結論

誰かよいWindows上で使えるコンソールを教えてください。


RailsでPostgresqlを使うときに毎回そのためのユーザーの作成方法を忘れてしまうのでメモ。

まずユーザーを作成

WindowsでChocolateyを使ってpostgresqlをインストールしてると初期パスワードはPostgres1234になってるので、

これでパスワード無しのdeployerユーザーが必要な権限付きで作成される。

※ Linux系のOSならsudo -u postgres psqlpsqlコマンドを使いましょう。

パスワード無しユーザーでもOKにする

これだけだとfe_sendauth: no password suppliedというエラーが出てしまうので

C:\PostgreSQL\data\pg_hba.confを開いて

に書き換える。

んで管理者権限でコンソールを開いて

net stop postgresql
net start postgresql

Postgresqlのサービスを再起動させる。
残念ながらrestartは存在しない。なんでや。

Rails側の設定

あとはいつもどおりconfig/database.ymlをこんなかんじに設定します。

んで $ rake db:create, $ rake db:migrateでデータベースが作成されるのを確認したらOK!


twitter-bootstrap-railsを普通にWindowsで使おうとするとlibv8がないからアカンで~的なエラーが出てきてインストールに失敗します。

対策

特定のバージョンはインストールできるのでそれをインストールしましょう。

gem install libv8 --version 3.11.8.0

あとはGemfilegem 'therubyracer', platforms: :rubyのコメントアウトを外してgem twitter-bottstrap-railsを追加すれば万事OK!

追記、より良い解決策

そもそもbootstrap-sassを使えばよいのでは?


今まではcygwinをインストールしたディレクトリを全部SugarSyncで同期して使ってたんだけど、
よくわからないままに色々入れてたら700MBぐらいあったので整理整頓することにしました。

どうするか?

既にインストールされてるcygwinのファイルを整理するのはめんどくさかったの新規インストールをすることにしたのはいいけど、何せパッケージ選択がめんどくさい。めんどくさいっていうか手動でやると必ず忘れてしまうので自動化したい。

そこでコマンドラインインストールの登場です!

インストール方法

これでホームディレクトリ直下の C:\Users\ironsand\cygとかにインストールされる。

やめたパッケージ

gccとか入れてcygwinでコンパイルして色々してると毎回ドツボにハマるので、もうそういうのはVirtualBox上のUbuntuですることにする。

rubypythonはWindowsのネイティブパッケージを使う。結局なんだかんだでそれが一番安定してる気がするので。

gitcygwin用のパス名周りのエラーが鬱陶しくなることがちょくちょくあったのでChocolatey使ってcinst gitでインストールする方法に変更。

注意点

何故か 64bit バージョンは動きませんでした。理由はわかりませんが、こういう関係のソフトは32bit版のほうが今はまだ安定してる気がするし大量にメモリ使うこともないので気にしないことにします。

sshだとsshコマンドはインストールされないのでopensshを指定しましょう。

インストール後に/etc/passwdのホームディレクトリ設定を/home/usernameからcygdrive/c/Users/usernameとWindowsのホームフォルダに変更しておくとsshとかのコマンドの時に設定ファイルを自動的に読みに行ってくれるので便利。便利というかしないとちゃんと動かない。

あと環境変数にset HOME=%USERPROFILE%もどこかに仕込んでたほうが良いかも。

Util-Linux

何故かカレンダー表示のcalコマンドが見つからなかったので探してみたら、calのみのインストールはないらしい。
とりあえずutil-linuxが良さそうなんでこれを使う事にした。

tree

Windows由来のコマンドなのにWindowsのtreeコマンドは階層指定もできない残念仕様なのでcygwinのを入れました。tree -L 2とかで階層指定できる。便利!


一度cygwinをインストールした後ならaptcygとかcygaptとか「あれどっちだっけ?」となるapt風味のインターフェースがあるんですが、初回インストール時の方法があまりなかったので書いておきます。

インストール方法

setup-x86_64.exe --no-admin -l %USERPROFILE%\cyg\package -P wget,ssh,rsync --download -s ftp://ftp.iij.ad.jp/pub/cygwin/ -q --root %USERPROFILE%\cyg

これでc:\Uers\ironsand\cyg配下にwget,ssh,rsyncが入ります。32bit版でも引数の取り方は変わりません。


/usr/bin/env: ruby.exe: そのようなファイルやディレクトリはありません

というエラーがwheneverで作ったcronのログとして出てきて困ってた。

bin/railsの実行権限とか/usr/bin/env ruby --version でちゃんとrubyが動いてるかどうか確認したりとか色々。

答え

Windowsで作ったRailsプロジェクトだったので ruby<strong>.exe</strong>になってた。なんてことだ…。

解決策

bin/railsの一行目usr/bin/env ruby.exe.exeを削除しておきましょう。ふぁっく。


ホームディレクトリに直接ファイルを置くんじゃなくて、
必要なファイルをDropboxに置いといて同期して使おうと思ったので

mklink ~/.nyaos p:\Dropbox\rc\.nyaos

としたら

この操作を実行するのに十分な特権がありません。

と怒られた。

なぜ権限が必要か?

「さっき自分で作ったファイルを自分のホームフォルダに移動させるのになんで権限が必要なんです!?」と不思議に思って調べてみたら、シンボリックリンクの作成に必要なSeCreateSymbolicLinkPrivilegeが通常はユーザーが持っていないかららしい。

何故そんな謎な仕様になってるかは全くわからない。

日本語圏で検索しても「とりあえず管理者権限にしとけ」的な情報しか出てこなかったのでここに書いておきます。

参考

filesystems – Using windows mklink for linking 2 files – Stack Overflow

windows 7 – Got not sufficient privileges message in CMD when logged on as administrator – Super User


Windows7でハードディスクをヤフオクに出すためにチェックディスクをしようと思ったら

chkdsk d:
十分な特権がないので、アクセスは拒否されました。
管理者特権モードで実行しているこのユーティリティを呼び出す必要があります。

と文句を言われてしまいました。

管理者権限で実行するにはデスクトップにでもショートカットを作って、プロパティから「管理者として実行」あたりにチェックを入れれば解決ですが、それさえも面倒臭い。

コンピュータの修理を頼まれて他人のパソコンで使いたい時もあるので、もっとも簡単な方法を紹介します。

ここまで前置き

スタートボタンの「プログラムとファイルの検索」に

“cmd” と打てば cmd.exe がフィルタリングされますので、そこで

Ctrl+Shift+Enterで実行します。

これで管理者権限で実行できます。ショートカットさえ覚えておけば初期状態のWindows7で使えるので便利ですね。

参考

Run a Command as Administrator from the Windows 7 / Vista Run box
http://www.howtogeek.com/howto/windows-vista/run-a-command-as-administrator-from-the-windows-vista-run-box/