日々の記録。

プログラミングのメモや感じた事などを記録。

C#のusingが、Java7でtry-with-resource statementとして実現

C#には、ファイルやDBのリソースのクローズを必ず行うためにusingステートメントという便利な機能があります。 void foo() { using (TextWriter w = File.CreateText("test.txt")) { w.WriteLine("ごにょごにょ"); } } 上記の例では、TextWriterオブジェク…

お酒の量を減らすのに効果があったこと

半年くらい前まで、仕事帰りに必ず缶チューハイを買って帰っていたのですが、とある事を試してから、(自分にとっては)あまり苦も無くお酒を買う回数が減らすことができました。 (・・・あくまでも個人的な経験なので、他の方にも効果があるかは全く保証でき…

ruby LinuxやWindowsのコマンドをクラスメソッドに割り当てるクラスマクロの例

昨日の書いた「Windows セットアップ用(環境設定用)のスクリプトがあったら便利だなぁと」の第一歩として、画面解像度を変更するスクリプトを作成してみました。 そのついでに、楽にrubyのメソッドとコマンドを対応づけられないかと思い、クラスマクロ化し…

Windows セットアップ用(環境設定用)のスクリプトがあったら便利だなぁと

仕事では、開発したアプリケーションを投入するだけではなく、クライアントPCなどのOSセットアップをすることが良くあります。例えば解像度を指定したり、スタイルを変更したり、パフォーマンス優先にしたり、JREをインストールしたりなどなど。 そうした一…

os x bash で cd + ls を行うコマンド

cdした後にlsを行う。だけのコマンドをbashに追加する。 .bash_profileを編集する 以下を追加する。 function cdd() { ¥cd "$1"; if [ $? -eq 0 ]; then ls; fi } 上記例では、cddというコマンド名にしている。 コマンド名をcdにするとlsしたくないときもls…

Windows net shareとrubyを利用して共有フォルダのサイズを取得する

仕事で共有フォルダのサイズを定期的に採取する必要があったので、共有名とパスを取得するスクリプトをrubyで作成してみた。 共有名とパスの取得の仕方 Windows で net shareを実行すると、次のような共有フォルダの一覧が取得できる。 > net share 共有名 …

C++講座 その5 サイズとバイトオーダー

サイズ 32bit CPUでWindows系の環境では各型は次のようなサイズになっている。 型名 サイズ(byte) char 1 short 2 int 4 long 4 float 4?(後日確認) double 8 「一般的な」としたのは、これらのサイズはCPUやOSの環境に依存するため。64bit環境では上…

Ruby blockが与えられているか確認する

def aaa yield if block_given? end

Ruby 定義されているメソッド一覧の取得

Object.methods # クラスメソッド(publicのみ) Object.private_methods # クラスメソッド(privateのみ) Object.instance_methods # インスタンスメソッド(publicのみ) Object.private_instance_methods # インスタンスメソッド(privateのみ) Class.metho…

C++講座 その4 整数型と浮動小数点

整数型 C言語と同様にintが整数型.よく利用するshortやlongという型はshort int, long intの省略形。 整数リテラル 3 -5 12352 0x53 といった値が整数リテラル。上記の値はintとして扱われる。 サイズを意識しなくて良い場合、整数値にはint型を利用した方が…

rails libディレクトリに配置した自作ライブラリが読み込まれないときに試したこと

前提 rails 3.2.13 ruby 1.9.3 内容 rails で 自作ライブラリCodegenLibというライブラリを利用する際、中々ロードできなかったのでそのときのメモ。(色々な無知が重なった結果の事故) 結果 結果的には、以下に注意すること application.rbにautoloadのパ…

aws で rails serverに失敗. execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime.

rails 3.2.13, ruby 1.9.3の構成でawsのec2上でrails serverを実行したら上記のエラー発生。 ここを参考 解決方法 Gemfileに以下を定義 gem 'execjs' gem 'therubyracer' bundle installでインストール rails serverで起動!!

rails 4.0.0をインストールした後に特定のバージョンを入れ直すには?

4.0.0は試したいけど「今のところ」不要なのでアンインストールした。 gem でrails 4.0.0をアンインストール。 gem uninstall rails -v=4.0.0 gem uninstall railties -v=4.0.0 railtiesも削除しないと、rails --versionの結果は4.0.0のままだった。 gem ins…

aws rails 3.2.13 をインストールする

事前にruby 1.9.3をインストールしておく 以下を実行する. gem install rails --version "3.2.13" gemでパッケージのバージョンをするためには--versionを指定する。 参考はここ http://webos-goodies.jp/archives/51106257.html

AWS(Amazon Web Services) にruby1.9.3をインストールする.

AWSの導入についてはこちらを参考にした。 http://dotinstall.com/lessons/basic_aws/9501 導入後のrubyが1.8.7だったので、1.9.3にバージョンアップした。これについては こちらを参考にした。 http://www.johnvarghese.com/installing-ruby-1-9-3-on-a-lin…

vim 正規表現でグループ化をする方法

vimで正規表現を使う時には、エスケープシーケンスが必要になるので注意. vimの正規表現の表記方法はここを参照 Vimで使える正規表現 グループ化の仕方のメモ def m a = 'Test' "#{a}" end この#{a}を<%= a %>に置き換えるとする。 rubyでの正規表現は s.gsu…

風立ちぬを見て。「感動しました」の一言に感動。

先日、風立ちぬを見た。前評判では「主人公の声が棒読み」とか「効果音が人の声」だとか聞いていたけど、最初こそ違和感を感じたもののすぐに慣れ、物語に集中することができた(・・・といっても正直なところ、飛行機のエンジン音を聞く度に人の声だなぁと意識…

C++講座 その3 文字型

char型はcharacter型の略なので、キャラ型と読むのが正解だと思う。たまに50歳代のおっさんとかがチャーとか言っているけど、ちょっと悲しくなってしまう。 以上は余談。 char型は1文字を格納する型。一般的にサイズは1byte。主にASCIIを格納するために利…

rails link_toでget,post,deleteの指定

methodで指定する。(rails 3.2.3) <%= link_to :logout, logout_path, method: :delete %>

ruby Stringにインデント用メソッドを追加

コード自動生成スクリプトを書いていてほしくなったので作成してみた。ただし文字列の追加にindentメソッドを利用する必要があるのでちょっと気持ち悪い(できれば<<とかで追加したい)。しかもこのメソッド、作成しただけでまだ未使用なので使い勝手も未知…

C++講座 その2 論理型 bool型

論理型(bool, boolean型)はtrue(真)かfalse(偽)を表現する。 例えばC言語では、 if ( 3 ) { /* 必ずこっちの処理が行われる */ } else { /* */ } のように、0以外が真で0が偽となっていた。if文の結果が真の場合、if文ブロックの処理が行われ、偽の場合else…

C++講座 その1

最近、会社の若手に対してC++の講義を行っていて、今後も再利用できるようにここに残しておきたいと思う。 講義書は、個人所有の「プログラミング言語C++第3版」。アマゾンの評価では翻訳は悪いらしいけど、C++の原典なのでこれを利用する。 この講義の目的…

rails モデルの属性名を変更する

Userクラスのpasswordをpassword_digestに変更したい 修正前のUserクラス rails g scaffold user name:string password:string このpasswordをpassword_digestに変更する 修正方法 1. 修正用のmigrationを生成する rails g migration RenamePasswordToUser p…

rails とあるモデルにpasswordを追加する例

0. 前提 動作環境 os x: 10.8.4 ruby: 1.9.3 rails: 3.2.13 1. とあるモデルとしてuserを生成する ポイントは、password_digestを生成すること rails g scaffold user name:string, password_digest:string 2. Userクラスの編集 ポイントは、 1. has_secure_…

ruby で 英数字記号を用いたランダムパスワードの生成 2

以前作成したパスワード生成スクリプトに、記号の有無、種類を引数で指定できるようにしたので掲載 # coding: utf-8 #英数記号を含むパスワードを生成する. #記号を利用しない場合は、symbols_strにnilか""を設定する。 def password_gen(length=8, symbols_…

jsp カスタムタグへオブジェクトを渡す方法

仕事でjspをいじる機会があったので、カスタムタグを利用したリファクタリングにチャレンジ。カスタムタグへのオブジェクトの渡し方がわからなかったので調査した。 タグファイルでカスタムタグを作成している場合の手法. ポイントはattributeにrtexprvalue…

C++が破綻しているなぁと感じる一例

const intは定数として利用できるけど、容易にそれを破壊(?)できてしまうところとか。 int main() { const int x = 10; int* p = const_cast<int*>(&x); *p = 1; int y[x]; // x は 10となる。 (osx gccとwin vc2010で確認) cout << x << "," << *p << endl; //</int*>…

cQueryという C/C++言語の構文解析木をjQuery風にアクセスするライブラリがあったら

ツールを作るときに楽になるかもしれない? 既に存在するのかもしれない? 例 user.hにある構造体に対して「yaml形式の文字列を作成する関数」を作成してみる。 コードイメージ.(ruby) cQuery('user.h').structs.each do | struct_obj | puts struct_obj.gen…

yaml←→iniファイル自動生成、クラス自動生成

yamlを利用したINIファイル用ソースの自動コード生成の例 久しぶりにC++を使う必要性がありそうなため、 rails等にかぶれて作成中のもの。 その1 yaml→iniファイル, ini→yamlファイル code_gen yaml2ini < test.yml > test.ini code_gen ini2yaml < test.ini…

「RailsによるアジャイルWebアプリケーション開発 第4版」のメモ

RailsによるアジャイルWebアプリケーション開発 第4版のチュートリアルを試してのメモ 新しいWebアプリケーションの生成方法 rails new application_name 例 rails new depot railsのインストール状況の確認方法 rake about モデル、ビュー、コントローラ、…