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
890
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
590
Other Decks in Technology
See All in Technology
不動産売買取引におけるAIの可能性とプロダクトでのAI活用
zabio3
0
260
AIを活用した柔軟かつ効率的な社内リソース検索への取り組み
cygames
0
110
2024年のナビゲーション・フォーカス対応:Composeでキーボード・ナビゲーションをサポートしよう
tahia910
0
110
より快適なエラーログ監視を目指して
leveragestech
4
1.4k
四国のあのイベントの〇〇システムを45日間で構築した話 / cloudohenro2024_tachibana
biatunky
0
330
ロボットアームを遠隔制御の話 & LLMをつかったIoTの話もしたい
soracom
PRO
1
380
OSTという文化を組織に根付かせてみた
sansantech
PRO
2
290
可視化により内部品質をあげるAIドキュメントリバース/20240910 Hiromitsu Akiba
shift_evolve
0
200
「家族アルバム みてね」における運用管理・ オブザーバビリティの全貌 / Overview of Operation Management and Observability in FamilyAlbum
isaoshimizu
4
160
「自動テストのプラクティスを効果的に学ぶためのカードゲーム」 ( #sqip2024 )
teyamagu
PRO
2
180
Segment Anything Model 2
tenten0727
3
670
持続可能なソフトウェア開発を支える『GitHub CI/CD実践ガイド』
tmknom
6
1.3k
Featured
See All Featured
It's Worth the Effort
3n
182
27k
A better future with KSS
kneath
235
17k
Six Lessons from altMBA
skipperchong
26
3.3k
Scaling GitHub
holman
458
140k
Producing Creativity
orderedlist
PRO
340
39k
Building an army of robots
kneath
302
42k
How to Ace a Technical Interview
jacobian
274
23k
The Cost Of JavaScript in 2023
addyosmani
42
5.6k
Being A Developer After 40
akosma
84
590k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
123
18k
Raft: Consensus for Rubyists
vanstee
135
6.5k
Embracing the Ebb and Flow
colly
83
4.4k
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