読者です 読者をやめる 読者になる 読者になる

tech::hexagram

personal note for technical issue.

rubyのeach, mapの違い

ruby

すごく初歩的ですが、新年一発目のエントリは去年の積み残しから。

each

[20] pry(main)> def hoge
[20] pry(main)*   (1..10).to_a.each do |i|
[20] pry(main)*     unk = i + 1
[20] pry(main)*   end
[20] pry(main)* end
=> :hoge
[21] pry(main)> ihr = hoge
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

http://ref.xaio.jp/ruby/classes/array/each

eachメソッドは、配列の要素の数だけブロックを繰り返し実行します。繰り返しごとにブロック引数には各要素が順に入ります。戻り値はレシーバ自身です。

レシーバ自身が返るので、いくら中で unk に代入したところで戻り値としては i が返り値になる。

map

[18] pry(main)> def huga
[18] pry(main)*   (1..10).to_a.map do |i|
[18] pry(main)*     unk = i + 1
[18] pry(main)*   end
[18] pry(main)* end
=> :huga
[19] pry(main)> ihr2 = huga
=> [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

http://ref.xaio.jp/ruby/classes/array/map

mapメソッドは、要素の数だけ繰り返しブロックを実行し、ブロックの戻り値を集めた配列を作成して返します。collectメソッドの別名です。

mapはeachとは違い、要素を使ってブロックを実行しブロックの戻り値を集めて返すようになっている。つまり中で定義した unk を集めた配列を作成して返すのでインクリメントされた配列が返り値になる。

今年もよろしくお願いいたします。

2015年技術周りざっくり振り返り

private

今年は部署が変わり、去年に比べてさらにいろいろな分野に手を出した一年でした。 技術的には

あたりに手を出してきました。来年は以下に取り組んでみたいです。

来年もよろしくお願いいたします。

2015年にはてブした記事振り返り

others

今年はてブした記事のうち、また見そうな記事について

  • やった
  • 後でやる
  • ネタ

に分けてまとめておく。

やった

cookien.com

  • 参考にしつつレシピ作ってた時期もあった。今はとりあえずほうれん草のおひたしはここからもらったレシピでよく作ってる

www.bunkei-programmer.net

railstutorial.jp

  • 結構古い部分もあるので注意。自分で気づいた部分についてはここにまとめた。

自作ソースコードに、MITライセンスを適用する3つのやり方
www.catch.jp http://deeeet.com/writing/2014/07/31/readme/deeeet.com

kade.hatenablog.com

  • 業務で直面したUIViewの制約。意外とハマる。

d.hatena.ne.jp * iOSで年を使うときは yyyyを使おう

後で確認(優先度高)

www.slideshare.net

  • size classよく分かってない気がするので確認

developer.hatenastaff.com

  • SwiftでAPIClient書くときのtips

http://dbstudy.info/files/20140907/mysql_lock_r2.pdfdbstudy.info

blog.glidenote.com

  • AWSインスタンス立てたり閉じたりするのをvagrant AWSで試していたけどちょっと微妙な感じがしていたので、terraform使ってみたい。あとGCPのインタフェースもありそうなので先取りで触ってみる

sucrose.hatenablog.com

後で確認(優先度低)

Bootstrapで日本語をより美しく表示させることにこだわった無料のテーマ -Honoka
coliss.com

  • ホノカチャーン

paiza.hatenablog.com

  • 基本jQueryおじさんなので…

realm.io

  • アプリ内でDB使うときは

dev.classmethod.jp

  • 今後の動向次第

ネタ

www.ishampoo.jp

  • 大概のシャンプーが駄目な感じ

aoshima-katsuyuki-kabukichou.com

  • 歌舞伎町こわい

www.pakutaso.com

  • ちくてん

d.hatena.ne.jp

  • やりたくないことはやらない主義で仕事してる

qiita.com

  • おもしろバグ

おわりに

来年も良いはてブライフを送っていきたい

mac miniでsnmpを動かすためのメモ

devops

https://support.apple.com/kb/TA20884?locale=ja_JP&viewlocale=ja_JPsupport.apple.com

公式サイトを見ると、

アップルは、Admin CD 上の SNMP ツールMac OS X Server 10.1.5 以降で使用される場合にのみ、SNMP ツールに対するテクニカルサポートを行います。

とあるので、サポート対象外の設定となることに注意。

いろいろ調べて以下の記事を見つけたのでそれに沿って設定を行えばいけた。

http://kb.paessler.com/en/topic/41843-how-do-i-activate-snmp-on-mac-os-in-order-to-monitor-it-with-prtgkb.paessler.com

手順

手順に関しては凄くシンプル、以下2つだけやればOK

/etc/snmp/snmpd.confの設定

既存の snmpd.confsnmpd.conf.backup あたりに退避する。何もしていない状態だと snmpd.conf.default とdiffがないので特にこれをする必要もないが一応念のため。

#Allow read-access with the following SNMP Community String:
rocommunity public

# all other settings are optional but recommended.

# Location of the device
syslocation data centre A

# Human Contact for the device
syscontact SysAdmin

# System Name of the device
sysName SystemName

# the system OID for this device. This is optional but recommended,
# to identify this as a MAC OS system.
sysobjectid 1.3.6.1.4.1.8072.3.2.16

1.3.6.1.4.1.8072.3.2.16 は端末固有の値ではなく、 macosx として登録されている値なのでこのまま設定でOK。

http://cric.grenoble.cnrs.fr/Administrateurs/Outils/MIBS/?oid=1.3.6.1.4.1.8072.3.2cric.grenoble.cnrs.fr

launchctlへ登録

$ sudo launchctl load -w /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist

確認方法

プロセスが立ち上がっていることを確認する

mac-mini% ps aux | grep snmp                
root            14344   0.0  0.1  2548536  10664   ??  Ss    8:58AM   0:03.86 /usr/libexec/snmpd -f
user          14978   0.0  0.0  2434836    776 s000  S+    9:23AM   0:00.00 grep snmp

snmpwalk コマンドを利用して必要な情報が吐かれているか確認

mac-mini% snmpwalk -v 2c -c public localhost

👆のコマンドを叩いた後にばーっと色々なログが出てくれば問題なし。

windowsで入力した「~」とmacで入力した「〜」はUnicode文字コードが異なる

perl

「〜」をwindowsで入力するとUnicode文字コードはU+FF5Eになり、macで入力するとU+301Cになる。 数値実体参照で言えばwindows~mac〜 となる。ドウシテコウナッタ…

詳しい説明は以下の記事にあった。

Oracleデータベースで、波ダッシュの文字化けはなぜ起きるのか?

今回ハマったのは、windowsで入力した「〜」を含む文字列を正規表現で抽出する際、正規表現macで書いていたため「〜」の文字コードがOS間で異なり、正しく抽出されないことだった。

解決策としてはwindowsで入力した「〜」をコピペして正規表現に記載した。すごくダサいので、もう少しスマートなやり方があれば良いのだが… 見た目には変わらないのでなぜ抽出できないのか小一時間悩んだためみなさんもお気をつけください。

Mac OSXで特定のディレクトリ配下の内容の変更を監視してコマンド実行する

ops

launchctlを使うとお手軽に出来るみたいなのでメモ。

  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
      <dict>
          <key>Label</key>
          <string>hoge.huga</string>
          <key>ProgramArguments</key>
          <array>
              <string>/bin/bash</string>
             <string>any command</string>
         </array>
         <key>WatchPaths</key>
         <array>
             <string>any paths</string>
         </array>
         <key>StandardOutputPath</key>
         <string>any output path</string>
         <key>StandardErrorPath</key>
         <string>any error path</string>
     </dict>
 </plist>
  • ProgramArguments : 実行したいコマンドを記述する。array内で、スペース区切りのコマンドをstringで記述する
  • WatchPaths : 変更を監視したいディレクトリやファイルを記述する。
  • StandardOutputPath : 標準出力のログを吐くパスを指定
  • StandardErrorPath : エラーのログを吐くパスを指定

いろいろ調べててincronだったりfseventだったり出てきたけど、上手く動かなかったのとunloadの方法がよくわからなかったのでこれが一番お手軽かつ確実かと。

タワレコの会員登録でメアドパス忘れ

private

タワレコのネット会員登録しようとしたら既に会員になっていた事案が発生。 5年以上前にガラケーから登録してたらしい。

ガラケー辿って会員ページ見に行ったら登録していたメアドが確認できてそこから芋づる式に記憶辿ってパスワード思い出してなんとか回避できた。危なかった…

これだからまだまだガラケー捨てられない。