diff --git a/website/layouts/index.ace b/website/layouts/index.ace index 129cc94..baf35f2 100644 --- a/website/layouts/index.ace +++ b/website/layouts/index.ace @@ -38,28 +38,32 @@ html lang={{.Site.LanguageCode}} .landing-feature-1 .container style="text-align: center;" .row - .row - .col-sm-4 - h2 Modern Cowbell - p Design a cheap, affordable cowbell accessible by feature mobile with BlueTooth. Find a solution to keep track of family cows (4) to reduce constant monitoring need. - p Constraints: No internet, WiFi connection - a href=https://youtu.be/W0D2qw_E91k CowBell Video submission (rural Nepal) - p - a href=docs/project/cowbell CowBell Written submission (rural Nepal) - .col-sm-4 - h2 Lessons - h4 Basic Raspberry Pi Lessons + .col-sm-12 + h2 Basic Raspberry Pi Lessons + .row + .col-sm-6 p a href=https://youtu.be/uuDGAXA_EqM?list=PLdTRZ3sWnDGEAme0TxOM187wMTqDlSzVK Setting up Raspberry Pi (5 mins) p a href=https://youtu.be/7a8TZhdM4OQ?list=PLdTRZ3sWnDGEAme0TxOM187wMTqDlSzVK Installing Raspbian on SD card (4 mins) p a href=https://youtu.be/9FVr3ryIwaw?list=PLdTRZ3sWnDGEAme0TxOM187wMTqDlSzVK Basic Linux commands for Raspberry Pi Part I (7 mins) - p + .col-sm-6 a href=https://youtu.be/zZ9WQQ5O0FQ?list=PLdTRZ3sWnDGEAme0TxOM187wMTqDlSzVK Using SSH to connect to Raspberry Pi remotely (4 mins) p a href=https://youtu.be/4rVTPHH4D6g?list=PLdTRZ3sWnDGEAme0TxOM187wMTqDlSzVK Accessing Pi's Graphical User Interface using tightvncserver (6 mins) p + .row + .col-sm-4 + h2 Modern Cowbell + p Design a cheap, affordable cowbell accessible by feature mobile with BlueTooth. Find a solution to keep track of family cows to reduce constant monitoring need. + p Constraints: No internet, WiFi connection + a href=https://youtu.be/W0D2qw_E91k CowBell Video submission (rural Nepal) + p + a href=docs/project/cowbell CowBell Written submission (rural Nepal) + .col-sm-4 + h2 Lessons + .col-sm-4 h2 Proposed Solutions a href=docs/solution/cowbell_sol1 Written Solution (proposed by Pravin, rural Nepal) @@ -114,6 +118,10 @@ html lang={{.Site.LanguageCode}} .col-sm-4 h2 Lessons a href=docs/contributors/supporters NEEDED Corn Roasting - Raspberry Pi Lessons + p + a href=docs/contributors/supporters NEEDED Solution Writeup + p + a href=docs/contributors/supporters NEEDED Lesson Video .col-sm-4 h2 Proposed Solutions a href=docs/contributors/supporters NEEDED Solution Writeup @@ -128,9 +136,14 @@ html lang={{.Site.LanguageCode}} p Constraints: Raspberry Pi, GPS technology, Google Maps, Open Street Maps a href=https://youtu.be/ETZiRrTd3qE Bus Problem - YouTube (Nepal) p + a href=https://medium.com/@pravenj/inform-the-puzzled-call-for-a-public-vehicle-information-system-de582fd09a44#.dqx1kckxs Inform the puzzled — call for a public vehicle information system - Medium .col-sm-4 h2 Lessons a href=docs/contributors/supporters NEEDED Bus Problem - Raspberry Pi Lessons, Using Google Map and Open Street Map APIs + p + a href=docs/contributors/supporters NEEDED Solution Writeup + p + a href=docs/contributors/supporters NEEDED Lesson Video .col-sm-4 h2 Proposed Solutions a href=docs/contributors/supporters NEEDED Solution Writeup @@ -141,18 +154,78 @@ html lang={{.Site.LanguageCode}} .row .col-sm-4 h2 Help Us Express - p Need a platform that can help young teenage girls in developing countries express themselves openly. Solution needs to be targeted to social settings where girls have difficulty having conversations about thier physiological health, mental and emotional wellbeing, and different social issues that they face. + p Need a platform that can help young teenage girls in developing countries to express themselves openly. Solution needs to be targeted to social settings where girls have difficulty having conversations about thier physiological health, mental and emotional wellbeing, and different social issues that they face. p Constraints: Specially designed videos, Apps that can run on cheap smartphones, Low bandwith internet a href=https://youtu.be/TgE8GXSzDZM Help Us Express - YouTube (Nepal) p .col-sm-4 h2 Lessons - a href=docs/contributors/supporters NEEDED Help Us Express - Andorid App lessons + a href=docs/contributors/supporters NEEDED Help Us Express - Andorid App lessons + p + a href=docs/contributors/supporters NEEDED Solution Writeup + p + a href=docs/contributors/supporters NEEDED Lesson Video + .col-sm-4 + h2 Proposed Solutions + a href=docs/contributors/supporters NEEDED Solution Writeup + p + a href=docs/contributors/supporters NEEDED Solution Video + .landing-feature-1 + .container style="text-align: center;" + .row + .col-sm-4 + h2 Locate missing people during disasters + p Can we use technology to locate missing people in disasters like flashfloods, landslides, and earthquakes? + p Constraints: Mobile phones, Raspberry Pi, bluetooth, wifi, signals + a href=https://www.youtube.com/watch?v=CFo-GDQFLGo Find missing people during natural disasters - Youtube + .col-sm-4 + h2 Lessons + a href=docs/contributors/supporters NEEDED Lesson writeup + p + a href=docs/contributors/supporters NEEDED Lesson Video + .col-sm-4 + h2 Proposed Solutions + a href=docs/contributors/supporters NEEDED Solution Writeup + p + a href=docs/contributors/supporters NEEDED Solution Video + .landing-feature-1 + .container style="text-align: center;" + .row + .col-sm-4 + h2 Doughnut making problem + p Need a simple and affordable technology to automate the task of making doughnuts - from preparing the dough to frying. Is it possibe to find a hack for this? + p Constraints: Raspberry Pi, sensors + a href=https://www.youtube.com/watch?v=sGVZT1-UMsA Doughnut making problem - YouTube + .col-sm-4 + h2 Lessons + a href=docs/contributors/supporters NEEDED Lesson writeup + p + a href=docs/contributors/supporters NEEDED Lesson Video + .col-sm-4 + h2 Proposed Solutions + a href=docs/contributors/supporters NEEDED Solution Writeup + p + a href=docs/contributors/supporters NEEDED Solution Video + .landing-feature-1 + .container style="text-align: center;" + .row + .col-sm-4 + h2 Simplify Communication, Create Understanding + p Speech and hearing impared students in Nepal ask "Can a robot or some technological device be created, that we can afford, that will allow us to communicate better?” + p Constraints: Raspberry Pi, sensors, mobile phones + a href=https://www.youtube.com/watch?v=uYZhPmBO_08&feature=youtu.be Simplify communication for speech and hearing impared people - YouTube + p + a href=https://medium.com/@pravenj/simplify-communication-create-understanding-9ae5d5fc83e1#.l22ctwxem Simplify communication, create understanding - Medium + .col-sm-4 + h2 Lessons + a href=docs/contributors/supporters NEEDED Lesson writeup + p + a href=docs/contributors/supporters NEEDED Lesson Video .col-sm-4 h2 Proposed Solutions a href=docs/contributors/supporters NEEDED Solution Writeup p - a href=docs/contributors/supporters NEEDED Solution Video + a href=docs/contributors/supporters NEEDED Solution Video .hero-bar .container .row diff --git a/website/node_modules/extend/.jscs.json b/website/node_modules/extend/.jscs.json index 496777b..7e84b28 100644 --- a/website/node_modules/extend/.jscs.json +++ b/website/node_modules/extend/.jscs.json @@ -1,6 +1,12 @@ { "additionalRules": [], + "requireSemicolons": true, + + "disallowMultipleSpaces": true, + + "disallowIdentifierNames": [], + "requireCurlyBraces": ["if", "else", "for", "while", "do", "try", "catch"], "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"], @@ -63,6 +69,36 @@ "validateQuoteMarks": { "escape": true, "mark": "'" - } + }, + + "disallowOperatorBeforeLineBreak": [], + + "requireSpaceBeforeKeywords": [ + "do", + "for", + "if", + "else", + "switch", + "case", + "try", + "catch", + "finally", + "while", + "with", + "return" + ], + + "validateAlignedFunctionParameters": { + "lineBreakAfterOpeningBraces": true, + "lineBreakBeforeClosingBraces": true + }, + + "requirePaddingNewLinesBeforeExport": true, + + "validateNewlineAfterArrayElements": { + "maximum": 6 + }, + + "requirePaddingNewLinesAfterUseStrict": true } diff --git a/website/node_modules/extend/.travis.yml b/website/node_modules/extend/.travis.yml index e6f69e8..ebef644 100644 --- a/website/node_modules/extend/.travis.yml +++ b/website/node_modules/extend/.travis.yml @@ -1,5 +1,9 @@ language: node_js node_js: + - "iojs-v2.3" + - "iojs-v2.2" + - "iojs-v2.1" + - "iojs-v2.0" - "iojs-v1.8" - "iojs-v1.7" - "iojs-v1.6" @@ -17,10 +21,15 @@ node_js: - "0.6" - "0.4" before_install: - - '[ "${TRAVIS_NODE_VERSION}" == "0.6" ] || npm install -g npm@~1.4.6' + - '[ "${TRAVIS_NODE_VERSION}" = "0.6" ] || npm install -g npm@1.4.28 && npm install -g npm' +sudo: false matrix: fast_finish: true allow_failures: + - node_js: "iojs-v2.2" + - node_js: "iojs-v2.1" + - node_js: "iojs-v2.0" + - node_js: "iojs-v1.7" - node_js: "iojs-v1.6" - node_js: "iojs-v1.5" - node_js: "iojs-v1.4" @@ -33,4 +42,3 @@ matrix: - node_js: "0.8" - node_js: "0.6" - node_js: "0.4" -sudo: false diff --git a/website/node_modules/extend/CHANGELOG.md b/website/node_modules/extend/CHANGELOG.md index 6f7b56d..ee0cfd6 100644 --- a/website/node_modules/extend/CHANGELOG.md +++ b/website/node_modules/extend/CHANGELOG.md @@ -1,3 +1,11 @@ +3.0.0 / 2015-07-01 +================== + * [Possible breaking change] Use global "strict" directive (#32) + * [Tests] `int` is an ES3 reserved word + * [Tests] Test up to `io.js` `v2.3` + * [Tests] Add `npm run eslint` + * [Dev Deps] Update `covert`, `jscs` + 2.0.1 / 2015-04-25 ================== * Use an inline `isArray` check, for ES3 browsers. (#27) diff --git a/website/node_modules/extend/component.json b/website/node_modules/extend/component.json index bfb4518..1500a2f 100644 --- a/website/node_modules/extend/component.json +++ b/website/node_modules/extend/component.json @@ -1,7 +1,7 @@ { "name": "extend", "author": "Stefan Thomas (http://www.justmoon.net)", - "version": "2.0.1", + "version": "3.0.0", "description": "Port of jQuery.extend for node.js and the browser.", "scripts": [ "index.js" diff --git a/website/node_modules/extend/index.js b/website/node_modules/extend/index.js index 57a8bcc..f5ec75d 100644 --- a/website/node_modules/extend/index.js +++ b/website/node_modules/extend/index.js @@ -1,6 +1,7 @@ +'use strict'; + var hasOwn = Object.prototype.hasOwnProperty; var toStr = Object.prototype.toString; -var undefined; var isArray = function isArray(arr) { if (typeof Array.isArray === 'function') { @@ -11,28 +12,26 @@ var isArray = function isArray(arr) { }; var isPlainObject = function isPlainObject(obj) { - 'use strict'; if (!obj || toStr.call(obj) !== '[object Object]') { return false; } - var has_own_constructor = hasOwn.call(obj, 'constructor'); - var has_is_property_of_method = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); + var hasOwnConstructor = hasOwn.call(obj, 'constructor'); + var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); // Not own constructor property must be Object - if (obj.constructor && !has_own_constructor && !has_is_property_of_method) { + if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { return false; } // Own properties are enumerated firstly, so to speed up, // if last one is own, then all properties are own. var key; - for (key in obj) {} + for (key in obj) {/**/} - return key === undefined || hasOwn.call(obj, key); + return typeof key === 'undefined' || hasOwn.call(obj, key); }; module.exports = function extend() { - 'use strict'; var options, name, src, copy, copyIsArray, clone, target = arguments[0], i = 1, @@ -59,25 +58,23 @@ module.exports = function extend() { copy = options[name]; // Prevent never-ending loop - if (target === copy) { - continue; - } + if (target !== copy) { + // Recurse if we're merging plain objects or arrays + if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { + if (copyIsArray) { + copyIsArray = false; + clone = src && isArray(src) ? src : []; + } else { + clone = src && isPlainObject(src) ? src : {}; + } - // Recurse if we're merging plain objects or arrays - if (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) { - if (copyIsArray) { - copyIsArray = false; - clone = src && isArray(src) ? src : []; - } else { - clone = src && isPlainObject(src) ? src : {}; - } + // Never move original objects, clone them + target[name] = extend(deep, clone, copy); - // Never move original objects, clone them - target[name] = extend(deep, clone, copy); - - // Don't bring in undefined values - } else if (copy !== undefined) { - target[name] = copy; + // Don't bring in undefined values + } else if (typeof copy !== 'undefined') { + target[name] = copy; + } } } } diff --git a/website/node_modules/extend/package.json b/website/node_modules/extend/package.json index 707d403..ebd846b 100644 --- a/website/node_modules/extend/package.json +++ b/website/node_modules/extend/package.json @@ -1,41 +1,50 @@ { "_args": [ [ - "extend@^2.0.1", - "/Users/lewiskan/OpenSource/hackprojectorg/website/node_modules/liftoff" + { + "raw": "extend@^3.0.0", + "scope": null, + "escapedName": "extend", + "name": "extend", + "rawSpec": "^3.0.0", + "spec": ">=3.0.0 <4.0.0", + "type": "range" + }, + "/home/pravenj/hackprojectorg/website/node_modules/liftoff" ] ], - "_from": "extend@>=2.0.1 <3.0.0", - "_id": "extend@2.0.1", + "_from": "extend@>=3.0.0 <4.0.0", + "_id": "extend@3.0.0", "_inCache": true, "_installable": true, "_location": "/extend", - "_nodeVersion": "1.8.1", + "_nodeVersion": "2.3.1", "_npmUser": { - "email": "ljharb@gmail.com", - "name": "ljharb" + "name": "ljharb", + "email": "ljharb@gmail.com" }, - "_npmVersion": "2.8.3", + "_npmVersion": "2.11.3", "_phantomChildren": {}, "_requested": { - "name": "extend", - "raw": "extend@^2.0.1", - "rawSpec": "^2.0.1", + "raw": "extend@^3.0.0", "scope": null, - "spec": ">=2.0.1 <3.0.0", + "escapedName": "extend", + "name": "extend", + "rawSpec": "^3.0.0", + "spec": ">=3.0.0 <4.0.0", "type": "range" }, "_requiredBy": [ "/liftoff" ], - "_resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz", - "_shasum": "1ee8010689e7395ff9448241c98652bc759a8260", + "_resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "_shasum": "5a474353b9f3353ddd8176dfd37b91c83a46f1d4", "_shrinkwrap": null, - "_spec": "extend@^2.0.1", - "_where": "/Users/lewiskan/OpenSource/hackprojectorg/website/node_modules/liftoff", + "_spec": "extend@^3.0.0", + "_where": "/home/pravenj/hackprojectorg/website/node_modules/liftoff", "author": { - "email": "justmoon@members.fsf.org", "name": "Stefan Thomas", + "email": "justmoon@members.fsf.org", "url": "http://www.justmoon.net" }, "bugs": { @@ -50,16 +59,17 @@ "dependencies": {}, "description": "Port of jQuery.extend for node.js and the browser", "devDependencies": { - "covert": "^1.0.1", - "jscs": "^1.11.3", + "covert": "^1.1.0", + "eslint": "^0.24.0", + "jscs": "^1.13.1", "tape": "^4.0.0" }, "directories": {}, "dist": { - "shasum": "1ee8010689e7395ff9448241c98652bc759a8260", - "tarball": "http://registry.npmjs.org/extend/-/extend-2.0.1.tgz" + "shasum": "5a474353b9f3353ddd8176dfd37b91c83a46f1d4", + "tarball": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, - "gitHead": "ce3790222d3d2051f728f74be9565f155ed599c3", + "gitHead": "148e7270cab2e9413af2cd0cab147070d755ed6d", "homepage": "https://github.com/justmoon/node-extend#readme", "keywords": [ "extend", @@ -70,12 +80,12 @@ "main": "index", "maintainers": [ { - "email": "justmoon@members.fsf.org", - "name": "justmoon" + "name": "justmoon", + "email": "justmoon@members.fsf.org" }, { - "email": "ljharb@gmail.com", - "name": "ljharb" + "name": "ljharb", + "email": "ljharb@gmail.com" } ], "name": "extend", @@ -88,8 +98,10 @@ "scripts": { "coverage": "covert test/index.js", "coverage-quiet": "covert test/index.js --quiet", - "lint": "jscs *.js */*.js", + "eslint": "eslint *.js */*.js", + "jscs": "jscs *.js */*.js", + "lint": "npm run jscs && npm run eslint", "test": "npm run lint && node test/index.js && npm run coverage-quiet" }, - "version": "2.0.1" + "version": "3.0.0" } diff --git a/website/node_modules/findup-sync/.npmignore b/website/node_modules/findup-sync/.npmignore deleted file mode 100644 index 84561e0..0000000 --- a/website/node_modules/findup-sync/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -test -.travis.yml -.jshintrc -Gruntfile.js diff --git a/website/node_modules/findup-sync/LICENSE-MIT b/website/node_modules/findup-sync/LICENSE-MIT deleted file mode 100644 index bb2aad6..0000000 --- a/website/node_modules/findup-sync/LICENSE-MIT +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2013 "Cowboy" Ben Alman - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/website/node_modules/findup-sync/README.md b/website/node_modules/findup-sync/README.md deleted file mode 100644 index e396df5..0000000 --- a/website/node_modules/findup-sync/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# findup-sync [![Build Status](https://secure.travis-ci.org/cowboy/node-findup-sync.png?branch=master)](http://travis-ci.org/cowboy/node-findup-sync) - -Find the first file matching a given pattern in the current directory or the nearest ancestor directory. - -## Getting Started -Install the module with: `npm install findup-sync` - -```js -var findup = require('findup-sync'); - -// Start looking in the CWD. -var filepath1 = findup('{a,b}*.txt'); - -// Start looking somewhere else, and ignore case (probably a good idea). -var filepath2 = findup('{a,b}*.txt', {cwd: '/some/path', nocase: true}); -``` - -## Usage - -```js -findup(patternOrPatterns [, minimatchOptions]) -``` - -### patternOrPatterns -Type: `String` or `Array` -Default: none - -One or more wildcard glob patterns. Or just filenames. - -### minimatchOptions -Type: `Object` -Default: `{}` - -Options to be passed to [minimatch](https://github.com/isaacs/minimatch). - -Note that if you want to start in a different directory than the current working directory, specify a `cwd` property here. - -## Contributing -In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/). - -## Release History -2015-09-14 0 v0.3.0 - updated glob to ~5.0. -2014-12-17 - v0.2.1 - updated to glob ~4.3. -2014-12-16 - v0.2.0 - Removed lodash, updated to glob 4.x. -2014-03-14 - v0.1.3 - Updated dependencies. -2013-03-08 - v0.1.2 - Updated dependencies. Fixed a Node 0.9.x bug. Updated unit tests to work cross-platform. -2012-11-15 - v0.1.1 - Now works without an options object. -2012-11-01 - v0.1.0 - Initial release. diff --git a/website/node_modules/findup-sync/lib/findup-sync.js b/website/node_modules/findup-sync/lib/findup-sync.js deleted file mode 100644 index 871a725..0000000 --- a/website/node_modules/findup-sync/lib/findup-sync.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * findup-sync - * https://github.com/cowboy/node-findup-sync - * - * Copyright (c) 2013 "Cowboy" Ben Alman - * Licensed under the MIT license. - */ - -'use strict'; - -// Nodejs libs. -var path = require('path'); - -// External libs. -var glob = require('glob'); - -// Search for a filename in the given directory or all parent directories. -module.exports = function(patterns, options) { - // Normalize patterns to an array. - if (!Array.isArray(patterns)) { patterns = [patterns]; } - // Create globOptions so that it can be modified without mutating the - // original object. - var globOptions = Object.create(options || {}); - globOptions.maxDepth = 1; - globOptions.cwd = path.resolve(globOptions.cwd || '.'); - - var files, lastpath; - do { - // Search for files matching patterns. - files = patterns.map(function(pattern) { - return glob.sync(pattern, globOptions); - }).reduce(function(a, b) { - return a.concat(b); - }).filter(function(entry, index, arr) { - return index === arr.indexOf(entry); - }); - // Return file if found. - if (files.length > 0) { - return path.resolve(path.join(globOptions.cwd, files[0])); - } - // Go up a directory. - lastpath = globOptions.cwd; - globOptions.cwd = path.resolve(globOptions.cwd, '..'); - // If parentpath is the same as basedir, we can't go any higher. - } while (globOptions.cwd !== lastpath); - - // No files were found! - return null; -}; diff --git a/website/node_modules/findup-sync/package.json b/website/node_modules/findup-sync/package.json index ae3aa79..463abec 100644 --- a/website/node_modules/findup-sync/package.json +++ b/website/node_modules/findup-sync/package.json @@ -1,84 +1,114 @@ { "_args": [ [ - "findup-sync@^0.3.0", - "/Users/lewiskan/OpenSource/hackprojectorg/website/node_modules/liftoff" + { + "raw": "findup-sync@^0.4.2", + "scope": null, + "escapedName": "findup-sync", + "name": "findup-sync", + "rawSpec": "^0.4.2", + "spec": ">=0.4.2 <0.5.0", + "type": "range" + }, + "/home/pravenj/hackprojectorg/website/node_modules/liftoff" ] ], - "_from": "findup-sync@>=0.3.0 <0.4.0", - "_id": "findup-sync@0.3.0", + "_from": "findup-sync@>=0.4.2 <0.5.0", + "_id": "findup-sync@0.4.2", "_inCache": true, "_installable": true, "_location": "/findup-sync", - "_nodeVersion": "4.0.0", + "_nodeVersion": "6.2.0", + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/findup-sync-0.4.2.tgz_1468194510974_0.19327558996155858" + }, "_npmUser": { - "email": "tyler@sleekcode.net", - "name": "tkellen" + "name": "jonschlinkert", + "email": "github@sellside.com" }, - "_npmVersion": "2.14.2", + "_npmVersion": "3.8.9", "_phantomChildren": {}, "_requested": { - "name": "findup-sync", - "raw": "findup-sync@^0.3.0", - "rawSpec": "^0.3.0", + "raw": "findup-sync@^0.4.2", "scope": null, - "spec": ">=0.3.0 <0.4.0", + "escapedName": "findup-sync", + "name": "findup-sync", + "rawSpec": "^0.4.2", + "spec": ">=0.4.2 <0.5.0", "type": "range" }, "_requiredBy": [ "/liftoff" ], - "_resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "_shasum": "37930aa5d816b777c03445e1966cc6790a4c0b16", + "_resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.2.tgz", + "_shasum": "a8117d0f73124f5a4546839579fe52d7129fb5e5", "_shrinkwrap": null, - "_spec": "findup-sync@^0.3.0", - "_where": "/Users/lewiskan/OpenSource/hackprojectorg/website/node_modules/liftoff", + "_spec": "findup-sync@^0.4.2", + "_where": "/home/pravenj/hackprojectorg/website/node_modules/liftoff", "author": { "name": "\"Cowboy\" Ben Alman", - "url": "http://benalman.com/" + "url": "http://benalman.com" }, "bugs": { "url": "https://github.com/cowboy/node-findup-sync/issues" }, "dependencies": { - "glob": "~5.0.0" + "detect-file": "^0.1.0", + "is-glob": "^2.0.1", + "micromatch": "^2.3.7", + "resolve-dir": "^0.1.0" }, "description": "Find the first file matching a given pattern in the current directory or the nearest ancestor directory.", "devDependencies": { - "grunt": "~0.4.4", - "grunt-contrib-jshint": "~0.9.2", - "grunt-contrib-nodeunit": "~0.3.3" + "fs-exists-sync": "^0.1.0", + "grunt": "^1.0.1", + "grunt-contrib-jshint": "^0.12.0", + "is-absolute": "^0.2.3", + "minimist": "^1.2.0", + "mocha": "^2.4.5", + "normalize-path": "^2.0.1", + "os-homedir": "^1.0.1", + "resolve": "^1.1.7" }, "directories": {}, "dist": { - "shasum": "37930aa5d816b777c03445e1966cc6790a4c0b16", - "tarball": "http://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz" + "shasum": "a8117d0f73124f5a4546839579fe52d7129fb5e5", + "tarball": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.2.tgz" }, "engines": { - "node": ">= 0.6.0" + "node": ">= 0.8.0" }, - "gitHead": "24356dc9bc74bf2389080a29c80845a510eaf3ef", + "files": [ + "index.js" + ], + "gitHead": "3515969ca312d2b24fc66397dac1a0a4ce9b4aaa", "homepage": "https://github.com/cowboy/node-findup-sync", "keywords": [ + "file", "find", + "find-up", + "findup", "glob", - "file" + "match", + "pattern", + "resolve", + "search" ], - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/cowboy/node-findup-sync/blob/master/LICENSE-MIT" - } - ], - "main": "lib/findup-sync", + "license": "MIT", + "main": "index.js", "maintainers": [ { - "email": "cowboy@rj3.net", - "name": "cowboy" + "name": "cowboy", + "email": "cowboy@rj3.net" + }, + { + "name": "jonschlinkert", + "email": "github@sellside.com" }, { - "email": "tyler@sleekcode.net", - "name": "tkellen" + "name": "tkellen", + "email": "tyler@sleekcode.net" } ], "name": "findup-sync", @@ -86,10 +116,10 @@ "readme": "ERROR: No README data found!", "repository": { "type": "git", - "url": "git://github.com/cowboy/node-findup-sync.git" + "url": "git+https://github.com/cowboy/node-findup-sync.git" }, "scripts": { - "test": "grunt nodeunit" + "test": "grunt && mocha" }, - "version": "0.3.0" + "version": "0.4.2" } diff --git a/website/node_modules/gulp/package.json b/website/node_modules/gulp/package.json index c7e20df..0b25e63 100644 --- a/website/node_modules/gulp/package.json +++ b/website/node_modules/gulp/package.json @@ -1,8 +1,16 @@ { "_args": [ [ - "gulp@^3.9.1", - "/Users/lewiskan/OpenSource/hackprojectorg/website" + { + "raw": "gulp@^3.9.1", + "scope": null, + "escapedName": "gulp", + "name": "gulp", + "rawSpec": "^3.9.1", + "spec": ">=3.9.1 <4.0.0", + "type": "range" + }, + "/home/pravenj/hackprojectorg/website" ] ], "_from": "gulp@>=3.9.1 <4.0.0", @@ -16,30 +24,32 @@ "tmp": "tmp/gulp-3.9.1.tgz_1454957415500_0.15343931876122952" }, "_npmUser": { - "email": "blaine@iceddev.com", - "name": "phated" + "name": "phated", + "email": "blaine@iceddev.com" }, "_npmVersion": "2.14.14", "_phantomChildren": {}, "_requested": { - "name": "gulp", "raw": "gulp@^3.9.1", - "rawSpec": "^3.9.1", "scope": null, + "escapedName": "gulp", + "name": "gulp", + "rawSpec": "^3.9.1", "spec": ">=3.9.1 <4.0.0", "type": "range" }, "_requiredBy": [ + "#USER", "/" ], "_resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", "_shasum": "571ce45928dd40af6514fc4011866016c13845b4", "_shrinkwrap": null, "_spec": "gulp@^3.9.1", - "_where": "/Users/lewiskan/OpenSource/hackprojectorg/website", + "_where": "/home/pravenj/hackprojectorg/website", "author": { - "email": "contact@wearefractal.com", "name": "Fractal", + "email": "contact@wearefractal.com", "url": "http://wearefractal.com/" }, "bin": { @@ -83,7 +93,7 @@ "directories": {}, "dist": { "shasum": "571ce45928dd40af6514fc4011866016c13845b4", - "tarball": "http://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz" + "tarball": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz" }, "engines": { "node": ">= 0.9" @@ -100,12 +110,12 @@ "license": "MIT", "maintainers": [ { - "email": "contact@wearefractal.com", - "name": "fractal" + "name": "fractal", + "email": "contact@wearefractal.com" }, { - "email": "blaine@iceddev.com", - "name": "phated" + "name": "phated", + "email": "blaine@iceddev.com" } ], "man": [ diff --git a/website/node_modules/liftoff/.travis.yml b/website/node_modules/liftoff/.travis.yml index 20fed57..61ec9ec 100644 --- a/website/node_modules/liftoff/.travis.yml +++ b/website/node_modules/liftoff/.travis.yml @@ -1,9 +1,16 @@ language: node_js +os: + - linux + - osx node_js: - - "0.10" + - "6" + - "5" + - "4" - "0.12" - - "iojs" + - "0.10" before_install: - npm update -g npm matrix: fast_finish: true + allow_failures: + - node_js: "0.10" diff --git a/website/node_modules/liftoff/CHANGELOG b/website/node_modules/liftoff/CHANGELOG index 9454e72..ee5b84d 100644 --- a/website/node_modules/liftoff/CHANGELOG +++ b/website/node_modules/liftoff/CHANGELOG @@ -1,3 +1,7 @@ +v2.2.2: + date: 2016-05-20 + changes: + - Update dependencies. v2.2.1: date: 2016-03-23 changes: diff --git a/website/node_modules/liftoff/README.md b/website/node_modules/liftoff/README.md index b76eda1..9a5a0ae 100644 --- a/website/node_modules/liftoff/README.md +++ b/website/node_modules/liftoff/README.md @@ -137,6 +137,130 @@ A method to handle bash/zsh/whatever completions. Type: `Function` Default: `null` +#### opts.configFiles + +An object of configuration files to find. Each property is keyed by the default basename of the file being found, and the value is an object of [path arguments](#path-arguments) keyed by unique names. + +__Note:__ This option is useful if, for example, you want to support an `.apprc` file in addition to an `appfile.js`. If you only need a single configuration file, you probably don't need this. In addition to letting you find multiple files, this option allows more fine-grained control over how configuration files are located. + +Type: `Object` +Default: `null` + +#### Path arguments + +The [`fined`](https://github.com/js-cli/fined) module accepts a string representing the path to search or an object with the following keys: + +* `path` __(required)__ + + The path to search. Using only a string expands to this property. + + Type: `String` + Default: `null` + +* `name` + + The basename of the file to find. Extensions are appended during lookup. + + Type: `String` + Default: Top-level key in `configFiles` + +* `extensions` + + The extensions to append to `name` during lookup. See also: [`opts.extensions`](#optsextensions). + + Type: `String|Array|Object` + Default: The value of [`opts.extensions`](#optsextensions) + +* `cwd` + + The base directory of `path` (if relative). + + Type: `String` + Default: The value of [`opts.cwd`](#optscwd) + +* `findUp` + + Whether the `path` should be traversed up to find the file. + + Type: `Boolean` + Default: `false` + +**Examples:** + +In this example Liftoff will look for the `.hacker.js` file relative to the `cwd` as declared in `configFiles`. +```js +const MyApp = new Liftoff({ + name: 'hacker', + configFiles: { + '.hacker': { + cwd: '.' + } + } +}); +``` + +In this example, Liftoff will look for `.hackerrc` in the home directory. +```js +const MyApp = new Liftoff({ + name: 'hacker', + configFiles: { + '.hacker': { + home: { + path: '~', + extensions: { + 'rc': null + } + } + } + } +}); +``` + +In this example, Liftoff will look in the `cwd` and then lookup the tree for the `.hacker.js` file. +```js +const MyApp = new Liftoff({ + name: 'hacker', + configFiles: { + '.hacker': { + up: { + path: '.', + findUp: true + } + } + } +}); +``` + +In this example, the `name` is overridden and the key is ignored so Liftoff looks for `.override.js`. +```js +const MyApp = new Liftoff({ + name: 'hacker', + configFiles: { + hacker: { + override: { + path: '.', + name: '.override' + } + } + } +}); +``` + +In this example, Liftoff will use the home directory as the `cwd` and looks for `~/.hacker.js`. +```js +const MyApp = new Liftoff({ + name: 'hacker', + configFiles: { + '.hacker': { + home: { + path: '.', + cwd: '~' + } + } + } +}); +``` + ## launch(opts, callback(env)) Launches your application with provided options, builds an environment, and invokes your callback, passing the calculated environment as the first argument. @@ -243,6 +367,7 @@ A function to start your application. When invoked, `this` will be your instanc - `configBase`: the base directory of your configuration file (if found) - `modulePath`: the full path to the local module your project relies on (if found) - `modulePackage`: the contents of the local module's package.json (if found) +- `configFiles`: an object of filepaths for each found config file (filepath values will be null if not found) ### events @@ -274,12 +399,12 @@ Hacker.on('requireFail', function (name, err) { #### respawn(flags, child) -Emitted when Liftoff re-spawns your process (when a [`nodeFlag`](#optsnodeflags) is detected). +Emitted when Liftoff re-spawns your process (when a [`v8flags`](#optsv8flags) is detected). ```js var Hacker = new Liftoff({ name: 'hacker', - nodeFlags: ['--harmony'] + v8flags: ['--harmony'] }); Hacker.on('respawn', function (flags, child) { console.log('Detected node flags:', flags); diff --git a/website/node_modules/liftoff/appveyor.yml b/website/node_modules/liftoff/appveyor.yml index 961d410..bcb6b74 100644 --- a/website/node_modules/liftoff/appveyor.yml +++ b/website/node_modules/liftoff/appveyor.yml @@ -6,10 +6,13 @@ environment: # node.js - nodejs_version: "0.10" - nodejs_version: "0.12" - # io.js - - nodejs_version: "1" + - nodejs_version: "4" + - nodejs_version: "5" + - nodejs_version: "6" install: + - IF %nodejs_version% EQU 0.10 npm -g install npm@2 + - IF %nodejs_version% EQU 0.10 set PATH=%APPDATA%\npm;%PATH% - ps: Install-Product node $env:nodejs_version - npm install diff --git a/website/node_modules/liftoff/index.js b/website/node_modules/liftoff/index.js index 3f9dfc0..0c0a8d5 100644 --- a/website/node_modules/liftoff/index.js +++ b/website/node_modules/liftoff/index.js @@ -6,7 +6,9 @@ const EE = require('events').EventEmitter; const extend = require('extend'); const resolve = require('resolve'); const flaggedRespawn = require('flagged-respawn'); -const rechoir = require('rechoir'); +const isPlainObject = require('lodash.isplainobject'); +const mapValues = require('lodash.mapvalues'); +const fined = require('fined'); const findCwd = require('./lib/find_cwd'); const findConfig = require('./lib/find_config'); @@ -14,6 +16,7 @@ const fileSearch = require('./lib/file_search'); const parseOptions = require('./lib/parse_options'); const silentRequire = require('./lib/silent_require'); const buildConfigName = require('./lib/build_config_name'); +const registerLoader = require('./lib/register_loader'); function Liftoff (opts) { @@ -121,22 +124,23 @@ Liftoff.prototype.buildEnvironment = function (opts) { }, this); } - // use rechoir to autoload any required modules - var autoloads; - if (configPath) { - autoloads = rechoir.prepare(this.extensions, configPath, cwd, true); - if (autoloads instanceof Error) { - autoloads = autoloads.failures; - } - if (Array.isArray(autoloads)) { - autoloads.forEach(function (attempt) { - if (attempt.error) { - this.emit('requireFail', attempt.moduleName, attempt.error); - } else { - this.emit('require', attempt.moduleName, attempt.module); + var exts = this.extensions; + var eventEmitter = this; + registerLoader(eventEmitter, exts, configPath, cwd); + + var configFiles = {}; + if (isPlainObject(this.configFiles)) { + var notfound = { path: null }; + configFiles = mapValues(this.configFiles, function(prop, name) { + var defaultObj = { name: name, cwd: cwd, extensions: exts }; + return mapValues(prop, function(pathObj) { + var found = fined(pathObj, defaultObj) || notfound; + if (isPlainObject(found.extension)) { + registerLoader(eventEmitter, found.extension, found.path, cwd); } - }, this); - } + return found.path; + }); + }); } return { @@ -146,7 +150,8 @@ Liftoff.prototype.buildEnvironment = function (opts) { configPath: configPath, configBase: configBase, modulePath: modulePath, - modulePackage: modulePackage || {} + modulePackage: modulePackage || {}, + configFiles: configFiles }; }; diff --git a/website/node_modules/liftoff/package.json b/website/node_modules/liftoff/package.json index 8f746a1..885cee2 100644 --- a/website/node_modules/liftoff/package.json +++ b/website/node_modules/liftoff/package.json @@ -1,42 +1,51 @@ { "_args": [ [ - "liftoff@^2.1.0", - "/Users/lewiskan/OpenSource/hackprojectorg/website/node_modules/gulp" + { + "raw": "liftoff@^2.1.0", + "scope": null, + "escapedName": "liftoff", + "name": "liftoff", + "rawSpec": "^2.1.0", + "spec": ">=2.1.0 <3.0.0", + "type": "range" + }, + "/home/pravenj/hackprojectorg/website/node_modules/gulp" ] ], "_from": "liftoff@>=2.1.0 <3.0.0", - "_id": "liftoff@2.2.1", + "_id": "liftoff@2.3.0", "_inCache": true, "_installable": true, "_location": "/liftoff", - "_nodeVersion": "5.9.0", + "_nodeVersion": "0.10.41", "_npmOperationalInternal": { - "host": "packages-12-west.internal.npmjs.com", - "tmp": "tmp/liftoff-2.2.1.tgz_1458739983596_0.09431072394363582" + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/liftoff-2.3.0.tgz_1469646196567_0.8871160212438554" }, "_npmUser": { - "email": "b@pk.am", - "name": "tusbar" + "name": "phated", + "email": "blaine.bublitz@gmail.com" }, - "_npmVersion": "3.7.3", + "_npmVersion": "2.15.2", "_phantomChildren": {}, "_requested": { - "name": "liftoff", "raw": "liftoff@^2.1.0", - "rawSpec": "^2.1.0", "scope": null, + "escapedName": "liftoff", + "name": "liftoff", + "rawSpec": "^2.1.0", "spec": ">=2.1.0 <3.0.0", "type": "range" }, "_requiredBy": [ "/gulp" ], - "_resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.2.1.tgz", - "_shasum": "8dfef848d3f441921c4a311fc3203ae9c34c41a7", + "_resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz", + "_shasum": "a98f2ff67183d8ba7cfaca10548bd7ff0550b385", "_shrinkwrap": null, "_spec": "liftoff@^2.1.0", - "_where": "/Users/lewiskan/OpenSource/hackprojectorg/website/node_modules/gulp", + "_where": "/home/pravenj/hackprojectorg/website/node_modules/gulp", "author": { "name": "Tyler Kellen", "url": "http://goingslowly.com/" @@ -45,31 +54,35 @@ "url": "https://github.com/js-cli/js-liftoff/issues" }, "dependencies": { - "extend": "^2.0.1", - "findup-sync": "^0.3.0", + "extend": "^3.0.0", + "findup-sync": "^0.4.2", + "fined": "^1.0.1", "flagged-respawn": "^0.3.2", - "rechoir": "^0.6.0", - "resolve": "^1.1.6" + "lodash.isplainobject": "^4.0.4", + "lodash.isstring": "^4.0.1", + "lodash.mapvalues": "^4.4.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" }, "description": "Launch your command line tool with ease.", "devDependencies": { - "chai": "^2.3.0", - "coffee-script": "^1.9.2", - "istanbul": "^0.3.14", - "jscs": "^1.13.1", - "jshint": "^2.7.0", - "mocha": "^2.1.0", - "sinon": "~1.12.2" + "chai": "^3.5.0", + "coffee-script": "^1.10.0", + "istanbul": "^0.4.3", + "jscs": "^2.11.0", + "jshint": "^2.9.2", + "mocha": "^2.4.5", + "sinon": "~1.17.4" }, "directories": {}, "dist": { - "shasum": "8dfef848d3f441921c4a311fc3203ae9c34c41a7", - "tarball": "http://registry.npmjs.org/liftoff/-/liftoff-2.2.1.tgz" + "shasum": "a98f2ff67183d8ba7cfaca10548bd7ff0550b385", + "tarball": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz" }, "engines": { "node": ">= 0.8" }, - "gitHead": "82a6911aff57aee0b1bf121015fcc492d1129238", + "gitHead": "be40ec3a3fa5854b4ab496a97f3d5877bf747b0b", "homepage": "https://github.com/js-cli/js-liftoff", "keywords": [ "command line" @@ -78,16 +91,20 @@ "main": "index.js", "maintainers": [ { - "email": "blaine.bublitz@gmail.com", - "name": "phated" + "name": "jonschlinkert", + "email": "github@sellside.com" + }, + { + "name": "phated", + "email": "blaine.bublitz@gmail.com" }, { - "email": "tyler@sleekcode.net", - "name": "tkellen" + "name": "tkellen", + "email": "tyler@sleekcode.net" }, { - "email": "b@pk.am", - "name": "tusbar" + "name": "tusbar", + "email": "bertrand.marron@gmail.com" } ], "name": "liftoff", @@ -100,5 +117,5 @@ "scripts": { "test": "jshint lib index.js && jscs lib index.js && mocha -t 5000 -b -R spec test/index" }, - "version": "2.2.1" + "version": "2.3.0" } diff --git a/website/public/docs/solution/cowbell_sol1/index.html b/website/public/docs/solution/cowbell_sol1/index.html index df1dcf0..1242724 100644 --- a/website/public/docs/solution/cowbell_sol1/index.html +++ b/website/public/docs/solution/cowbell_sol1/index.html @@ -45,4 +45,4 @@

Algorithm

- should know basic howto of raspberry pi - should know basic of ibeacon - should know simple python

- \ No newline at end of file + diff --git a/website/public/index.xml b/website/public/index.xml index c39fa67..cb17955 100644 --- a/website/public/index.xml +++ b/website/public/index.xml @@ -289,4 +289,4 @@ Pre-req for mentoring : - \ No newline at end of file +