2013年12月08日

git をコンパイルする


諸事情により AWS に gitlab を入れることになり、その関係で git をコンパイルすることになりました。

環境

OS: ubuntu 12.07 LTS

git source: version 1.8.5.1

結論

$ sudo apt-get install make gcc libssl-dev libcurl4-gnutils-dev libexpat1-dev tcl asciidoc docbook2x

$ sudo /usr/local/src # ソースをここに展開して、ソースのディレクトリに移動する

$ sudo make prefix=/usr/local install install-doc install-html install-info

make, gcc
基本中の基本
libssl-dev
openssl/ssl.h がないといわれるのでインストール。
libcurl4-gnutils-dev
curl/curl.h がないといわれるのでインストール。
libexpat1-dev
expat.h がないといわれるのでインストール。
tcl
* tclsh failed; using unoptimized loading といわれるのでインストール。
gettext
/bin/sh: 1: msgfmt: not found といわれるのでインストール。msgfmt がなんのことかはわからない。
asciidoc
ないと怒られるのでインストール。
docbook2x
/bin/sh: 2: docbook2x-texi: not found

posted by けんじ at 19:13 | Comment(0) | パソコンいろいろ
2013年11月14日

急に Windows 8 が Wifi NETWORK につながらなくなったら...


今日、なぜか突然wifiのネットワークにつながらなくなったPCがありました。windows 8 のマシンで、windows 8.1 にアップデートしたとか。

超悩んだが・・・ 右のところの Wifi ON を OFF にして 再度 ON にしたらつながるようになった。


posted by けんじ at 13:18 | Comment(0) | パソコンいろいろ
2013年11月09日

Excel でメールアドレスクリック時に自動でメッセージなどを入れる


excel にメールアドレスを入力すると、青色のリンクになる。今日は、このリンクをクリックしたときにタイトルなどを表示する方法を書く。

事の発端は、メールアドレスをクリックした時に宛先に受信者の名前を表示したいという、なくてもいい要望であった。

メールアドレス入力後、右クリックー>ハイパーリンクとたどって一つずつ設定することもできるが、これでは大変である。

そこで、「=Hyperlink("mailto:name")」ってな感じで入力する。

さらにメールタイトルや本文を入力したければ =Hyperlink("mailto:name?subject=title&body=message") とやればいい。基本的にHTMLと同じである。

さっきExcelで一括送信の記事を書いたが、上記の方法でも、比較的楽にメールを作り上げることができそうだ。一括送信はできないが。


posted by けんじ at 09:36 | Comment(0) | パソコンいろいろ

Windows8 で標準メールソフトや標準メールブラウザを設定・変更する方法


Windows 8 または 8.1 で標準のアプリを変更する方法。

ウェブページのメールリンクをクリックした時に開くメールソフトなどを設定する。(普通はメーラをインストールした時に自動で設定されるが、先日インストールしたoutlookが開かないという報告があった。)

方法は、(日本語を使用しているなら)Windows キーを押す、”規程”と入力する、画面に”既定のプログラム”的な文字が出てきたらそれをクリックする。

(英語版を使っている場合は、windows key を押す、"default" と入力する、画面に"Default Programs" が出てきたらそれをクリックする。)

開いたウインドウに「規程のプログラムの設定」(set your default programs)というのがあるのでそれをクリック。メールソフトを指定するなら、左側に出てきたソフトの中から使用したいメールソフトを選択し、右側で設定を行う。「すべての項目に対し、既定のプログラムとして設定する」(set this program as default)をクリックするか「既定でこのプログラムを開く項目を選択する」(choose defaults for this program)をクリックして設定する。


posted by けんじ at 09:24 | Comment(0) | パソコンいろいろ
2013年10月03日

Rails: ひとつのフォームに同じnameで複数のデータを配置する方法


HTMLにおいては、ひとつのformの中で複数のnameを使うことができて、post された場合それを配列で受けとることができる。

rails でやるにはどうすればよいか。

http://webos-goodies.jp/archives/51387214.htmlを参考にして作ったらできた。

hidden_field_tag の最初の引数を 'name_value[]' という配列のような形にする。これでデータを配列にして受け取れる。

ひとつ気になるのは、nameだけでなくidも同じになってしまうことである。idを別にするにはどうすればよいのか・・・。

hidden_field_tag 'name_value[]', value, {:id => 'id_value'} とやったらうまくいった。


posted by けんじ at 14:28 | Comment(0) | パソコンいろいろ
2013年09月30日

Ubuntu: mp4 から mp3 を生成する


mp4 から mp3 を生成するためにやったこと。(ubuntu)

参考にしたページ: http://blogs.yahoo.co.jp/tiplinux/27647487.html, http://askubuntu.com/questions/174287/how-do-i-convert-an-mp4-to-an-mp3

  • sudo apt-get install ffmpeg libavcodec-unstripped-52
  • ffmpeg -i video.mp4 -f mp3 -ab 256 music.mp3

posted by けんじ at 09:30 | Comment(0) | パソコンいろいろ
2013年09月27日

ruby での値渡し


ruby では値渡ししかない。ただしこれはオブジェクトIDの値渡しなので、オブジェクトそのものに対する操作はメソッドを抜けた後でも影響が残る。たとえば下の関数は、(サンプルの関数だが)引数に渡したオブジェクト自身が変更される。

破壊的メソッドは、オブジェクト自身に対して操作をするため、オブジェクトの内容が変更される。ではjavaでいうプリミティブのような渡し方はできないのか。

each の中を text = text.delete!(ec) ってな感じにすれば 引数に渡したオブジェクトは変更されない。しかしそれでは、オブジェクトが何回もつくられる。それはたぶんコスト高だと思うので、やはり破壊的メソッドを使いたい。

そこで・・・cloneを使って別のオブジェクトを作成し、そのオブジェクトに対して破壊的メソッドを実行する。

この方法ならやりたいことができる。


posted by けんじ at 15:43 | Comment(0) | パソコンいろいろ
2013年09月26日

rails capybara: visit の後のステータスコードをチェックする方法


capybaravisit した後のステータスコードのチェックをするにはどうすればよいか。上の本によると、response.status.should be(200) と書けばよさそうな感じで説明してある。

しかし、そんなことやっても

Failure/Error: response.status.should be(200)
NoMethodError:
undefined method `status' for nil:NilClass

と言われて終わるのである。たとえばこれを get 'path' のように書くと、response は nil ではなくなる。そして、

Failure/Error: response.status.should be(200)
expected # => 200
got # => 302

と出力される。302は確かにエラーではない・・・が、これだとリクエストをしているだけで、find, fill_in などでページ内のオブジェクトを操作することができない。

そこで visit とやって、page.status_code.should be(200) とやってみる。成功したのでこれが正解っぽい。save_and_open_page でページも確かめている。


posted by けんじ at 19:11 | Comment(0) | パソコンいろいろ

capybara and launchy


rails でエンドツーエンドのテストを行うときには capybara と launchy を使うのがよい。capybara に加えて launchy を使うことで初めて save_and_open_page というメソッドが使えるようになる。

save_and_open_page は、プロジェクトディレクトリの下のtmp/capybaraディレクトリに、静的ファイルとしてページを保存し、直後にブラウザでファイルを開く。

やってみたところ、完全に見ているページと同じかといわれると・・・少し違うところもある。表示されていないものはないので、いまのところは問題ない。


posted by けんじ at 18:50 | Comment(0) | パソコンいろいろ

rspec でエンドツーエンドのテスト


Devise's sign_in test helper is meant to be used only in Controller tests, not in integration ones. For integration specs, we usually do the normal process: sign in the user using capybara by visiting the sign in url and entering valid credentials.

https://groups.google.com/forum/#!topic/plataformatec-devise/0ww5KitMD7g

ログイン処理は visit とかで書くらしい。Controller のテストで使う controller macro は controller のときしか使えないみたい。


posted by けんじ at 18:25 | Comment(0) | パソコンいろいろ
2013年09月25日

True の ID は 2


ruby で true.id を調べると、2が出てきます。

true.object_id, Integer.object_id が正しいメソッド名だそうです。へぇ〜。


posted by けんじ at 21:19 | Comment(0) | パソコンいろいろ
2013年09月22日

fixture を DB から出力


『ar_fixturesはRails3では動かなかった+代替方法』http://d.hatena.ne.jp/elm200/20070928/1190947947, 『DBからYAMLにする方法』http://d.hatena.ne.jp/DianthuDia/20080827/1219798117, 『データベースからテストフィクスチャを抽出する』http://d.hatena.ne.jp/elm200/20070928/1190947947 を見て、fixtureを同じように自動生成してみた。

コードを読まずに単に貼り付けて実行しただけ。・・・するとエラー発生。

id を便りに並び順を指定しているので、id のない scheme_migration のテーブルでエラー。それから、DBにセッションを入れている場合は sessions テーブルも除外が必要になります。さらに、モデルが存在しないテーブルも除外が必要になります。

いろいろとエラーが出るので、出力のときにエラーが出ても abort しないようにしました。

使っているrails のバージョンが古い(ruby 1.8.7, rails 3.1)ので、factorygirl が使えないのでした。


posted by けんじ at 17:38 | Comment(0) | パソコンいろいろ
2013年09月18日

ubuntu: vim で日本語固定入力


Ubuntuで日本語入力にIBUSを使っています。標準の状態では日本語入力が面倒なので日本語固定入力というのをできるようにしました。windows のgvimでは、元から日本語固定入力になっています。

github でも公開されています。https://github.com/fuenor/im_control.vim

説明サイト: https://sites.google.com/site/fudist/Home/vim-nihongo-ban/vim-japanese/ime-control/ibus

~/.vim/plugin ディレクトリに im_control.vim を入れて、 ~/.vimrc に以下の記述を加えればOKでした。

" 「日本語入力固定モード」切替キー
inoremap <silent> <C-j> <C-r>=IMState('FixMode')<CR>
" PythonによるIBus制御指定
let IM_CtrlIBusPython = 1

" <ESC>押下後のIM切替開始までの反応が遅い場合はttimeoutlenを短く設定してみてください。
set timeout timeoutlen=3000 ttimeoutlen=100

これで、ctrl+j で日本語入力が切り替えると、日本語固定入力になります。ctrl+spaceで切り替えた場合は固定入力になりません。


posted by けんじ at 10:41 | Comment(0) | パソコンいろいろ
2013年09月15日

cmake ってなに?


MuseScore のコードを読んでみようかと思い立ってまずわからなかったのが cmake

CMakeはソフトウェアのビルドを自動化するためのクロスプラットフォームなシステムである。 UnixにおけるMakeに相当するものであり、ビルドプロセスは設定ファイルCMakeLists.txtによって完全に制御される。 最終的なソフトウェアを直接にはビルドしない点がMakeとは異なっており、 代わりに、よく使われている標準的なビルドファイル(UnixにおけるmakefileやWindows Visual C++におけるプロジェクト/ワークスペースなど)を生成する。(wikipedia)

ということだそうで、cmakeっていう呪文を唱えると、Makefile やらプロジェクトファイルやらを作ってくれるらしい。必要なのは CMakeLists.txt というファイル。

順序的には、cmake でMakefileを作る、makeでビルドする、という流れになる。

ちなみに、MuseScoreでは、

-G"Unix Makefiles" -DCMAKE_BUILD_TYPE=DEBUG
というのがcmakeのオプション(unixの場合)。MakeLists.txtを見ると、CMAKE_BUILD_TYPE っていう変数に DEBUG という値を入れてるっぽい。はいはい、ちゃんと本家を見ましょう。

本家Link: http://www.cmake.org/

-D で渡されたパラメータに応じて、include するファイルなどを決めているみたいです。-G はMakefileジェネレータの名前で、Visual Studio 10 とかやるとそれ専用のファイルができるらしいです。

mingw の場合は -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_TOOLCHAIN_FILE=build/mingw32.mingw.cmake -DCMAKE_INSTALL_PREFIX=../win32install になっています。

今日はこのくらいにしとこう。


posted by けんじ at 20:34 | Comment(0) | パソコンいろいろ
2013年09月13日

Qt5.1.1 と Musescore でコンパイルエラー


Qt5.1.1をインストールしてコンパイルしてみたけどエラーが出る。なぜだ・・・。

(この記事には続きがあります)


posted by けんじ at 12:17 | Comment(0) | パソコンいろいろ
2013年06月11日

Trac の default_description で改行できるようにする方法


Trac Lightningチケットを登録する際の 詳細の初期値は、default_description で設定できる。ただこのdefault_description,改行ができない。

実際の値は ini ファイル(trac.ini)に記述されている。linux の場合はどうか知らないが、Windows の ini ファイルは1行で1つの値と決まっているらしいので、改行そのものを登録することが仕様上できない。

そこでどうするか。

TracLightningのフォルダの下に、python-lib というフォルダがある。この中の trac\trac\ticket\templates\ticket.html の中の

ticket.description

ticket.description.replace('[[BR]]', "\r\n")

に変更する。その後で、python-lib\trac ディレクトリにて python setup.py install を実行する。

この方法の副作用として、 `[[BR]]` という文字を使って詳細を記述してチケットを登録した後、チケットの変更をしようとすると `[[BR]]` が `(改行)` に変わってしまう。BR なんてほとんど使わないのでこれでよいのだが、もしこれを回避するなら、replace('\r\n', "\r\n") とするとか、あるいは新規登録のときのみ default_description の改行を認識するよう変更するか(本当はそうするべき)。


posted by けんじ at 12:59 | Comment(0) | パソコンいろいろ
2013年05月01日

554 Message rejected: Address blacklisted.


Amazon SES を利用して rails からメールを送信していたところ・・・

554 Message rejected: Address blacklisted.


https://forums.aws.amazon.com/thread.jspa?threadID=91218 にヒントを得て・・・下のURLが参考になる。

  • http://docs.aws.amazon.com/ses/latest/DeveloperGuide/remove-from-blacklist.html

宛先に設定したメールアドレスで、送信できなかったもの(宛先不明)は Amazonにより自動的にBlacklistに追加される。Blacklistから除外するにはAmazonの画面で処理を行う。


posted by けんじ at 13:55 | Comment(0) | パソコンいろいろ
2013年03月24日

Windows Vista, Windows 7 でプリンタが消えた場合の対処法


Windows Vista, Windows 7 でプリンタがなくなった場合の対処法をまとめました。

PDF版とDOCX版を載せています。必要があればご自由にお使いください。

プリンタがなくなった場合の対処法.docx

プリンタがなくなった場合の対処法.pdf

なぜか突然 Print Spool サービスが停止するため、プリンタ一覧からプリンタがなくなったりするみたいです。

こちらでは、Kyocera TASKalfa 552ci KX のドライバをインストールしてから発生するようになりました。


一番最初に「プリンタが消えた!」と聞いたときはなにごとかと思いました。既に対処法を公開している方がいらっしゃったのですぐに対応できました。

参考

http://sunpost.sblo.jp/article/47825545.html

http://springpaduser.blogspot.jp/2012/07/vista-windows7.html


posted by けんじ at 13:21 | Comment(0) | パソコンいろいろ
2013年03月18日

XAMPPを入れてみた。


Trac Lightning の入っているパソコン(Windows 7)にXAMPPを入れました。なぜかというと、OCS Inventry NG がXAMPPにしか対応していないらしいから。

my.ini, php.ini, httpd.conf でポートを変更、その後、mysql と php を utf8 に変更。php.ini の変更は http://www.tatuo-web.com/wordpress/xampp/php-ini/ を参考に、my.ini の変更は http://blog.layer8.sh/ja/2011/12/23/mysql%E3%81%AE%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92utf8%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%9F%E3%81%84/ , http://www.adminweb.jp/xampp/mysql/index4.html を参考に。

注意点は、 my.ini の mysqld の default-character-set が使えなくなったこと。character-set-server に変わっていた。mysql は show variables like "char%"; で設定を確認できる。


posted by けんじ at 20:01 | Comment(0) | パソコンいろいろ
2013年03月07日

Ruby で コロン+名前 をシンボルという


Ruby on Rails を書き始めました。

RoRでよく出てくる :xxxx ってやつがなんなのかずっとわからなかったんですが、こいつはシンボルというらしいです。

文字列でもOKじゃないか? と思ったこともあります。実のところ文字列でもプログラムは動く場合が多いです。

Rails3レシピブック 190の技 』によると、シンボルはプログラム中で何度も使われるキーワードを効率的に扱うためのもので、文字列として持つよりも、メモリ効率的にも速度的にも有利になるそうです。

文字列とは違って、破壊的メソッドは定義されていないそうです。また、文字列は複数回呼び出した場合は別のインスタンスが作られますが、シンボルは複数回呼び出してもひとつのインスタンスが使われます(参考: http://jutememo.blogspot.jp/2008/01/ruby.html )。


posted by けんじ at 19:36 | Comment(0) | パソコンいろいろ
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。