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
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
270
LINEヤフーのフロントエンド組織・体制の紹介【24年12月】
lycorp_recruit_jp
0
530
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
190
kargoの魅力について伝える
magisystem0408
0
210
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
290
ガバメントクラウドのセキュリティ対策事例について
fujisawaryohei
0
560
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
320
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
360
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
事業貢献を考えるための技術改善の目標設計と改善実績 / Targeted design of technical improvements to consider business contribution and improvement performance
oomatomo
0
100
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
170
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
200
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Agile that works and the tools we love
rasmusluckow
328
21k
Why Our Code Smells
bkeepers
PRO
335
57k
Bash Introduction
62gerente
608
210k
Site-Speed That Sticks
csswizardry
2
190
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
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