議事録(58) - hamamatsu-rb/hamamatsu-rb.github.com GitHub Wiki
議事録(58)
- 今回はたくさんいる
- 通常の三倍以上の人数
- まずは自己紹介
- 告知4人(5分ずつ)30分くらいかな
- インターネット環境は自前で><
KPTふりかえる
- メタプロ2版買いました
- ライフハックの発表・・・今日はない
- 別の活動はまだ
自己紹介
- 所々聞き取れなかったのでポジションペーパー参照推奨
- jacoyutoriusさん ... 普段はRubyで仕事とかサーバー補修運用。いつも司会
- euledgeさん ... 普段はC#。PHPもやってる。Rubyは前のお仕事でやってた。他の技術者との接点になるのでこの回に参加している。
- kengo suzukiさん...普段はPHP。数ヶ月ぶりの参加
- yukwakさん ... Rubyは数年前にやっていたが初心者レベルに。この機会でリハビリ。
- Webサービス作りたい人
- Ruby初心者
- 静岡オンラインでRuby開発してる人
- langurさん ... 普段はC
- yuukoさん ... 静岡から。普段はphp。同僚に刺激を受けてきた
- こばやしさん ... 静岡でPHPの会社。RORのPJに参加
- なかいさん ... 普段はRUby使ってない。今はWindowsでやってる
- kanemaruさん ... 求職中。だれか仕事ください
- isgkさん ... 今の仕事は評価業務。浜松楽器メーカーズフェスにでるよ
- marilla716さん ... 技術者の集まりにきたい。Ruby歴はぜんぜん
- yoshidaさん ... ラポールyoshida。工場努め
- mackatoさん ... 3餓津に浜松ruby抜けたはずだが戻ってくる。東京から。Ruby10年くらいやってる
- ふるごおりさん ... 仕事ではPHP。10年くらいまえにRuby
- いちかわさん ... 宣伝と、(日本アンドロイドの会 5年目)静岡アプリコンテストの告知。ちょっと畑違いだけどよろしく
- かしまさん?... フリーのエンジニア、RUbyはあんまりだが普段はWeb系。PHPも
- つちやさん ... フーリエと言う会社で働いている。地域コミニティで話したくなってきた
- スズキけいごさん ... かとうさんのしたではたらいてる。最近はJS。
- tatibanaさん ... かとうさんのしたではたらいてる。RORを5ネンくらい。みなさんもRuby使ってください
- misogiさん ... 浜松でフリーランス。最近かとうさんから仕事もらってる。Rails,C#,PHP。ここの勉強会でSlackを流行らせようとしている
CodeKataKata
- 問題決定「算数オリンピックトライアル問題 1から8で作った数の和は」
- またパーミュテーションで総当たりか?
- 数式を導き出してやった人もいる(力技でないとRubyらしくないのか?…)
# 汎用性のないコード
# ABC + CDE + EFG + GHA = 1725
#
# 以下のように考える
# x = A + C + E + G
# y = B + D + F + H
# xとyを使って問題分を書き換える
# 101x + 10y = 1725
# ここで、最小の和は以下で与えられる
# 1 + 2 + 3 + 4 = 10
# 同様に、最大の和は以下で与えられる
# 5 + 6 + 7 + 8 = 26
# また x + y = 1 + 2 + ... + 8 = 36
# この条件を満たすyを探せば良い
for x in 10..26 do
for y in 10..26 do
if (((101*x + 10*y) == 1725) && (x + y == 36))
p y
end
end
end
num = 0
#permutation.to_aはメモリいっぱい使っちゃうそうです
(1..8).to_a.permutation.to_a.each do |a|
sum = (a[0] * 100 + a[1] * 10 + a[2]) +
(a[2] * 100 + a[3] * 10 + a[4]) +
(a[4] * 100 + a[5] * 10 + a[6]) +
(a[6] * 100 + a[7] * 10 + a[0])
if sum == 1725
num += 1
puts [a[1] + a[3] + a[5] + a[7], a].to_s
end
end
puts num
# ベースの式は
# y= 101 * (a + c + e + g) + 10 * (b + d + f + h)
# y= 101 * (sum_a - x) + 10 * x
# y= 101 * sum_a - 91 * x
# x = (sum_a * 101 - y) / 91
a = [1, 2, 3, 4, 5, 6, 7, 8]
sum_a = a.inject(:+)
y = gets.to_i
#総当たり
nums = [1,2,3,4,5,6,7,8]
nums.permutation(8){|ws|
f1 = ws[0].to_s + ws[1].to_s + ws[2].to_s
f2 = ws[2].to_s + ws[3].to_s + ws[4].to_s
f3 = ws[4].to_s + ws[5].to_s + ws[6].to_s
f4 = ws[6].to_s + ws[7].to_s + ws[0].to_s
f = f1.to_i + f2.to_i + f3.to_i + f4.to_i
if (f == 1725) then
puts ws[1] + ws[3] + ws[5] + ws[7]
exit
end
}
a = [1,2,3,4,5,6,7,8]
permutation = Array.new
permutation = a.permutation(8).collect{|array| array.join}
permutation.each do |i|
a = i[0..2].to_i
b = i[2..4].to_i
c = i[4..6].to_i
d = (i[6..7] + i[0]).to_i
sum = a+b+c+d
if sum == 1725
print a.to_s[1].to_i + b.to_s[1].to_i + c.to_s[1].to_i + d.to_s[1].to_i
break
end
end
require 'pp'
# 欲しい答えを入れよう
answer = 1725
numbers = [1,2,3,4,5,6,7,8]
sums = {}
patterns = {}
numbers.combination(4).each do |c|
a = c.inject(:+)
other = numbers - c
b = other.inject(:+)
sum = 100 * b + 10 * a + b
sums[sum] = [a, b]
patterns[a] ||= []
patterns[a].push([c, other])
end
ans_sum = sums[answer]
if !ans_sum
puts '答えはありません'
puts '答えは以下のどれかです'
puts sums.keys.join(',')
exit
end
puts "#{answer} = #{ans_sum[0]} + #{ans_sum[1]}"
pp patterns[ans_sum[0]]
近くの席の方と一緒に解いたバージョン
(10..26).each do |a|
b = 36 - a
answer = 101 * a + 10 * b
if answer == 1725
puts "answer is #{b}"
end
end
告知・LT
kazuomatzさんの告知
- いろいろさわっているひと。PGから動画編集までマルチ
- PHPとかAnd○roidとかOfficeはさわらない
- いろいろアプリを作ってる
- まちぽ・・・超ローカルニュースアプリ
- womo・・・無駄にリッチなアプリ
- 静岡市人口が減ってきてる→シズオカアプリコンテスト!
- サイトはrailsで作っている。
- 静岡市のオープンデータを必ず一つ以上使用する。
- 全国からアプリ募集
- 最優秀賞30万円
- 人口減少対策賞も有る。AWS賞も。
- すでに参加登録は始まっている。
- 表彰式は静岡のホールで
- 参加者全員に50$分のAWS無料クーポンが貰える
- AWS講習会に無料参加可能
- Q:オープンデータ・・・CSVもPDFもある。PDFのものを切り抜いて使ってもOK?
- A:OK。ライセンスはCCCで出してる。
- Q:今川さんとは?
- A:静岡の有志の方が立ち上げた。ぬいぐるみは100万円ぐらいした。ゆるキャラグランプリに参加中。180?位
- 100位以内に入ったら静岡市公認になるらしい。
- 公認にならなくても表彰式にはでる。今川義元ベース。
macha1972さんのAndroidの会ほか告知
- 主に組み込み系の人。特技は滑ること
- 今週土曜日Android浜松支部イベント。Eddystone(オープンなビーコン)のセミナー
- 東京で1回、浜松で1回
- Android Bazaar & Conference Diverse 2015 Kanazawa
- 地方でやっていく。Androidのお祭り。金澤めっちゃ遠いらしい(4~5時間??)
- シズオカアプリコンテストのアイデアソン。12/12にやろうと思っているがRuby会議とかぶる...
- コンテストはグループ応募もOK。
- Androidの会とはまるびはほぼ同時に立ち上がって5年。キリがいいので一緒に何かやりたい。
langurさん告知
- 静大情報LT大会(OSC浜名湖プレカンファレンスも)
- ブースの出展申し込みも始まっています
- LTのテーマはなし。情報系に限らずいろいろやっている(ライフハックとかもOK)
- まだ人数少ないので登録お願いします
jacoyutoriusさんLT
- スライド資料 http://www.slideshare.net/YutoOgi/itamaeprovisioning
- itamaeで一撃サーバー構築(予告を実装)
- itamae:サーバーのプロビジョニングツール いろんな設定をRubyのコードで実装
- サーバーの有るべき状態を定義する。Linuxのディストリビューションの違いを吸収してくれる。
- 何度実行しても同じ状態になる。
- プログラムなのでバージョン管理ができる。差分比較とかもかんたん
- Chef,Puppet,Ansibleも類似のツール。itamaeはChefから大きく影響を受けている。
- 覚えること:レシピとリソース
- レシピ・・・どんなパッケージをインストールするかRubyで記述
- リソース・・・対象サーバー上で実行する命令
- テンプレートに変数を指定して設定ファイルを作成したりできる。
- 実際にシェルの実行も可能。使うときは要注意。
- Gemでインストール。「gem install itamae」Ubuntuではapt-getでも。
- ローカルへ実行したり、sshで実行したりvagrant内で実行したりできる。
- 結局色々オプションつけて複雑に。オプションはいろいろたくさんある。
- pluginsも30いくつかある。名前を見ると何となく分かる
- itamaeの場合はgemでプラグイン管理。
- rbenvのプラグインは割と読みやすい。
- 出来上がったサーバーのテスト(=>Serverspecというツールも有る)
まとめ:itamae楽しい。上手く動くと全能感。多少ハマるところも有る。
otto
- ottoを使うととりあえず開発環境の入ったVMが手に入るよ
mackatoさん naisyokunoseika
- swiftで、自分を撮影するアプリを作っていた。
- 自宅で働いている時に顔を合わせられないため、顔撮影するアプリを作った。
- 写真付きでHipchatにあげることができる。社内でのウケがいい。
- swiftを使うと簡単なツールが作れていいよ
KPT
Keep(今回よかったこと)
- 人がたくさん来た
- 事前準備しっかりした
- (無理やり)課題とけた
- 成果発表した
- KPTをしてること(あまりやってる勉強会を知らない)
Problem(今回失敗したこと)
- 問題選択ミスったかも
- 数学使うとRubyの勉強にならない
- メソッドがすぐ出てこない
- そろそろ働く
- ケツが痛くなるので体を動かしたい
- コードと発表がわかりにくかった
- 環境を作ってこなかった
Try(次回やりたいこと)
- テストコードを書く練習
- 次も参加してLTする
- LTしたい★
- もう少しRuby自体の深いところを勉強したい
- 飲みたい
- 初心者向けのレクチャーとか
- 「問題文に出てくる以外の定数を使わない」という制限とかどうだろう
- 次回、来年のHmrbは何します?