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
Introducing Mint Source
Search
Andy Appleton
November 24, 2011
Technology
1
400
Introducing Mint Source
Talk given at the lnug meetup on 23rd November 2011
Andy Appleton
November 24, 2011
Tweet
Share
More Decks by Andy Appleton
See All by Andy Appleton
Done is better than perfect
appltn
0
580
Rage against the state machine
appltn
1
480
Modular UI with (Angular || Ember)
appltn
0
120
Building web apps with Express
appltn
4
490
The Modern JavaScript Application
appltn
5
630
Object Creation Pattern Performance
appltn
1
790
Other Decks in Technology
See All in Technology
2025年になってもまだMySQLが好き
yoku0825
8
4.7k
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
520
KotlinConf 2025_イベントレポート
sony
1
130
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
370
roppongirb_20250911
igaiga
1
220
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.4k
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
180
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
370
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
1k
ChatGPTとPlantUML/Mermaidによるソフトウェア設計
gowhich501
1
130
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
12
4.8k
ハードウェアとソフトウェアをつなぐ全てを内製している企業の E2E テストの作り方 / How to create E2E tests for a company that builds everything connecting hardware and software in-house
bitkey
PRO
1
130
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.8k
Unsuck your backbone
ammeep
671
58k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Docker and Python
trallard
45
3.6k
Making Projects Easy
brettharned
117
6.4k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Code Review Best Practice
trishagee
70
19k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Rails Girls Zürich Keynote
gr2m
95
14k
Transcript
MINT SOURCE
None
Andy Appleton @appltn http://mintdigital.com
What, why?
Node.js - Redis - Heroku CoffeeScript - Socket.IO
Simple Heroku deploy $ git clone
[email protected]
:mintdigital/mint-source.git $ heroku create
appname --stack cedar $ git push heroku master $ heroku ps:scale web=1 $ heroku addons:add redistogo:nano $ heroku config:add NODE_ENV=production
Optional HTTP Auth $ heroku config:add AUTH_ENABLED=true $ heroku config:add
AUTH_USER=chunky $ heroku config:add AUTH_PASS=bacon
http://github.com/user/project/admin/hooks
{ "before": "5aef35982fb2d34e9d9d4502f6ede1072793222d", "repository": { "url": "http://github.com/mint-digital/mint-source", "name": "mintdigital", "description":
"A simple Node.js status board showing github commits and more.", "watchers": 5, "forks": 2, "private": 1, "owner": { "name": "mintdigital" } }, "commits": [ { "id": "41a212ee83ca127e3c8cf465891ab7216a705f59", "url": "http://github.com/mintdigital/mint-source/commit/41a212ee83ca127e3891ab7216a705f59", "author": { "email": "
[email protected]
", "name": "Andrew Appleton" }, "message": "Devs love bacon", "timestamp": "2011-11-15T14:57:17-08:00", "added": ["filepath.rb"] POST http://appname.herokuapp.com/github_prh
None
Jenkins CI http://jenkins-ci.org/
Notification Plugin (post build hooks for Jenkins) https://wiki.jenkins-ci.org/display/JENKINS/Notification+Plugin
$ heroku config:add JENKINS_ENABLED=true http://your-ci-box/job/project-name/configure
{ "name":"bacon", "url":"http://devslovebacon.com", "build":{ "number":1, "phase":"FINISHED", "status":"FAILURE", "url":"job/project/5", "fullUrl":"http://your-ci-box/job/project/5" }
} POST http://appname.herokuapp.com/jenkins_pbh
None
no HTTP auth support, so Jenkins box IP whitelisting $
heroku config:add JENKINS_IP=60.70.80.90
Discretion $ redis-cli > lpush Discretions "{\"orig\":\"secret\", \"subs\":\"public\"}"
None
Last.fm http://www.last.fm/api
POST http://appname.herokuapp.com/github_prh $ heroku config:add LASTFM_ENABLED=true $ heroku config:add LASTFM_KEY=12345...
$ heroku config:add LASTFM_USER=mintdigital Last.fm API credentials
Polling on the server, send data to clients via Socket.IO
What’s next?
app.get('/javascripts/:resource.js', (req, res) -> # Compile and serve client side
CoffeeScript on the fly filePath = "./public/javascripts/#{req.params.resource}.coffee" fs.readFile(filePath, 'utf-8', (err, data) -> res.writeHead(200, {'Content-Type': 'application/javascript'}) res.write(coffee.compile(data)) res.end() ) ) CS > JS Caching
Server Sent Events (Possibly)
More Services Tweets, Foursquare checkins Generic notification endpoint
Available now on Github https://github.com/mintdigital/mint-source
http://devslovebacon.com