Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
西区プログラミング勉強会発表資料
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hiromi Kai
March 03, 2013
Programming
0
74
西区プログラミング勉強会発表資料
Hiromi Kai
March 03, 2013
Tweet
Share
More Decks by Hiromi Kai
See All by Hiromi Kai
【リジェクトConライク】Re:cycle〜Kaigi on Rails 2025編〜 登壇資料
hiromikai
0
43
#kaigieffect LT大会 at RubyKaigi2024 登壇資料
hiromikai
0
130
OOC2024 登壇資料
hiromikai
0
160
Other Decks in Programming
See All in Programming
条件判定に名前、つけてますか? #phperkaigi #c
77web
1
330
Goの型安全性で実現する複数プロダクトの権限管理
ishikawa_pro
2
480
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
150
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
190
GoのDB アクセスにおける 「型安全」と「柔軟性」の両立 - Bob という選択肢
tak848
0
230
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.5k
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
160
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
280
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
1.1k
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
160
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
160
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
310
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
150
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
160
30 Presentation Tips
portentint
PRO
1
260
Marketing to machines
jonoalderson
1
5k
Ethics towards AI in product and experience design
skipperchong
2
230
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
220
Facilitating Awesome Meetings
lara
57
6.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
320
The Curse of the Amulet
leimatthew05
1
10k
Transcript
Rubyで始める アマチュアプログラミング HiromiKai-Green
私の略歴(学生) • H20年 某九州の高専を卒業 ◦ テストの点取りと情報系資格取得に明け暮れる ◦ 技術士補、ソフ開、工担DD1種などを取る ▪ 当時はちやほやされて気分が良かった ▪
実際あんまり役立った記憶なし ◦ 卒検は出席管理・成績管理のiアプリ開発と配布用サー バの構築 ▪ #新規性とは • そんなものは ない ▪ 誰もやる人いないからサーバ構築をやることで運命 の歯車が狂ってゆく
私の略歴(社会人) • 某元請SIerに入社 ◦ サーバ構築のキーワードを出したせいでインフラエンジ ニア部門に配属される ◦ Ciscoのスイッチ買ったり自宅でサーバ組んでみたりする もなんか違うものを感じる ▪
やっぱプログラミングがしたい • やりたいこととできることのミスマッチに苦しむ ◦ 心を病んだり転職したり引きこもったりフリーターしたり ◦ 再度就活するも経歴がボロボロ+それに代わる新たな実 績がないことで大苦戦 ◦ 今の仕事も微妙にプログラマじゃないけど都会のほうが 足がかり作りやすいからよしとする
社会人以降に開発を阻む障害 • 無職・無趣味 ◦ プログラムが必要に駆られる機会がない • ぼっち ◦ 必要としてくれる人がいない ◦
成果を見せびらかせる人がいない • 意識の低さ ◦ 自分を追い込めない ◦ 娯楽のコアはゲームだったりカラオケだったり • トラウマ ◦ 読んでもわからないつらさで一時期技術書売り場に行く だけで気分が悪くなる →アマチュア版荒ぶる四天王
どのように克服したか • 無職 ◦ 職に就く→こんな作業手でやってられるか! • ぼっち ◦ 職場の人なりオンラインなり喋る人を増やす •
トラウマ ◦ クソなりにプログラムを書いて自信を取り戻す • 意識の低さ ◦ マスター・センセイ曰く、~我々アマチュアプログラマは 人間は怠惰な生き物であるという前提に立つ。つまり意 識の低さを固定するのだ~ _人人人人人人_ > 変わってない <  ̄Y^Y^Y^Y^Y^Y ̄
何を触ってるの? • Ruby ◦ プログラム再開時に「学習コストを極力抑える」の を目標にした ▪ 意外と色々ハマったけど… ◦ 昔Railsで挫折したのでSinatra使ってるけど、今
なら使えそうな気もする • hamlとかcoffeescriptとかscssとか ◦ 定形的なのは楽に書いてドヤリングしたい
何を書いてるの? • 自分がやるゲームのツール ◦ ポケモンの確1計算 ◦ ガンダムEXVSのダメージ計算 • 競技プログラミングに交じる ◦
やること思いつかなくても手を動かせるのがいい • 仕事の手作業短縮 • 仕事で作るWebアプリケーション ◦ 後述
いでよ!やっつけWebアプリ • あるデータを集計してグラフ表示するツールが 必要に(Excelからの置き換え) • 部の方針としてはソフトウェア開発部門に開発を投 げるつもりだったが調整が難航 • 「ちょっとグラフ表示のライブラリ調べといてよ」と言 われたので自分のPCに環境構築してやっつけでデ
モアプリを作って見せる ◦ →期間がなく開発人員もいなかったのでなし崩 し的に採用
None
構成図 コントローラ Sinatra モデル MongoDB/mongoid ビュー haml/ccchart/Coffeescript 本開発時には 「実績ないDBはちょっと…」と言われ PostgreSQLに置き換え
Sinara require "sinatra" require "haml" get "/" do haml :index
#index.haml表示 end get "/get_param" do name=param[:name] #getパラメータ取る #好きにRubyの処理をやれる "Hello #{name}!" #戻り値に文字列を与えるとHTTPレスポンスになる end 実行はRubyでファイルを実行するだけ!
ccchart • オープンソースのJavascriptグラフライブラリ ◦ 最新版はMITライセンス。旧バージョンはパブリッ クドメインという大盤振る舞い ◦ 現在の業務では一応商用が視野にあるのでゆる いライセンスでないと困る •
google chartに比べて結構見た目がカッコイイ • canvas使う上にクロスブラウザガン無視なので注意 ◦ (少なくとも0.9系では)IE9用にコード修正が必 要 ◦ IE8以前ではuupaa-excanvas.jsが必要な上に、 EventListener周りのクロスブラウザ対応が必要
こんなん(本家より引用) • 影つけたり背景グラデーションさせたり • 積み上げグラフや、折れ線との複合など結構種類豊富 • データはJSONで渡せばいいので加工が楽 ◦ Rubyなら配列やハッシュにto_jsonがある
まとめ • 素人はプロ以上に時間とリソースが限られた中 で何ができるかを考える必要がある ◦ 約束事が少ないRubyは個人的に気に入っている • 情報源としてtwitterが非常に役立っている ◦ 本職がどういう情報見てるのか、何を考えてるかがいつ
も流れてくる ◦ 人のアンテナに乗っかることができる • 「自分でもできる」チャンスを逃さない ◦ 窮鼠猫を噛む やってやる!やってやるぞ!
ご静聴ありがとうございました