kkmory;

エンジニア系ふわふわ大学生(だった)の雑記帳

RubyKaigi 1日目レポ

昨日から仙台国際センターで開催されているRubyKaigiに参加してきました。簡単に1日目のレポをまとめます。


f:id:morrrry:20180601125452j:plain


基調講演

まつもとゆきひろ氏のKeynote
今回は「ことわざ」をテーマにした講演でした。

・名は体を表す

名前って重要だよね、という話
プログラミングは概念で構成されているものだから、名前付けがとても大事。

概念をよく理解していれば、名前付けが比較的簡単になる。つまり、概念を理解できなければイケてる名前をつけるの難しい、と。 名前は使い勝手へと結びつき、ユーザビリティにもつながる。

これからはグーグラビリティを意識していくことも大事。 GoとかSwiftは一般的な名詞だからグーグラビリティが良くない。そんな名前にしてもやっていけるのは裏に巨大なスポンサーがいるからで、僕らはそうではない。NokogiriとかRuby on Railsとか、名刺を組み合わせたりTypoを変えたりするとグーグラビリティ良くなるよね、と。

・時は金なり

プログラマーって忙しいよね。時は金なりだからコードを効率的に書くことってとても大事。 例えばStringクラスだと、使えるメソッドがズッラァァァァァと並んでいて、やりたい処理はだいたい載っている。

僕はRubyのそういうところが好きです。

・塞翁が馬

Ruby is dead every year.
Rubyは毎年死んでいる。それでも何度でも蘇るさ!」by Matz


これ以降はスライドのみ載せます。 (内容まで描きたかったけど時間が...)


bancor: Token economy made with Ruby

speakerdeck.com

Deep Learning Programming on Ruby

speakerdeck.com

All About RuboCop

speakerdeck.com

RubyGems 3 & 4

www.slideshare.net

A parser based syntax highlighter

speakerdeck.com

After PartyでMatz氏とツーショットを撮ってもらって感動中です。初めてRubykaigiに参加してみて、Rubyのコミュニティって素敵だなぁという感想でした。 2日目3日目も楽しみです。

※2日目のレポートは気が向いたらやります。

RubyKaigiに行ってきます

空港行きのバス車内からこんにちは。

木曜日から開催されるRubyKaigiに参加するため、仙台へ行ってきます。人生初東北。

前々から行きたいと思っていた中、今回が初めてのRubyKaigi。すでにワクワクが止まりません。 だいたいどのセッションを聞くかは決めてますが、とりあえず1日目はこんなスケジュールで動く予定。


朝は早めに起床、受付開始まで仙台市内を散歩。

10:30〜 基調講演 by Matz

13:00〜 bancor: Token economy made with Ruby
Bancor Protocolやトークンエコノミーについて。 個人的にトークンエコノミーにはとても興味があるので、なかなか楽しみです。

13:50〜 Deep Learning Programming on Ruby
いい感じのパフォーマンスが出るディープラーニングモデルをRubyで書いたという話だそう。ディープラーニングの話は聞いてて面白いのでこれもまた楽しみ。

14:40〜 All About RuboCop
いつもお世話になってます。コーディングスタイルをチェックしてくれるRubocop開発者直々の講演。”we'll go over everything you need to know about RuboCop”とのこと。

15:50〜 RubyGems 3 & 4
RubyGems 2.7の新機能や、RubyGems3や4に向けたロードマップについて。

16:40〜 A parser based syntax highlighter
たまーにうまくシンタックスハイライトしてくれない場合があるよね、つよいシンタックスハイライターを紹介するよ。みたいな話だそう。

17:30〜 LT
12人のRubyistの方々によるLTです。

19:00〜 Official Party
オフィシャルパーティ!めちゃくちゃ人見知りしますがコンフォートゾーンの外に冒険に出てみます。


と、こんな感じ。

人生初東北なので、前日入りして少し観光してからRubyKaigiに臨みたいと思います。では行ってきます!

Ethereumをはじめてみる④

今日はトランザクションの中身を見ていきます。

トランザクションを見てみる

トランザクションの詳細を見たいときはgetTransactionコマンドを使う。
引数に前回作成したトランザクションのIDを入れてみると、

> eth.getTransaction('0x87dbbc27ec15bb0eeed0d1e295d675332add2d43dd01b7ea7e40a9ed7648aea5')
{
  blockHash: "0xeeafe2c1d8df81172dbe606c42ab6b10ee126c23e7a49fd522d68406f7d4da3e",
  blockNumber: 64,
  from: "0x30daa337a6696d7c007b32374c34c3362fe61bbf",
  gas: 90000,
  gasPrice: 18000000000,
  hash: "0x87dbbc27ec15bb0eeed0d1e295d675332add2d43dd01b7ea7e40a9ed7648aea5",
  input: "0x",
  nonce: 1,
  r: "0xa9d968d49f647d76f240401ff1a2385da1df24f07210b86ea8da9264f869d055",
  s: "0x5db2bf4e798c6b0d6a2ac6c6dc5c261cd485c70e0956fde48b9589cab48c6040",
  to: "0x43ceb2d08d417af3d897b5f92a68c362c935605a",
  transactionIndex: 0,
  v: "0x1c",
  value: 10000000000000000000
}

こんな感じ。


詳細を見てみる

blockHash:
このトランザクションが含まれるブロックのハッシュ値
この値を引数にしてブロックの詳細をみることもできる。

blockNumber:
ブロック番号。このトランザクションが何番目のブロックに含まれているか。

from:
誰がトランザクションを実行したか。送金元

gas:
gasの上限値

gasPrice:
送信者が払う手数料的なもの。
トランザクションの処理時にマイナーへ支払う1gas当たりの手数料。

hash:
トランザクションのハッシュ。
ブロックのハッシュではない。

input:
スマートコントラクトがあればここに入る。

nonce:
トランザクションのnonce。
ブロックのnonceではないので注意。このnonce値より、次のトランザクションハッシュ値が変わってくる。

r: ここ参照

s: ここ参照

to:
誰あてのトランザクションか。送金先

transactionIndex:
ブロック内でのトランザクションのインデックス。

v: ここ参照

value: 送金した金額


gasをもう少し詳しく

gasは、支払うgasの最大値。genesisブロックを生成した際に設定した数値で、今回は90000が設定されている。 対して、gasPriceはトランザクションが処理された際ににマイナーへ支払われる1gas当たりの手数料で、単位はwei。

今回のトランザクションでどれくらいのgasが使用されたかを見たい場合は gas / gasPrice を計算すれば良い。今回の例だと、 18000000000/90000 = 200000(gas) 200000gasが使用されたらしい。

コメントでなかじょさんにご指摘頂いたとおり、gasについて認識が間違っていた模様。

gasについてはまた調べ直してまとめてみます。