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
920
6
Share
OSCON - Haunt
Introduction of Haunt at oscon
fat
July 19, 2012
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
610
Other Decks in Technology
See All in Technology
Databricks 月刊サービスアップデートまとめ 2026年04月号
tyosi1212
0
130
Purview 勉強会報告 Microsoft Purview 入門しようとしてみた
masakichixo
1
440
全社統制を維持しながら現場負担をどう減らすか〜プラットフォームチームとセキュリティチームで進めたSecurity Hub活用によるAWS統制の見直し〜/secjaws-security-hub-custom-insights
mhrtech
1
560
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.7k
パーソルキャリア IT/テクノロジー職向け 会社紹介資料|Company Introduction Deck
techtekt
PRO
0
220
Every Conversation Counts
kawaguti
PRO
0
250
"スキルファースト"で作る、AIの自走環境
subroh0508
0
590
おいらのAWSアップデートの追い方〜Slack×AgentCore〜
yakumo
1
110
会社説明資料|株式会社ギークプラス ソフトウェア事業部
geekplus_tech
0
310
エムスリーテクノロジーズ株式会社 エンジニア向け紹介資料 / M3 Technologies Company Deck
m3_engineering
0
190
アプリブロック機能のつくりかたと、AIとHTMLの不合理な相性の良さについて
kumamotone
1
260
Gaussian Splattingの実用化 - 映像制作への展開
gpuunite_official
0
200
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
220
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
390
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
820
Mobile First: as difficult as doing things right
swwweet
225
10k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
520
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
510
Scaling GitHub
holman
464
140k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
180
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