Skip to content

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
...
  • 4 commits
  • 10 files changed
  • 0 commit comments
  • 1 contributor
Showing with 135 additions and 344 deletions.
  1. +16 −12 Makefile
  2. +10 −7 app.coffee
  3. +2 −2 assets/css/slides.styl
  4. BIN assets/img/cli.png
  5. BIN assets/img/dotnetclr.jpg
  6. +2 −1 assets/js/Slides.coffee
  7. +8 −0 shutdown.sh
  8. +9 −0 startup.sh
  9. +1 −1 views/layout.jade
  10. +87 −321 views/slides.jade
View
28 Makefile
@@ -1,31 +1,35 @@
.PHONY: deploy watch clean touch
-project=node-slides
-path=/var/www/node-slides
+project=vbnet-gc
+path=/usr/src/${project}
instance=\033[36;01m${project}\033[m
all: watch
-deploy: server = sawyer@172.25.20.120
+deploy: server = root@vps.kastlersteinhauser.com
deploy:
@coffee -c app.coffee
+ @echo -e " ${instance} | stopping app on ${server}"
+ @ssh ${server} "/bin/bash ${path}/shutdown.sh"
+ @echo -e " ${instance} | stopped app on ${server}"
+ @echo -e " ${instance} | deploying app on ${server}"
@rsync -az --exclude=".git" --exclude="node_modules/*/build" --delete --delete-excluded * ${server}:${path}
- @echo -e " ${instance} | copied files to ${server}"
+ @echo -e " ${instance} | deployed app to ${server}"
@ssh ${server} "cd ${path} && npm rebuild"
@echo -e " ${instance} | built npm packages on ${server}"
- @ssh ${server} "sudo cp -f ${path}/upstart.conf /etc/init/${project}.conf"
- @echo -e " ${instance} | setting up upstart on ${server}"
- @ssh ${server} "sudo restart ${project}"
- @echo -e " ${instance} | restarting app on ${server}"
+ @echo -e " ${instance} | starting app on ${server}"
+# @ssh ${server} "/usr/bin/screen -dmS vbnet-gc /bin/bash /usr/src/vbnet-gc/startup.sh"
+ @ssh -f -n ${server} "cd ${path}; /bin/bash startup.sh;"
+ @echo -e " ${instance} | started app on ${server}"
@make -s clean
@sleep 1
@make -s touch
-touch: server = sawyer@172.25.20.120
+touch: server = root@vps.kastlersteinhauser.com
touch:
- @wget -r -l 1 -q http://slides.wavded.com/
+ @wget -r -l 1 -q http://vps.kastlersteinhauser.com:8501/
@echo -e " ${instance} | built main assets on ${server}"
- @wget -r -l 1 -q http://slides.wavded.com/clicker
+ @wget -r -l 1 -q http://vps.kastlersteinhauser.com:8501/clicker
@echo -e " ${instance} | built clicker assets on ${server}"
- @rm -rf slides.wavded.com
+ @rm -rf vps.kastlersteinhauser.com*
watch:
@if ! which supervisor > /dev/null; then echo "supervisor required, installing..."; sudo npm install -g supervisor; fi
View
17 app.coffee
@@ -1,22 +1,20 @@
+fs = require('fs')
express = require("express")
global.app = express.createServer()
io = require('socket.io').listen(app)
assets = require('connect-assets')
-ip = '192.168.236.109'
-port = '3000'
-
-
-port = 3000
+ip = '192.168.1.110'
+port = '3000'
app.set 'views', __dirname + '/views'
app.configure 'development', -> app.use assets()
-app.configure 'production', -> port = 8501; app.use assets( build: true, buildDir: false, src: __dirname + '/assets', detectChanges: false )
+app.configure 'production', -> ip = 'vps.kaslersteinhauser.com'; port = 8501; app.use assets( build: true, buildDir: false, src: __dirname + '/assets', detectChanges: false )
app.use express.static(__dirname + '/assets')
-app.get '/', (req,res) -> res.render 'slides.jade'
+app.get '/', (req,res) -> res.render('slides.jade', {ip: ip, port: port})
app.get '/clicker', (req,res) -> res.render 'clicker.jade'
slides_io = io.of("/slides")
@@ -39,3 +37,8 @@ slides_io.on "connection", (socket) ->
app.listen(port)
console.log("Listening on http://"+ip+":"+port+"/")
+
+pidFile = fs.createWriteStream('/tmp/vbnet-gc.pid')
+pidFile.once 'open', (fd) ->
+ pidFile.write(process.pid)
+
View
4 assets/css/slides.styl
@@ -53,8 +53,8 @@ pre
vertical-align: middle
padding: 3em
opacity: 0
- transition: all .4s
- transform: scaleY(10)
+ transition: all .4s ease-in-out
+ transform: translate(0, -100%)
z-index: 1
.active
View
BIN assets/img/cli.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN assets/img/dotnetclr.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
3 assets/js/Slides.coffee
@@ -27,7 +27,8 @@ SlideRouter = Backbone.Router.extend
"32": -> @navigate "/slide/#{ if @slideId < @slides.size() then @slideId + 1 else @slides.size() }", true
allowEmit: true
- keyboardEnabled: false
+ # TODO: This should be changed when presenting!!!
+ keyboardEnabled: true
initialize: (options = {}) ->
{ @slides, @socket } = options
View
8 shutdown.sh
@@ -0,0 +1,8 @@
+pid=$(cat /tmp/vbnet-gc.pid)
+
+
+if kill -0 $pid > /dev/null 2>&1; then
+ kill $pid
+fi
+
+exit 0
View
9 startup.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+log=/var/log/vbnet-gc.log
+export NODE_ENV=${1:-"production"}
+
+node app.js $1 2>&1 >> $log &
+
+exit 0
+
View
2 views/layout.jade
@@ -1,6 +1,6 @@
html
head
- title VB .NET: CLR Garbage Collection
+ title VB.NET Learn & Share: CLR Garbage Collection
base(target='_blank')
meta(content='width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;', name='viewport')
meta(name='apple-mobile-web-app-capable',content='yes')
View
408 views/slides.jade
@@ -4,328 +4,94 @@
#connect Connecting to Server...
#slides
- .slide
- h1 Welcome to Zabbix
- .center
- img.framed(src='/img/zabbix.png')
- p
- b Who:
- a(href="http://masteinhauser.github.com") Myles Steinhauser
- br
- b Twitter:
- a(href="http://twitter.com/masteinhauser") @masteinhauser
- br
- br
-
- p Visit
- b http://#{ip}:#{app.address().port}/
- | in your browser
-
- .speaker
- ul
- li Hi and welcome
-
- .slide
- h1 Zabbix Architecture
- .center
- img.framed(src="/img/zabbix_arch.png")
-
- .speaker
- ul
- li Flow of items
- li Triggers
- li Actions
-
- .slide
- h1 Zabbix Architecture
- p A bit like LEGO
- ul
- li Zabbix has Templates
- li Templates have hosts (Many <-> Many)
- li Templates have Items so Hosts have Items
- li Items have Triggers
- li Triggers fire off Actions
- li Actions turn humans or scripts into action.
-
- .speaker
- ul
- li Template --> Object
- li Hosts --> Instance
- li Items --> Attributes
- li Triggers --> Methods with tests
- li Actions --> Message calls
-
- .slide
- h1 Zabbix Architecture
- h3 Items
- ul
- li Identified by a 'Key'
- li Numeric or text
- li Have timer attributes
- li Can be grouped in Applications
-
- .speaker
+ .slide
+ h1 VB.NET Learn & Share:<br/>CLR Garbage Collection
+ .center
+ img(src='/img/ms-net.png', width='25%'. height='25%')
+ p
+ b Who:
+ a(href="http://masteinhauser.github.com") Myles A. K. Steinhauser
+ br
+ b Twitter:
+ a(href="http://twitter.com/masteinhauser") @masteinhauser
+ br
+ br
+
+ p Visit
+ b http://#{ip}:#{app.address().port}/
+ | in your browser
+
+ .speaker
+ ul
+ li Hi and Welcome!
+
+ .slide
+ h1 .NET Architecture
+ .center
+ img.framed(src="/img/dotnetclr.jpg")
+
+ .speaker
+ ul
+ li What is .NET
+ li Intermediate Language
+ li Many Languages to One Runtime
+ li Most work already done
+
+ .slide
+ h1 CLR Architecture
+ .center
+ img.framed(src="/img/cli.png", width="468", height="540")
+
+ .speaker
+ ul
+ li Programming Language
+ li Intermediate Language
+ li CLR(Garbage Collectors)
+
+ .slide
+ h1
+ p A bit like LEGO
ul
- li Application bug, only 1 app per host per template.
+ li Zabbix has Templates
- .slide
- h1 Zabbix Architecture
- h3 Triggers
- ul
- li Use logic to interpret item values
- li Check against min, max, avg, last value.
- li RegEx and string matching
- li Date, times, intervals
- li Can be complex but extremely powerful(like Zabbix)
- li Outcome is always numerical
+ .speaker
+ ul
+ li Template --> Object
- .speaker
- p Show example on VPN'd live
-
- .slide
- h1 Zabbix Architecture
- h3 Events
- ul
- li Trigger state changed
- li Logged for future reference and Audit
- li Can be ACKed for further tracking
-
- .slide
- h1 Zabbix Architecture
- h3 Actions
- ul
- li Work on basis of conditions
- li Send out notifications
+ .slide
+ h1 Questions + Discussion
+ p Technologies used in this presentation:
ul
- li Can send on intervals if problem still exits
- li Can send waiting for ACK
- li Run scripts on hosts or feed info to other system
- p This is the basis of alerting
-
- .speaker
- ul
- li What conditions?
- li Repeats?
- li Acknowledge?
- li Scripts?
-
- .slide
- h1 Getting Alerts
- ul
- li iPhone
- ul
- li Prowl for instant Push
- li Mozaby
- li ZBX Mobile
- li Android
- ul
- li ZAX Zabbix Systems Monitoring
- li Many many others
- li Email
- li SMS
- li Jabber
- li Airraid Sirens (external scripts)
-
- .speaker
- ul
- li Email
- li iPhone: Prowl
- li Android: ZAX
- li Airraid
-
- .slide
- h1 Types of Systems to Monitor
-
- p Hardware
- ul
- li Servers
- li Routers / Switches
- li Environment Controls
- ul
- li Server Room Temperature
- li Bathroom doors
- li Other
- ul
- li
- a(href="http://zabbix.org/zabbix/history.php?action=showgraph&itemid=649&period=432000") Issues resolved per Day
- li
- a(href="http://zabbix.org/zabbix/history.php?action=showgraph&itemid=647&period=432000") Bugs
- li
- a(href="http://zabbix.org/zabbix/history.php?action=showgraph&itemid=623&perion=432000") Users in #zabbix
-
- p Software
- ul
- li Application Servers
- li Database
- li Monitoring Systems
- li Custom metrics
-
- .speaker
- ul
- li servers
- li bathroom
- li commits
- li bugs
-
- .slide
- h1 Monitoring Hardware
- ul
- li
- a(href="http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol") SNMP
- ul
- li On all *nix systems
- li Easy to config
- li Not very extendable
- li
- a(href="http://en.wikipedia.org/wiki/Zabbix") Zabbix Agent
- ul
- li Very Extendable
- li Active / Passive checks
- ul
- li Linux
- li Windows
- li MacOS
- li AIX, HP-UX, Solaris
-
- p Well tested custom SNMP scripts on my
- a(href="htp://github.com/masteinhauser/zabbix") GitHub
- | for Zabbix 2.0 (In beta @ v1.9.7)
-
- .speaker
- ul
- li SNMP ease
- li ZA config and custom metrics
- li SNMP scripts
-
- .slide
- h1 Monitoring Hardware
- p Other methods
- ul
- li IPMI
- li Simple Checks(ping, tcp connections, etc)
- li Web (Actively look at and verify webpage content)
- li External Scripts (We use for FTP server verification)
- li Zabbix Trapper scripts (Apache, database, custom daemons)
- li Telnet/SSH
- li Many "plugins"
-
- .slide
- h1 Monitoring Software
-
- p Application Servers
- ul
- li Java/Tomcat through JMX
- li Apache/nginx through python
- li Anything with zabbix_sender or frontend API calls
-
- p Database with
- a(href="http://www.smartmarmot.com/product/dbforbix/") DBforBix
- ul
- li Oracle
- li MySQL
- li PostgreSQL
- li DB2
- li MS SQL Server
- .speaker
- ul
- li app server monitor
- li db server monitor
-
- .slide
- h1 Data Visualization
- ul
- li Graphs
- li Maps
- li Screens / Slides
- li Reports
-
- .speaker
- ul
- li graphs
- li maps
- li screens
- li reports/SLAs
-
- .slide
- h1 Advanced Features
- ul
- li Web Monitoring
- li Auto Discovery and Registration
- li Maintenance Periods
- li XML Import / Export
- li JSON API
- li
- a(href="http://www.zabbix.com/documentation/1.8/manual/processes/zabbix_sender") Zabbix Sender
- li
- a(href="http://www.zabbix.com/wiki/doc/tech/proto/zabbixsenderprotocol") Zabbix Sender Protocol
- p New in 2.0
- ul
- li Low Level Discovery
- li Many other advanced features
-
- .speaker
- ul
- li Explain low-level SNMP
- li Explain Zabbix Sender
- li Explain Java sender
-
- .slide
- h1 Demo Time
- p Demo
- ul
- li Let's take down a server!
- | Watch and listen for the notifications.
- li Explore the Zabbix interface
-
- .speaker
- ul
- li VPN in and down wwt-web8
-
- .slide
- h1 More Info
- ul
- li
- a(href="http://blog.zabbix.com/") Official Blog
- li
- a(href="http://www.zabbix.com/training_testimonials.php") Testimonials
- li
- a(href="http://amzn.com/dp/184719768X") Zabbix 1.8 Network Monitoring Book
-
-
- .slide
- h1 Questions + Discussion
- p Technologies used in this presentation:
- ul
- li Server Side
- ul
- li
- a(href="http://nodejs.org") NodeJS
- li
- a(href="http://expressjs.com") Express
- li
- a(href="http://socket.io") Socket.io
- li
- a(href="http://jade-lang.com") Jade
- li
- a(href="http://learnboost.github.com/stylus") Stylus
- li
- a(href="http://github.com/TrevorBurnham/connect-assets") Connect Assets / Snockets
- br
- li Client Side
- ul
- li
- a(href="http://documentcloud.github.com/backbone") jQuery
- li
- a(href="http://documentcloud.github.com/backbone") Backbone
- p Thanks for coming!
-
-img.logo(src='/img/adc.png')
-#keyboard-enable
-
-#footer
- a(href="http://github.com/masteinhauser/zabbix-slides", target='_blank')
- | http://github.com/masteinhauser/zabbix-slides
- .upper
- | Myles Steinhauser
- a(href="http://twitter.com/masteinhauser") @masteinhauser
- | &nbsp;| http://#{ip}:#{port}/
+ li Server Side
+ ul
+ li
+ a(href="http://nodejs.org") NodeJS
+ li
+ a(href="http://expressjs.com") Express
+ li
+ a(href="http://socket.io") Socket.io
+ li
+ a(href="http://jade-lang.com") Jade
+ li
+ a(href="http://learnboost.github.com/stylus") Stylus
+ li
+ a(href="http://github.com/TrevorBurnham/connect-assets") Connect Assets / Snockets
+ br
+ li Client Side
+ ul
+ li
+ a(href="http://documentcloud.github.com/backbone") jQuery
+ li
+ a(href="http://documentcloud.github.com/backbone") Backbone
+ p Thanks for watching/listening!
+
+ img.logo(src='/img/adc.png')
+ #keyboard-enable
+
+ #footer
+ a(href="http://github.com/masteinhauser/vbnet-gc", target='_blank')
+ | http://github.com/masteinhauser/vbnet-gc
+ .upper
+ | Myles A. K. Steinhauser
+ a(href="http://twitter.com/masteinhauser") @masteinhauser
+ | &nbsp;| http://#{ip}:#{port}/

No commit comments for this range

Something went wrong with that request. Please try again.