Skip to content

Instantly share code, notes, and snippets.

View viniciusCamargo's full-sized avatar
🧙‍♂️

Vinicius de Sousa Camargo viniciusCamargo

🧙‍♂️
View GitHub Profile
@viniciusCamargo
viniciusCamargo / mongoMiddleware.js
Last active March 6, 2017 16:56
MongoDB middleware that exposes a DB object to Express.js req.param. https://github.com/floatdrop/express-mongo-db
const connection = require('mongodb').MongoClient.connect('mongoServer')
const mongoMiddleware = (req, res, next) => {
connection
.then(db => {
req['db'] = db.collection('documents')
next()
})
.catch(err => next(err))
}
@viniciusCamargo
viniciusCamargo / mongoBatchSave.js
Created April 12, 2017 20:20
Save an array of objects to MongoDB
const fs = require('fs')
const mongoClient = require('mongodb').MongoClient
const databaseInfo = {
host: 'host',
port: 'port',
user: 'username',
pass: 'password',
db: 'database',
collection: 'collection',
@viniciusCamargo
viniciusCamargo / conn.js
Last active April 15, 2017 20:52
Simple promise wrapper around the MongoDB native driver for Node.js
const conn = require('./db')
let log = console.log.bind(this)
log.error = console.error.bind(this)
conn.then(db => {
db.collection('COLLECTION').find({}).toArray()
.then(data => log(data))
.catch(err => log.error(err))
@viniciusCamargo
viniciusCamargo / transform-sample.js
Last active July 13, 2017 15:02
Node Transform Stream sample
// Source: https://gist.github.com/joyrexus/10026630
const { Readable, Transform } = require('stream')
const myTransform = new Transform({
transform(chunk, encoding, callback) {
const str = chunk.toString().toUpperCase()
this.push(str)
callback()
@viniciusCamargo
viniciusCamargo / lorem.txt
Last active June 29, 2017 02:42
Node.js 8: util.promisify()
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec eu faucibus arcu, id euismod lorem. Vivamus tincidunt enim sed neque blandit sodales eget sit amet ex. Nunc aliquam fermentum maximus. Vestibulum placerat dignissim mauris, id consectetur tortor ultricies sed. Fusce ultricies viverra lectus a suscipit. Vivamus sed auctor sapien, nec dignissim ligula. Vivamus laoreet risus sed feugiat efficitur. Donec tempor lacus vel congue accumsan. Nullam pretium tellus eget neque volutpat luctus. Nam facilisis tincidunt libero.
Duis vitae velit posuere arcu finibus maximus congue quis enim. Ut fringilla maximus facilisis. Phasellus eu nibh vitae turpis pretium aliquam. Fusce sed dui sed purus elementum accumsan. Proin ante est, feugiat non blandit sed, aliquet ut odio. Donec condimentum turpis a lacus varius, nec ultrices lorem ullamcorper. Suspendisse venenatis justo id tempor laoreet. Aenean diam ante, sodales eget sem sed, porttitor ultricies mauris. Cras ultrices congue diam sed faucibus.
Nullam consequat
# tweaked from dstufft
# function prompt_char {
# git branch >/dev/null 2>/dev/null && echo '±' && return
# hg root >/dev/null 2>/dev/null && echo 'Hg' && return
# echo '○'
# }
# function virtualenv_info {
# [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
@viniciusCamargo
viniciusCamargo / .zshrc
Last active August 8, 2017 14:06
my .zshrc file
# set nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# a small helper to make a directory and enter into it
# https://unix.stackexchange.com/a/125386
mkcdir () {
mkdir -p -- "$1" && cd -P -- "$1"
}
@viniciusCamargo
viniciusCamargo / README.md
Last active July 8, 2017 20:50
How to install Golang
  • Download the binaries
  • Extract them tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
  • Set Go variables to ~/.profile:
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
  • Create the directory for Go path mkdir ~/go
  • For a new project mkdir ~/go/src/hello-world
@viniciusCamargo
viniciusCamargo / mta.js
Created August 2, 2017 13:44
MTA GTFS Real Time Proto Decoder
const Proto = require('protobufjs');
const Req = require('request');
var GtfsRealtimeBindings = require('gtfs-realtime-bindings');
const MTA_API_ENDPOINT = "http://datamine.mta.info/mta_esi.php?key=148133e77dd93f66b37d6c5054684401&feed_id=1"
Req({
method: 'GET',
url: MTA_API_ENDPOINT,
encoding: null
@viniciusCamargo
viniciusCamargo / server.js
Created August 2, 2017 22:56
realtime maps
const log = console.log.bind(this)
const has = require('lodash/has')
const request = require('request')
const { decode } = require('gtfs-realtime-bindings').FeedMessage
const requestOptions = {
method: 'GET',
url: 'https://api.transport.nsw.gov.au/v1/gtfs/vehiclepos/buses',
encoding: null,
headers: { Authorization: 'apikey 63rwMFYCmptgwCPXSsmWSMqDeT1MQDNbdY6r' }