├── learn ├── jsdn-objects-1.key │ ├── Metadata │ │ ├── DocumentIdentifier │ │ ├── Properties.plist │ │ └── BuildVersionHistory.plist │ ├── Index.zip │ ├── preview.jpg │ ├── preview-web.jpg │ ├── Data │ │ ├── st0-2481.jpg │ │ ├── st1-1337.jpg │ │ ├── st2-1350.jpg │ │ ├── st3-1781.jpg │ │ ├── st3-1784.jpg │ │ ├── st5-2043.jpg │ │ ├── st6-2044.jpg │ │ ├── st7-2045.jpg │ │ ├── st8-2046.jpg │ │ ├── st9-2047.jpg │ │ ├── mt10@2x-87.jpg │ │ ├── mt1@2x-78.jpg │ │ ├── mt2@2x-79.jpg │ │ ├── mt3@2x-80.jpg │ │ ├── mt4@2x-81.jpg │ │ ├── mt5@2x-82.jpg │ │ ├── mt6@2x-83.jpg │ │ ├── mt7@2x-84.jpg │ │ ├── mt8@2x-85.jpg │ │ ├── mt9@2x-86.jpg │ │ ├── st10-2048.jpg │ │ ├── st11-2049.jpg │ │ ├── st12-2050.jpg │ │ ├── st13-2053.jpg │ │ ├── st14-2054.jpg │ │ ├── st15-1848.jpg │ │ ├── st15-1851.jpg │ │ ├── st15-1853.jpg │ │ ├── st15-2085.jpg │ │ ├── st19-2056.jpg │ │ ├── st19-2590.jpg │ │ ├── st20-2057.jpg │ │ ├── st21-2058.jpg │ │ ├── st22-2059.jpg │ │ ├── st24-2007.jpg │ │ ├── st24-2009.jpg │ │ ├── st24-2033.jpg │ │ ├── st24-2478.jpg │ │ ├── st25-1988.jpg │ │ ├── st25-2036.jpg │ │ ├── st25-2479.jpg │ │ ├── st27-2004.jpg │ │ ├── st28-2003.jpg │ │ ├── st29-2002.jpg │ │ ├── st29-2042.jpg │ │ ├── st30-2001.jpg │ │ ├── st32-1999.jpg │ │ ├── st33-1998.jpg │ │ ├── st34-1997.jpg │ │ ├── st34-2041.jpg │ │ ├── st35-1990.jpg │ │ ├── st36-1996.jpg │ │ ├── st37-1995.jpg │ │ ├── st39-1993.jpg │ │ ├── st40-1992.jpg │ │ ├── st41-2037.jpg │ │ ├── st44-2039.jpg │ │ ├── st47-2083.jpg │ │ ├── st48-2204.jpg │ │ ├── st48-2241.jpg │ │ ├── st48-2246.jpg │ │ ├── st48-2303.jpg │ │ ├── st48-2307.jpg │ │ ├── st48-2311.jpg │ │ ├── st48-2316.jpg │ │ ├── st48-2318.jpg │ │ ├── st49-2243.jpg │ │ ├── st49-2262.jpg │ │ ├── st50-2235.jpg │ │ ├── st50-2294.jpg │ │ ├── st51-2292.jpg │ │ ├── st52-2290.jpg │ │ ├── st53-2288.jpg │ │ ├── st53-2320.jpg │ │ ├── st64-2397.jpg │ │ ├── st64-2453.jpg │ │ ├── st64-2457.jpg │ │ ├── st64-2459.jpg │ │ ├── st64-2461.jpg │ │ ├── st64-2470.jpg │ │ ├── st64-2472.jpg │ │ ├── st65-2450.jpg │ │ ├── st66-2448.jpg │ │ ├── st67-2446.jpg │ │ ├── st68-2432.jpg │ │ ├── st70-2588.jpg │ │ ├── st71-2585.jpg │ │ ├── st74-2473.jpg │ │ ├── st76-2568.jpg │ │ ├── st76-2574.jpg │ │ ├── st76-2578.jpg │ │ ├── st76-2579.jpg │ │ ├── st76-2581.jpg │ │ ├── st76-2583.jpg │ │ ├── pasted-image-1341.png │ │ ├── pasted-image-1457.png │ │ ├── pasted-image-1529.png │ │ ├── pasted-image-2167.png │ │ ├── pasted-image-2324.png │ │ ├── pasted-image-small-1458.png │ │ ├── pasted-image-small-2325.png │ │ ├── Screen Shot 2016-02-22 at 10.12-2524.png │ │ ├── Screen Shot 2016-02-22 at 10.12.18 AM-2523.png │ │ ├── 110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg │ │ ├── 110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg │ │ └── 110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg │ └── preview-micro.jpg ├── jsdn-closures-1.key │ ├── Metadata │ │ ├── DocumentIdentifier │ │ ├── Properties.plist │ │ └── BuildVersionHistory.plist │ ├── Index.zip │ ├── preview.jpg │ ├── preview-web.jpg │ ├── Data │ │ ├── mt10@2x-87.jpg │ │ ├── mt1@2x-78.jpg │ │ ├── mt2@2x-79.jpg │ │ ├── mt3@2x-80.jpg │ │ ├── mt4@2x-81.jpg │ │ ├── mt5@2x-82.jpg │ │ ├── mt6@2x-83.jpg │ │ ├── mt7@2x-84.jpg │ │ ├── mt8@2x-85.jpg │ │ ├── mt9@2x-86.jpg │ │ ├── st0-1996.jpg │ │ ├── st1-2431.jpg │ │ ├── st10-2455.jpg │ │ ├── st11-2453.jpg │ │ ├── st12-2451.jpg │ │ ├── st13-2449.jpg │ │ ├── st14-2447.jpg │ │ ├── st15-2445.jpg │ │ ├── st16-2443.jpg │ │ ├── st17-2441.jpg │ │ ├── st2-2432.jpg │ │ ├── st3-2435.jpg │ │ ├── st4-2436.jpg │ │ ├── st5-2471.jpg │ │ ├── st6-2463.jpg │ │ ├── st6-2475.jpg │ │ ├── st7-2461.jpg │ │ ├── st8-2459.jpg │ │ ├── st9-2457.jpg │ │ ├── Screen Shot 2015-04-21 at 11.15-2229.png │ │ ├── Screen Shot 2015-04-21 at 11.15.55 AM-2228.png │ │ ├── 110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg │ │ ├── 110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg │ │ └── 110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg │ └── preview-micro.jpg ├── jsdn-closures-2.key │ ├── Metadata │ │ ├── DocumentIdentifier │ │ ├── Properties.plist │ │ └── BuildVersionHistory.plist │ ├── Index.zip │ ├── preview.jpg │ ├── preview-web.jpg │ ├── Data │ │ ├── mt10@2x-87.jpg │ │ ├── mt1@2x-78.jpg │ │ ├── mt2@2x-79.jpg │ │ ├── mt3@2x-80.jpg │ │ ├── mt4@2x-81.jpg │ │ ├── mt5@2x-82.jpg │ │ ├── mt6@2x-83.jpg │ │ ├── mt7@2x-84.jpg │ │ ├── mt8@2x-85.jpg │ │ ├── mt9@2x-86.jpg │ │ ├── st0-2492.jpg │ │ ├── st1-2862.jpg │ │ ├── st10-2871.jpg │ │ ├── st11-2936.jpg │ │ ├── st11-2938.jpg │ │ ├── st11-2985.jpg │ │ ├── st12-2987.jpg │ │ ├── st12-2989.jpg │ │ ├── st13-2960.jpg │ │ ├── st13-2963.jpg │ │ ├── st14-2940.jpg │ │ ├── st14-2955.jpg │ │ ├── st15-2941.jpg │ │ ├── st15-2956.jpg │ │ ├── st15-2969.jpg │ │ ├── st16-2942.jpg │ │ ├── st17-2943.jpg │ │ ├── st2-2863.jpg │ │ ├── st25-3099.jpg │ │ ├── st26-3129.jpg │ │ ├── st26-3148.jpg │ │ ├── st26-3150.jpg │ │ ├── st26-3155.jpg │ │ ├── st26-3158.jpg │ │ ├── st26-3160.jpg │ │ ├── st26-3164.jpg │ │ ├── st27-3147.jpg │ │ ├── st28-3141.jpg │ │ ├── st28-3145.jpg │ │ ├── st3-2864.jpg │ │ ├── st4-2865.jpg │ │ ├── st5-2866.jpg │ │ ├── st6-2867.jpg │ │ ├── st7-2868.jpg │ │ ├── st8-2869.jpg │ │ ├── st9-2870.jpg │ │ ├── Screen Shot 2016-02-22 at 1.45-3055.png │ │ ├── Screen Shot 2016-02-22 at 12.56-2763.png │ │ ├── Screen Shot 2016-02-22 at 1.45.10 PM-3054.png │ │ ├── Screen Shot 2016-02-22 at 1.47.21 PM-3081.png │ │ ├── Screen Shot 2016-02-22 at 12.56.48 PM-2762.png │ │ ├── 110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg │ │ ├── 110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg │ │ └── 110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg │ └── preview-micro.jpg ├── jsdn-functions-1.key │ ├── Metadata │ │ ├── DocumentIdentifier │ │ ├── Properties.plist │ │ └── BuildVersionHistory.plist │ ├── Index.zip │ ├── preview.jpg │ ├── Data │ │ ├── st0-99.jpg │ │ ├── mt1@2x-78.jpg │ │ ├── mt2@2x-79.jpg │ │ ├── mt3@2x-80.jpg │ │ ├── mt4@2x-81.jpg │ │ ├── mt5@2x-82.jpg │ │ ├── mt6@2x-83.jpg │ │ ├── mt7@2x-84.jpg │ │ ├── mt8@2x-85.jpg │ │ ├── mt9@2x-86.jpg │ │ ├── st1-1330.jpg │ │ ├── st1-714.jpg │ │ ├── st10-1072.jpg │ │ ├── st11-1076.jpg │ │ ├── st12-1078.jpg │ │ ├── st13-1086.jpg │ │ ├── st14-1136.jpg │ │ ├── st14-1283.jpg │ │ ├── st15-1135.jpg │ │ ├── st16-1134.jpg │ │ ├── st17-1133.jpg │ │ ├── st18-1277.jpg │ │ ├── st18-1279.jpg │ │ ├── st18-1281.jpg │ │ ├── st19-1248.jpg │ │ ├── st19-1276.jpg │ │ ├── st2-712.jpg │ │ ├── st20-1249.jpg │ │ ├── st21-1250.jpg │ │ ├── st22-1253.jpg │ │ ├── st23-1254.jpg │ │ ├── st24-1255.jpg │ │ ├── st25-1256.jpg │ │ ├── st26-1257.jpg │ │ ├── st27-1258.jpg │ │ ├── st28-1259.jpg │ │ ├── st3-704.jpg │ │ ├── st30-1261.jpg │ │ ├── st31-1262.jpg │ │ ├── st32-1263.jpg │ │ ├── st33-1285.jpg │ │ ├── st34-1265.jpg │ │ ├── st35-1266.jpg │ │ ├── st38-1333.jpg │ │ ├── st4-697.jpg │ │ ├── st5-1063.jpg │ │ ├── st6-1064.jpg │ │ ├── st7-1065.jpg │ │ ├── st8-1066.jpg │ │ ├── st9-1071.jpg │ │ ├── mt10@2x-87.jpg │ │ ├── pasted-image-560.png │ │ ├── pasted-image-775.png │ │ ├── pasted-image-884.png │ │ ├── pasted-image-small-561.png │ │ ├── pasted-image-small-776.png │ │ ├── pasted-image-small-885.png │ │ ├── 110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg │ │ ├── 110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg │ │ └── 110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg │ ├── preview-web.jpg │ └── preview-micro.jpg ├── jsdn-functions-2.key │ ├── Metadata │ │ ├── DocumentIdentifier │ │ ├── Properties.plist │ │ └── BuildVersionHistory.plist │ ├── Index.zip │ ├── preview.jpg │ ├── preview-web.jpg │ ├── Data │ │ ├── mt1@2x-78.jpg │ │ ├── mt2@2x-79.jpg │ │ ├── mt3@2x-80.jpg │ │ ├── mt4@2x-81.jpg │ │ ├── mt5@2x-82.jpg │ │ ├── mt6@2x-83.jpg │ │ ├── mt7@2x-84.jpg │ │ ├── mt8@2x-85.jpg │ │ ├── mt9@2x-86.jpg │ │ ├── st0-1341.jpg │ │ ├── st1-1339.jpg │ │ ├── st10-1941.jpg │ │ ├── st11-1609.jpg │ │ ├── st12-1612.jpg │ │ ├── st13-1613.jpg │ │ ├── st14-1614.jpg │ │ ├── st15-1945.jpg │ │ ├── st16-1948.jpg │ │ ├── st17-1902.jpg │ │ ├── st18-1644.jpg │ │ ├── st19-1783.jpg │ │ ├── st19-1785.jpg │ │ ├── st19-1787.jpg │ │ ├── st2-1597.jpg │ │ ├── st2-1600.jpg │ │ ├── st2-1603.jpg │ │ ├── st22-1820.jpg │ │ ├── st23-1821.jpg │ │ ├── st24-1829.jpg │ │ ├── st25-1830.jpg │ │ ├── st26-1832.jpg │ │ ├── st27-1835.jpg │ │ ├── st28-1836.jpg │ │ ├── st29-1953.jpg │ │ ├── st30-1924.jpg │ │ ├── st31-1926.jpg │ │ ├── st32-1927.jpg │ │ ├── st33-1928.jpg │ │ ├── st34-1929.jpg │ │ ├── st35-1930.jpg │ │ ├── st36-1931.jpg │ │ ├── st37-1932.jpg │ │ ├── st38-1958.jpg │ │ ├── st39-1934.jpg │ │ ├── st40-1935.jpg │ │ ├── st5-1789.jpg │ │ ├── st6-1800.jpg │ │ ├── st7-1801.jpg │ │ ├── st8-1939.jpg │ │ ├── st9-1940.jpg │ │ ├── mt10@2x-87.jpg │ │ ├── pasted-image-1477.png │ │ ├── pasted-image-1646.png │ │ ├── pasted-image-small-1478.png │ │ ├── pasted-image-small-1647.png │ │ ├── 110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg │ │ ├── 110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg │ │ └── 110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg │ └── preview-micro.jpg ├── jsdn-functions-3.key │ ├── Metadata │ │ ├── DocumentIdentifier │ │ ├── Properties.plist │ │ └── BuildVersionHistory.plist │ ├── Index.zip │ ├── preview.jpg │ ├── Data │ │ ├── st0-99.jpg │ │ ├── mt1@2x-78.jpg │ │ ├── mt2@2x-79.jpg │ │ ├── mt3@2x-80.jpg │ │ ├── mt4@2x-81.jpg │ │ ├── mt5@2x-82.jpg │ │ ├── mt6@2x-83.jpg │ │ ├── mt7@2x-84.jpg │ │ ├── mt8@2x-85.jpg │ │ ├── mt9@2x-86.jpg │ │ ├── st1-1333.jpg │ │ ├── st10-1768.jpg │ │ ├── st11-1771.jpg │ │ ├── st12-1774.jpg │ │ ├── st13-1793.jpg │ │ ├── st14-1827.jpg │ │ ├── st15-1828.jpg │ │ ├── st16-1849.jpg │ │ ├── st17-1850.jpg │ │ ├── st18-1851.jpg │ │ ├── st18-1885.jpg │ │ ├── st19-1852.jpg │ │ ├── st19-1895.jpg │ │ ├── st20-1889.jpg │ │ ├── st21-1899.jpg │ │ ├── st22-1891.jpg │ │ ├── st23-1893.jpg │ │ ├── st4-1747.jpg │ │ ├── st5-1766.jpg │ │ ├── st6-1762.jpg │ │ ├── st7-1765.jpg │ │ ├── st8-1755.jpg │ │ ├── st9-1760.jpg │ │ ├── mt10@2x-87.jpg │ │ ├── pasted-image-1654.png │ │ ├── pasted-image-small-1655.png │ │ ├── 110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg │ │ ├── 110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg │ │ └── 110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg │ ├── preview-web.jpg │ └── preview-micro.jpg ├── jsdn-closures-1.pdf ├── jsdn-closures-2.pdf ├── jsdn-objects-1.pdf ├── jsdn-functions-1.pdf ├── jsdn-functions-2.pdf └── jsdn-functions-3.pdf ├── Cakefile ├── Readme.md ├── code-examples ├── assets │ └── jsdn.css ├── explicit-variables.html └── js-code-eval.html ├── src └── jsdn.coffee └── lib └── jsdn.js /learn/jsdn-objects-1.key/Metadata/DocumentIdentifier: -------------------------------------------------------------------------------- 1 | FA32757E-7DF1-4E79-822A-7D93C508BF3C -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Metadata/DocumentIdentifier: -------------------------------------------------------------------------------- 1 | 8656528A-60B2-4735-8FA4-2C2FE82E1E0A -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Metadata/DocumentIdentifier: -------------------------------------------------------------------------------- 1 | 8656528A-60B2-4735-8FA4-2C2FE82E1E0A -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Metadata/DocumentIdentifier: -------------------------------------------------------------------------------- 1 | D6C02F64-D62C-4CCD-8423-4A6E51716FC3 -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Metadata/DocumentIdentifier: -------------------------------------------------------------------------------- 1 | 8656528A-60B2-4735-8FA4-2C2FE82E1E0A -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Metadata/DocumentIdentifier: -------------------------------------------------------------------------------- 1 | C9BB4F9F-77D4-4F00-90AB-D278889BF55F -------------------------------------------------------------------------------- /learn/jsdn-closures-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.pdf -------------------------------------------------------------------------------- /learn/jsdn-closures-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.pdf -------------------------------------------------------------------------------- /learn/jsdn-objects-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.pdf -------------------------------------------------------------------------------- /learn/jsdn-functions-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.pdf -------------------------------------------------------------------------------- /learn/jsdn-functions-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.pdf -------------------------------------------------------------------------------- /learn/jsdn-functions-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.pdf -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Index.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Index.zip -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Index.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Index.zip -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Index.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Index.zip -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/preview.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/preview.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Index.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Index.zip -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Index.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Index.zip -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Index.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Index.zip -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/preview.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/preview.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/preview.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/preview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/preview.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/preview-web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/preview-web.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/preview-web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/preview-web.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/preview-web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/preview-web.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st0-99.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st0-99.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/preview-web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/preview-web.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/preview-web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/preview-web.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st0-99.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st0-99.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/preview-web.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/preview-web.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st0-2481.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st0-2481.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st1-1337.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st1-1337.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st2-1350.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st2-1350.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st3-1781.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st3-1781.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st3-1784.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st3-1784.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st5-2043.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st5-2043.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st6-2044.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st6-2044.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st7-2045.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st7-2045.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st8-2046.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st8-2046.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st9-2047.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st9-2047.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/preview-micro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/preview-micro.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/mt10@2x-87.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/mt10@2x-87.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/mt1@2x-78.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/mt1@2x-78.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/mt2@2x-79.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/mt2@2x-79.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/mt3@2x-80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/mt3@2x-80.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/mt4@2x-81.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/mt4@2x-81.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/mt5@2x-82.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/mt5@2x-82.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/mt6@2x-83.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/mt6@2x-83.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/mt7@2x-84.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/mt7@2x-84.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/mt8@2x-85.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/mt8@2x-85.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/mt9@2x-86.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/mt9@2x-86.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st0-1996.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st0-1996.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st1-2431.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st1-2431.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st10-2455.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st10-2455.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st11-2453.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st11-2453.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st12-2451.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st12-2451.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st13-2449.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st13-2449.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st14-2447.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st14-2447.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st15-2445.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st15-2445.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st16-2443.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st16-2443.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st17-2441.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st17-2441.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st2-2432.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st2-2432.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st3-2435.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st3-2435.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st4-2436.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st4-2436.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st5-2471.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st5-2471.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st6-2463.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st6-2463.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st6-2475.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st6-2475.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st7-2461.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st7-2461.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st8-2459.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st8-2459.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/st9-2457.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/st9-2457.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/preview-micro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/preview-micro.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/mt10@2x-87.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/mt10@2x-87.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/mt1@2x-78.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/mt1@2x-78.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/mt2@2x-79.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/mt2@2x-79.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/mt3@2x-80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/mt3@2x-80.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/mt4@2x-81.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/mt4@2x-81.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/mt5@2x-82.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/mt5@2x-82.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/mt6@2x-83.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/mt6@2x-83.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/mt7@2x-84.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/mt7@2x-84.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/mt8@2x-85.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/mt8@2x-85.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/mt9@2x-86.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/mt9@2x-86.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st0-2492.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st0-2492.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st1-2862.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st1-2862.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st10-2871.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st10-2871.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st11-2936.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st11-2936.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st11-2938.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st11-2938.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st11-2985.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st11-2985.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st12-2987.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st12-2987.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st12-2989.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st12-2989.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st13-2960.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st13-2960.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st13-2963.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st13-2963.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st14-2940.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st14-2940.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st14-2955.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st14-2955.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st15-2941.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st15-2941.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st15-2956.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st15-2956.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st15-2969.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st15-2969.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st16-2942.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st16-2942.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st17-2943.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st17-2943.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st2-2863.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st2-2863.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st25-3099.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st25-3099.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st26-3129.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st26-3129.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st26-3148.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st26-3148.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st26-3150.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st26-3150.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st26-3155.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st26-3155.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st26-3158.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st26-3158.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st26-3160.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st26-3160.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st26-3164.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st26-3164.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st27-3147.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st27-3147.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st28-3141.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st28-3141.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st28-3145.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st28-3145.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st3-2864.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st3-2864.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st4-2865.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st4-2865.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st5-2866.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st5-2866.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st6-2867.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st6-2867.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st7-2868.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st7-2868.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st8-2869.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st8-2869.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/st9-2870.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/st9-2870.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/preview-micro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/preview-micro.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/mt1@2x-78.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/mt1@2x-78.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/mt2@2x-79.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/mt2@2x-79.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/mt3@2x-80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/mt3@2x-80.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/mt4@2x-81.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/mt4@2x-81.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/mt5@2x-82.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/mt5@2x-82.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/mt6@2x-83.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/mt6@2x-83.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/mt7@2x-84.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/mt7@2x-84.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/mt8@2x-85.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/mt8@2x-85.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/mt9@2x-86.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/mt9@2x-86.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st1-1330.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st1-1330.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st1-714.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st1-714.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st10-1072.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st10-1072.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st11-1076.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st11-1076.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st12-1078.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st12-1078.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st13-1086.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st13-1086.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st14-1136.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st14-1136.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st14-1283.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st14-1283.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st15-1135.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st15-1135.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st16-1134.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st16-1134.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st17-1133.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st17-1133.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st18-1277.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st18-1277.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st18-1279.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st18-1279.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st18-1281.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st18-1281.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st19-1248.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st19-1248.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st19-1276.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st19-1276.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st2-712.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st2-712.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st20-1249.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st20-1249.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st21-1250.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st21-1250.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st22-1253.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st22-1253.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st23-1254.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st23-1254.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st24-1255.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st24-1255.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st25-1256.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st25-1256.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st26-1257.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st26-1257.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st27-1258.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st27-1258.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st28-1259.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st28-1259.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st3-704.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st3-704.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st30-1261.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st30-1261.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st31-1262.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st31-1262.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st32-1263.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st32-1263.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st33-1285.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st33-1285.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st34-1265.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st34-1265.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st35-1266.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st35-1266.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st38-1333.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st38-1333.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st4-697.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st4-697.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st5-1063.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st5-1063.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st6-1064.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st6-1064.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st7-1065.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st7-1065.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st8-1066.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st8-1066.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/st9-1071.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/st9-1071.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/preview-micro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/preview-micro.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/mt1@2x-78.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/mt1@2x-78.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/mt2@2x-79.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/mt2@2x-79.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/mt3@2x-80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/mt3@2x-80.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/mt4@2x-81.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/mt4@2x-81.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/mt5@2x-82.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/mt5@2x-82.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/mt6@2x-83.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/mt6@2x-83.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/mt7@2x-84.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/mt7@2x-84.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/mt8@2x-85.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/mt8@2x-85.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/mt9@2x-86.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/mt9@2x-86.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st0-1341.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st0-1341.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st1-1339.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st1-1339.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st10-1941.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st10-1941.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st11-1609.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st11-1609.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st12-1612.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st12-1612.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st13-1613.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st13-1613.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st14-1614.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st14-1614.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st15-1945.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st15-1945.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st16-1948.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st16-1948.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st17-1902.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st17-1902.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st18-1644.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st18-1644.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st19-1783.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st19-1783.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st19-1785.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st19-1785.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st19-1787.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st19-1787.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st2-1597.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st2-1597.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st2-1600.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st2-1600.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st2-1603.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st2-1603.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st22-1820.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st22-1820.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st23-1821.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st23-1821.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st24-1829.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st24-1829.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st25-1830.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st25-1830.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st26-1832.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st26-1832.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st27-1835.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st27-1835.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st28-1836.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st28-1836.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st29-1953.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st29-1953.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st30-1924.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st30-1924.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st31-1926.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st31-1926.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st32-1927.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st32-1927.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st33-1928.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st33-1928.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st34-1929.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st34-1929.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st35-1930.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st35-1930.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st36-1931.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st36-1931.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st37-1932.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st37-1932.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st38-1958.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st38-1958.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st39-1934.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st39-1934.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st40-1935.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st40-1935.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st5-1789.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st5-1789.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st6-1800.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st6-1800.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st7-1801.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st7-1801.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st8-1939.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st8-1939.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/st9-1940.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/st9-1940.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/preview-micro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/preview-micro.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/mt1@2x-78.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/mt1@2x-78.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/mt2@2x-79.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/mt2@2x-79.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/mt3@2x-80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/mt3@2x-80.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/mt4@2x-81.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/mt4@2x-81.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/mt5@2x-82.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/mt5@2x-82.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/mt6@2x-83.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/mt6@2x-83.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/mt7@2x-84.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/mt7@2x-84.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/mt8@2x-85.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/mt8@2x-85.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/mt9@2x-86.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/mt9@2x-86.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st1-1333.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st1-1333.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st10-1768.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st10-1768.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st11-1771.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st11-1771.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st12-1774.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st12-1774.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st13-1793.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st13-1793.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st14-1827.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st14-1827.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st15-1828.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st15-1828.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st16-1849.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st16-1849.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st17-1850.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st17-1850.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st18-1851.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st18-1851.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st18-1885.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st18-1885.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st19-1852.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st19-1852.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st19-1895.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st19-1895.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st20-1889.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st20-1889.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st21-1899.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st21-1899.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st22-1891.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st22-1891.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st23-1893.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st23-1893.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st4-1747.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st4-1747.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st5-1766.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st5-1766.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st6-1762.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st6-1762.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st7-1765.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st7-1765.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st8-1755.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st8-1755.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/st9-1760.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/st9-1760.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/preview-micro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/preview-micro.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/mt10@2x-87.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/mt10@2x-87.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/mt1@2x-78.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/mt1@2x-78.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/mt2@2x-79.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/mt2@2x-79.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/mt3@2x-80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/mt3@2x-80.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/mt4@2x-81.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/mt4@2x-81.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/mt5@2x-82.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/mt5@2x-82.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/mt6@2x-83.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/mt6@2x-83.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/mt7@2x-84.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/mt7@2x-84.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/mt8@2x-85.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/mt8@2x-85.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/mt9@2x-86.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/mt9@2x-86.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st10-2048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st10-2048.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st11-2049.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st11-2049.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st12-2050.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st12-2050.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st13-2053.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st13-2053.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st14-2054.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st14-2054.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st15-1848.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st15-1848.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st15-1851.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st15-1851.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st15-1853.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st15-1853.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st15-2085.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st15-2085.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st19-2056.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st19-2056.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st19-2590.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st19-2590.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st20-2057.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st20-2057.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st21-2058.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st21-2058.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st22-2059.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st22-2059.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st24-2007.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st24-2007.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st24-2009.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st24-2009.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st24-2033.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st24-2033.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st24-2478.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st24-2478.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st25-1988.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st25-1988.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st25-2036.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st25-2036.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st25-2479.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st25-2479.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st27-2004.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st27-2004.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st28-2003.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st28-2003.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st29-2002.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st29-2002.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st29-2042.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st29-2042.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st30-2001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st30-2001.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st32-1999.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st32-1999.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st33-1998.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st33-1998.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st34-1997.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st34-1997.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st34-2041.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st34-2041.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st35-1990.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st35-1990.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st36-1996.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st36-1996.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st37-1995.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st37-1995.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st39-1993.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st39-1993.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st40-1992.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st40-1992.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st41-2037.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st41-2037.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st44-2039.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st44-2039.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st47-2083.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st47-2083.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st48-2204.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st48-2204.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st48-2241.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st48-2241.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st48-2246.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st48-2246.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st48-2303.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st48-2303.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st48-2307.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st48-2307.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st48-2311.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st48-2311.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st48-2316.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st48-2316.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st48-2318.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st48-2318.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st49-2243.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st49-2243.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st49-2262.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st49-2262.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st50-2235.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st50-2235.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st50-2294.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st50-2294.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st51-2292.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st51-2292.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st52-2290.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st52-2290.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st53-2288.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st53-2288.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st53-2320.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st53-2320.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st64-2397.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st64-2397.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st64-2453.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st64-2453.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st64-2457.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st64-2457.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st64-2459.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st64-2459.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st64-2461.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st64-2461.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st64-2470.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st64-2470.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st64-2472.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st64-2472.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st65-2450.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st65-2450.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st66-2448.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st66-2448.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st67-2446.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st67-2446.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st68-2432.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st68-2432.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st70-2588.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st70-2588.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st71-2585.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st71-2585.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st74-2473.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st74-2473.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st76-2568.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st76-2568.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st76-2574.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st76-2574.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st76-2578.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st76-2578.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st76-2579.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st76-2579.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st76-2581.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st76-2581.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/st76-2583.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/st76-2583.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/mt10@2x-87.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/mt10@2x-87.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/mt10@2x-87.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/mt10@2x-87.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/mt10@2x-87.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/mt10@2x-87.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Metadata/Properties.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Metadata/Properties.plist -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Metadata/Properties.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Metadata/Properties.plist -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Metadata/Properties.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Metadata/Properties.plist -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/pasted-image-560.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/pasted-image-560.png -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/pasted-image-775.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/pasted-image-775.png -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/pasted-image-884.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/pasted-image-884.png -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Metadata/Properties.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Metadata/Properties.plist -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Metadata/Properties.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Metadata/Properties.plist -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Metadata/Properties.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Metadata/Properties.plist -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/pasted-image-1341.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/pasted-image-1341.png -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/pasted-image-1457.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/pasted-image-1457.png -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/pasted-image-1529.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/pasted-image-1529.png -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/pasted-image-2167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/pasted-image-2167.png -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/pasted-image-2324.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/pasted-image-2324.png -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/pasted-image-1477.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/pasted-image-1477.png -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/pasted-image-1646.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/pasted-image-1646.png -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/pasted-image-1654.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/pasted-image-1654.png -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/pasted-image-small-1458.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/pasted-image-small-1458.png -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/pasted-image-small-2325.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/pasted-image-small-2325.png -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/pasted-image-small-561.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/pasted-image-small-561.png -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/pasted-image-small-776.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/pasted-image-small-776.png -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/pasted-image-small-885.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/pasted-image-small-885.png -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/pasted-image-small-1478.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/pasted-image-small-1478.png -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/pasted-image-small-1647.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/pasted-image-small-1647.png -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/pasted-image-small-1655.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/pasted-image-small-1655.png -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/Screen Shot 2016-02-22 at 1.45-3055.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/Screen Shot 2016-02-22 at 1.45-3055.png -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/Screen Shot 2016-02-22 at 10.12-2524.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/Screen Shot 2016-02-22 at 10.12-2524.png -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/Screen Shot 2015-04-21 at 11.15-2229.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/Screen Shot 2015-04-21 at 11.15-2229.png -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/Screen Shot 2016-02-22 at 12.56-2763.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/Screen Shot 2016-02-22 at 12.56-2763.png -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/Screen Shot 2015-04-21 at 11.15.55 AM-2228.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/Screen Shot 2015-04-21 at 11.15.55 AM-2228.png -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/Screen Shot 2016-02-22 at 1.45.10 PM-3054.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/Screen Shot 2016-02-22 at 1.45.10 PM-3054.png -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/Screen Shot 2016-02-22 at 1.47.21 PM-3081.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/Screen Shot 2016-02-22 at 1.47.21 PM-3081.png -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/Screen Shot 2016-02-22 at 12.56.48 PM-2762.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/Screen Shot 2016-02-22 at 12.56.48 PM-2762.png -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/Screen Shot 2016-02-22 at 10.12.18 AM-2523.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/Screen Shot 2016-02-22 at 10.12.18 AM-2523.png -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-1.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-closures-2.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/110809_FamilyChineseOahu_EN_02016_981x654-small-14.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-objects-1.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-1.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-2.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/110809_FamilyChineseOahu_EN_00317_2040x1360-small-12.jpg -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gilbert/jsdn/HEAD/learn/jsdn-functions-3.key/Data/110809_FamilyChineseOahu_EN_02390_2880x1921-small-10.jpg -------------------------------------------------------------------------------- /learn/jsdn-closures-1.key/Metadata/BuildVersionHistory.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Template: White (2014-02-28 09:41) 6 | M6.2-1861-1 7 | 8 | 9 | -------------------------------------------------------------------------------- /learn/jsdn-closures-2.key/Metadata/BuildVersionHistory.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Template: White (2014-02-28 09:41) 6 | M6.2-1861-1 7 | 8 | 9 | -------------------------------------------------------------------------------- /learn/jsdn-functions-1.key/Metadata/BuildVersionHistory.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Template: White (2014-02-28 09:41) 6 | M6.2-1861-1 7 | 8 | 9 | -------------------------------------------------------------------------------- /learn/jsdn-functions-2.key/Metadata/BuildVersionHistory.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Template: White (2014-02-28 09:41) 6 | M6.2-1861-1 7 | 8 | 9 | -------------------------------------------------------------------------------- /learn/jsdn-functions-3.key/Metadata/BuildVersionHistory.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Template: White (2014-02-28 09:41) 6 | M6.2-1861-1 7 | 8 | 9 | -------------------------------------------------------------------------------- /learn/jsdn-objects-1.key/Metadata/BuildVersionHistory.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Template: White (2014-02-28 09:41) 6 | M6.2-1861-1 7 | 8 | 9 | -------------------------------------------------------------------------------- /Cakefile: -------------------------------------------------------------------------------- 1 | fs = require 'fs' 2 | 3 | {print} = require 'sys' 4 | {spawn} = require 'child_process' 5 | 6 | option '-o', '--output [DIR]', 'directory for compiled code' 7 | 8 | build = (callback) -> 9 | coffee = spawn 'coffee', ['-c', '-o', 'lib', 'src'] 10 | coffee.stderr.on 'data', (data) -> 11 | process.stderr.write data.toString() 12 | coffee.stdout.on 'data', (data) -> 13 | print data.toString() 14 | coffee.on 'exit', (code) -> 15 | callback?() if code is 0 16 | 17 | task 'build', 'Build lib/ from src/', -> 18 | build() 19 | 20 | task 'watch', 'Watch src/ for changes', -> 21 | coffee = spawn 'coffee', ['-w', '-c', '-o', 'lib', 'src'] 22 | coffee.stderr.on 'data', (data) -> 23 | process.stderr.write data.toString() 24 | coffee.stdout.on 'data', (data) -> 25 | print data.toString() 26 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # JSDN: JavaScript Diagram Notation 2 | 3 | JSDN is a formalized way of visually simulating execution of the JavaScript language. It is both a diagram notation and set of simplified execution rules. 4 | 5 | ## Goals 6 | 7 | JSDN is intended to be a tool for teaching not just the JavaScript language, but general Computer Science concepts as well (heap, stack, closures, garbage collection, etc.). 8 | 9 | 100% accuracy on internals representation is **not** a goal of JSDN. Consistency and concepts are favored over intricate details such as language performance optimizations. For example, every time a variable is assigned to a new string, in JSDN we say the string is *created*, even though the string may already exist depending on the JS runtime / interpretor. 10 | 11 | ## Material 12 | 13 | 1. [Variables and Function Calls](learn/jsdn-functions-1.pdf?raw=true) 14 | 2. [More Function Calls](learn/jsdn-functions-2.pdf?raw=true) 15 | 3. [Functions as Arguments](learn/jsdn-functions-3.pdf?raw=true) 16 | 4. [Closures](learn/jsdn-closures-1.pdf?raw=true) 17 | 5. [Closures 2](learn/jsdn-closures-2.pdf?raw=true) 18 | 6. [Objects in Memory](learn/jsdn-objects-1.pdf?raw=true) 19 | -------------------------------------------------------------------------------- /code-examples/assets/jsdn.css: -------------------------------------------------------------------------------- 1 | #jsdn { position: relative; } 2 | .graph { background: #eaedf0; } 3 | 4 | .scope { 5 | border: 3px dashed #1b7ade; 6 | min-height: 100px; 7 | min-width: 300px; 8 | position: absolute; top: 0; left: 0; 9 | } 10 | 11 | .object, .value, .var-name { 12 | cursor: pointer; 13 | position: absolute; top: 0; left: 0; 14 | text-align: center; 15 | } 16 | 17 | .var-name { 18 | color: black; 19 | } 20 | .var-name b { color: #999; } 21 | 22 | .object { 23 | background: #fd923a; 24 | width: 130px; 25 | } 26 | .object .function-definition { 27 | background: #0e79ec; 28 | border-radius: 65px / 16px; 29 | line-height: 32px; 30 | min-width: 132px; 31 | position: absolute; top: -16px; 32 | } 33 | .object .function-definition .inner { 34 | color: black; 35 | position: relative; top: -31px; 36 | white-space: nowrap; 37 | width: auto; 38 | } 39 | 40 | .property { 41 | padding: 8px; 42 | } 43 | .property + .property { 44 | border-top: 1px solid #EAEDF0; 45 | } 46 | 47 | .value { 48 | background: #f3f3f3; 49 | border: 1px dashed; 50 | font-weight: bold; 51 | padding: 4px; 52 | min-width: 40px; 53 | } 54 | .value.number { 55 | color: #3498db; 56 | } 57 | .value.string { color: #9bac55; } 58 | .value.string::before { content: '"'; } 59 | .value.string::after { content: '"'; } 60 | -------------------------------------------------------------------------------- /code-examples/explicit-variables.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | JSDN Example #1 4 | 5 | 6 | 7 |
8 |
9 | 10 |
11 | 14 | 15 | 18 | 19 | 22 | 23 | 29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /code-examples/js-code-eval.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | JSDN Example #1 4 | 5 | 6 | 7 |
8 |
9 | 10 |
11 | 14 | 15 | 18 | 19 | 22 | 23 | 29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 51 | 52 | 99 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /src/jsdn.coffee: -------------------------------------------------------------------------------- 1 | _.templateSettings.interpolate = /\{\{(.+?)\}\}/g 2 | _.mixin 3 | getTemplate: (name) -> _.template $('#templates .' + name).html() 4 | 5 | # ConectionView original taken from https://github.com/idflood/ThreeNodes.js 6 | class ConnectionView extends Backbone.View 7 | initialize: (options) -> 8 | @scope = options.scope 9 | super 10 | @line = @scope.svg.path().attr 11 | stroke: "#222" 12 | fill: "none" 13 | # set the dom element 14 | @el = @line.node 15 | @from_node = options.from 16 | @to_node = options.to 17 | @render() 18 | 19 | remove: () -> 20 | if @scope.svg && @line 21 | @line.remove() 22 | delete @line 23 | return true 24 | 25 | render: () -> 26 | if @scope.svg && @line && @line.attrs 27 | @line.attr 28 | path: @getPath() 29 | 'arrow-end': 'classic-wide-long' 30 | 'stroke-width': 1.5 31 | 'stroke': '#333' 32 | @ 33 | 34 | getNodePosition: (node, type) -> 35 | o1 = node.$el.offset() 36 | if node.constructor == VarNameView 37 | o1.top += parseInt(node.$el.outerHeight() / 2, 10) + 2 38 | o1.left += 4 39 | else if not node.$el.hasClass('object') 40 | o1.top += parseInt(node.$el.outerHeight() / 2, 10) 41 | 42 | if type == 'from' 43 | o1.left += node.$el.width() 44 | return o1 45 | 46 | getPath: () -> 47 | f1 = @getNodePosition(@from_node, 'from') 48 | f2 = @getNodePosition(@to_node, 'to') 49 | 50 | offset = @scope.$el.offset() 51 | ofx = @scope.$el.scrollLeft() - offset.left 52 | ofy = @scope.$el.scrollTop() - offset.top 53 | x1 = f1.left + ofx 54 | y1 = f1.top + ofy 55 | x4 = f2.left + ofx 56 | y4 = f2.top + ofy 57 | min_diff = 42 58 | diffx = Math.max(min_diff, x4 - x1) 59 | diffy = Math.max(min_diff, y4 - y1) 60 | 61 | x2 = x1 + diffx * 0.5 62 | y2 = y1 63 | x3 = x4 - diffx * 0.5 64 | y3 = y4 65 | 66 | ["M", x1.toFixed(3), y1.toFixed(3), "C", x2, y2, x3, y3, x4.toFixed(3), y4.toFixed(3)].join(",") 67 | 68 | 69 | Property = Backbone.Model.extend({}) 70 | 71 | JsdnObject = Backbone.Collection.extend 72 | model: Property 73 | initialize: (models, options) -> 74 | @parent = options.parent 75 | @call = options.call 76 | 77 | for name, value of options.attrs 78 | if typeof value == 'function' 79 | func = new JsdnObject(null, { attrs: {}, parent: this, call: value }) 80 | this.add(name: name, value: func) 81 | else if typeof value == 'object' 82 | innerObject = new JsdnObject(null, { attrs: value, parent: this }) 83 | this.add(name: name, value: innerObject) 84 | else 85 | this.add({ name, value }) 86 | 87 | PrimitiveView = Backbone.View.extend 88 | className: 'value' 89 | initialize: (options) -> 90 | @scope = options.scope 91 | @$el.draggable 92 | containment: @scope.el 93 | drag: => this.trigger('move') 94 | stop: => this.trigger('move') 95 | @$el.css(position: 'absolute') # why does it relative 96 | @$el.addClass(typeof @model.get('value')) 97 | render: -> 98 | @model.to_node = this 99 | @$el.html @model.get('value') 100 | @ 101 | reposition: ($propertyEl, options={}) -> 102 | # Initialize value next to self 103 | if options.parentPos 104 | $parentObj = $propertyEl 105 | targetPos = options.parentPos 106 | else 107 | $parentObj = $propertyEl.closest('.object') 108 | targetPos = $parentObj.position() 109 | 110 | # cache offset for fastness 111 | offset = 112 | left: $propertyEl.outerWidth() + 40 113 | top: $propertyEl.index() * $propertyEl.outerHeight() + 3 114 | targetPos.left += offset.left 115 | targetPos.top += offset.top 116 | 117 | if options.animate && options.follow 118 | @$el.animate targetPos, 119 | duration: 120 120 | easing: 'easeOutBack' 121 | step: (now, fx) => 122 | this.trigger('move') 123 | pos = $parentObj.position() 124 | fx.end = pos[fx.prop] + offset[fx.prop] 125 | complete: => this.trigger('move') 126 | else if options.animate 127 | @$el.animate targetPos, duration: 120, easing: 'easeOutBack', progress: => this.trigger('move') 128 | else 129 | @$el.css(targetPos) 130 | 131 | PropertyView = Backbone.View.extend 132 | className: 'property' 133 | template: _.getTemplate 'jsdn-property' 134 | 135 | initialize: (options) -> 136 | @scope = options.scope 137 | 138 | renderConnection: -> 139 | @connView.render() 140 | 141 | render: -> 142 | @valueView?.remove() 143 | @connView?.remove() 144 | 145 | # Render self 146 | @$el.html this.template @model.toJSON() 147 | 148 | # Create & render value 149 | if @model.get('value').constructor == JsdnObject 150 | # Value is an object 151 | @valueView = new ObjectView(collection: @model.get('value'), scope: @scope) 152 | else 153 | # Value is a primitive (string, integer) 154 | @valueView = new PrimitiveView(model: @model, scope: @scope) 155 | 156 | this.listenTo @valueView, 'move', () => this.renderConnection() 157 | this.listenTo @scope, 'move', () => this.renderConnection() 158 | @scope.trigger 'new-val', @valueView 159 | 160 | # Create & render connection 161 | @connView = new ConnectionView(from: this, to: @valueView, scope: @scope) 162 | $('svg', @scope.graph).append @connView.render().el 163 | @ 164 | 165 | repositionValue: (options={}) -> 166 | # Initialize value view next to self 167 | @valueView.reposition(this.$el, options) 168 | @connView.render() 169 | 170 | VarNameView = PropertyView.extend 171 | className: 'var-name' 172 | template: _.getTemplate 'jsdn-var-name' 173 | events: 174 | 'dblclick': 'repositionValueAnimate' 175 | 176 | initialize: (options) -> 177 | @scope = options.scope 178 | @value = options.value 179 | @$el.draggable 180 | containment: @scope.el 181 | drag: => this.renderConnection() 182 | stop: => this.renderConnection() 183 | @$el.css(position: 'absolute') # why does it relative 184 | 185 | repositionValueAnimate: (e) -> 186 | this.repositionValue(animate: true, parentPos: @$el.position()) 187 | 188 | ObjectView = Backbone.View.extend 189 | className: 'object' 190 | templates: 191 | object: _.getTemplate 'jsdn-object' 192 | func: _.getTemplate 'jsdn-function' 193 | events: 194 | 'dblclick': 'repositionAnimate' 195 | 196 | initialize: (options) -> 197 | @scope = options.scope 198 | @$el.draggable 199 | containment: @scope.el 200 | drag: => 201 | this.trigger('move') 202 | this.renderConnections() 203 | stop: => this.trigger('move') 204 | @$el.css(position: 'absolute') # why does it relative 205 | 206 | @propViews = {} 207 | @type = if @collection.call then 'function' else 'object' 208 | 209 | addProperty: (prop) -> 210 | view = @propViews[prop.cid] = new PropertyView(model: prop, scope: @scope) 211 | @$('.properties').append view.render().el 212 | 213 | renderConnections: -> 214 | view.renderConnection() for cid, view of @propViews 215 | 216 | render: (pos) -> 217 | view.remove() for cid, view of @propViews 218 | @parentConn?.remove() 219 | 220 | # Render self 221 | if @type == 'function' 222 | def = @collection.call.toString().match(/function ?\([^\)]*\)/) 223 | @$el.html this.templates.func({ def }) 224 | else 225 | @$el.html this.templates.object() 226 | 227 | @$el.css(pos) if pos? 228 | # Render properties 229 | @collection.each(@addProperty, this) 230 | @ 231 | 232 | repositionValues: (options) -> 233 | view.repositionValue(options) for cid, view of @propViews 234 | 235 | reposition: ($propertyEl, options={}) -> 236 | # Initialize value next to self 237 | if options.parentPos 238 | pos = options.parentPos 239 | pos.top += $propertyEl.outerHeight() 240 | # Delete so it doesn't leak into nested reposition calls 241 | delete options.parentPos 242 | else 243 | pos = $propertyEl.closest('.object').position() 244 | pos.top += $propertyEl.index() * $propertyEl.outerHeight() + 30 245 | 246 | pos.left += $propertyEl.outerWidth() + 40 247 | 248 | if options.animate 249 | @$el.animate pos, 250 | duration: 100 251 | easing: 'easeOutExpo' 252 | progress: => 253 | this.trigger('move') 254 | view.connView.render() for cid, view of @propViews 255 | 256 | this.repositionValues _.extend(options, follow: true) 257 | else 258 | @$el.css(pos) 259 | this.repositionValues(options) 260 | 261 | repositionAnimate: -> this.repositionValues(animate: true) 262 | 263 | 264 | ScopeView = Backbone.View.extend 265 | className: 'scope' 266 | 267 | initialize: (options) -> 268 | @isRoot = options.root 269 | @vars = options.vars 270 | @width = options.width 271 | @height = options.height 272 | 273 | # Compile objects 274 | for name, value of @vars 275 | if typeof value == 'function' 276 | func = new JsdnObject(null, { attrs: {}, call: value }) 277 | @vars[name] = new Property({ name: name, value: func, scope: this }) 278 | else if typeof value == 'object' 279 | obj = new JsdnObject(null, { attrs: value }) 280 | @vars[name] = new Property({ name: name, value: obj, scope: this }) 281 | else 282 | @vars[name] = new Property({ name, value, scope: this }) 283 | 284 | # Set up SVG for drawing line connections 285 | @graph = $('
').appendTo(@el) 286 | @svg = Raphael(@graph[0], @width, @height) 287 | @svg.path("M0 -20 L0 -20").attr 288 | stroke: "#222" 289 | 'stroke-dasharray': "-" 290 | fill: "none" 291 | opacity: 0 292 | 293 | this.on 'new-val', (view) => @$el.append(view.render().el) 294 | 295 | # Store child views for cleanup 296 | @childViews = [] 297 | 298 | addLocalVariable: (name, value) -> 299 | view = @childViews[value.cid] = new VarNameView(model: value, scope: this) 300 | @$el.append view.render().el 301 | 302 | createInnerScope: (locals) -> 303 | newScope = new ScopeView 304 | vars: locals 305 | width: 300 306 | height: 200 307 | @$el.append(newScope.el) 308 | newScope.$el.draggable 309 | containment: @el 310 | drag: -> newScope.trigger('move') 311 | stop: -> newScope.trigger('move') 312 | newScope.render() 313 | 314 | render: -> 315 | view.remove() for cid, view of @propViews 316 | this.addLocalVariable(name, value) for name, value of @vars 317 | 318 | # object = new JsdnObject(null, { attrs: rootObject }) 319 | # window.objectView = new ObjectView(collection: object, pos: { x: 20, y: 20 }) 320 | # @$el.append(objectView.render({ top: 20, left: 20 }).el) 321 | # objectView.repositionValues() 322 | 323 | window.JSDN = 324 | graph: (variables) -> 325 | this.scope = new ScopeView 326 | root: true 327 | vars: variables 328 | el: '#jsdn-diagram' 329 | width: 1000 330 | height: 400 331 | this.scope.render() 332 | this 333 | -------------------------------------------------------------------------------- /lib/jsdn.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var ConnectionView, JsdnObject, ObjectView, PrimitiveView, Property, PropertyView, ScopeView, VarNameView; 3 | var __hasProp = Object.prototype.hasOwnProperty, __extends = function(child, parent) { 4 | for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } 5 | function ctor() { this.constructor = child; } 6 | ctor.prototype = parent.prototype; 7 | child.prototype = new ctor; 8 | child.__super__ = parent.prototype; 9 | return child; 10 | }, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; 11 | _.templateSettings.interpolate = /\{\{(.+?)\}\}/g; 12 | _.mixin({ 13 | getTemplate: function(name) { 14 | return _.template($('#templates .' + name).html()); 15 | } 16 | }); 17 | ConnectionView = (function() { 18 | __extends(ConnectionView, Backbone.View); 19 | function ConnectionView() { 20 | ConnectionView.__super__.constructor.apply(this, arguments); 21 | } 22 | ConnectionView.prototype.initialize = function(options) { 23 | this.scope = options.scope; 24 | ConnectionView.__super__.initialize.apply(this, arguments); 25 | this.line = this.scope.svg.path().attr({ 26 | stroke: "#222", 27 | fill: "none" 28 | }); 29 | this.el = this.line.node; 30 | this.from_node = options.from; 31 | this.to_node = options.to; 32 | return this.render(); 33 | }; 34 | ConnectionView.prototype.remove = function() { 35 | if (this.scope.svg && this.line) { 36 | this.line.remove(); 37 | delete this.line; 38 | } 39 | return true; 40 | }; 41 | ConnectionView.prototype.render = function() { 42 | if (this.scope.svg && this.line && this.line.attrs) { 43 | this.line.attr({ 44 | path: this.getPath(), 45 | 'arrow-end': 'classic-wide-long', 46 | 'stroke-width': 1.5, 47 | 'stroke': '#333' 48 | }); 49 | } 50 | return this; 51 | }; 52 | ConnectionView.prototype.getNodePosition = function(node, type) { 53 | var o1; 54 | o1 = node.$el.offset(); 55 | if (node.constructor === VarNameView) { 56 | o1.top += parseInt(node.$el.outerHeight() / 2, 10) + 2; 57 | o1.left += 4; 58 | } else if (!node.$el.hasClass('object')) { 59 | o1.top += parseInt(node.$el.outerHeight() / 2, 10); 60 | } 61 | if (type === 'from') { 62 | o1.left += node.$el.width(); 63 | } 64 | return o1; 65 | }; 66 | ConnectionView.prototype.getPath = function() { 67 | var diffx, diffy, f1, f2, min_diff, offset, ofx, ofy, x1, x2, x3, x4, y1, y2, y3, y4; 68 | f1 = this.getNodePosition(this.from_node, 'from'); 69 | f2 = this.getNodePosition(this.to_node, 'to'); 70 | offset = this.scope.$el.offset(); 71 | ofx = this.scope.$el.scrollLeft() - offset.left; 72 | ofy = this.scope.$el.scrollTop() - offset.top; 73 | x1 = f1.left + ofx; 74 | y1 = f1.top + ofy; 75 | x4 = f2.left + ofx; 76 | y4 = f2.top + ofy; 77 | min_diff = 42; 78 | diffx = Math.max(min_diff, x4 - x1); 79 | diffy = Math.max(min_diff, y4 - y1); 80 | x2 = x1 + diffx * 0.5; 81 | y2 = y1; 82 | x3 = x4 - diffx * 0.5; 83 | y3 = y4; 84 | return ["M", x1.toFixed(3), y1.toFixed(3), "C", x2, y2, x3, y3, x4.toFixed(3), y4.toFixed(3)].join(","); 85 | }; 86 | return ConnectionView; 87 | })(); 88 | Property = Backbone.Model.extend({}); 89 | JsdnObject = Backbone.Collection.extend({ 90 | model: Property, 91 | initialize: function(models, options) { 92 | var func, innerObject, name, value, _ref, _results; 93 | this.parent = options.parent; 94 | this.call = options.call; 95 | _ref = options.attrs; 96 | _results = []; 97 | for (name in _ref) { 98 | value = _ref[name]; 99 | _results.push(typeof value === 'function' ? (func = new JsdnObject(null, { 100 | attrs: {}, 101 | parent: this, 102 | call: value 103 | }), this.add({ 104 | name: name, 105 | value: func 106 | })) : typeof value === 'object' ? (innerObject = new JsdnObject(null, { 107 | attrs: value, 108 | parent: this 109 | }), this.add({ 110 | name: name, 111 | value: innerObject 112 | })) : this.add({ 113 | name: name, 114 | value: value 115 | })); 116 | } 117 | return _results; 118 | } 119 | }); 120 | PrimitiveView = Backbone.View.extend({ 121 | className: 'value', 122 | initialize: function(options) { 123 | this.scope = options.scope; 124 | this.$el.draggable({ 125 | containment: this.scope.el, 126 | drag: __bind(function() { 127 | return this.trigger('move'); 128 | }, this), 129 | stop: __bind(function() { 130 | return this.trigger('move'); 131 | }, this) 132 | }); 133 | this.$el.css({ 134 | position: 'absolute' 135 | }); 136 | return this.$el.addClass(typeof this.model.get('value')); 137 | }, 138 | render: function() { 139 | this.model.to_node = this; 140 | this.$el.html(this.model.get('value')); 141 | return this; 142 | }, 143 | reposition: function($propertyEl, options) { 144 | var $parentObj, offset, targetPos; 145 | if (options == null) { 146 | options = {}; 147 | } 148 | if (options.parentPos) { 149 | $parentObj = $propertyEl; 150 | targetPos = options.parentPos; 151 | } else { 152 | $parentObj = $propertyEl.closest('.object'); 153 | targetPos = $parentObj.position(); 154 | } 155 | offset = { 156 | left: $propertyEl.outerWidth() + 40, 157 | top: $propertyEl.index() * $propertyEl.outerHeight() + 3 158 | }; 159 | targetPos.left += offset.left; 160 | targetPos.top += offset.top; 161 | if (options.animate && options.follow) { 162 | return this.$el.animate(targetPos, { 163 | duration: 120, 164 | easing: 'easeOutBack', 165 | step: __bind(function(now, fx) { 166 | var pos; 167 | this.trigger('move'); 168 | pos = $parentObj.position(); 169 | return fx.end = pos[fx.prop] + offset[fx.prop]; 170 | }, this), 171 | complete: __bind(function() { 172 | return this.trigger('move'); 173 | }, this) 174 | }); 175 | } else if (options.animate) { 176 | return this.$el.animate(targetPos, { 177 | duration: 120, 178 | easing: 'easeOutBack', 179 | progress: __bind(function() { 180 | return this.trigger('move'); 181 | }, this) 182 | }); 183 | } else { 184 | return this.$el.css(targetPos); 185 | } 186 | } 187 | }); 188 | PropertyView = Backbone.View.extend({ 189 | className: 'property', 190 | template: _.getTemplate('jsdn-property'), 191 | initialize: function(options) { 192 | return this.scope = options.scope; 193 | }, 194 | renderConnection: function() { 195 | return this.connView.render(); 196 | }, 197 | render: function() { 198 | var _ref, _ref2; 199 | if ((_ref = this.valueView) != null) { 200 | _ref.remove(); 201 | } 202 | if ((_ref2 = this.connView) != null) { 203 | _ref2.remove(); 204 | } 205 | this.$el.html(this.template(this.model.toJSON())); 206 | if (this.model.get('value').constructor === JsdnObject) { 207 | this.valueView = new ObjectView({ 208 | collection: this.model.get('value'), 209 | scope: this.scope 210 | }); 211 | } else { 212 | this.valueView = new PrimitiveView({ 213 | model: this.model, 214 | scope: this.scope 215 | }); 216 | } 217 | this.listenTo(this.valueView, 'move', __bind(function() { 218 | return this.renderConnection(); 219 | }, this)); 220 | this.listenTo(this.scope, 'move', __bind(function() { 221 | return this.renderConnection(); 222 | }, this)); 223 | this.scope.trigger('new-val', this.valueView); 224 | this.connView = new ConnectionView({ 225 | from: this, 226 | to: this.valueView, 227 | scope: this.scope 228 | }); 229 | $('svg', this.scope.graph).append(this.connView.render().el); 230 | return this; 231 | }, 232 | repositionValue: function(options) { 233 | if (options == null) { 234 | options = {}; 235 | } 236 | this.valueView.reposition(this.$el, options); 237 | return this.connView.render(); 238 | } 239 | }); 240 | VarNameView = PropertyView.extend({ 241 | className: 'var-name', 242 | template: _.getTemplate('jsdn-var-name'), 243 | events: { 244 | 'dblclick': 'repositionValueAnimate' 245 | }, 246 | initialize: function(options) { 247 | this.scope = options.scope; 248 | this.value = options.value; 249 | this.$el.draggable({ 250 | containment: this.scope.el, 251 | drag: __bind(function() { 252 | return this.renderConnection(); 253 | }, this), 254 | stop: __bind(function() { 255 | return this.renderConnection(); 256 | }, this) 257 | }); 258 | return this.$el.css({ 259 | position: 'absolute' 260 | }); 261 | }, 262 | repositionValueAnimate: function(e) { 263 | return this.repositionValue({ 264 | animate: true, 265 | parentPos: this.$el.position() 266 | }); 267 | } 268 | }); 269 | ObjectView = Backbone.View.extend({ 270 | className: 'object', 271 | templates: { 272 | object: _.getTemplate('jsdn-object'), 273 | func: _.getTemplate('jsdn-function') 274 | }, 275 | events: { 276 | 'dblclick': 'repositionAnimate' 277 | }, 278 | initialize: function(options) { 279 | this.scope = options.scope; 280 | this.$el.draggable({ 281 | containment: this.scope.el, 282 | drag: __bind(function() { 283 | this.trigger('move'); 284 | return this.renderConnections(); 285 | }, this), 286 | stop: __bind(function() { 287 | return this.trigger('move'); 288 | }, this) 289 | }); 290 | this.$el.css({ 291 | position: 'absolute' 292 | }); 293 | this.propViews = {}; 294 | return this.type = this.collection.call ? 'function' : 'object'; 295 | }, 296 | addProperty: function(prop) { 297 | var view; 298 | view = this.propViews[prop.cid] = new PropertyView({ 299 | model: prop, 300 | scope: this.scope 301 | }); 302 | return this.$('.properties').append(view.render().el); 303 | }, 304 | renderConnections: function() { 305 | var cid, view, _ref, _results; 306 | _ref = this.propViews; 307 | _results = []; 308 | for (cid in _ref) { 309 | view = _ref[cid]; 310 | _results.push(view.renderConnection()); 311 | } 312 | return _results; 313 | }, 314 | render: function(pos) { 315 | var cid, def, view, _ref, _ref2; 316 | _ref = this.propViews; 317 | for (cid in _ref) { 318 | view = _ref[cid]; 319 | view.remove(); 320 | } 321 | if ((_ref2 = this.parentConn) != null) { 322 | _ref2.remove(); 323 | } 324 | if (this.type === 'function') { 325 | def = this.collection.call.toString().match(/function ?\([^\)]*\)/); 326 | this.$el.html(this.templates.func({ 327 | def: def 328 | })); 329 | } else { 330 | this.$el.html(this.templates.object()); 331 | } 332 | if (pos != null) { 333 | this.$el.css(pos); 334 | } 335 | this.collection.each(this.addProperty, this); 336 | return this; 337 | }, 338 | repositionValues: function(options) { 339 | var cid, view, _ref, _results; 340 | _ref = this.propViews; 341 | _results = []; 342 | for (cid in _ref) { 343 | view = _ref[cid]; 344 | _results.push(view.repositionValue(options)); 345 | } 346 | return _results; 347 | }, 348 | reposition: function($propertyEl, options) { 349 | var pos; 350 | if (options == null) { 351 | options = {}; 352 | } 353 | if (options.parentPos) { 354 | pos = options.parentPos; 355 | pos.top += $propertyEl.outerHeight(); 356 | delete options.parentPos; 357 | } else { 358 | pos = $propertyEl.closest('.object').position(); 359 | pos.top += $propertyEl.index() * $propertyEl.outerHeight() + 30; 360 | } 361 | pos.left += $propertyEl.outerWidth() + 40; 362 | if (options.animate) { 363 | this.$el.animate(pos, { 364 | duration: 100, 365 | easing: 'easeOutExpo', 366 | progress: __bind(function() { 367 | var cid, view, _ref, _results; 368 | this.trigger('move'); 369 | _ref = this.propViews; 370 | _results = []; 371 | for (cid in _ref) { 372 | view = _ref[cid]; 373 | _results.push(view.connView.render()); 374 | } 375 | return _results; 376 | }, this) 377 | }); 378 | return this.repositionValues(_.extend(options, { 379 | follow: true 380 | })); 381 | } else { 382 | this.$el.css(pos); 383 | return this.repositionValues(options); 384 | } 385 | }, 386 | repositionAnimate: function() { 387 | return this.repositionValues({ 388 | animate: true 389 | }); 390 | } 391 | }); 392 | ScopeView = Backbone.View.extend({ 393 | className: 'scope', 394 | initialize: function(options) { 395 | var func, name, obj, value, _ref; 396 | this.isRoot = options.root; 397 | this.vars = options.vars; 398 | this.width = options.width; 399 | this.height = options.height; 400 | _ref = this.vars; 401 | for (name in _ref) { 402 | value = _ref[name]; 403 | if (typeof value === 'function') { 404 | func = new JsdnObject(null, { 405 | attrs: {}, 406 | call: value 407 | }); 408 | this.vars[name] = new Property({ 409 | name: name, 410 | value: func, 411 | scope: this 412 | }); 413 | } else if (typeof value === 'object') { 414 | obj = new JsdnObject(null, { 415 | attrs: value 416 | }); 417 | this.vars[name] = new Property({ 418 | name: name, 419 | value: obj, 420 | scope: this 421 | }); 422 | } else { 423 | this.vars[name] = new Property({ 424 | name: name, 425 | value: value, 426 | scope: this 427 | }); 428 | } 429 | } 430 | this.graph = $('
').appendTo(this.el); 431 | this.svg = Raphael(this.graph[0], this.width, this.height); 432 | this.svg.path("M0 -20 L0 -20").attr({ 433 | stroke: "#222", 434 | 'stroke-dasharray': "-", 435 | fill: "none", 436 | opacity: 0 437 | }); 438 | this.on('new-val', __bind(function(view) { 439 | return this.$el.append(view.render().el); 440 | }, this)); 441 | return this.childViews = []; 442 | }, 443 | addLocalVariable: function(name, value) { 444 | var view; 445 | view = this.childViews[value.cid] = new VarNameView({ 446 | model: value, 447 | scope: this 448 | }); 449 | return this.$el.append(view.render().el); 450 | }, 451 | createInnerScope: function(locals) { 452 | var newScope; 453 | newScope = new ScopeView({ 454 | vars: locals, 455 | width: 300, 456 | height: 200 457 | }); 458 | this.$el.append(newScope.el); 459 | newScope.$el.draggable({ 460 | containment: this.el, 461 | drag: function() { 462 | return newScope.trigger('move'); 463 | }, 464 | stop: function() { 465 | return newScope.trigger('move'); 466 | } 467 | }); 468 | return newScope.render(); 469 | }, 470 | render: function() { 471 | var cid, name, value, view, _ref, _ref2, _results; 472 | _ref = this.propViews; 473 | for (cid in _ref) { 474 | view = _ref[cid]; 475 | view.remove(); 476 | } 477 | _ref2 = this.vars; 478 | _results = []; 479 | for (name in _ref2) { 480 | value = _ref2[name]; 481 | _results.push(this.addLocalVariable(name, value)); 482 | } 483 | return _results; 484 | } 485 | }); 486 | window.JSDN = { 487 | graph: function(variables) { 488 | this.scope = new ScopeView({ 489 | root: true, 490 | vars: variables, 491 | el: '#jsdn-diagram', 492 | width: 1000, 493 | height: 400 494 | }); 495 | this.scope.render(); 496 | return this; 497 | } 498 | }; 499 | }).call(this); 500 | --------------------------------------------------------------------------------