親指シフトのNICOLA配列表を改良してみた

はじめに

親指シフトとは…、かな入力のキーボード配列を最適化し、さらに早く入力ができるよう作られた入力方式のことです。

ココらへんを参照して下さい。
生産性が倍になる! 最近話題の「親指シフト」とは - NAVER まとめ

改良した表

現在、親指シフトタッチタイピングできるようになってそれなりに快適な入力ができるようになってます。これは修得するときに表を改良してみたおかげでうまく習得できたのがひとつの要因です。

↓が改良してみた表です。

これは、

あ〜さ あ行、か行、さ行
た〜な た行、な行
は〜ま は行、ま行
や〜ら や行、ら行、や行の小文字
わ〜、 わ行、あ行の小文字、記号

という風に文字を分割することで目的の文字を探しやすくしてます。分割の基準は適当です。

もうちょっと分割してみてもいいけど、とりあえず前に編集したやつをここにあげておきます。

親指シフトを始めてみようと思ったひとはこの画像を印刷したり、デスクトップ画像に設定しておくとうまく習得できると思います。

この表はペイントなどのお絵かきツールを使うだけで作れるので、気に入らない場合自作しましょう。

ライセンスについて

ここからは読みたい人が読んで下さい。

この画像はWikipediaから取ってきた画像を編集してます。ライセンスはGFDLだそうで

  1. この文書を無断で複製してよい。
  2. この文書を無断で改変してよい。
  3. この文書を無断で頒布・販売してよい。ただし、頒布を受けた者や購入した者に対して、上記の許可を与えなければならない。

という風になっています。これは、著作権は放棄してないけど編集して公開しても大丈夫ですよとのこと。

元画像があるリンク
親指シフト - Wikipedia

inferior-haskell-modeで設定すると便利なこと

haskell-modeではC-c C-lで現在のファイルをロードしてinferior-haskell-modeでghciを実行できる。
デフォルトではカーソルが新しいバッファに移ってくれない。
これは設定で解決できる。
どこで見つけてきたかがわからないのが問題だけど、貼っておく。

(defadvice inferior-haskell-load-file (after change-focus-after-load)
  "Change focus to GHCi window after \\<haskell-mode-map>\\[inferior-haskell-load-file] command."
  (other-window 1))
(ad-activate 'inferior-haskell-load-file)

これでC-c C-l を実行した時に新しいバッファに移ってくれる。

参考

↑のコードはこのリンクに貼ってあったやつだった。
karky7のブログ: Gentooでemacs+haskell環境を作る

operator <<の定義の仕方

意外と見つからないのでメモ。理解してないから応用が効かなかったわけだけども。

friend ostream& operator<<(ostream& os, const Date& dt);

ostream& operator<<(ostream& os, const Date& dt)
{
os << dt.mo << '/' << dt.da << '/' << dt.yr;
return os;
}

使うにはfriend宣言が必要になる。

friend std::ostream& operator<<(std::ostream& os, const Date& dt);
std::ostream& operator<<(std::ostream& os, const Date& dt)
{
    os << dt.mo << '/' << dt.da << '/' << dt.yr;
    return os;
}

個人的には"std::"をつけといたほうが好き。

Chocolateyでつまづいたとこ

最近Chocolateyがまた紹介記事が上がっていたので使ってみた。スルーしたのが悔やまれることがわかった。ダウンロード、インストールを手作業でしなくていいのがやっぱりすごく楽だった。

インストールは他の方で任せるとして、自分は引っかかったとこなどをメモする。
インストールはこちらを参考に。
Widnows用パッケージ管理ツール Chocolatey - @ledsun blog

ChocolateyGUIが起動できない

Chocolatetyを使ってみてChocolateyGUIが起動できなかった。
Chocolateyをインストール: Cygwinからも使う
によると、Windowsを再起動しないとChocolateyGUIは起動できないそうです。

Emacsがインストールできない

エラーメッセージはこんなのが

[ERROR] Cannot bind argument to parameter 'Path' because it is an empty string.
-----------------------
At C:\Chocolatey\chocolateyinstall\helpers\functions\Write-ChocolateyFailure.ps
1:30 char:13
+ Write-Error <<<< $errorMessage
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorExcep
tion
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorExceptio
n,Write-Error
Write-Error : Package 'Emacs v24.3' did not install successfully: Cannot bind a
rgument to parameter 'Path' because it is an empty string.
At C:\Chocolatey\chocolateyinstall\functions\Chocolatey-NuGet.ps1:90 char:28
+ Write-Error <<<< "Package `'$installedPackageName v$installe
dPackageVersion`' did not install successfully: $($_.Exception.Message)"
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorExcep
tion
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorExceptio
n,Write-Error

https://gist.github.com/pogin503/8052282

これはPathが空だからエラーになるらしい。

解決方法

エラーはコマンドプロンプトを再起動したらなんの問題もなくインストールできた。

メモ 1

このエラーを解決しようとEmacs.nupkgを見てみた。解凍はLhaplusでやった。右クリック→解凍→ここで解凍で問題なく解凍できた。

  • NuGet Package Explorer

とかでも見れるらしい。

Emacs.nupkgの中身は

rels/.rels
Emacs.nuspec
README.org
tools/chocolateyInstall.ps1
package/services/metadata/core-properties/01a4d4df47764837ab70ae372ee2f054.psmdcp
[Content_Types].xml

てな感じだった。

インストースクリプトはtools/chocolateyInstall.ps1に書かれてある。Vim.nupkgの中身とくらべてみるとだいぶ違っていた。

結局コマンドプロンプトを再起動したら直ったので真実は闇の中に。

メモ2

PowerShell自体を学ぶにはここがいいかも。
PowerShell基礎文法最速マスター - PowerShell Scripting Weblog

スクリプトを参考にするんなら

C:\Chocolatey\chocolateyinstall\functions\*
C:\Chocolatey\chocolateyinstall\helpers\*
C:\Chocolatey\chocolateyinstall\toolds\*
C:\Chocolatey\chocolateyinstall\chocolatey.ps1

を参考にすれば書き方の参考になる。

Jenkinsが起動出来ない問題について

どうもVer.1.541はなにか問題があってうまく起動できないみたい。

C:\Program Files (x86)\Jenkins> java -jar jenkins.war

これをやっても途中でJenkinsが終了してしまう。

↓のリンクをたどって、
https://groups.google.com/forum/#!msg/jenkinsci-users/uiZ9-o7vRY8/aRLOYEQ2STkJ
↓のやつを見るとなんだかみんな困ってる様子だった。
https://issues.jenkins-ci.org/browse/JENKINS-20630

自分の環境は大体こんな感じ。

OS:Windows 7 64bit
Java:Java 7 update 45
Jenkins: 1.541

Issueの報告を見る限り、Java 7 update 45とJenkins 1.541を使った時に起こる現象っぽい。これから新たにJenkinsを使う人はStatbleの方を使うか、1.540以下のJenkinsを使わないといけない。

ダウングレードの方法は、単にjenkins.jarを上書きすればいい。
http://jenkins-ci.org/ の past release → 1.540 → jenkins.jarでダウンロードする
http://mirrors.jenkins-ci.org/war/1.540/jenkins.war
そして、C:\Program Files (x86)\Jenkinsの場所にjenkins.warをコピペして上書きする。
これでダウングレードが完了してJenkinsを起動できるはず。

Jenkins 1.542になったら多分解決してる問題だとは思う。

Emacsで親指シフトをやってたときに困ったこと

最近親指シフトを使い始めていくらか快適に書くことが出来ているのだけれど、Emacsで入力がうまくいかない事例にあたってしまった。 org-modeで「,」全角カンマを入力しようとしたらM-,と入力されてしまってうまくいかない。

user-error: No M-x tags-search or M-x tags-query-replace in progress

エラーはこんなので、うまく入力できなかった。もしかしたらこんなエラーも出るかも。

M-, undefined

入力できなかったのでとりあえずの対策をしたらちゃんと入力できるようになった。これを~/.emacs.d/init.el とかに加える。

;; temporary_repair.el
(global-set-key (kbd "M-,") #'(lambda () (interactive) (insert ",")))

こうすればとりあえずは「,」を入力できるようになる。

根本的な解決はできていないのだけれどどうすればいいのか・・・。

WordでPDFエクスポートをするVBAを書いた

Wordを最近使う機会があって、毎回同じ名前を入力してエクスポートするのが面倒だったので書いてみた。

エクスポートのやり方

Sub ExportToPDF()
    ActiveDocument.ExportAsFixedFormat OutputFileName:="output.pdf", ExportFormat:=wdExportFormatPDF
End Sub

これを実行すればWordでPDFのエクスポートができるようになる。
任意の名前にするのは、OutputFileName:="output.pdf" の 「"output.pdf"」自分の出力したい名前にしておけばいい。

勉強用のメモ

勉強用に、参照オブジェクトのオブジェクト変数への代入処理をメモしておく。

Sub ExportToPDF()
    Dim wordDoc As Word.Document
    Set wordDoc = ActiveDocument
    wordDoc.ExportAsFixedFormat OutputFileName:="output.pdf", ExportFormat:=wdExportFormatPDF      
    Set wordDoc = Nothing
End Sub

定義した変数への代入は、Setですることができる。これがよく分からなくてVBAは敬遠してたけどやっとわかった。Visual Basic Editorのヘルプにドキュメントがあったのでそれをちゃんと見ないといけない。

VBAで開発で覚えたほうがいいこと

デバッグはDibug.Printを使って、Visual Basic Editorの[表示]->イミディエイトウィンドウに出力するとデバッグがちゃんとできるようになる。

F8でできるステップ実行、[表示]→[オブジェクトブラウザー]の使い方も覚えるとちゃんとVBAの開発ができるようになる。

VBAで気を付けたほうがいいこと

  • どうもメソッドなどに()をつけるとエラーの原因になるので付けないほうがいい。
  • 付属のヘルプを見よう。ヘルプは
    Visual Basic Editor→
      ヘルプ→
      Microsoft Visual Basic for Application ヘルプ

で、豊富な情報を見ることができる。