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
OSCON - Haunt
Search
fat
July 19, 2012
Technology
6
900
OSCON - Haunt
Introduction of Haunt at oscon
fat
July 19, 2012
Tweet
Share
More Decks by fat
See All by fat
Bootstrap.js?
fat
15
2.8k
Borges
fat
9
12k
Brûlons les musées
fat
6
1.8k
Ender
fat
6
600
Other Decks in Technology
See All in Technology
AIでテストプロセスを自動化しよう251113.pdf
sakatakazunori
0
130
機密情報の漏洩を防げ! Webフロントエンド開発で意識すべき漏洩パターンとその対策
mizdra
PRO
9
3.1k
Claude Code 10連ガチャ
uhyo
3
670
Datadog On-Call と Cloud SIEM で作る SOC 基盤
kuriyosh
0
170
CDKの魔法を少し解いてみる ― synth・build・diffで覗くIaCの裏側 ―
takahumi27
1
150
やり方は一つだけじゃない、正解だけを目指さず寄り道やその先まで自分流に楽しむ趣味プログラミングの探求 2025-11-15 YAPC::Fukuoka
sugyan
1
630
バクラクの AI-BPO を支える AI エージェント 〜とそれを支える Bet AI Guild〜
tomoaki25
2
730
今日から使える AWS Step Functions 小技集 / AWS Step Functions Tips
kinunori
7
660
ZOZOTOWNカート決済リプレイス ── モジュラモノリスという過渡期戦略
zozotech
PRO
0
270
レビュー負債を解消する ― CodeRabbitが支えるAI駆動開発
moongift
PRO
0
200
仕様は“書く”より“語る” - 分断を超えたチーム開発の実践 / 20251115 Naoki Takahashi
shift_evolve
PRO
1
580
Javaコミュニティの歩き方 ~参加から貢献まで、すべて教えます~
tabatad
0
100
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
697
190k
Balancing Empowerment & Direction
lara
5
740
Into the Great Unknown - MozCon
thekraken
40
2.2k
Site-Speed That Sticks
csswizardry
13
960
KATA
mclloyd
PRO
32
15k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
How to Ace a Technical Interview
jacobian
280
24k
Building a Scalable Design System with Sketch
lauravandoore
463
33k
Code Reviewing Like a Champion
maltzj
527
40k
Building Adaptive Systems
keathley
44
2.8k
Transcript
@fat Jul 2012 OSCON Thursday, July 19, 12
I’m @fat Thursday, July 19, 12
I work at twitter Thursday, July 19, 12
I write libraries Thursday, July 19, 12
Bootstrap, Ender, Hogan.js Thursday, July 19, 12
MooTools-flot, Stache, snapysnap Thursday, July 19, 12
Sometimes when I’m feeling saucy I open pull requests Thursday,
July 19, 12
These are largely rejected or backed out after a merge
Thursday, July 19, 12
I’ve been #1 on hacker news twice Thursday, July 19,
12
Thursday, July 19, 12
This is my real avatar on the internet Thursday, July
19, 12
People always think I’m high when I give these presentations
Thursday, July 19, 12
People always think I’m High when i give these presentations
Thursday, July 19, 12
Don’t tweet that, it hurts my feelingz Thursday, July 19,
12
I say “like” a lot Thursday, July 19, 12
I curse Thursday, July 19, 12
The only thing which consistently impresses me is 4chan Thursday,
July 19, 12
I live in the tenderloin Thursday, July 19, 12
I have a .xxx domain Thursday, July 19, 12
And perhaps worst of all I read books Thursday, July
19, 12
And not particularly good ones Thursday, July 19, 12
One of the authors I read a fair amount of
is Karel Čapek Thursday, July 19, 12
Thursday, July 19, 12
ČČapek wrote a number of works on brutal fascist dictatorships
Thursday, July 19, 12
But he’s most famous for a sci-fi play he wrote
in 1920 R.U.R. Thursday, July 19, 12
A dystopian work about a factory populated with androids Thursday,
July 19, 12
Thursday, July 19, 12
It start’s with a story about a man named Rossum
Thursday, July 19, 12
Who accidentally discovers a chemical similar to protoplasm Thursday, July
19, 12
Rossum attempts to make a real dog and man, but
fails Thursday, July 19, 12
Old Rossum was trying to prove God not just useless,
but absent Thursday, July 19, 12
Nephew comes to visit uncle and argues with old uncle
Rossum Thursday, July 19, 12
Young Rossum just trying to… Thursday, July 19, 12
Eventually, Young Rossum locks his uncle in a laboratory Thursday,
July 19, 12
And uses the formula to build robots Thursday, July 19,
12
Soon he’s building factories and robots by the thousands Thursday,
July 19, 12
By the 1950s, you can get robots on the cheap
Thursday, July 19, 12
The economy is amazing and so is the quality of
life Thursday, July 19, 12
Then this girl Helena shows up Thursday, July 19, 12
Thursday, July 19, 12
what if computers don't like being programmed prince M I
L Ǝ S @iano 25 JUN Thursday, July 19, 12
maybe computers just want to chill and play screen savers
all day prince M I L Ǝ S @iano 25 JUN Thursday, July 19, 12
Then there’s a robot revolt and it turns into a
whole thing Thursday, July 19, 12
But what about dat quality of life thing? Thursday, July
19, 12
A few months ago I was at Thursday, July 19,
12
Between sessions I was talking to TJ Holowaychuk Thursday, July
19, 12
We bonded over having panic attacks about github notifications Thursday,
July 19, 12
Thursday, July 19, 12
Turns out, this is a pretty common problem Thursday, July
19, 12
It’s a good problem Thursday, July 19, 12
But still a problem Thursday, July 19, 12
What makes it worse is github doesn’t offer maintainers much
help Thursday, July 19, 12
Out of desperation you begin to see things like… Thursday,
July 19, 12
Thursday, July 19, 12
Thursday, July 19, 12
But I still found myself spending 3-5 hours a week
on issues alone Thursday, July 19, 12
What’s worse, most of these issues aren’t issues with the
library Thursday, July 19, 12
They are support questions, duplicates, incomplete reports, etc. Thursday, July
19, 12
This becomes both exhausting and incredibly discouraging Thursday, July 19,
12
What’s worse, we get so overrun that we forget to
innovate Thursday, July 19, 12
I can close 50+ issues without committing a single line
of code ಠ_ಠ Thursday, July 19, 12
I’ve seen a few solutions to this problem Thursday, July
19, 12
Some projects add contributors who only manage tickets Thursday, July
19, 12
But it’s hard to find people, let alone the right
people Thursday, July 19, 12
Some projects begin moving ticketing off network Thursday, July 19,
12
But this means inconsistent ticket locations and implementations Thursday, July
19, 12
Instead, what if we could just clone ourselves? Thursday, July
19, 12
This of course is the Old Rossum approach Thursday, July
19, 12
But wut if we focused on really simple tasks a
la Young Rossum? Thursday, July 19, 12
The evening after I wrote some docs for a new
service Thursday, July 19, 12
A bot which would implement Necolas’s issue-guidelines Thursday, July 19,
12
But it shaped up to be a huge undertaking with
limited value Thursday, July 19, 12
Which is to say, value for Nicolas and I, but
no one else Thursday, July 19, 12
About a month later Thursday, July 19, 12
how did your github bot thing go? TJ Holowaychuk @TJHolowaychuk
1:10 AM Thursday, July 19, 12
Translation Can i use ur robot pls? Thursday, July 19,
12
@tjholowaychuk sadly haven't had time to finish it yet :(
I added @sayer to the project but we've both been pretty busy ♒∆✝ @fat 1:11 AM Thursday, July 19, 12
Translation I abandoned it, but blame @sayrer Thursday, July 19,
12
haha ok cool, I could definitely use something like that
these repo issues are getting out of control TJ Holowaychuk @TJHolowaychuk 1:15 AM Thursday, July 19, 12
Translation FML. ok. I’ll write my own. Thursday, July 19,
12
bahaha my bot backfired on me and started closing the
wrong shit, definitely needs a dry- run mode TJ Holowaychuk @TJHolowaychuk 2:26 AM Thursday, July 19, 12
Translation fuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu Thursday, July 19, 12
Naturally, I first lol’d at all the wrongly closed issues
Thursday, July 19, 12
Then got obsessively interested in actually building this thing Thursday,
July 19, 12
But with a new, goal: I wanted it to be
“Universal” Thursday, July 19, 12
To begin I started researching bots Thursday, July 19, 12
Chatterbots, spambots, botnets, gaming bots, votebots, etc. Thursday, July 19,
12
I found Bots are just apps that run automated tasks
over the web Thursday, July 19, 12
But I wanted something slightly different Thursday, July 19, 12
An app that ran automated tests over the web Thursday,
July 19, 12
I was hoping this would offer more flexibilty and be
easier to evolve Thursday, July 19, 12
So for the past two months, i’ve been working on
just that Thursday, July 19, 12
And today I’m happy to be open sourcing it Thursday,
July 19, 12
Haunt something similar to Rossum’s protoplasm Thursday, July 19, 12
Which is to say, a node module for creating robots
|| services Thursday, July 19, 12
Haunt allows you to run unit tests against issues and
pull-requests Thursday, July 19, 12
Then make decisions about closing, tagging, and commenting Thursday, July
19, 12
All programmatically Thursday, July 19, 12
For bootstrap I wrote the following simple assertions Thursday, July
19, 12
Pull-Requests should always be made against -wip branches Thursday, July
19, 12
Pull-Requests should always be made from feature branches Thursday, July
19, 12
Pull-Requests should always include a unit test if changing js
files Thursday, July 19, 12
Issues should include a jsfiddle/jsbin if tagged as JS Thursday,
July 19, 12
These 4 tests invalidate 37 of 42 pull requests and
63 of 88 issues Thursday, July 19, 12
Issues which I would have had to manually comment and
close Thursday, July 19, 12
But it doesn’t stop there Thursday, July 19, 12
You could write more complex assertions to check for duplicates
Thursday, July 19, 12
Or already resolved issues in your code Thursday, July 19,
12
You could even use it to run your actual test
suite Thursday, July 19, 12
Or use it to run a linter like jshint Thursday,
July 19, 12
Or simple things like tagging all issues with >10 +1’s
as “popular” Thursday, July 19, 12
Because this is just JS the potential is limitless Thursday,
July 19, 12
So just checkout http://git.io/haunt to find out how it works
Thursday, July 19, 12
thx and follow @fakeangus <3 Thursday, July 19, 12