Hatena::ブログ(Diary)

プログラムとかののblog このページをアンテナに追加 RSSフィード Twitter

2014-01-21

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環境を作る

2014-01-09

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::"をつけといたほうが好き。

参考

http://msdn.microsoft.com/en-us/library/1z2f6c2k.aspx

2013-12-23

Chocolateyでつまづいたとこ

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

インストールは他の方で任せるとして、自分は引っかかったとこなどをメモする。
インストールはこちらを参考に。
Widnows用パッケージ管理ツール Chocolatey - Hのキーがhellで、Sのキーがslaveだ、と彼は思った。そしてYのキーがyouだ。

ChocolateyGUIが起動できない

Chocolatetyを使ってみてChocolateyGUIが起動できなかった。
Chocolateyを導入: Cygwinからも使う - rcmdnk’s blog
によると、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でやった。右クリック→解凍→ここで解凍で問題なく解凍できた。

とかでも見れるらしい。

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

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

参考

Chocolateyを導入: Cygwinからも使う - rcmdnk’s blog
PowerShell基礎文法最速マスター - PowerShell Scripting Weblog

2013-12-12

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になったら多分解決してる問題だとは思う。

2013-11-17

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 ",")))

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

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