From 7568eff42c288201e2965c064361f3a398877d2e Mon Sep 17 00:00:00 2001 From: Joe Andaverde Date: Sun, 28 Oct 2012 13:12:02 -0500 Subject: [PATCH 01/47] Lingering commit from last week --- labs/Shell.md | 92 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 69 insertions(+), 23 deletions(-) diff --git a/labs/Shell.md b/labs/Shell.md index 927f6e2..0f931db 100644 --- a/labs/Shell.md +++ b/labs/Shell.md @@ -1,4 +1,4 @@ -# A node Shell +# A Node Shell In this lab we'll put together a simple shell. We'll interact with the filesystem and learn some useful facets of the JavaScript programming language. @@ -27,13 +27,11 @@ Now starting up the shell again and typing input will result in the expected out The next step is to parse the input string. The commands in our simple shell will take the form ```command [args...]```. A regex like this can separate the arguments from the command: ```/(\w+)(.*)/```. We can then parse the argument part of this by splitting each argument by white space. ```js -... -std.on('data', function (input) { +stdin.on('data', function (input) { var matches = input.toString().match(/(\w+)(.*/)/); var command = matches[1].toLowerCase(); var args = matches[2].trim().split(/\s+/); }); -... ``` Feel free to check out the result of this by logging out the value of ```command``` and ```args```. @@ -50,7 +48,7 @@ var commands = { } }; -std.on('data', function (input) { +stdin.on('data', function (input) { var matches = input.toString().match(/(\w+)(.*/)/); var command = matches[1].toLowerCase(); @@ -74,9 +72,7 @@ pwd In order to process the arguments we need to add a little more parsing logic to the input. Since we split the command from the arguments with a regex we can now parse the second half of that string. Arguments are separated by white space so a simple regex split will give us what we need. In order to ignore unecessary white space let's trim the args string. We'll then pass this string array to our command function. ```js -... - -std.on('data', function (input) { +stdin.on('data', function (input) { var matches = input.toString().match(/(\w+)(.*/)/); var command = matches[1].toLowerCase(); var args = matches[2].trim().split(/\s+/); @@ -88,8 +84,6 @@ std.on('data', function (input) { To implement ls add a new property to our object named 'ls' like this: ```js -... - var commands = { 'pwd': function () { console.log(process.cwd()); @@ -102,8 +96,6 @@ var commands = { }); } }; - -... ``` Notice this part of the ls implementation: ```args[0] || process.cwd()``` @@ -121,42 +113,34 @@ Implementing this will give you exposure to file streams, getting formation abou First, let's add the tail command to our commands object. After this point all examples will exclude the command object declaration. ```js -... - var commands = { 'pwd': function () { console.log(process.cwd()); }, 'ls': function (args) { - //Implementation of ls here + // Implementation of ls here }, 'tail': function (args) { // Implemtation of tail here. }; }; - -... ``` -First, pull in the ```fs``` module at the top of the file. ```fs``` is the node core module for file system operations. +First, pull in the ```fs``` module at the top of the file just after ```var stdin = process.openStdin();```. The fs module is the node core module for file system operations. ``` -var stdin = process.openStdin(); var fs = require('fs'); - -... ``` Get the length of the file in bytes. To do this we'll need to stat the file path provided as the first argument. ``` -...this is declared within the commands object. +// this is declared as a property of the commands object 'tail': function (args) { var stats = fs.statSync(args[0]); console.log(stats); } -... ``` The stat object looks like this: @@ -204,7 +188,69 @@ With these properties we can create a read stream that starts at the beginning o } ``` +In our callback we'll examine each character to see if it's a newline ```\n```. + +We'll create an array to store the byte offset of each newline for the last N+1 lines. The +1 is so we can keep around an extra trailing line to start reading from. + +```js +var numLines = (args[1] || 10) + 1; +var newLines = new Array(numLines); +var offset = 0; +var index = 0; + +fileStream.on('data', function (data) { + for (var i = 0; i < data.length; i++) { + if (data[i] === '\n') { + newLines[index] = (offset * stats.blksize) + i; + index = ++index % numLines; + } + + offset++; + } +}); +``` + +Now, we need to add an event listener for the ```end``` event. In this callback we'll print the last N lines of the file. Add this just after the data callback. + +```js +fileStream.on('end', function () { + if (typeof newLines[index] === 'number') { + var position = newLines[index] + 1; + } + else { + var position = 0; + } + + var bytesToRead = stats.size - position; + + fs.open(args[0], 'r', function (err, fd) { + var buffer = new Buffer(bytesToRead); + fs.readSync(fd, buffer, 0, bytesToRead, position); + console.log(buffer.toString()) + }); +}); +``` + +If you're new to JavaScript you may be confused by the check to see if an element is a number. This ensures ```newLines[index]``` has been set to a number. If the value was never set it would be ```undefined```. Alternatively, this could have been: + +```js +if (typeof newLines[index] !== 'undefined') { + var position = newLines[index] + 1; +} else { + var position = 0; +} +``` + +Some examples of the ```typeof``` operator: + +* ```typeof 10``` => 'number' +* ```typeof 'nodelabs'``` => 'string' +* ```typeof true``` => 'boolean' +* ```typeof null``` => null + +**Important** +Another important detail about this example is that the variable declaration happens within the braces of the conditional statement. In other languages ```position``` would not be available out of the scope of the conditional block. However, in JavaScript, ```position``` is available outside of the statement block because of how scoping is handled in JavaScript. In short, JavaScript scope is at the ```function``` level. If you want to read more search for *variable hoisting* on Google. From c3c28b6e31866ae5cfd327f86e061e1ea8c3f4b6 Mon Sep 17 00:00:00 2001 From: Joe Andaverde Date: Sun, 28 Oct 2012 13:24:45 -0500 Subject: [PATCH 02/47] Removed graphics from workshop --- graphics/ads/8.5x11.ai | 10155 ----------------- graphics/ads/8.5x11.pdf | Bin 432338 -> 0 bytes graphics/logos/nodelabs-logotype-darkbg.ai | 1623 --- graphics/logos/nodelabs-logotype-darkbg.png | Bin 21436 -> 0 bytes graphics/logos/nodelabs-logotype-lightbg.ai | 1668 --- graphics/logos/nodelabs-logotype-lightbg.png | Bin 21877 -> 0 bytes meetings/20120822.md | 27 - meetings/20120906.md | 39 - meetings/20120911.md | 18 - resources/pythonkc.txt | 48 - 10 files changed, 13578 deletions(-) delete mode 100644 graphics/ads/8.5x11.ai delete mode 100644 graphics/ads/8.5x11.pdf delete mode 100644 graphics/logos/nodelabs-logotype-darkbg.ai delete mode 100644 graphics/logos/nodelabs-logotype-darkbg.png delete mode 100644 graphics/logos/nodelabs-logotype-lightbg.ai delete mode 100644 graphics/logos/nodelabs-logotype-lightbg.png delete mode 100644 meetings/20120822.md delete mode 100644 meetings/20120906.md delete mode 100644 meetings/20120911.md delete mode 100644 resources/pythonkc.txt diff --git a/graphics/ads/8.5x11.ai b/graphics/ads/8.5x11.ai deleted file mode 100644 index 989f82c..0000000 --- a/graphics/ads/8.5x11.ai +++ /dev/null @@ -1,10155 +0,0 @@ -%PDF-1.5 %âãÏÓ -1 0 obj <>/OCGs[6 0 R 36 0 R 74 0 R 113 0 R 154 0 R 195 0 R 237 0 R 279 0 R 312 0 R 347 0 R 382 0 R 417 0 R 452 0 R 486 0 R 519 0 R 554 0 R 589 0 R 632 0 R 675 0 R 718 0 R 760 0 R 802 0 R 844 0 R 886 0 R 931 0 R 978 0 R 1013 0 R 1048 0 R 1083 0 R 1118 0 R 1153 0 R 1188 0 R 1223 0 R 1258 0 R 1293 0 R 1328 0 R 1363 0 R 1399 0 R 1435 0 R 1471 0 R 1506 0 R 1539 0 R 1573 0 R 1609 0 R 1645 0 R 1681 0 R 1717 0 R 1753 0 R 1788 0 R 1821 0 R 1854 0 R 1887 0 R 1920 0 R 1953 0 R 1986 0 R 2019 0 R 2052 0 R 2085 0 R 2118 0 R 2151 0 R 2184 0 R 2217 0 R 2250 0 R 2283 0 R 2316 0 R 2349 0 R 2382 0 R 2415 0 R 2453 0 R 2491 0 R 2529 0 R 2567 0 R 2605 0 R 2643 0 R 2682 0 R 2723 0 R 2791 0 R 2859 0 R 2927 0 R 2995 0 R 3063 0 R 3131 0 R 3199 0 R 3267 0 R 3335 0 R 3403 0 R 3471 0 R 3539 0 R 3607 0 R 3675 0 R 3743 0 R 3811 0 R 3879 0 R 3947 0 R 4015 0 R 4083 0 R 4151 0 R 4219 0 R 4287 0 R 4355 0 R 4423 0 R 4491 0 R 4559 0 R 4627 0 R 4695 0 R 4763 0 R 4832 0 R 4903 0 R 4973 0 R 5041 0 R 5109 0 R 5177 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream - - - - - application/pdf - - - Print - - - - - 2012-10-13T14:04:46-05:00 - 2012-10-13T14:04:46-05:00 - 2012-09-24T12:22:44-05:00 - Adobe Illustrator CS5 - - - - 216 - 256 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADYAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8Ah+sa9rser30ceo3SIlxK qIs0gAAcgAANmBi0+MxHpHLuDXGEaGyE/wAReYP+rnd/8j5P+ass/L4/5sfkE+HHuDv8ReYP+rnd /wDI+T/mrH8vj/mx+QXw49wd/iLzB/1c7v8A5Hyf81Y/l8f82PyC+HHuDv8AEXmD/q53f/I+T/mr H8vj/mx+QXw49wd/iLzB/wBXO7/5Hyf81Y/l8f8ANj8gvhx7gibC+846gZxY3V/dG2ia4uFhkmcp EpCs7BSfhBYVOP5bH/Nj8gvhx7ghv8ReYP8Aq53f/I+T/mrH8vj/AJsfkF8OPcHf4i8wf9XO7/5H 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 NzO9myLQEjl6VzLIa0pspwKmmKuxV//Z - - - - - - uuid:d33b35fb-69fe-2549-8eaf-1b8741f7a7ae - xmp.did:FC7F11740720681188C6AF5BC738FB09 - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - xmp.iid:FA7F11740720681188C6AF5BC738FB09 - xmp.did:FA7F11740720681188C6AF5BC738FB09 - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - - - - saved - xmp.iid:FA7F11740720681188C6AF5BC738FB09 - 2012-09-24T12:04:28-05:00 - Adobe Illustrator CS5 - / - - - saved - xmp.iid:FC7F11740720681188C6AF5BC738FB09 - 2012-09-24T12:22:44-05:00 - Adobe Illustrator CS5 - / - - - - - - - EmbedByReference - - /Users/joe/Desktop/cerner_avatar_1.png - - - - EmbedByReference - - /Users/joe/Desktop/c2fo_fireworks.png - - - - - - - Document - Print - - - False - True - 1 - - 540.000000 - 720.000000 - Points - - - - - Delicious-Roman - Delicious - Roman - Type 1 - 001.000 - False - DelicRom; Delicious_76 - - - Delicious-Heavy - Delicious - Heavy - Type 1 - 001.000 - False - DelicHea; Delicious_76 - - - OstrichSansRounded-Medium - Ostrich Sans Rounded - Medium - TrueType - Version 1.001 - False - ostrich-rounded.ttf - - - - - - Cyan - Magenta - Yellow - Black - - - - - - Default Swatch Group - 0 - - - - White - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 0.000000 - - - Black - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 100.000000 - - - CMYK Red - CMYK - PROCESS - 0.000000 - 100.000000 - 100.000000 - 0.000000 - - - CMYK Yellow - CMYK - PROCESS - 0.000000 - 0.000000 - 100.000000 - 0.000000 - - - CMYK Green - CMYK - PROCESS - 100.000000 - 0.000000 - 100.000000 - 0.000000 - - - CMYK Cyan - CMYK - PROCESS - 100.000000 - 0.000000 - 0.000000 - 0.000000 - - - CMYK Blue - CMYK - PROCESS - 100.000000 - 100.000000 - 0.000000 - 0.000000 - - - CMYK Magenta - CMYK - PROCESS - 0.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=15 M=100 Y=90 K=10 - CMYK - PROCESS - 14.999998 - 100.000000 - 90.000000 - 10.000002 - - - C=0 M=90 Y=85 K=0 - CMYK - PROCESS - 0.000000 - 90.000000 - 85.000000 - 0.000000 - - - C=0 M=80 Y=95 K=0 - CMYK - PROCESS - 0.000000 - 80.000000 - 95.000000 - 0.000000 - - - C=0 M=50 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 50.000000 - 100.000000 - 0.000000 - - - C=0 M=35 Y=85 K=0 - CMYK - PROCESS - 0.000000 - 35.000004 - 85.000000 - 0.000000 - - - C=5 M=0 Y=90 K=0 - CMYK - PROCESS - 5.000001 - 0.000000 - 90.000000 - 0.000000 - - - C=20 M=0 Y=100 K=0 - CMYK - PROCESS - 19.999998 - 0.000000 - 100.000000 - 0.000000 - - - C=50 M=0 Y=100 K=0 - CMYK - PROCESS - 50.000000 - 0.000000 - 100.000000 - 0.000000 - - - C=75 M=0 Y=100 K=0 - CMYK - PROCESS - 75.000000 - 0.000000 - 100.000000 - 0.000000 - - - C=85 M=10 Y=100 K=10 - CMYK - PROCESS - 85.000000 - 10.000002 - 100.000000 - 10.000002 - - - C=90 M=30 Y=95 K=30 - CMYK - PROCESS - 90.000000 - 30.000002 - 95.000000 - 30.000002 - - - C=75 M=0 Y=75 K=0 - CMYK - PROCESS - 75.000000 - 0.000000 - 75.000000 - 0.000000 - - - C=80 M=10 Y=45 K=0 - CMYK - PROCESS - 80.000000 - 10.000002 - 45.000000 - 0.000000 - - - C=70 M=15 Y=0 K=0 - CMYK - PROCESS - 70.000000 - 14.999998 - 0.000000 - 0.000000 - - - C=85 M=50 Y=0 K=0 - CMYK - PROCESS - 85.000000 - 50.000000 - 0.000000 - 0.000000 - - - C=100 M=95 Y=5 K=0 - CMYK - PROCESS - 100.000000 - 95.000000 - 5.000001 - 0.000000 - - - C=100 M=100 Y=25 K=25 - CMYK - PROCESS - 100.000000 - 100.000000 - 25.000000 - 25.000000 - - - C=75 M=100 Y=0 K=0 - CMYK - PROCESS - 75.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=50 M=100 Y=0 K=0 - CMYK - PROCESS - 50.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=35 M=100 Y=35 K=10 - CMYK - PROCESS - 35.000004 - 100.000000 - 35.000004 - 10.000002 - - - C=10 M=100 Y=50 K=0 - CMYK - PROCESS - 10.000002 - 100.000000 - 50.000000 - 0.000000 - - - C=0 M=95 Y=20 K=0 - CMYK - PROCESS - 0.000000 - 95.000000 - 19.999998 - 0.000000 - - - C=25 M=25 Y=40 K=0 - CMYK - PROCESS - 25.000000 - 25.000000 - 39.999996 - 0.000000 - - - C=40 M=45 Y=50 K=5 - CMYK - PROCESS - 39.999996 - 45.000000 - 50.000000 - 5.000001 - - - C=50 M=50 Y=60 K=25 - CMYK - PROCESS - 50.000000 - 50.000000 - 60.000004 - 25.000000 - - - C=55 M=60 Y=65 K=40 - CMYK - PROCESS - 55.000000 - 60.000004 - 65.000000 - 39.999996 - - - C=25 M=40 Y=65 K=0 - CMYK - PROCESS - 25.000000 - 39.999996 - 65.000000 - 0.000000 - - - C=30 M=50 Y=75 K=10 - CMYK - PROCESS - 30.000002 - 50.000000 - 75.000000 - 10.000002 - - - C=35 M=60 Y=80 K=25 - CMYK - PROCESS - 35.000004 - 60.000004 - 80.000000 - 25.000000 - - - C=40 M=65 Y=90 K=35 - CMYK - PROCESS - 39.999996 - 65.000000 - 90.000000 - 35.000004 - - - C=40 M=70 Y=100 K=50 - CMYK - PROCESS - 39.999996 - 70.000000 - 100.000000 - 50.000000 - - - C=50 M=70 Y=80 K=70 - CMYK - PROCESS - 50.000000 - 70.000000 - 80.000000 - 70.000000 - - - - - - Grays - 1 - - - - C=0 M=0 Y=0 K=100 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 100.000000 - - - C=0 M=0 Y=0 K=90 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 89.999405 - - - C=0 M=0 Y=0 K=80 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 79.998795 - - - C=0 M=0 Y=0 K=70 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 69.999702 - - - C=0 M=0 Y=0 K=60 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 59.999104 - - - C=0 M=0 Y=0 K=50 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 50.000000 - - - C=0 M=0 Y=0 K=40 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 39.999401 - - - C=0 M=0 Y=0 K=30 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 29.998802 - - - C=0 M=0 Y=0 K=20 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 19.999701 - - - C=0 M=0 Y=0 K=10 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 9.999103 - - - C=0 M=0 Y=0 K=5 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 4.998803 - - - - - - Brights - 1 - - - - C=0 M=100 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 100.000000 - 100.000000 - 0.000000 - - - C=0 M=75 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 75.000000 - 100.000000 - 0.000000 - - - C=0 M=10 Y=95 K=0 - CMYK - PROCESS - 0.000000 - 10.000002 - 95.000000 - 0.000000 - - - C=85 M=10 Y=100 K=0 - CMYK - PROCESS - 85.000000 - 10.000002 - 100.000000 - 0.000000 - - - C=100 M=90 Y=0 K=0 - CMYK - PROCESS - 100.000000 - 90.000000 - 0.000000 - 0.000000 - - - C=60 M=90 Y=0 K=0 - CMYK - PROCESS - 60.000004 - 90.000000 - 0.003099 - 0.003099 - - - - - - - - - Adobe PDF library 9.90 - - - - - - - - - - - - - - - - - - - - - - - - - endstream endobj 3 0 obj <> endobj 8 0 obj <>/Resources<>/ExtGState<>/Font<>/ProcSet[/PDF/Text/ImageC/ImageI]/Properties<>/Shading<>/XObject<>>>/Thumb 5197 0 R/TrimBox[0.0 0.0 540.0 720.0]/Type/Page>> endobj 5179 0 obj <>stream -H‰tWËŽ$Ç ¼÷WÔÙÀÔf2ßW¯ CðÁаìCÏòþ?àˆ ³ª%H`º¢*$3d~ùû×ãËß¾¦ã¯?|=¿>Ò1,­¦ãƒÿû×ãŸÇ7¼ÿòÓ?Òñïï/?~¦ã‡ÿ>~Æß—¯x÷ü~¤³×†ÿ­e>÷‰ÿµæãøþüƉ™±è¨Z8c0ÖýåQsalJœ·ž}ŒÈSc#ݦO-Qî׿ü©¹éð?-öë‘òQóY -X[¶z5òóñ‘û™Ì>^zžeàù#Ó2+ø¶Q>s™Çó±qÅð™51^Œ3÷®ñ.Ö\-»:a·¡ùýì³ðÅôψÀªãØöäàvŽUîïílõžÛà×ûÊíÌyÜ;·3å|ÛÐíöá|a§¥?ÒýÄeàXSÅsZ<°‰Õ3¦7LG,KêÃ"6ù¬v?{´ü×#™ÎÑfœÐ§øóÛM°¡À¬žàZoövF Çs`l5…;Ÿm5Ù ôiÄüóá~2døZ*¢} ^„Šb…ñÃq›`öèD -;ÅÌÙ1´âåÜð˜×ذàÌ—DaÒ–‰›€ç3wX?2ãXß_´ÓV½fø›²|s[æŽÅîÍ–ð4ÇL§SòMWr»JxºZ×o¯ãöFƺœ{cE†‚¸¬÷PñMëw(…W»-|Æcƒ£¤ÓJ¥Gئ â™0lOvgb%?Ú@OµaûkU>î™Ám{Ý'Žþ·Ê¹œc”…,/X%¿e¹k’wÈð,D`Ý;‹Ra(#sLxÍÏíÏìår€Yc¦´u0º}axa.ÌÓ¦‰\$P^H|æÎ‚U†ma‚~äh7¯ Nçø€9 íÇ×#–qè