2013年10月01日

rubyって便利ですね

設定値やらなんやらの管理とか作成とかでCSV形式のデータを扱う事が多いのですが、ちょっと中身変えて、チェックサム計算してなんてことをするのにrubyが便利なんで、ご紹介。

私の場合、レジスタ設定とかが多いのですが、1アドレスに対して1データの形式で管理するので、アドレスをキーとしたハッシュを作るとめちゃくちゃ簡単にデータ変更やら差分管理ができちゃいます。

ということで、ちょっとしたコード例を。

データは「ex_reg1.csv」というファイル名で、
0000,A0
0001,01
0002,0A
...
0FFF,F8
みたいなデータの場合、
------------------------------------
require "csv"
file1 = CSV.readlines( "ex_reg1.csv" )
hash1 = Hash[*file1.flatten]
------------------------------------

なんと、これだけで
p hash["0FFF"]
でコマンドプロンプトには「F8」と表示されます。

なので、例えばアドレス:06D1を書き換えたければ
hash1["06D1"] = "0A"
と書けば06D1が0Aになるんです。

そして、書き換えたあとのファイルを「ex_reg2.csv」としてファイルを作ると、
------------------------------------
file2 = open( "ex_reg2.csv", "w")
hash1.each{ |key, val| file2.write( key.to_s + "," + val.to_s + "\n")}
file2.close
------------------------------------
これだけです。
差分をとるときは、

------------------------------------
require "csv"
file1 = CSV.readlines( "ex_reg1.csv" )
hash1 = Hash[*file1.flatten]
file2 = CSV.readlines( "ex_reg2.csv" )
hash2 = Hash[*file2.flatten]
dif_key = Array.new
dif_key = hash1.reject{ |key, val| val == hash2[key] }.keys
dif_key.each do |dif|
p dif.to_s + " : " + hash1[dif].to_s + " -> " hash2[dif].to_s
end
--------------------------------------
これでコマンドプロンプトに
「06D1 : A0 -> 0A」
のように表示されます。

これをテキストに出力すると履歴も残せます。

あぁ、便利・・・
rubyちゃんと勉強しよう。
posted by luuuuga at 22:52| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

共有とか見える化とか

愚痴になりますので、ご注意を。

さて、情報共有とか見える化とかいう言葉がありますが、メーカーで開発してる身分ではこの情報共有とか見える化という言葉は無駄な業務をいっぱい増やしてくれるいい迷惑な言葉に思えてなりません。

否定しているわけではないけど、情報共有とか見える化をよく口にする人はかなりの確率で
「とりあえず技術はよく分からんけど監視はさせろ!」
「監視してやるから資料を作れ!」
なんですよね。

で、レビューでは技術ある人じゃなくて立場で人選されるから、ダメな回路とかアルゴリズムとかコードでも内容はあまり吟味されなくて、資料の出来をああだこうだ文句をつける・・・

誰がどんな技術持ってて、ちゃんとレビューなりフォローなりしてもらえばもっといいものができるんだと思うんです。
というか、ノウハウの共有とか資料ではなく、こういう生きた教材的なもので引き継ぐのが理想的な気がするんです。

資料を見れば分かるようにノウハウをまとめろとか、レポートを書けとかもいいんですが、開発期間が短いし、残業を減らせとか言うなら資料作りが増えるのはもう少し何とかしないといけないし、やっぱりOJTで話を聞きながらってのが一番ノウハウの伝授には有効ではないかと。

そして、良いチームっていうのはメンバー同士のコミュニケーションがうまくいっててノウハウの伝授とかだれがどんな技術持ってるとかがちゃんと把握されてて、上司も監視させろとは言わないのに自然とメンバーが技術を習得してちゃんとした対応ができて、信用される人材になるんですよね。

資料を作るのが面倒なダメエンジニアの愚痴でした。
posted by luuuuga at 22:18| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

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