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
570
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
620
Object Creation Pattern Performance
appltn
1
780
Other Decks in Technology
See All in Technology
組織内、組織間の資産保護に必要なアイデンティティ基盤と関連技術の最新動向
fujie
0
270
Rethinking Incident Response: Context-Aware AI in Practice
rrreeeyyy
2
940
[SRE NEXT 2025] すみずみまで暖かく照らすあなたの太陽でありたい
carnappopper
2
470
Digitization部 紹介資料
sansan33
PRO
1
4.5k
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
3
1.5k
LLM拡張解体新書/llm-extension-deep-dive
oracle4engineer
PRO
23
6.2k
サイバーエージェントグループのSRE10年の歩みとAI時代の生存戦略
shotatsuge
4
1k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
6.9k
アクセスピークを制するオートスケール再設計: 障害を乗り越えKEDAで実現したリソース管理の最適化
myamashii
1
660
20250708オープンエンドな探索と知識発見
sakana_ai
PRO
4
1k
shake-upを科学する
rsakata
7
1k
AIでテストプロセス自動化に挑戦する
sakatakazunori
1
530
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
750
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
990
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
How to Think Like a Performance Engineer
csswizardry
25
1.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
What's in a price? How to price your products and services
michaelherold
246
12k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Writing Fast Ruby
sferik
628
62k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
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