Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
A Tale of a Happy Programmer
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Nugroho Herucahyono
September 26, 2013
Programming
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
A Tale of a Happy Programmer
Ruby programmers are happy programmers
Nugroho Herucahyono
September 26, 2013
More Decks by Nugroho Herucahyono
See All by Nugroho Herucahyono
Simply Distributed
xinuc
0
120
Choosing the right technology
xinuc
0
190
This Talk is so Meta
xinuc
1
140
Rails on Wiradipa - Jakarta.rb Februari 2012 - Hafiz Badrie Lubiz
xinuc
1
180
Why Ruby? - View from business aspect - Jakarta.rb Februari 2012 - Fajrin Rasyid
xinuc
1
360
Other Decks in Programming
See All in Programming
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
120
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
0
180
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
160
Webの地図
yosuke_furukawa
PRO
6
4.7k
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
270
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
310
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
380
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
390
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
160
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
2
300
App Intentsのビルドプロセスを支える技術
kntkymt
0
430
Verilogで学ぶCPU自作入門.pdf
uyuki234
3
2k
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
900
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
530
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Believing is Seeing
oripsolob
1
220
Un-Boring Meetings
codingconduct
0
420
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Paper Plane
katiecoart
PRO
4
53k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
340
Transcript
@ Jakarta.rb 17 Oktober 2011
Who's talking? Nugroho Herucahyono programming since 12 years old ex
java programmer rubyist since 2006 twitter: @xinuc github: @xinuc
Works at Bukalapak
Disclaimer • This is my first jakarta.rb • Not a
technical talk • I'm really bad at public speaking • So, please bear with me
“a tale of a happy programmer”
I18n.locale = :id
“cerita tentang seorang programmer bahagia” err... - -”
Once upon a time
None
None
None
None
None
None
None
None
None
Maybe I did it wrong
None
None
None
class ThisIsAClassIDontReallyWantToNameButJavaMakesMe { public static void main() { System.out.println("Hello World");
} }
puts 'Hello World'
import java.io.File; import java.io.InputStream; // ... declare class, etc., then
... public byte[] justReadMeAFilePlease() { try { file = new File("my-file.txt"); fis = new FileInputStream(file); byte[] b = new byte[(int) file.length()]; fis.read(b); return b; } catch (Exception e) { e.printStackTrace(); } }
contents = File.read 'my-file.txt'
import java.util.Arrays; import java.util.Comparator; import java.util.Collections; import java.util.List; public class
SortList { public static void main (String[] args){ List<String> names = Arrays.asList("Nugroho", "Xinuc", "Herucahyono"); Collections.sort(names, new Comparator<String>(){ public int compare(String first, String second){ return (first.length() > second.length()) ? 1 : -1; } }); StringBuffer buf = new StringBuffer(""); String sep = ""; for(String name : names){ buf.append(sep); buf.append(name); sep = ", "; } System.out.println(buf.toString()); } } •
names = ["Nugroho", "Xinuc", "Herucahyono"] puts names.sort_by(&:length).join(", ")
I never knew that code can be this beautiful
Programming is fun again!!
None
I code ruby because it makes me happier – Silakan
di tweet
Does it mean that his life is perfect? No
Broken heart...
Sucky boss
Failing projects
Pivoting startups
None
None
Enjoy your jakarta.rb