見習いの見習いプログラマ

まだまだ先は長い

最近の配信周りの機材とか

4年くらい間隔があいていました。

配信機材を揃えはじめました

イベント運営で配信をしたいが増えてきており、機材を調達することが増えました。
ターニングポイントとして、Global Game Jam Sapporo 2023でBlackmagic社製のATEM 2 M/E Production Studio 4Kをレンタルしたのがきっかけです。

その前のSapporo Game JamのあたりでATEM Mini Extreme ISOが導入されたり少し様子おかしかったのですが、今は完全におかしくなりました。

ATEM 2 M/E Production Studio 4Kは癖が強い

このスイッチャー、わりと癖が強くてGGJ2023ではむちゃくちゃ苦労しました。
まず、入力と出力の解像度とフレームレートが一致していないといけない。
しかもPC入力である30HzはHDMI1でないと受け付けない みたいなところがトラップでした。

つまり、4K配信をしようとすると、あらゆる入力ソースを4K29.97Hz または HDMI1のみ4K30Hzにしないと真っ黒画面になってしまうという。 これはとんでもないじゃじゃ馬です。

そんなわけで、何故かイベントのあとに新古品を30万円で買いました。はいアホです。

コンバーターを使うことでどうにかこうにか

その後、調査をするとTeranexシリーズのコンバーターが売っているようで、これをつかうと解決できるようでした。
ただ、Teranex miniシリーズはフレームレート変換が59.94iにしか変換する機能がなく、PC入力をコンバートするには以下の手順が必要です。

HDMI → Teranex mini HDMI to SDI 12G → SDI to HDMI or BiDirectional 12G → ATEM 2M/E Production Studio 4K の HDMI1

みたいな経路でHDMI1のみスケールできるようになります。

逆に言うと、HDMI1以外は実質Teranex mini は使うのがとてもきついです。

HDCPでハマりやすい

最近のMacなんかはデフォルトでHDCPを喋るみたいで、GGJでもこれにハマって大惨事になりました。
HDMI1は大丈夫なのですが、キャプボをうまく使ってスケーラーを作ったり、HDMI1以外を利用するとアウト。
そこでHDCPエミュレーターを間に挟むことでHDCPを強引に解除して対応することになります。

良い子は悪用厳禁

まとめ

Teranex Expressってやつを買いましょう

こいつだと、フレームレートの29.97Hzと30Hzの変換とスケーリングをやってくれるので、鬼に金棒です。
ちなみに、検証してませんが多分HDCP周りでコケるので事前にHDCPエミュレーターをはさみ、またConverterを挟んでHDMIからSDIに変換して食べさせてあげてください。
こっちだとSDI 2以降の入力でも映ります。

音響周り

音響周りは、ワイヤレスマイクを色々漁ったり宅を用意したりしていました。

有機材(2023年5月21日現在)

ミキサー

  • LiveTrak L12
  • AG06

有線マイク

無線マイク

そしてそして、会場のB帯との共存に困りも出てたり混信事故を心配した結果、特定ラジオマイクの導入をすすめることになりました。
Shure QLX-D L53バンドのBeta58aカプセルを2台注文にこぎつけました。

個人でこのバンドのマイクを持つのだいぶアホなのですが、安心して配信PAでワイヤレスマイクを使えるようになります。

そして、Sennheiserの音が好きだけど、Sennheiserの送信機高すぎたり特定ラジオマイク専用帯が使えなかったりでふんだりけったりだったので、
Shure送信機にSennheiserのマイクカプセルを取り付けるアダプターを近々試そうと思っています。

AmbientってところのメーカーのHHA-SSHというのがちょうどそれっぽいです。

こんな感じになるらしい。

多分こんな変わった構成、そうそう見かけないけどお楽しみください。

カメラ

使ってるものとしては、ZV-E10やGH5s、R6といった4K対応の一眼カメラがメインです。
ノイズ耐性とか強いので、自分は一眼推し。

最後に

www.hasegawa-tomoki.com

rela1470.hatenablog.jp

このあたり見てブログ書きましたが、次は配線図とか運用事例をちゃんとお伝えしたいと思います!

EOS6D Mark2とEF16-53mm F4L IS USMを勢いでIYHした話

カメラのシステムを大幅にアップグレードしました。

勢いでフルサイズと広角に突撃しちゃいました。

理由:

  • 6/2-3 でKawaz学生部の学祭の様子を撮影できる
  • 6/22-24 仙台に遠征するし撮影したい
  • 7/7 OSCで撮影するけど毎年広角足りなくて泣いてたから24mmはあると嬉しい
  • 既にフルサイズ対応レンズが2本有 内1本Lレンズでいずれダイブするための準備は出来てた

という勢いで、本当は両方ぽちる予定なかったのに気がついたらダブルでゲットしてしまいました。

そんなわけでヨドバシに駆け込んでキャノンの販売員さんを仲介役にして価格交渉
レンズが下がらないのはもうわかってたので、ボディもそこそこいいラインまで値下がり成功して購入
(計画練ってやるならもうちょっと下げれたかもというものの、よく引き合いに出すノジマさんあたりより安くなっちゃってるので悪くないお買い物だったかなと) 確かボディがポイント加味して実質184k程度(なので購入価格200kちょい)みたいな感じでした。

しかし、ボディポチると、もれなくレンズ2本そのまま使えるのは嬉しいものです。あらかじめフルサイズを視野にいれたレールなので良いですが、そうでなければボディ+Lレンズのセットあたりはほしいのであれもこれもだと良い金額が飛んでしまいますね...
EF24-105 F3.5-5.6 IS STM は個人的には無くてもという感じだったので、今回は見送りました。 予算足りないし!←

フルサイズの6D2むっちゃ高性能だった

2日くらい雑に動かしてわかったいいところ

  • 高感度耐性化物(ISO6400がまともに使えて12800も内容によっては使うのありかなと思える)
  • ファインダーに水平計が出せてむっちゃ便利
  • BluetoothiPhoneとペアしたら必要なときにWifiつないで転送&終わったら切断もサックサックできる(NEX-6より超快適)
  • 画角がレンズの数字通りになったので、広く撮影できる(すでに持ってたEF70-200 F4L IS USMがポートレート要員としての稼働がやりやすくなった)
  • タッチパネル便利〜〜〜〜〜
  • AFが狭いのは案外大丈夫だった AFポイント自体は多いのであまり困らないかなあという感じ(7Dのファインダーと見比べて、ああこれなら案外大丈夫だわーって思ったのが地味に後押しになった

地味に感動したのがファインダー周りとWifi周りかなあ。文明の利器でぶん殴られまくった感じでデジモノすごいよーって感じである。
完全に、ダイブしてよかったなあという感想でした。

EF16-35mm F4L IS USMで2本目のLレンズにダイブした

地味に5年も前にEF70-200 F4L IS USMをポチってKiss X6iに付ける みたいな総ツッコミされまくる運用してましたが、今回の購入で小三元のうちの真ん中以外が揃ってしまいました。
ちなみに標準域の28-70mmはタムロンのお安いF2.8のジーコレンズさんがいるので、まあしばらくは安泰かなあ(あとNEX-6にシグマの30mm F1.4積んでるので暗所以外のスナップは困らないっしょという感じで。)
望遠でF4Lにした理由が、重量1.5kgは無理なのでサードパーティに飛び込むのもやめよう みたいなオチでしたが、今回は意外なオチでして
フィルタープロテクターつけれないのやっぱ怖い みたいな理由と、Lレンズのバリューに負けました。 タムロンさんに至っては重量バランスも少しひっかかってはいたものの、重量だけなら多分ギリギリ買ってもいいかなボディ軽いしという気はします(実物ちゃんと見れてはいない)
F2.8いいよ〜いいよ〜と沼の人に誘われてたので、今回予算でポチれる中で ISついていない旧型のF2.8の中古も検討したものの、比較サイト見たりした感じの周辺の流れが気になってしまったので旧型に投じるのはちょっとしんどいかもという感じでした。

そうなると無理してEF16-35mm F2.8L Ⅲ USMいく?と思いつつも、値切っても実質21万するっしょー無理っしょー 写りめっちゃよいけど、マジでボディを丸1年先延ばしにしてでも買いたいか?というところで、ボディの高感度耐性でかなり殴れるしってことでこの結末
星撮影が多少苦戦しそうだけど、まあなんとかなるっしょー(世の中の写真を見ながら)

さて、この広角レンズ、フルサイズでもAPS-Cでも遊べるレンズです。 フルサイズだとガチの超広角〜広角 APS-Cだと広角〜標準 ですね。スナップに使うならAPS-Cに載せたほうが勝手は良いと思いました。遠近効果が強く出るので扱いにコツがいるなあというのはよくわかりました。
長年F4L望遠振り回してただけに、シーン別の使い分けを考えれると楽しそうという感じ 真逆のレンズに向き合って、はじめて望遠の良さを再認識できるというか。

買ってよかったので、あとでちゃんと現像した写真とかをまとめたりしたいなあ

やっぷしーほっかいどーとかで会場NWした話とか #yapcjapan

こっち書くのが久々ですね。こんにちわ。

昨日くらいにYAPCが北海道にくるとかなんとかで、いつものルートでNWとかよろしくって放り込まれました。どうも。

会場NW経歴はこんな感じ

2014

  • Global Game Jam 2014 Sapporo
  • OSC2014 Hokkaido

2015

  • Global Game Jam 2015 Sapporo
  • OSC2015 Hokkaido
  • PyCon mini Sapporo

2016

  • Global Game Jam 2016 Sapporo
  • OSC2016 Hokkaido
  • PHPConference Hokkaido
  • YAPCHokkaido ← New!

その他2013年くらいにBoost勉強会のほうもやった記憶があります

運営スタッフ関連は2011のOSCから雑用的に色々やってたので、いい感じにスタッフ歴がついてしまいました。

元々この手のイベントのインフラ番長は @koiwa さんが番長してましたが、世代交代の流れがあって現在私ともう傍らの @raa0121 がだいたいまわすようになりました。

2016に、色々あってNW機材に変化がおきました。

実はスタッフコミット量的に一番多いGGJのほうで、インフラ設備の更新をなんとかしないといけない問題が発生した関係で、一気に機材を買い増した経緯があります(一応経費関連でGGJ実行委員会所有物扱い) その後は年1でしか使えないのはノウハウ溜まらない問題があるので、試験的に色々なイベントで実験投入を繰り返してるという状態です(最近configが安定してきたけど、改良の余地はまだありそう)

そして今回は、我らが @koiwa 師匠がEdgeRouter X共同購入の話があがったので、我が家に1台やってきました。

今回使った機材

RoomA 設営みぃお

  • EdgeRouter X * 1台
  • PoEハブ * 1台
  • Aironet 702(自立型設定) * 3台

RoomB 設営みぃお/らぁ

  • IX2015 * 1台
  • PoEハブ * 1台
  • Aironet 702(自立型設定) * 1台

RoomC 設営らぁ

  • Aironet1242AG(YAPCAsiaの記事見て2014年に買ったやつです) * 1台

CのルーターはBから10mと5mを用意して100均の延長アダプターでくっつけて配置しました。

スタッフ部屋 設営らぁ

  • なくてもと思ったけど後半に自宅で昔の現役だったWR8700Nをホイッと繋げました(今はWG1800HP2が現役です)

Aironet702の最初の投入時はその他の関係も混ざった状態で悲鳴あがってたのですが、その後configを見直してカンファレンスではだいたい平和になっていました。

Aは、部屋の後ろの戸棚の上に無線APを配置してエアコン理論でビームさせたお陰か、広い部屋なのに前のほうでも40~50%程度の強さを維持してくれていたのでAPを上に設置する重要性を再度学んだ(後述の問題で後ろ2台だけで終盤まで回してた)

今回やらかしたドジと、そこから学んだデータ

実はAのSSID 1台間違えたんですよ!!!! YAPCHokkaidoRoomA と YAPCHokkaido-RoomA みたいなレベルのミス。 SSIDで類似が飛んでたのに気づいた人は間違いありません。それはドジしたせいです。どちらも同じルーター通ります。
後半見たら実は1台のAPに76クライアントくらいぶら下がってることに気づいて半分冷や汗かいたのは言うまでもない。

不定期にEdgeRouterさんのグラフやらNW繋いでiPhoneで画像をあげて見ていた感じ、たまーにパケットが詰まっている感じがあったので、もしかしたらAPが悲鳴あげかけてたかもしれません。ゴメンナサイ。 恐らく702におけるカンファレンスの接続数の規模感は50台/AP くらいが理想そうです。

あと、開始前後で前に設置したAPが原因で前のほうに接続障害が起きてごめんなさい>< 前のほうで障害と聞いて、「あー多分前の子失敗してる」って判断してAP撤去して後ろの子にローミングさせました。。。。。

今回の接続クライアント数はDHCPリース的に106台くらいがピークでした(300秒で開放しちゃったので、トータルはわかりません) 雪で来れなかった方も考慮すると、ピーク時3台で綺麗に分散されるのが丁度よさそうという結論がとれそうです。

実は前日準備より前の準備時間がほぼ0時間状態だったので、その中でやったとしてはそこそこまわってよかったです(経験重ねないと間違いなく事故る(=経験でわかってる分のコストはペイ済)ので良い子は絶対マネしないように)

NW準備から当日の様子あるだけ

明日のおまいらのインターネットの仕込み #yapcjapan

Mio Mitaniさん(@miio119)が投稿した写真 -

インターネットです。 APが一台設定ミスにより二台運用中 #yapcjapan

Mio Mitaniさん(@miio119)が投稿した写真 -

最後に

インターネットで共通の友人がいて会えなかったpastakがチャッカリ参戦してたので全てが満たされた。おわり。

ISUCON4予選で撃沈してきた話

てごわい

isucon4予選してきました。結論からいうと撃沈。13000くらいでした。

「み(ぃお)た(け)ら(れれ)団子」ってことで「みたらし団子」で参加してたのでした。

たけ氏には、確実に倒せそうなテンプレ周りとかunixソケット化とか色々お願いしてたとおもう。られれさんにはnata2とかいれてもらったり雑用たんまりお願いしたりとか。

どんな問題?

いすこん銀行、IPアドレス同一で10連続、パスワードとかまちがえて3回連続で制限ふっかけるとかそういう感じの部分をなんとかしてくださいってことらしい。

オンラインバンクなのに金額出ないし振り込めないし、なんかやばそうな銀行なので預けてはいけません。

コードリーディングした結果の方針

  • DBロックしてないから結構甘い
  • login_log が結構な量になるから多分重たい
  • というか、取得SQLがアレっぽいなー
  • もうこれ、RedisかMemcacheに全部載せてしまえば?上位層絶対これやってるしょー、下手したらweb側でなんかしてそうー

とかいう結論にいたり、Memcacheに仕様にそってデータをいれてみる。

後々のことも考えてuser_1_totalとかip_127.1.1.1 とかみたいなキーを作ってえっさこっさする

今見てもじつにひどい実装

https://github.com/miio/isucon4/blob/master/helpers.js#L116

不一致で死にまくり夕方までFail祭り。

初期データのキャッシュ温めしてないことに気付き制作。しかし、どうみてもこれstringifyでやらかしてるんですがねぇー

https://github.com/miio/isucon4/blob/master/memcache_init.js#L12

抽出SQLつらいわーとか言ってたら、たけ氏がレポート提出用のパクって作ればいいんじゃね?とか言ってきたので量産されるコピペメソッド。たけ氏天才か?w

https://github.com/miio/isucon4/blob/master/helpers.js#L273

ヒットしないキャッシュたち

キャッシュを全部温めたので理論上キャッシュfailはしないはず(消してもいなくて更新しかしてないから)なのになんかヒットしないパターンが多数あって、その結果重たいSQL直撃してたらしい

未だに原因不明なので原因見つけたらまとめたいなぁ。

まぁSQL直撃なのでインデックスだけ。

echo "ALTER TABLE login_log ADD INDEX idx1(user_id,succeeded);" | mysql -h ${myhost} -P ${myport} -u ${myuser} ${mydb}

こんなのおいときゃまぁ上がるっしょーってことで5分くらいで見つけてこれいれたら3000くらいあがったんだっけ。デスヨネーとしか。

感想

まぁ冒険しすぎたけど、今回は母数も増えすぎてたし、冒険しないと頭打ちにはなるだろうなーとは思っていました。はい。memcacheでヒットしない件は温めスクリプト改造したので検証したら、ヒットしないケースがあったのでちょっと詳しく調べたいところ。

というか、Redis力あればRedisにいれたほうが確実だった可能性もあるらしくてつらいなー。MySQLガチチューニングしとけばよかったかしら?

そんなわけでソースだけあっぷ

miio/isucon4 · GitHub

鳩さんありがとう。Node.js使ったよー

2014年が近い

2014年やることとか、どうしていくかを考えないといけない。

直近だと、GGJかな。ネットワークトラブルが3連続で起きてるので(専属担当不在)4回目は落させないというプレッシャーと十二分な準備を心がけてます。といっても、私はネットワークにそんな詳しいほうではないので、この担当やると言えてるのは過去の実績が他で積み上がってるからであったりします。

きっと何とかなります。

あとは、引っ越しクエスト。これも色んな理由で必ず完了させないといけないので遂行します。

大きな買い物はできるだけ控える方向で考えてて、多分あり得るとしたらこの2点

  • エアコン装備
  • MacBookProリプレース

MacBookは筐体が先に死にかけてて、使用歴も3年経過したのでだいぶ頑張ってくれたと思う。

リプレースするとなった場合は、次のRetinaが出る頃になると思います。

カメラ投資すると大変アレなのでこの投資は再来年以降に凍結です(今まで一眼にかけた金額と同じ金額が必要となると...

外部のイベントや勉強会は2013年でも結構絞ってたほうで、この方針は継続。方向性を固めていきたいなぁって。

今年は小さなものを完成させる方向に走ってたけど、来年は根本の技術というか、プロダクトを完成させる以上に知識を付け直さないと色々と置いてかれている感じがしているので努力したいなぁ。

2013年を振り返ってみよう

今年もあともう少し。今年何やったっけということでまとめ。

東京Ruby会議10に行ってきた

理由:2日開催、Rubyist

東京と言っておきながら、東京ディズニーランド商法と一緒で千葉Ruby会議です。 確か2日目に雨まじりの雪が降って東京の雪の弱さに笑ってた気がする。 予備日ではmixiさんに遊びに行ったなぁ。帰り2時間くらい遅れの飛行機で帰り、もひゃ氏と1便違う程度だから空港で到着待ったりした。

帰りはエアポート混雑してたし、私が常にuシート民なのでuシートに誘導したりなんとか。

GGJやってた

理由:恒例

みぃおさんRails書いてた。かふせさんいなかったら死んでた。神。

rubykaigi2013スタッフしてた

理由:割と思いつき

そしてカメラ買ってました。望遠欲しいとか言いながらEOS Kiss X6i買ってた。

このイベント3日くらいあったんだけど、普通に3000シャッター切ってた。一眼レフ良い。

帰りの飛行機逃しを華麗にキメ、ANA最終便がもう無いので共同運行しているADO便にANAユーザとして乗り込むことに。mayucoさんと一緒の便だった。

るびまpublishしたよ!

Ruby札幌に出没するようになった

後半は予定コンフリクトだったり仕事で燃え尽きたりして行けなかったですが、割と参加してた。

そして1回発表したのは良い成果! もっと発表できるようになりたい><

食事会でよく撮影してた

理由:撮影が好きだから

社内の食事会支援により毎月チーム食事会をしています。多分ほとんど撮影してますが、半数はHDDに眠ってます。ごめんなさい。尚、公開はお食事部分のみかな。

クックパッドのコンテストに応募した

理由:いまづちゃんが仲間を欲しそうな目でこっちを見ている...!

いまづちゃん、もひゃ氏と3人でコンテストに応募した。テーマ出てから24時間くらいで作るアレです。

結局デスマって最後みんなで撃沈してましたw

付箋とか使って楽しく開発してたなぁ

pairpullというサービス作ったよ!

OSCで澤田さんにそそのかされ2000枚くらい撮影してた

理由:やってみたかった。

これに合わせて追加投資約20万程投下。内訳はF4白筒レンズで12万、シグマのスピードライトで1万5千、一脚1万、追加のSDカード4枚(16GB)程と更にタムロンの標準ズーム(F2.8)まで投下してこうなってしまった。

澤田さんの装備は私の総額の2倍はかかってるけど重量も半端ない。意外とF4レンズでもISO1600 or 3200を様子見ながら手持ちで使えるくらいにはよかったよ。キャノンが誇る手ぶれ補正なだけある。

多分余程じゃなければF2.8もいらないんじゃないかなぁ。重量が1.5kgに跳ね上がっちゃうし。

後々の持ち出す頻度もかなり高いレンズなだけにF4で800g切る軽さと安定の画質は素晴らしいですよ。広角端が70mmと、APS-Cでギリギリ頑張ってポートレート撮影が出来るので、ポートレート撮影するのによく使ってます(コツ掴めば何とかなります

かなり撮影した。選別してまだお蔵に... もう年越すのだがry

RailsGirlsSapporoでコーチした

理由:私が趣味Railsな人だ

コーチ募集もう終ってたんだけど、オーガナイザのおめがさんに頭下げてコーチに。いや〜、教えるのって難しいですね〜 でも楽しかったよ!

ここでも白筒が大活躍してた。素晴らしい。

高専カンファレンス in 北海道3行ってた

理由:開催が近所だった。高専カンファレンスの雰囲気を探ってみたかった。

別にみぃおさんは高専生でも高専卒でもないです。当日は雑用手伝いとかしてました。

あと、あそなす氏とかいましたね。撮影もしてた。高専クラスタとの人脈開拓が微妙になされた気がする!

そらはーが北海道に遊びに来てたので一緒に遊んだ

理由:などない!

1日目はOSCとリアルコンフリクトしてたので別行動で、2日目夕方にOSC勢が解散していったので合流したというアクロバッティングなスケジュールでした。

たくさんのそらはー写真とか芸術の森の写真とかあるけどHDDに眠ってて、現像してupしたいですね。

SECCON予選参加したら優勝してたらしい

理由:つばめさんに勧誘されました。

私はリアル雑魚なので訓練しておきます。

今年のシャッター回数

どうやら15000シャッター超えたらしいです。

SECCON 札幌大会に参加してきました! QRコード問題のwrite-up

どうも、みぃおです。今回はSECCON札幌に参加してきました。

詳しいことは別の記事に書こうと思うのですが、チームdodododoでチーム一の雑魚役やってました。優勝してしまったので本戦がんばります(震え声

そんなわけで、寝落ちる前にwrite-upだけ書きます。

15 デコードせよ その他 100

f:id:miio119:20131202020852p:plain

スコアボードには黄色い☆がついていて、注訳を見ると「You answered fastest in all.」ということなので、 一番乗りで解けたようです。

記録上では「2013-12-01 12:23:48に、dodododoが問題 15を解きました。」です。

f:id:miio119:20131202020507g:plain

QRコードのファイルをMacのプレビューで開くと、なぜか16枚くらい画像が出てきます。

これを、ひたすらiPhoneQRコードリーダーアプリでスキャンします。 その結果をMacに転送し、つなぎ合わせるとBASE64エンコーディングされた文字列らしきものが出てきます。

VlZOQlIwa2dUazhnVlU1QlNra0tWVmRCUjBrZ1RrOGdWVkpCU2trS1ZVNUJSMGtnVGs4Z1ZVMUJUVWtLVlU1QlIwa2dUazhnUjBWT1Mwa0tWRWhGSUVaTVFVY2dTVk1nVlU1QlIwbE9UMHBWVFU5T1ZFRkpVMDlWQ2c9PQo=

これを一度デコードすると

VVNBR0kgTk8gVU5BSkkKVVdBR0kgTk8gVVJBSkkKVU5BR0kgTk8gVU1BTUkKVU5BR0kgTk8gR0VOS0kKVEhFIEZMQUcgSVMgVU5BR0lOT0pVTU9OVEFJU09VCg==

もう一度デコードすると

USAGI NO UNAJI\nUWAGI NO URAJI\nUNAGI NO UMAMI\nUNAGI NO GENKI\nTHE FLAG IS UNAGINOJUMONTAISOU\n

ということで、答えは「UNAGINOJUMONTAISOU」でした。

実際に解くときは、こんなrubyコードを書いて対応しました(後でbase64コマンドがあることを知りました... 恥ずかしい

str = "VlZOQlIwa2dUazhnVlU1QlNra0tWVmRCUjBrZ1RrOGdWVkpCU2trS1ZVNUJSMGtnVGs4Z1ZVMUJUVWtLVlU1QlIwa2dUazhnUjBWT1Mwa0tWRWhGSUVaTVFVY2dTVk1nVlU1QlIwbE9UMHBWVFU5T1ZFRkpVMDlWQ2c9PQo="

str2 = "VVNBR0kgTk8gVU5BSkkKVVdBR0kgTk8gVVJBSkkKVU5BR0kgTk8gVU1BTUkKVU5BR0kgTk8gR0VOS0kKVEhFIEZMQUcgSVMgVU5BR0lOT0pVTU9OVEFJU09VCg=="
require "base64"

p Base64.decode64(str)
p Base64.decode64(str2)

以上です。