HW4: done ex1 ex2

This commit is contained in:
Claudio Maggioni 2019-10-11 15:00:35 +02:00
parent 767fc8cb77
commit 4264218206
60 changed files with 2971 additions and 1 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

4
.gitignore vendored
View File

@ -1 +1,3 @@
/**/.DS_Store
**/node_modules/**/*
**/.DS_Store

View File

@ -0,0 +1 @@
My filename starts with a number

View File

@ -0,0 +1 @@
My filename has uppercase and lowercase characters

Binary file not shown.

After

Width:  |  Height:  |  Size: 1003 KiB

View File

@ -0,0 +1,3 @@
$(function(){
$("#OEV-general-info").tablesorter({sortList:[[0,0]]});
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
$('.stats').each(function(){
console.log(typeof this.id =='undefined' ? 'sorry, no id ' : this.id);
});

Binary file not shown.

View File

@ -0,0 +1,6 @@
<html>
<head>mytitle</head>
<body>
Hello my name is masiar, I am 26 years old and I listen to classical music, hello hello hello.
</body>
</html>

View File

@ -0,0 +1 @@
Hello my name is masiar, I am 26 years old and I listen to classical music, hello hello hello.

View File

@ -0,0 +1 @@
I have spaces in my file name

View File

@ -0,0 +1 @@
Hello Express.js

View File

@ -0,0 +1 @@
I have no extension

View File

@ -0,0 +1,554 @@
[
{
"title": "Caterpillar_Butterfly",
"img_thumb": "http://farm4.staticflickr.com/3024/3036341686_2a4cc2d8cd_q.jpg",
"img_src": "http://farm4.staticflickr.com/3024/3036341686_4138dfbecc_o.jpg",
"tags": "butterfly quote caterpillar wisdom quotation masterton henleylake sirwiseowl"
},
{
"title": "Love Is A Circle ( But that circle can take many directions)",
"img_thumb": "http://farm4.staticflickr.com/3144/3086077854_7eb1f41f1c_q.jpg",
"img_src": "http://farm4.staticflickr.com/3144/3086077854_58e1b7e0c8_o.jpg",
"tags": "red flower love circle poem round directions mannyfeldman"
},
{
"title": "Painting - Dolphin - Sylvia",
"img_thumb": "http://farm4.staticflickr.com/3098/3083171920_79cff2fb5c_q.jpg",
"img_src": "http://farm4.staticflickr.com/3098/3083171920_5cb279c494_o.jpg",
"tags": "fish art water painting acrylic folkart dolphin canvas sylvia"
},
{
"title": "Sylvia - Folk Art",
"img_thumb": "http://farm4.staticflickr.com/3063/3010518527_91b05bf4a8_q.jpg",
"img_src": "http://farm4.staticflickr.com/3063/3010518527_216ef4671d_o.jpg",
"tags": "art painting folkart sylvia"
},
{
"title": "The Critique",
"img_thumb": "http://farm4.staticflickr.com/3211/3067267946_82b70b00fe_q.jpg",
"img_src": "http://farm4.staticflickr.com/3211/3067267946_42c7e243fd_o.jpg",
"tags": "man ornament critique"
},
{
"title": "Ugly Fruit #2",
"img_thumb": "http://farm4.staticflickr.com/3285/3006902054_794b0b9ae8_q.jpg",
"img_src": "http://farm4.staticflickr.com/3285/3006902054_320478abb0_o.jpg",
"tags": "orange fruit yummy ugly citrus tabletop"
},
{
"title": "Spring!",
"img_thumb": "http://farm4.staticflickr.com/3008/2961836473_132293ceca_q.jpg",
"img_src": "http://farm4.staticflickr.com/3008/2961836473_7b419f5a67_o.jpg",
"tags": "park green water spring elizabeth queen lush outlet masterton spillway wairarapa"
},
{
"title": "Park Fernery Collage",
"img_thumb": "http://farm4.staticflickr.com/3067/2942822270_3d57aacc2c_q.jpg",
"img_src": "http://farm4.staticflickr.com/3067/2942822270_a291bf6f8a_o.jpg",
"tags": "picnik masterton queenelizabethpark koru wairarapa fernery"
},
{
"title": "Time Keepers #1",
"img_thumb": "http://farm4.staticflickr.com/3083/2900009148_83fc0da107_q.jpg",
"img_src": "http://farm4.staticflickr.com/3083/2900009148_622a0f7ce6_o.jpg",
"tags": "love walking couple running christian positive sweethearts halfmarathon timekeepers carterton shinninglight"
},
{
"title": "\" Just Right, Don't Move!\"",
"img_thumb": "http://farm4.staticflickr.com/3158/2900008246_9403d3bcee_q.jpg",
"img_src": "http://farm4.staticflickr.com/3158/2900008246_6540470bf2_o.jpg",
"tags": "spin bikes gym clm"
},
{
"title": "Peace Lily",
"img_thumb": "http://farm1.staticflickr.com/128/317450907_0925e56c88_q.jpg",
"img_src": "http://farm1.staticflickr.com/128/317450907_0925e56c88_o.jpg",
"tags": "flower peace lily"
},
{
"title": "Wind Song",
"img_thumb": "http://farm1.staticflickr.com/80/215500457_b97dc04a75_q.jpg",
"img_src": "http://farm1.staticflickr.com/80/215500457_b97dc04a75_o.jpg",
"tags": ""
},
{
"title": "Lightbox Daisy For Gale",
"img_thumb": "http://farm1.staticflickr.com/161/338097953_2a383c8d6c_q.jpg",
"img_src": "http://farm1.staticflickr.com/161/338097953_2a383c8d6c_o.jpg",
"tags": "flower daisy impressedbeauty"
},
{
"title": "Pure White Rose",
"img_thumb": "http://farm1.staticflickr.com/46/132157195_cd5b583c04_q.jpg",
"img_src": "http://farm1.staticflickr.com/46/132157195_cd5b583c04_o.jpg",
"tags": "rose photos master"
},
{
"title": "Paradise For The Birds",
"img_thumb": "http://farm1.staticflickr.com/104/313200218_b80f8a2589_q.jpg",
"img_src": "http://farm1.staticflickr.com/104/313200218_b80f8a2589_o.jpg",
"tags": "flower quality flax abigfave impressedbeauty"
},
{
"title": "Tabletop",
"img_thumb": "http://farm1.staticflickr.com/93/278516623_311c76e55c_q.jpg",
"img_src": "http://farm1.staticflickr.com/93/278516623_311c76e55c_o.jpg",
"tags": "flower tabletop lilyofthevalley"
},
{
"title": "Vacation Dream!",
"img_thumb": "http://farm1.staticflickr.com/172/378737758_ed2b3466a7_q.jpg",
"img_src": "http://farm1.staticflickr.com/172/378737758_ed2b3466a7_o.jpg",
"tags": "vacation holiday kids poem"
},
{
"title": "Light And Bright",
"img_thumb": "http://farm1.staticflickr.com/178/400090955_b6dd6d6161_q.jpg",
"img_src": "http://farm1.staticflickr.com/178/400090955_b6dd6d6161_o.jpg",
"tags": "white tree blossom picnik flickrdiamond"
},
{
"title": "Post-it Stickers",
"img_thumb": "http://farm1.staticflickr.com/136/360078113_bdd169fc2e_q.jpg",
"img_src": "http://farm1.staticflickr.com/136/360078113_bdd169fc2e_o.jpg",
"tags": "postit lightbox"
},
{
"title": "Bee's Delight",
"img_thumb": "http://farm1.staticflickr.com/166/390903880_79db69ce73_q.jpg",
"img_src": "http://farm1.staticflickr.com/166/390903880_79db69ce73_o.jpg",
"tags": "flower"
},
{
"title": "Sunset",
"img_thumb": "http://farm1.staticflickr.com/157/413887722_5cdcb7af93_q.jpg",
"img_src": "http://farm1.staticflickr.com/157/413887722_2fe587a179_o.jpg",
"tags": "sunset clouds masterton blueribbonwinner"
},
{
"title": "The 2006 balloon festival is fast approaching",
"img_thumb": "http://farm1.staticflickr.com/49/111124453_1bf152c2e3_q.jpg",
"img_src": "http://farm1.staticflickr.com/49/111124453_1bf152c2e3_o.jpg",
"tags": "balloons wairarapa"
},
{
"title": "Harvest Time",
"img_thumb": "http://farm1.staticflickr.com/125/401490019_6896f4916a_q.jpg",
"img_src": "http://farm1.staticflickr.com/125/401490019_6896f4916a_o.jpg",
"tags": "horse wheat harvest nostalgia hay harvester clydesdale wairarapa harvesttime carterton naturesfinest vintagemachineryclub"
},
{
"title": "Exploration (Table-Top)",
"img_thumb": "http://farm1.staticflickr.com/51/139449439_bd6c9ec072_q.jpg",
"img_src": "http://farm1.staticflickr.com/51/139449439_bd6c9ec072_o.jpg",
"tags": "snail tabletop"
},
{
"title": "Waiting In The Rain",
"img_thumb": "http://farm1.staticflickr.com/45/168509762_9f740a6ff5_q.jpg",
"img_src": "http://farm1.staticflickr.com/45/168509762_9f740a6ff5_o.jpg",
"tags": ""
},
{
"title": "Look Left, Look Right",
"img_thumb": "http://farm1.staticflickr.com/57/174174043_749a00e1d8_q.jpg",
"img_src": "http://farm1.staticflickr.com/57/174174043_749a00e1d8_o.jpg",
"tags": ""
},
{
"title": "Tabletop Nonsense",
"img_thumb": "http://farm1.staticflickr.com/121/297567068_56eeb3c80b_q.jpg",
"img_src": "http://farm1.staticflickr.com/121/297567068_56eeb3c80b_o.jpg",
"tags": "blue tomato cucumber fork celery"
},
{
"title": "Before The Storm",
"img_thumb": "http://farm1.staticflickr.com/108/297095965_80bff2894b_q.jpg",
"img_src": "http://farm1.staticflickr.com/108/297095965_80bff2894b_o.jpg",
"tags": "sky storm clouds"
},
{
"title": "Kingfisher (Kotare)",
"img_thumb": "http://farm1.staticflickr.com/50/158272408_716eabc603_q.jpg",
"img_src": "http://farm1.staticflickr.com/50/158272408_716eabc603_o.jpg",
"tags": "kingfisher"
},
{
"title": "Summer Time!!",
"img_thumb": "http://farm1.staticflickr.com/114/309864904_8d5bcfcb47_q.jpg",
"img_src": "http://farm1.staticflickr.com/114/309864904_8d5bcfcb47_o.jpg",
"tags": "rose"
},
{
"title": "Cotton Bud Swirl",
"img_thumb": "http://farm1.staticflickr.com/84/245005863_f2c8ce7804_q.jpg",
"img_src": "http://farm1.staticflickr.com/84/245005863_f2c8ce7804_o.jpg",
"tags": ""
},
{
"title": "Winter Sunrise",
"img_thumb": "http://farm2.staticflickr.com/1422/613657493_20d8fb1f1f_q.jpg",
"img_src": "http://farm2.staticflickr.com/1422/613657493_1d00ba4212_o.jpg",
"tags": "trees winter sunrise fence frost cows"
},
{
"title": "Full Steam Ahead! (Black & White)",
"img_thumb": "http://farm1.staticflickr.com/171/400231570_a93a03df37_q.jpg",
"img_src": "http://farm1.staticflickr.com/171/400231570_a93a03df37_o.jpg",
"tags": "train searchthebest steam locomotive picnik steamtrain"
},
{
"title": "Carrie's Marbles! The large marble is for thinking, The rest are just loose marbles",
"img_thumb": "http://farm1.staticflickr.com/149/354327704_04297d9675_q.jpg",
"img_src": "http://farm1.staticflickr.com/149/354327704_04297d9675_o.jpg",
"tags": "stones pebbles marbles"
},
{
"title": "Colour My Day",
"img_thumb": "http://farm1.staticflickr.com/98/419305621_7cdfbcc608_q.jpg",
"img_src": "http://farm1.staticflickr.com/98/419305621_87b8a38d82_o.jpg",
"tags": "color ballooncolour"
},
{
"title": "Lightbox Carnation",
"img_thumb": "http://farm1.staticflickr.com/180/366212220_b911aa88f3_q.jpg",
"img_src": "http://farm1.staticflickr.com/180/366212220_b911aa88f3_o.jpg",
"tags": "yellow carnation lightbox"
},
{
"title": "Flower",
"img_thumb": "http://farm1.staticflickr.com/143/340291358_bff340253b_q.jpg",
"img_src": "http://farm1.staticflickr.com/143/340291358_bff340253b_o.jpg",
"tags": "flower lightbox"
},
{
"title": "Lilly Of The Valley",
"img_thumb": "http://farm1.staticflickr.com/115/270493977_133a617c2a_q.jpg",
"img_src": "http://farm1.staticflickr.com/115/270493977_133a617c2a_o.jpg",
"tags": "white flower lilyofthevalley excellence abigfave"
},
{
"title": "Coffee and Cake",
"img_thumb": "http://farm1.staticflickr.com/130/371172885_18fbb535fe_q.jpg",
"img_src": "http://farm1.staticflickr.com/130/371172885_18fbb535fe_o.jpg",
"tags": "coffee cake painting paint acrylic canvas"
},
{
"title": "Spring Beauty",
"img_thumb": "http://farm1.staticflickr.com/93/221386283_608ffb9e49_q.jpg",
"img_src": "http://farm1.staticflickr.com/93/221386283_608ffb9e49_o.jpg",
"tags": "flower cffaa"
},
{
"title": "Sun Burst!",
"img_thumb": "http://farm3.staticflickr.com/2384/1501073136_10db17749e_q.jpg",
"img_src": "http://farm3.staticflickr.com/2384/1501073136_1459c159f7_o.jpg",
"tags": "trees sunlight shadows shade diamondclassphotographer flickrdiamond diamondclassphotography onlythebestare"
},
{
"title": "Power of steam",
"img_thumb": "http://farm1.staticflickr.com/31/100898032_acc3f825ae_q.jpg",
"img_src": "http://farm1.staticflickr.com/31/100898032_acc3f825ae_o.jpg",
"tags": "trains"
},
{
"title": "Majestic!",
"img_thumb": "http://farm3.staticflickr.com/2305/1807474456_b64a691f10_q.jpg",
"img_src": "http://farm3.staticflickr.com/2305/1807474456_d8f3b2321c_o.jpg",
"tags": "white pigeon"
},
{
"title": "Man In Crisis",
"img_thumb": "http://farm1.staticflickr.com/61/160435367_c00d2016ce_q.jpg",
"img_src": "http://farm1.staticflickr.com/61/160435367_c00d2016ce_o.jpg",
"tags": "man crisis"
},
{
"title": "Mr Panda",
"img_thumb": "http://farm1.staticflickr.com/77/193707367_3027a754a7_q.jpg",
"img_src": "http://farm1.staticflickr.com/77/193707367_3027a754a7_o.jpg",
"tags": "painting panda folkart"
},
{
"title": "Winter Morning",
"img_thumb": "http://farm1.staticflickr.com/149/373931818_2d70ec1f4d_q.jpg",
"img_src": "http://farm1.staticflickr.com/149/373931818_2d70ec1f4d_o.jpg",
"tags": "road winter people mist tree fog blackwhite poem"
},
{
"title": "East Coast Church",
"img_thumb": "http://farm1.staticflickr.com/159/355314482_232e2308fe_q.jpg",
"img_src": "http://farm1.staticflickr.com/159/355314482_232e2308fe_o.jpg",
"tags": "church"
},
{
"title": "Exploration (Table-Top)",
"img_thumb": "http://farm1.staticflickr.com/44/139449392_5a1baaf278_q.jpg",
"img_src": "http://farm1.staticflickr.com/44/139449392_5a1baaf278_o.jpg",
"tags": "snail tabletop"
},
{
"title": "How to tell when you are flying over Africa",
"img_thumb": "http://farm1.staticflickr.com/45/152308039_6c30ff835f_q.jpg",
"img_src": "http://farm1.staticflickr.com/45/152308039_6c30ff835f_o.jpg",
"tags": "joke"
},
{
"title": "\"Sylvia\"",
"img_thumb": "http://farm1.staticflickr.com/185/377856060_44ada2c267_q.jpg",
"img_src": "http://farm1.staticflickr.com/185/377856060_44ada2c267_o.jpg",
"tags": "rose poem"
},
{
"title": "First Oil Painting",
"img_thumb": "http://farm1.staticflickr.com/120/314354719_43b83e10ab_q.jpg",
"img_src": "http://farm1.staticflickr.com/120/314354719_43b83e10ab_o.jpg",
"tags": "painting canvas oilpainting"
},
{
"title": "Wind Power",
"img_thumb": "http://farm1.staticflickr.com/12/96640697_33906e4123_q.jpg",
"img_src": "http://farm1.staticflickr.com/12/96640697_33906e4123_o.jpg",
"tags": "power wind"
},
{
"title": "Farm Shed In Sepia",
"img_thumb": "http://farm1.staticflickr.com/121/304519904_d167d266b0_q.jpg",
"img_src": "http://farm1.staticflickr.com/121/304519904_d167d266b0_o.jpg",
"tags": "sepia abigfave"
},
{
"title": "On Strike!",
"img_thumb": "http://farm1.staticflickr.com/174/409597558_ad1908b79a_q.jpg",
"img_src": "http://farm1.staticflickr.com/174/409597558_15f943b777_o.jpg",
"tags": "old truck vintage"
},
{
"title": "Summer beauty",
"img_thumb": "http://farm1.staticflickr.com/165/335917888_8d7c6d8963_q.jpg",
"img_src": "http://farm1.staticflickr.com/165/335917888_8d7c6d8963_o.jpg",
"tags": "flower instntfave"
},
{
"title": "Bird Table Reflection",
"img_thumb": "http://farm1.staticflickr.com/165/361722103_29757604f1_q.jpg",
"img_src": "http://farm1.staticflickr.com/165/361722103_29757604f1_o.jpg",
"tags": "blue lake water birds table sparrow henleylake ultimateshot"
},
{
"title": "\"Don't - Forget - Me\" -- Memories",
"img_thumb": "http://farm1.staticflickr.com/86/279323146_948a308e10_q.jpg",
"img_src": "http://farm1.staticflickr.com/86/279323146_948a308e10_o.jpg",
"tags": "flower rocks"
},
{
"title": "W-o-o-o-o-o-ww! A Wolf Poem",
"img_thumb": "http://farm1.staticflickr.com/121/271069081_e0b2412b66_q.jpg",
"img_src": "http://farm1.staticflickr.com/121/271069081_e0b2412b66_o.jpg",
"tags": "painting wolf acrylic folkart poem canvas"
},
{
"title": "Raindrops",
"img_thumb": "http://farm1.staticflickr.com/84/249288228_5d160ca871_q.jpg",
"img_src": "http://farm1.staticflickr.com/84/249288228_5d160ca871_o.jpg",
"tags": "daisy raindrops"
},
{
"title": "Magnum",
"img_thumb": "http://farm1.staticflickr.com/94/205180977_f14d8191a9_q.jpg",
"img_src": "http://farm1.staticflickr.com/94/205180977_f14d8191a9_o.jpg",
"tags": "dog oldenglishsheepdog"
},
{
"title": "Steam",
"img_thumb": "http://farm1.staticflickr.com/47/112342762_d73ab7c282_q.jpg",
"img_src": "http://farm1.staticflickr.com/47/112342762_d73ab7c282_o.jpg",
"tags": "trains steamtrains"
},
{
"title": "Against The Sky",
"img_thumb": "http://farm1.staticflickr.com/69/166795938_cfe25139b9_q.jpg",
"img_src": "http://farm1.staticflickr.com/69/166795938_cfe25139b9_o.jpg",
"tags": "leaves"
},
{
"title": "Christmas Time!",
"img_thumb": "http://farm1.staticflickr.com/123/328445296_910f2a19a6_q.jpg",
"img_src": "http://farm1.staticflickr.com/123/328445296_910f2a19a6_o.jpg",
"tags": "candles impressedbeauty"
},
{
"title": "Wairarapa Sunrise",
"img_thumb": "http://farm1.staticflickr.com/89/256865837_d02ce89058_q.jpg",
"img_src": "http://farm1.staticflickr.com/89/256865837_d02ce89058_o.jpg",
"tags": "red sky clouds sunrise"
},
{
"title": "Girl With Fawn.Taken at Thornton Beach, near Whakatane BOP",
"img_thumb": "http://farm1.staticflickr.com/45/126874345_e4004d4427_q.jpg",
"img_src": "http://farm1.staticflickr.com/45/126874345_e4004d4427_o.jpg",
"tags": "fawn abigfave photooftheweek082006"
},
{
"title": "Criteriums (Sprints)",
"img_thumb": "http://farm1.staticflickr.com/145/372825411_4ef0b7d27f_q.jpg",
"img_src": "http://farm1.staticflickr.com/145/372825411_4ef0b7d27f_o.jpg",
"tags": "road bike race speed cycleclassic"
},
{
"title": "Garden Color",
"img_thumb": "http://farm1.staticflickr.com/84/212174018_bb1faa3903_q.jpg",
"img_src": "http://farm1.staticflickr.com/84/212174018_bb1faa3903_o.jpg",
"tags": "flower garden"
},
{
"title": "Yellow Mellow!",
"img_thumb": "http://farm1.staticflickr.com/112/299191739_da2131c07d_q.jpg",
"img_src": "http://farm1.staticflickr.com/112/299191739_da2131c07d_o.jpg",
"tags": "flower yellow"
},
{
"title": "Mt Holdsworth",
"img_thumb": "http://farm1.staticflickr.com/44/135578268_37aaae7597_q.jpg",
"img_src": "http://farm1.staticflickr.com/44/135578268_37aaae7597_o.jpg",
"tags": "wairarapa mtholdsworth"
},
{
"title": "Exploration (Table-Top)",
"img_thumb": "http://farm1.staticflickr.com/49/139449342_b1410318cf_q.jpg",
"img_src": "http://farm1.staticflickr.com/49/139449342_b1410318cf_o.jpg",
"tags": "snail tabletop"
},
{
"title": "The Kiss!",
"img_thumb": "http://farm3.staticflickr.com/2349/2147792644_bd53be73d9_q.jpg",
"img_src": "http://farm3.staticflickr.com/2349/2147792644_aa31be4778_o.jpg",
"tags": "wedding friends party love sepia yummy hands kiss soft passion romantic"
},
{
"title": "Tabletop Beauty",
"img_thumb": "http://farm4.staticflickr.com/3163/2814566055_2aa0dd375d_q.jpg",
"img_src": "http://farm4.staticflickr.com/3163/2814566055_05fa576ab3_o.jpg",
"tags": "flower macro nature floral petals tabletop"
},
{
"title": "Wind Power Lighting Up The World.",
"img_thumb": "http://farm4.staticflickr.com/3166/2874716842_a8011f07c3_q.jpg",
"img_src": "http://farm4.staticflickr.com/3166/2874716842_1ee972da95_o.jpg",
"tags": "power wind windpower"
},
{
"title": "Health Drink",
"img_thumb": "http://farm4.staticflickr.com/3188/2917625346_290e7dbfee_q.jpg",
"img_src": "http://farm4.staticflickr.com/3188/2917625346_9989acfa84_o.jpg",
"tags": "glass table cafe drink straw fruitdrink"
},
{
"title": "Sun Burst!",
"img_thumb": "http://farm4.staticflickr.com/3447/3374522548_8440986991_q.jpg",
"img_src": "http://farm4.staticflickr.com/3447/3374522548_1849be676c_o.jpg",
"tags": "morning lake reflection water sunrise balloons fiesta balloonfiesta sunburst masterton wairarapa henleylake 2009wairarapaballoonfiesta"
},
{
"title": "Wool Fling!",
"img_thumb": "http://farm4.staticflickr.com/3664/3333227123_5ae5606863_q.jpg",
"img_src": "http://farm4.staticflickr.com/3664/3333227123_801e6bc97f_o.jpg",
"tags": "fling wool table masterton goldenshares"
},
{
"title": "Life Is About.....",
"img_thumb": "http://farm5.staticflickr.com/4020/4276602783_b877508bc2_q.jpg",
"img_src": "http://farm5.staticflickr.com/4020/4276602783_34bab1fa4b_o.jpg",
"tags": "ocean life sea beach coast words quotation"
},
{
"title": "Move It!",
"img_thumb": "http://farm3.staticflickr.com/2561/4200536021_a33c2a2c40_q.jpg",
"img_src": "http://farm3.staticflickr.com/2561/4200536021_1d9261209b_o.jpg",
"tags": "collage shoes health gym weights fitnes spinbikes"
},
{
"title": "Halloween Fun",
"img_thumb": "http://farm3.staticflickr.com/2555/4054153361_ec788ce2cb_q.jpg",
"img_src": "http://farm3.staticflickr.com/2555/4054153361_8e4e75d262_o.jpg",
"tags": "moon halloween fun picnik"
},
{
"title": "Twenty Reasons Why Porridge Is The Ultimate Health Food........",
"img_thumb": "http://farm4.staticflickr.com/3174/2975927428_9fb643bb2c_q.jpg",
"img_src": "http://farm4.staticflickr.com/3174/2975927428_d8c0bb2890_o.jpg",
"tags": "food breakfast yummy ultimate health maplesyrup oats saucepan satisfied porriage"
},
{
"title": "Morning Snack",
"img_thumb": "http://farm5.staticflickr.com/4021/4643355404_67edf1734b_q.jpg",
"img_src": "http://farm5.staticflickr.com/4021/4643355404_dcdf25fa60_o.jpg",
"tags": "food bread plate snack picnik"
},
{
"title": "Love Is----",
"img_thumb": "http://farm5.staticflickr.com/4079/4887329096_6c15e22eb7_q.jpg",
"img_src": "http://farm5.staticflickr.com/4079/4887329096_a7e2802f0a_o.jpg",
"tags": "park trees love beautiful flowing picnik masterton queenelizabethpark wairarapa beautyunoticed"
},
{
"title": "You And Me!",
"img_thumb": "http://farm6.staticflickr.com/5127/5253567732_d64a7a0f8e_q.jpg",
"img_src": "http://farm6.staticflickr.com/5127/5253567732_68c17f264d_o.jpg",
"tags": "bear friends love scrapbook teddy creation ornaments forever picnik tabletop"
},
{
"title": "Let Your Light Shine ~~~ Radiate Love",
"img_thumb": "http://farm6.staticflickr.com/5201/5272659734_c51d924822_q.jpg",
"img_src": "http://farm6.staticflickr.com/5201/5272659734_6cdb3c5b29_o.jpg",
"tags": "light flower love words shine clematis strength wisdom radiate picnik courage beautyunoticed"
},
{
"title": "Drop A Pebble In The Water;",
"img_thumb": "http://farm6.staticflickr.com/5022/5605170026_c9f369755f_q.jpg",
"img_src": "http://farm6.staticflickr.com/5022/5605170026_71b716de69_o.jpg",
"tags": "blue sky water words poem pebble picnik laketaupo beautyunoticed"
},
{
"title": "Out With The Old, In With The New",
"img_thumb": "http://farm8.staticflickr.com/7002/6609586149_8207194d35_q.jpg",
"img_src": "http://farm8.staticflickr.com/7002/6609586149_6cb68a19b5_o.jpg",
"tags": "new old year newyear picnik 2012"
},
{
"title": "Coffee Nose!",
"img_thumb": "http://farm8.staticflickr.com/7154/6585719715_a894411b78_q.jpg",
"img_src": "http://farm8.staticflickr.com/7154/6585719715_191f28c604_o.jpg",
"tags": "sign shop nose cafe mural coffeeshop masterton megacafe"
},
{
"title": "Balancing Act",
"img_thumb": "http://farm4.staticflickr.com/3417/5769624015_7910c58f75_q.jpg",
"img_src": "http://farm4.staticflickr.com/3417/5769624015_6ea42ce625_o.jpg",
"tags": "boy lake water sport training boat canoe balancing picnik masterton waka henleylake"
},
{
"title": "Yeah! But I Can't See The Price Tags!",
"img_thumb": "http://farm7.staticflickr.com/6074/6048290118_e61a454d3b_q.jpg",
"img_src": "http://farm7.staticflickr.com/6074/6048290118_09786acbda_o.jpg",
"tags": "snow cars night yard picnik cardealer beautyunoticed"
},
{
"title": "Trellis Gate",
"img_thumb": "http://farm7.staticflickr.com/6074/6057436009_a1f3af15a3_q.jpg",
"img_src": "http://farm7.staticflickr.com/6074/6057436009_f13a8e7dca_o.jpg",
"tags": "winter snow garden backyard gate trellis picnik masterton wairarapa beautyunoticed"
},
{
"title": "Far Away In The Sunshine....",
"img_thumb": "http://farm9.staticflickr.com/8434/7617672776_29716ef792_q.jpg",
"img_src": "http://farm9.staticflickr.com/8434/7617672776_dc00b66863_o.jpg",
"tags": "mountains sunshine words hills motivation masterton wairarapa aspirations tararua"
},
{
"title": "A Prayer For Every Day",
"img_thumb": "http://farm9.staticflickr.com/8487/8270304817_836aa176a4_q.jpg",
"img_src": "http://farm9.staticflickr.com/8487/8270304817_bc9a05308f_o.jpg",
"tags": "flower garden words prayer wisdom tabletop"
}
]

View File

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<title>Just testing stuff</title>
</head>
<body>
Just testing stuff
</body>
</html>

View File

@ -0,0 +1 @@
Hello from level 1!

View File

@ -0,0 +1,3 @@
$('.stats').each(function(){
console.log(typeof this.id =='undefined' ? 'sorry, no id ' : this.id);
});

View File

@ -0,0 +1 @@
I have no extension

View File

@ -0,0 +1,165 @@
/*!
* Bootstrap v2.3.2
*
* Copyright 2013 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world by @mdo and @fat.
*/
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
line-height: 0;
content: "";
}
.clearfix:after {
clear: both;
}
.hide-text {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.input-block-level {
display: block;
width: 100%;
min-height: 30px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
display: block;
}
audio,
canvas,
video {
display: inline-block;
*display: inline;
*zoom: 1;
}
audio:not([controls]) {
display: none;
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
a:hover,
a:active {
outline: 0;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
width: auto\9;
height: auto;
max-width: 100%;
vertical-align: middle;
border: 0;
-ms-interpolation-mode: bicubic;
}
#map_canvas img,
.google-maps img {
max-width: none;
}
button,
input,
select,
textarea {
margin: 0;
font-size: 100%;
vertical-align: middle;
}
button,
input {
*overflow: visible;
line-height: normal;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
cursor: pointer;
-webkit-appearance: button;
}
label,
select,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
input[type="radio"],
input[type="checkbox"] {
cursor: pointer;
}
input[type="search"] {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
-webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
-webkit-appearance: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

View File

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<title>Just testing stuff</title>
</head>
<body>
Just testing stuff
</body>
</html>

Binary file not shown.

View File

@ -0,0 +1 @@
Hello my name is vassilis. Did I say hello? Hello then. Did I? Hello!

View File

@ -0,0 +1,165 @@
/*!
* Bootstrap v2.3.2
*
* Copyright 2013 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world by @mdo and @fat.
*/
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
line-height: 0;
content: "";
}
.clearfix:after {
clear: both;
}
.hide-text {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.input-block-level {
display: block;
width: 100%;
min-height: 30px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
nav,
section {
display: block;
}
audio,
canvas,
video {
display: inline-block;
*display: inline;
*zoom: 1;
}
audio:not([controls]) {
display: none;
}
html {
font-size: 100%;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
a:hover,
a:active {
outline: 0;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
width: auto\9;
height: auto;
max-width: 100%;
vertical-align: middle;
border: 0;
-ms-interpolation-mode: bicubic;
}
#map_canvas img,
.google-maps img {
max-width: none;
}
button,
input,
select,
textarea {
margin: 0;
font-size: 100%;
vertical-align: middle;
}
button,
input {
*overflow: visible;
line-height: normal;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
cursor: pointer;
-webkit-appearance: button;
}
label,
select,
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
input[type="radio"],
input[type="checkbox"] {
cursor: pointer;
}
input[type="search"] {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
-webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
-webkit-appearance: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

View File

@ -0,0 +1,17 @@
Alan Mathison Turing, OBE, FRS (/ˈtjʊərɪŋ/ TEWR-ing; 23 June 1912 7 June 1954), was a British mathematician, logician, cryptanalyst, and computer scientist. He was highly influential in the development of computer science, giving a formalisation of the concepts of "algorithm" and "computation" with the Turing machine, which can be considered a model of a general purpose computer. Turing is widely considered to be the father of computer science and artificial intelligence.
During World War II, Turing worked for the Government Code and Cypher School (GC&CS) at Bletchley Park, Britain's codebreaking centre. For a time he was head of Hut 8, the section responsible for German naval cryptanalysis. He devised a number of techniques for breaking German ciphers, including the method of the bombe, an electromechanical machine that could find settings for the Enigma machine.
After the war, he worked at the National Physical Laboratory, where he designed the ACE, one of the first designs for a stored-program computer. In 1948 Turing joined Max Newman's Computing Laboratory at Manchester University, where he assisted in the development of the Manchester computers and became interested in mathematical biology. He wrote a paper on the chemical basis of morphogenesis, and predicted oscillating chemical reactions such as the BelousovZhabotinsky reaction, which were first observed in the 1960s.
Turing's homosexuality resulted in a criminal prosecution in 1952, when homosexual acts were still illegal in the United Kingdom. He accepted treatment with female hormones (chemical castration) as an alternative to prison. Turing died in 1954, just over two weeks before his 42nd birthday, from cyanide poisoning. An inquest determined that his death was suicide; his mother and some others believed his death was accidental. On 10 September 2009, following an Internet campaign, British Prime Minister Gordon Brown made an official public apology on behalf of the British government for "the appalling way he was treated." In May 2012, a private member's bill was put before the House of Lords to grant Turing a statutory pardon. In July 2013 it gained government support.
Early life and career
Turing was born in London while his father was on leave from his position with the Indian Civil Service (ICS) at Chhatrapur, Bihar and Orissa Province, in British India. Turing's father, Julius Mathison Turing (18731947), was the son of a clergyman from a Scottish family of merchants which had been based in the Netherlands and included a baronet. Julius's wife, Alan's mother, was Ethel Sara (née Stoney; 18811976), daughter of Edward Waller Stoney, chief engineer of the Madras Railways. The Stoneys were a Protestant Anglo-Irish gentry family from both County Tipperary and County Longford, while Ethel herself had spent much of her childhood in County Clare. Julius' work with the ICS brought the family to British India, where his grandfather had been a general in the Bengal Army. However, both Julius and Ethel wanted their children to be brought up in England, so they moved to Maida Vale, London, where Turing was born on 23 June 1912, as recorded by a blue plaque on the outside of the house of his birth, later the Colonnade Hotel. He had an elder brother, John (the father of Sir John Dermot Turing, 12th Baronet of the Turing baronets). His father's civil service commission was still active, and during Turing's childhood years his parents travelled between Hastings in England and India, leaving their two sons to stay with a retired Army couple. Very early in life, Turing showed signs of the genius he was later to display prominently. His parents purchased a house in Guildford in 1927, and Turing lived there during school holidays. The location is also marked with a blue plaque.
His parents enrolled him at St Michael's, a day school at 20 Charles Road, St Leonards-on-Sea, at the age of six. The headmistress recognised his talent early on, as did many of his subsequent educators. In 1926, at the age of 13, he went on to Sherborne School, a well known independent school in the market town of Sherborne in Dorset. The first day of term coincided with the 1926 General Strike in Britain, but so determined was he to attend that he rode his bicycle unaccompanied more than 60 miles (97 km) from Southampton to Sherborne, stopping overnight at an inn.
Turing's natural inclination toward mathematics and science did not earn him respect from some of the teachers at Sherborne, whose definition of education placed more emphasis on the classics. His headmaster wrote to his parents: "I hope he will not fall between two stools. If he is to stay at public school, he must aim at becoming educated. If he is to be solely a Scientific Specialist, he is wasting his time at a public school". Despite this, Turing continued to show remarkable ability in the studies he loved, solving advanced problems in 1927 without having studied even elementary calculus. In 1928, aged 16, Turing encountered Albert Einstein's work; not only did he grasp it, but he extrapolated Einstein's questioning of Newton's laws of motion from a text in which this was never made explicit.
At Sherborne, Turing formed an important friendship with fellow pupil Christopher Morcom, which provided inspiration in Turing's future endeavours. However, the friendship was cut short by Morcom's death in February 1930 from complications of bovine tuberculosis contracted after drinking infected cow's milk some years previously. This event shattered Turing's religious faith. He became an atheist and adopted the conviction that all phenomena, including the workings of the human brain, must be materialistic, but he still believed in the survival of the spirit after death.

View File

@ -0,0 +1,18 @@
{
"name": "ex4-nodejs-solutions",
"version": "0.0.1",
"description": "Web Atelier's exercise 4",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"keywords": [
"nodejs",
"fileserver"
],
"author": "Cesare Pautasso, Vicenzo Ferme, Andrea Gallidabino, Vasileios Triglianos, Ilya Yanok",
"license": "MIT",
"dependencies": {
"formidable": "^1.1.1"
}
}

72
hw4/Claudio_Maggioni/server.js Executable file
View File

@ -0,0 +1,72 @@
#!/usr/bin/env node
// vim: set ts=2 sw=2 et tw=80:
/*
* Basic node.js HTTP server
*
*/
const http = require('http');
const url = require('url');
const fs = require('fs');
const routes = Object.create(null);
// Configure your routing table here...
//routes['URL'] = function;
routes['files'] = (req, res) => {
const FILE_TYPES = {
html: 'text/html',
css: 'text/css',
txt: 'text/plain',
mp4: 'video/mp4',
ogg: 'video/ogg',
gif: 'image/gif',
jpg: 'image/jpeg',
jpeg: 'image/jpeg',
png: 'image/png',
mpeg: 'audio/mpeg',
js: 'application/javascript',
json: 'application/json',
pdf: 'application/pdf',
zip: 'application/zip'
};
const uri = url.parse(req.url).pathname.substring('/files'.length);
const file = __dirname + '/NodeStaticFiles' + uri;
const name = file.substring(file.lastIndexOf('/') + 1);
const ext = name.substring(name.indexOf('.') + 1);
console.log(file, name, ext);
fs.readFile(file, (err, data) => {
if (err) {
res.writeHead(404, { 'Content-Type': 'text/html' });
res.end('File not found: ' + JSON.stringify(err));
return;
}
res.setHeader('Content-Disposition', 'attachment; filename="' + name + '"');
res.writeHead(200, { 'Content-Type': ext in FILE_TYPES ? FILE_TYPES[ext] :
'application/octet-stream' });
res.end(data);
});
}
// Main server handler
function onRequest(req, res) {
const pathname = url.parse(req.url).pathname;
const uri = pathname.split('/', 3)[1];
if (typeof routes[uri] === 'function') {
routes[uri](req, res);
} else {
res.writeHead(404);
res.end();
}
}
http.createServer(onRequest).listen(3000);
console.log('Server started at localhost:3000');

View File

@ -0,0 +1,21 @@
{
"name": "ex4-nodejs-tests",
"version": "0.0.1",
"description": "Tests for Web Atelier's exercise 4",
"scripts": {
"test": "node_modules/mocha/bin/mocha -R spec ./test"
},
"keywords": [
"nodejs",
"mocha",
"test"
],
"author": "Masiar Babazadeh, Vicenzo Ferme, Andrea Gallidabino, Vasileios Triglianos",
"license": "MIT",
"devDependencies": {
"cheerio": "^0.22.0",
"mocha": "^3.1.1",
"should": "^9.0.2",
"supertest": "^2.0.0"
}
}

View File

@ -0,0 +1,7 @@
'use strict';
var path = require('path')
module.exports={
baseURL : 'http://127.0.0.1:3000',
projectRoot : path.resolve(__dirname, '../..')
}

View File

@ -0,0 +1,126 @@
const request = require('supertest')
, config = require('./config')
, should = require('should')
const baseURL = config.baseURL;
describe('Exercise 1. Static file Server', function(){
it('should download root file', function(done){
request(baseURL)
.get('/file/hello.txt')
.expect(200)
.expect('Content-Disposition', /attachment;.*filename=('hello\.txt'|"hello\.txt")/)
.end(function(err,res){
if (err) return done(err);
res.text.should.equal('Hello Express.js');
done();
});
});
it('should download level-1 file', function(done){
request.agent(baseURL)
.get('/file/level-1/hello.txt')
.expect(200)
.expect('Content-Disposition', /attachment;.*filename=('hello\.txt'|"hello\.txt")/)
.end(function(err,res){
if (err) return done(err);
res.text.should.equal('Hello from level 1!');
done();
});
});
it('should download level-2 file', function(done){
request(baseURL)
.get('/file/level-1/level-2/foo-2.js')
.expect(200)
.expect('Content-Disposition', /attachment;.*filename=('foo-2\.js'|"foo-2\.js")/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should download level-7 file', function(done){
request.agent(baseURL)
.get('/file/level-1/level-2/level-3/level-4/level-5/level-6/level-7/level7.txt')
.expect(200)
.expect('Content-Disposition', /attachment;.*filename=('level7\.txt'|"level7\.txt")/)
.end(function(err,res){
if (err) return done(err);
res.text.should.equal('You made it to level 7!');
done();
});
});
it('should handle white space characters', function(done){
request.agent(baseURL)
.get('/file/hello world node.txt')
.expect(200)
.expect('Content-Disposition', /attachment;.*filename=('hello world node\.txt'|"hello world node\.txt")/)
.end(function(err,res){
if (err) return done(err);
res.text.should.equal('I have spaces in my file name');
done();
});
});
it('should handle lowercase and uppercase', function(done){
request.agent(baseURL)
.get('/file/UppeRCaSeLowerCASE.txt')
.expect(200)
.expect('Content-Disposition', /attachment;.*filename=('UppeRCaSeLowerCASE\.txt'|"UppeRCaSeLowerCASE\.txt")/)
.end(function(err,res){
if (err) return done(err);
res.text.should.equal('My filename has uppercase and lowercase characters');
done();
});
});
it('should handle files start with a number', function(done){
request.agent(baseURL)
.get('/file/0.txt')
.expect(200)
.expect('Content-Disposition', /attachment;.*filename=('0\.txt'|"0\.txt")/)
.end(function(err,res){
if (err) return done(err);
res.text.should.equal('My filename starts with a number');
done();
});
});
it('should handle files with no extension', function(done){
request.agent(baseURL)
.get('/file/identitycrisis')
.expect(200)
.expect('Content-Disposition', /attachment;.*filename=('identitycrisis'|"identitycrisis")/)
.end(function(err,res){
if (err) return done(err);
res.text.should.equal('I have no extension');
done();
});
});
it('should reply with a 404 if file does not exist', function(done){
request(baseURL)
.get('/file/filethatdoesnotexist')
.expect(404, done);
});
it('should reply with a 405 if a method other than GET is used', function(done){
request(baseURL)
.post('/file/hello.txt')
.expect(405)
.end(function(err){
if (err) return done(err);
request(baseURL)
.put('/file/hello.txt')
.expect(405)
.end(function(err){
if (err) return done(err);
request(baseURL)
.del('/file/hello.txt')
.expect(405, done);
});
});
});
});

View File

@ -0,0 +1,171 @@
const request = require('supertest')
, config = require('./config')
, should = require('should')
const baseURL = config.baseURL;
describe('Exercise 2. MIME Type Headers', function(){
it('should support text/html MIME type', function(done){
request(baseURL)
.get('/file/index.html')
.expect(200)
.expect('Content-Type', /text\/html/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support text/css MIME type', function(done){
request(baseURL)
.get('/file/style.css')
.expect(200)
.expect('Content-Type', /text\/css/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support text/plain MIME type', function(done){
request(baseURL)
.get('/file/hello.txt')
.expect(200)
.expect('Content-Type', /text\/plain/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support video/mp4 MIME type', function(done){
request(baseURL)
.get('/file/bunny.mp4')
.expect(200)
.expect('Content-Type', /video\/mp4/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support video/ogg MIME type', function(done){
request(baseURL)
.get('/file/bunny.ogv')
.expect(200)
.expect('Content-Type', /video\/ogg/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support image/gif MIME type', function(done){
request(baseURL)
.get('/file/afox.gif')
.expect(200)
.expect('Content-Type', /image\/gif/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support image/jpeg MIME type', function(done){
request(baseURL)
.get('/file/thing.jpg')
.expect(200)
.expect('Content-Type', /image\/jpeg/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support image/png MIME type', function(done){
request(baseURL)
.get('/file/asq.png')
.expect(200)
.expect('Content-Type', /image\/png/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support audio/mpeg MIME type', function(done){
request(baseURL)
.get('/file/four-seasons.mp3')
.expect(200)
.expect('Content-Type', /audio\/mpeg/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support application/javascript MIME type', function(done){
request(baseURL)
.get('/file/foo.js')
.expect(200)
.expect('Content-Type', /application\/javascript/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support application/json MIME type', function(done){
request(baseURL)
.get('/file/images.json')
.expect(200)
.expect('Content-Type', /application\/json/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support application/pdf MIME type', function(done){
request(baseURL)
.get('/file/ex-node.pdf')
.expect(200)
.expect('Content-Type', /application\/pdf/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support application/zip MIME type', function(done){
request(baseURL)
.get('/file/myfiles.zip')
.expect(200)
.expect('Content-Type', /application\/zip/)
.end(function(err,res){
if (err) return done(err);
done();
});
});
it('should support MIME types from nested files', function(done){
let totalResponses =0;
function responseReceived(err){
if (err) return done(err);
if(++totalResponses ==2){
done();
}
}
request(baseURL)
.get('/file/level-1/level-2/foo-2.js')
.expect('Content-Type', /application\/javascript/)
.expect(200, responseReceived);
request(baseURL)
.get('/file/level-1/level-2/level-3/level-4/level-5/four-seasons.mp3')
.expect('Content-Type', /audio\/mpeg/)
.expect(200, responseReceived);
});
});

View File

@ -0,0 +1,210 @@
const request = require('supertest')
, config = require('./config')
, should = require('should')
, cheerio = require('cheerio');
const baseURL = config.baseURL;
describe('Exercise 3. Directory Explorer ', function(){
describe("When exploring root directory, we:", function(done){
const files = [
'0.txt',
'UppeRCaSeLowerCASE.txt',
'afox.gif',
'asq.png',
'bunny.mp4',
'bunny.ogv',
'ex-node.pdf',
'foo.js',
'freq.html',
'freq.txt',
'four-seasons.mp3',
'hello world node.txt',
'hello.txt',
'identitycrisis',
'images.json',
'index.html',
'myfiles.zip',
'simple.txt',
'style.css',
'thing.jpg',
'turing.txt' ];
const dirs= [
'level-1',
'icons'
];
let $, linksArr, links, dirFound;
before(function(done){
request(baseURL)
.get('/explore/')
.expect(200)
.expect('Content-Type', /text\/html/)
.end(function(err, res){
if(err) return done(err);
$ = cheerio.load(res.text);
linksArr = [];
$('a[href]').each(function(index, el){
var href = $(el).attr('href').toString();
linksArr.push(href);
});
links = linksArr.join(' ');
done();
});
});
it('should have proper links for files', function(){
for (let i=0, l = files.length ; i<l; i++){
links.should.containEql('file/'+files[i]);
}
});
it('should have proper links for directories', function(){
for (let i=0, l = dirs.length ; i<l; i++){
dirFound = false;
// check for relative or absolute path
if(links.indexOf('explore/'+dirs[i]) !== -1 ||
links.indexOf(dirs[i]) !==-1){
dirFound = true;
}
dirFound.should.equal(true)
}
});
it('should have a link for current folder', function(){
var foundCurrent =false
, currentURL = 'explore/';
for (let i=0, l = linksArr.length, c = currentURL.length ; i<l; i++){
// link should end with currentURL
if(linksArr[i].indexOf(currentURL, linksArr[i].length - c) !== -1){
foundCurrent =true;
}
}
foundCurrent.should.equal(true);
});
it('should NOT have a link for the parent folder', function(){
let foundParent = false
const parentURLs = [
'explore/..',
'explore/../'];
for (let i=0, l = linksArr.length; i<l; i++){
// link should end with currentURL
for(let j=0; j<parentURLs.length; j++){
if(linksArr[i].indexOf(parentURLs[j], linksArr[i].length - parentURLs[j].length) !== -1){
foundParent =true;
}
}
}
foundParent.should.equal(false);
});
});
describe("When exploring a level 4 directory, we", function(done){
const files = [
'bunny-is-back.mp4',
'dafiles.zip',
'ex.pdf',
'foo.js',
'hello-level-4.txt',
'identitycrisis-take2',
'one-season.mp3',
'screen.css',
'strange.jpg',
'test.html' ];
const dirs=[
'level-5',
'a-dir',
'another-dir']
let $, linksArr, links, dirFound;
const level4Path ='level-1/level-2/level-3/level-4/';
before(function(done){
request(baseURL)
.get('/explore/' + level4Path)
.expect(200)
.expect('Content-Type', /text\/html/)
.end(function(err, res){
if(err) return done(err);
$ = cheerio.load(res.text);
linksArr = [];
$('a[href]').each(function(index, el){
var href = $(el).attr('href').toString();
linksArr.push(href);
});
links = linksArr.join(' ');
done();
});
});
it('should have proper links for files', function(){
for (let i=0, l = files.length ; i<l; i++){
links.should.containEql('file/' + level4Path + files[i]);
}
});
it('should have proper links for directories', function(){
for (let i=0, l = dirs.length ; i<l; i++){
dirFound = false;
// check for relative or absolute path
if(links.indexOf('explore/' + level4Path + dirs[i]) !== -1 ||
links.indexOf(dirs[i]) !==-1){
dirFound = true;
}
dirFound.should.equal(true)
}
});
it('should have a link for the current folder', function(){
let foundCurrent =false;
const currentURL = 'explore/' + level4Path;
for (let i=0, l = linksArr.length, c = currentURL.length ; i<l; i++){
// link should end with currentURL
if(linksArr[i].indexOf(currentURL, linksArr[i].length - c) !== -1){
foundCurrent =true;
}
}
foundCurrent.should.equal(true);
});
it('should have link for the parent folder', function(){
let foundParent =false;
const parentURLs = [
'explore/level-1/level-2/level-3',
'explore/level-1/level-2/level-3/',
'explore/level-1/level-2/level-3/level-4/..',
'explore/level-1/level-2/level-3/level-4/../'];
for (let i=0, l = linksArr.length; i<l; i++){
// link should end with currentURL
for(let j=0; j<parentURLs.length; j++){
if(linksArr[i].indexOf(parentURLs[j], linksArr[i].length - parentURLs[j].length) !== -1){
foundParent =true;
}
}
}
foundParent.should.equal(true);
});
});
});

View File

@ -0,0 +1,76 @@
const request = require('supertest')
, fs = require('fs')
, path = require('path')
, config = require('./config')
, should = require('should')
, cheerio = require('cheerio');
const baseURL = config.baseURL;
describe('Exercise 4. Upload', function(){
describe("on /GET upload", function(){
it('should return a form with proper field types and names', function(done){
request(baseURL)
.get('/upload')
.expect(200)
.expect('Content-Type', /text\/html/)
.end(function(err, res){
if(err) return done(err);
const $ = cheerio.load(res.text);
const $uploadForm = $('form#upload-form');
$uploadForm.length.should.equal(1);
$uploadForm.find('input[type="file"][name="file"]').length.should.equal(1);
$uploadForm.find('input[type="submit"][name="submit"]').length.should.equal(1);
if($uploadForm.attr('action')){
const action = $uploadForm.attr('action').trim();
action.should.match(function(s) { return s === '' || s === '/upload' || s === '/upload/' })
}
done();
});
});
});
describe("on /POST upload", function(){
before(function(){
const lepath = path.resolve(config.projectRoot,'./NodeStaticFiles/upload-test.jpg')
if(fs.existsSync(lepath)){
fs.unlinkSync(lepath);
}
});
after(function(){
console.log(config.projectRoot)
const lepath = path.resolve(config.projectRoot,'./NodeStaticFiles/upload-test.jpg')
if(fs.existsSync(lepath)){
fs.unlinkSync(lepath);
}
});
it('should successfuly upload an image file ', function(done){
request(baseURL)
.post('/upload')
.set('Accept', 'application/json')
.attach('file', path.resolve(__dirname,'./fixtures/upload-test.jpg'))
.expect(302)
.end(function(err, res){
if (err) {
return done(err); }
done()
});
});
it('the uploaded image file should be in the root dir', function(done){
request(baseURL)
.get('/explore')
.end(function(err, res){
//new file should be listed in the root dir
res.text.should.containEql('file/' + 'upload-test.jpg')
if (err) {
return done(err); }
done()
});
});
});
});

View File

@ -0,0 +1,123 @@
const request = require('supertest')
, config = require('./config')
, should = require('should')
// expected jsons
, expectedTuring = require('./expected-turing')
, expectedSimple = require('./expected-simple')
, cheerio = require('cheerio');
const baseURL = config.baseURL;
describe('Exercise 5. File Statistics ', function(){
it('should work for .txt ...', function(done){
request(baseURL)
.get('/stats?file=freq.txt')
.expect(200)
.expect('Content-Type', /text\/html/)
.end(function(err, res){
if(err) return done(err);
const $ = cheerio.load(res.text);
const frequency_table = $('table#frequency-tbl');
frequency_table.length.should.equal(1);
const words = frequency_table.find('td.word');
const freqs = frequency_table.find('td.frequency');
const solution = {
"Hello" : "1",
"hello" : "3",
"my" : "1",
"name" : "1",
"is" : "1",
"masiar" : "1",
"I" : "2",
"am" : "1",
"26" : "1",
"years" : "1",
"old" : "1",
"and" : "1",
"listen" : "1",
"to" : "1",
"classical" : "1",
"music" : "1"
}
words.each(function(idx, word){
const wordtext = $(word).text();
const freqText = $(word).siblings( '.frequency' ).text();
solution[wordtext].should.equal(freqText);
});
done();
});
});
it('and .html files. ', function(done){
request(baseURL)
.get('/stats?file=freq.html')
.expect(200)
.expect('Content-Type', /text\/html/)
.end(function(err, res){
if(err) return done(err);
const $ = cheerio.load(res.text);
const frequency_table = $('table#frequency-tbl');
frequency_table.length.should.equal(1);
const words = frequency_table.find('td.word');
const freqs = frequency_table.find('td.frequency');
const solution = {
"Hello" : "1",
"hello" : "3",
"my" : "1",
"name" : "1",
"is" : "1",
"masiar" : "1",
"I" : "2",
"am" : "1",
"26" : "1",
"years" : "1",
"old" : "1",
"and" : "1",
"listen" : "1",
"to" : "1",
"classical" : "1",
"music" : "1",
"head" : "2",
"body" : "2",
"html" : "2",
"mytitle" : "1"
}
words.each(function(idx, word){
const wordtext = $(word).text();
const freqText = $(word).siblings( '.frequency' ).text();
solution[wordtext].should.equal(freqText);
});
done();
});
});
it('should return 400 "Bad Request" for an mp3', function(done){
request(baseURL)
.get('/stats?file=four-seasons.mp3')
.expect(400, done);
});
it('should return 400 "Bad Request" for a js script', function(done){
request(baseURL)
.get('/stats?file=foo.js')
.expect(400, done);
});
it('should return 400 "Bad Request" for a CSS file', function(done){
request(baseURL)
.get('/stats?file=style.css')
.expect(400, done);
});
});

View File

@ -0,0 +1,68 @@
const request = require('supertest')
, fs = require('fs')
, path = require('path')
, config = require('./config')
, should = require('should');
const baseURL = config.baseURL;
describe('Exercise 6. JSON Tag Cloud ', function(){
it('should work for simple ...', function(done){
request(baseURL)
.get('/cloud?file=simple.txt')
.set('Accept', 'text/html')
.expect(200)
.expect('Content-Type', /text\/html/)
.end(function(err, res){
if(err) return done(err);
const expectedCloud = fs.readFileSync(path.resolve(__dirname,'fixtures/expected_cloud-simple.txt'), 'utf8');
const terms = expectedCloud.split(" ");
terms.forEach(function(term){
res.text.should.containEql(term);
})
done();
});
});
it('should work for turing ...', function(done){
request(baseURL)
.get('/cloud?file=turing.txt')
.set('Accept', 'text/html')
.expect(200)
.expect('Content-Type', /text\/html/)
.end(function(err, res){
if(err) return done(err);
const expectedCloud = fs.readFileSync(path.resolve(__dirname,'fixtures/expected_cloud-turing.txt'), 'utf8');
const terms = expectedCloud.split(" ");
terms.forEach(function(term){
res.text.should.containEql(term);
})
done();
});
});
it('should return 400 "Bad Request" for an mp3', function(done){
request(baseURL)
.get('/cloud?file=four-seasons.mp3')
.expect(400, done);
});
it('should return 400 "Bad Request" for a js script', function(done){
request(baseURL)
.get('/cloud?file=foo.js')
.expect(400, done);
});
it('should return 400 "Bad Request" for a CSS file', function(done){
request(baseURL)
.get('/cloud?file=style.css')
.expect(400, done);
});
});

View File

@ -0,0 +1,36 @@
const request = require('supertest')
, config = require('./config')
, should = require('should')
// expected jsons
, expectedTuring = require('./expected-turing')
, expectedSimple = require('./expected-simple');
const baseURL = config.baseURL;
describe('Exercise 7. JSON Tag Cloud ', function(){
it('should work for simple ...', function(done){
request(baseURL)
.get('/cloud?file=simple.txt')
.set('Accept', 'application/json')
.expect(200)
.expect('Content-Type', /application\/json/)
.expect(expectedSimple, done)
});
it('and complex texts', function(done){
request(baseURL)
.get('/cloud?file=turing.txt')
.set('Accept', 'application/json')
.expect(200)
.expect('Content-Type', /application\/json/)
.expect(expectedTuring, done)
});
it('should still support regular requests', function(done){
request(baseURL)
.get('/cloud?file=turing.txt')
.expect(200)
.expect('Content-Type', /text\/html/, done)
});
});

View File

@ -0,0 +1,12 @@
module.exports = {
"Hello" : 3,
"my" : 1,
"name" : 1,
"is" : 1,
"vassilis" : 1,
"Did" : 2,
"I" : 2,
"say" : 1,
"hello" : 1,
"then" : 1
}

View File

@ -0,0 +1,500 @@
module.exports = {
"7" : 1,
"8" : 1,
"10" : 1,
"13" : 1,
"16" : 1,
"20" : 1,
"23" : 2,
"60" : 1,
"97" : 1,
"1873" : 1,
"1881" : 1,
"1912" : 2,
"1926" : 2,
"1927" : 2,
"1928" : 1,
"1930" : 1,
"1947" : 1,
"1948" : 1,
"1952" : 1,
"1954" : 2,
"1976" : 1,
"2009" : 1,
"2012" : 1,
"2013" : 1,
"Alan" : 2,
"Mathison" : 2,
"Turing" : 23,
"OBE" : 1,
"FRS" : 1,
"tj" : 1,
"r" : 1,
"TEWR" : 1,
"ing" : 1,
"June" : 3,
"was" : 17,
"a" : 25,
"British" : 5,
"mathematician" : 1,
"logician" : 1,
"cryptanalyst" : 1,
"and" : 17,
"computer" : 5,
"scientist" : 1,
"He" : 6,
"highly" : 1,
"influential" : 1,
"in" : 27,
"the" : 48,
"development" : 2,
"of" : 35,
"science" : 3,
"giving" : 1,
"formalisation" : 1,
"concepts" : 1,
"algorithm" : 1,
"computation" : 1,
"with" : 8,
"machine" : 3,
"which" : 5,
"can" : 1,
"be" : 5,
"considered" : 2,
"model" : 1,
"general" : 2,
"purpose" : 1,
"is" : 5,
"widely" : 1,
"to" : 15,
"father" : 5,
"artificial" : 1,
"intelligence" : 1,
"During" : 1,
"World" : 1,
"War" : 1,
"II" : 1,
"worked" : 2,
"for" : 6,
"Government" : 1,
"Code" : 1,
"Cypher" : 1,
"School" : 2,
"GC" : 1,
"CS" : 1,
"at" : 13,
"Bletchley" : 1,
"Park" : 1,
"Britain" : 2,
"s" : 18,
"codebreaking" : 1,
"centre" : 1,
"For" : 1,
"time" : 2,
"he" : 18,
"head" : 1,
"Hut" : 1,
"section" : 1,
"responsible" : 1,
"German" : 2,
"naval" : 1,
"cryptanalysis" : 1,
"devised" : 1,
"number" : 1,
"techniques" : 1,
"breaking" : 1,
"ciphers" : 1,
"including" : 2,
"method" : 1,
"bombe" : 1,
"an" : 8,
"electromechanical" : 1,
"that" : 4,
"could" : 1,
"find" : 1,
"settings" : 1,
"Enigma" : 1,
"After" : 1,
"war" : 1,
"National" : 1,
"Physical" : 1,
"Laboratory" : 2,
"where" : 4,
"designed" : 1,
"ACE" : 1,
"one" : 1,
"first" : 3,
"designs" : 1,
"stored" : 1,
"program" : 1,
"In" : 5,
"joined" : 1,
"Max" : 1,
"Newman" : 1,
"Computing" : 1,
"Manchester" : 2,
"University" : 1,
"assisted" : 1,
"computers" : 1,
"became" : 2,
"interested" : 1,
"mathematical" : 1,
"biology" : 1,
"wrote" : 2,
"paper" : 1,
"on" : 9,
"chemical" : 3,
"basis" : 1,
"morphogenesis" : 1,
"predicted" : 1,
"oscillating" : 1,
"reactions" : 1,
"such" : 1,
"as" : 4,
"Belousov" : 1,
"Zhabotinsky" : 1,
"reaction" : 1,
"were" : 3,
"observed" : 1,
"1960s" : 1,
"homosexuality" : 1,
"resulted" : 1,
"criminal" : 1,
"prosecution" : 1,
"when" : 1,
"homosexual" : 1,
"acts" : 1,
"still" : 3,
"illegal" : 1,
"United" : 1,
"Kingdom" : 1,
"accepted" : 1,
"treatment" : 1,
"female" : 1,
"hormones" : 1,
"castration" : 1,
"alternative" : 1,
"prison" : 1,
"died" : 1,
"just" : 1,
"over" : 1,
"two" : 3,
"weeks" : 1,
"before" : 2,
"his" : 14,
"42nd" : 1,
"birthday" : 1,
"from" : 8,
"cyanide" : 1,
"poisoning" : 1,
"An" : 1,
"inquest" : 1,
"determined" : 2,
"death" : 4,
"suicide" : 1,
"mother" : 2,
"some" : 3,
"others" : 1,
"believed" : 2,
"accidental" : 1,
"On" : 1,
"September" : 1,
"following" : 1,
"Internet" : 1,
"campaign" : 1,
"Prime" : 1,
"Minister" : 1,
"Gordon" : 1,
"Brown" : 1,
"made" : 2,
"official" : 1,
"public" : 3,
"apology" : 1,
"behalf" : 1,
"government" : 2,
"appalling" : 1,
"way" : 1,
"treated" : 1,
"May" : 1,
"private" : 1,
"member" : 1,
"bill" : 1,
"put" : 1,
"House" : 1,
"Lords" : 1,
"grant" : 1,
"statutory" : 1,
"pardon" : 1,
"July" : 1,
"it" : 2,
"gained" : 1,
"support" : 1,
"Early" : 1,
"life" : 2,
"career" : 1,
"born" : 2,
"London" : 2,
"while" : 2,
"leave" : 1,
"position" : 1,
"Indian" : 1,
"Civil" : 1,
"Service" : 1,
"ICS" : 2,
"Chhatrapur" : 1,
"Bihar" : 1,
"Orissa" : 1,
"Province" : 1,
"India" : 3,
"Julius" : 4,
"son" : 1,
"clergyman" : 1,
"Scottish" : 1,
"family" : 3,
"merchants" : 1,
"had" : 4,
"been" : 2,
"based" : 1,
"Netherlands" : 1,
"included" : 1,
"baronet" : 1,
"wife" : 1,
"Ethel" : 3,
"Sara" : 1,
"n" : 1,
"e" : 1,
"Stoney" : 2,
"daughter" : 1,
"Edward" : 1,
"Waller" : 1,
"chief" : 1,
"engineer" : 1,
"Madras" : 1,
"Railways" : 1,
"The" : 4,
"Stoneys" : 1,
"Protestant" : 1,
"Anglo" : 1,
"Irish" : 1,
"gentry" : 1,
"both" : 2,
"County" : 3,
"Tipperary" : 1,
"Longford" : 1,
"herself" : 1,
"spent" : 1,
"much" : 1,
"her" : 1,
"childhood" : 2,
"Clare" : 1,
"work" : 2,
"brought" : 2,
"grandfather" : 1,
"Bengal" : 1,
"Army" : 2,
"However" : 2,
"wanted" : 1,
"their" : 2,
"children" : 1,
"up" : 1,
"England" : 2,
"so" : 2,
"they" : 1,
"moved" : 1,
"Maida" : 1,
"Vale" : 1,
"recorded" : 1,
"by" : 2,
"blue" : 2,
"plaque" : 2,
"outside" : 1,
"house" : 2,
"birth" : 1,
"later" : 2,
"Colonnade" : 1,
"Hotel" : 1,
"elder" : 1,
"brother" : 1,
"John" : 2,
"Sir" : 1,
"Dermot" : 1,
"12th" : 1,
"Baronet" : 1,
"baronets" : 1,
"His" : 4,
"civil" : 1,
"service" : 1,
"commission" : 1,
"active" : 1,
"during" : 2,
"years" : 2,
"parents" : 4,
"travelled" : 1,
"between" : 2,
"Hastings" : 1,
"leaving" : 1,
"sons" : 1,
"stay" : 2,
"retired" : 1,
"couple" : 1,
"Very" : 1,
"early" : 2,
"showed" : 1,
"signs" : 1,
"genius" : 1,
"display" : 1,
"prominently" : 1,
"purchased" : 1,
"Guildford" : 1,
"lived" : 1,
"there" : 1,
"school" : 5,
"holidays" : 1,
"location" : 1,
"also" : 1,
"marked" : 1,
"enrolled" : 1,
"him" : 2,
"St" : 2,
"Michael" : 1,
"day" : 2,
"Charles" : 1,
"Road" : 1,
"Leonards" : 1,
"Sea" : 1,
"age" : 2,
"six" : 1,
"headmistress" : 1,
"recognised" : 1,
"talent" : 1,
"did" : 3,
"many" : 1,
"subsequent" : 1,
"educators" : 1,
"went" : 1,
"Sherborne" : 5,
"well" : 1,
"known" : 1,
"independent" : 1,
"market" : 1,
"town" : 1,
"Dorset" : 1,
"term" : 1,
"coincided" : 1,
"General" : 1,
"Strike" : 1,
"but" : 3,
"attend" : 1,
"rode" : 1,
"bicycle" : 1,
"unaccompanied" : 1,
"more" : 2,
"than" : 1,
"miles" : 1,
"km" : 1,
"Southampton" : 1,
"stopping" : 1,
"overnight" : 1,
"inn" : 1,
"natural" : 1,
"inclination" : 1,
"toward" : 1,
"mathematics" : 1,
"not" : 3,
"earn" : 1,
"respect" : 1,
"teachers" : 1,
"whose" : 1,
"definition" : 1,
"education" : 1,
"placed" : 1,
"emphasis" : 1,
"classics" : 1,
"headmaster" : 1,
"I" : 1,
"hope" : 1,
"will" : 1,
"fall" : 1,
"stools" : 1,
"If" : 2,
"must" : 2,
"aim" : 1,
"becoming" : 1,
"educated" : 1,
"solely" : 1,
"Scientific" : 1,
"Specialist" : 1,
"wasting" : 1,
"Despite" : 1,
"this" : 2,
"continued" : 1,
"show" : 1,
"remarkable" : 1,
"ability" : 1,
"studies" : 1,
"loved" : 1,
"solving" : 1,
"advanced" : 1,
"problems" : 1,
"without" : 1,
"having" : 1,
"studied" : 1,
"even" : 1,
"elementary" : 1,
"calculus" : 1,
"aged" : 1,
"encountered" : 1,
"Albert" : 1,
"Einstein" : 2,
"only" : 1,
"grasp" : 1,
"extrapolated" : 1,
"questioning" : 1,
"Newton" : 1,
"laws" : 1,
"motion" : 1,
"text" : 1,
"never" : 1,
"explicit" : 1,
"At" : 1,
"formed" : 1,
"important" : 1,
"friendship" : 2,
"fellow" : 1,
"pupil" : 1,
"Christopher" : 1,
"Morcom" : 2,
"provided" : 1,
"inspiration" : 1,
"future" : 1,
"endeavours" : 1,
"cut" : 1,
"short" : 1,
"February" : 1,
"complications" : 1,
"bovine" : 1,
"tuberculosis" : 1,
"contracted" : 1,
"after" : 2,
"drinking" : 1,
"infected" : 1,
"cow" : 1,
"milk" : 1,
"previously" : 1,
"This" : 1,
"event" : 1,
"shattered" : 1,
"religious" : 1,
"faith" : 1,
"atheist" : 1,
"adopted" : 1,
"conviction" : 1,
"all" : 1,
"phenomena" : 1,
"workings" : 1,
"human" : 1,
"brain" : 1,
"materialistic" : 1,
"survival" : 1,
"spirit" : 1
}

View File

@ -0,0 +1 @@
Hello my name is vassilis Did I say hello then

View File

@ -0,0 +1 @@
8 10 13 16 20 23 60 97 1873 1881 1912 1926 1927 1928 1930 1947 1948 1952 1954 1976 2009 2012 2013 Alan Mathison Turing OBE FRS tj r TEWR ing June was a British mathematician logician cryptanalyst and computer scientist He highly influential in the development of science giving formalisation concepts algorithm computation with machine which can be considered model general purpose is widely to father artificial intelligence During World War II worked for Government Code Cypher School GC CS at Bletchley Park Britain s codebreaking centre For time he head Hut section responsible German naval cryptanalysis devised number techniques breaking ciphers including method bombe an electromechanical that could find settings Enigma After war National Physical Laboratory where designed ACE one first designs stored program In joined Max Newman Computing Manchester University assisted computers became interested mathematical biology wrote paper on chemical basis morphogenesis predicted oscillating reactions such as Belousov Zhabotinsky reaction were observed 1960s homosexuality resulted criminal prosecution when homosexual acts still illegal United Kingdom accepted treatment female hormones castration alternative prison died just over two weeks before his 42nd birthday from cyanide poisoning An inquest determined death suicide mother some others believed accidental On September following Internet campaign Prime Minister Gordon Brown made official public apology behalf government appalling way treated May private member bill put House Lords grant statutory pardon July it gained support Early life career born London while leave position Indian Civil Service ICS Chhatrapur Bihar Orissa Province India Julius son clergyman Scottish family merchants had been based Netherlands included baronet wife Ethel Sara n e Stoney daughter Edward Waller chief engineer Madras Railways The Stoneys Protestant Anglo Irish gentry both County Tipperary Longford herself spent much her childhood Clare work brought grandfather Bengal Army However wanted their children up England so they moved Maida Vale recorded by blue plaque outside house birth later Colonnade Hotel elder brother John Sir Dermot 12th Baronet baronets His civil service commission active during years parents travelled between Hastings leaving sons stay retired couple Very early showed signs genius display prominently purchased Guildford lived there school holidays location also marked enrolled him St Michael day Charles Road Leonards Sea age six headmistress recognised talent did many subsequent educators went Sherborne well known independent market town Dorset term coincided General Strike but attend rode bicycle unaccompanied more than miles km Southampton stopping overnight inn natural inclination toward mathematics not earn respect teachers whose definition education placed emphasis classics headmaster I hope will fall stools If must aim becoming educated solely Scientific Specialist wasting Despite this continued show remarkable ability studies loved solving advanced problems without having studied even elementary calculus aged encountered Albert Einstein only grasp extrapolated questioning Newton laws motion text never explicit At formed important friendship fellow pupil Christopher Morcom provided inspiration future endeavours cut short February complications bovine tuberculosis contracted after drinking infected cow milk previously This event shattered religious faith atheist adopted conviction all phenomena workings human brain materialistic survival spirit

Binary file not shown.

View File

@ -0,0 +1,571 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
boolbase@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
brace-expansion@^1.1.7:
version "1.1.8"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
integrity sha1-wHshHHyVLsH479Uad+8NHTmQopI=
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
browser-stdout@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
integrity sha1-81HTKWnTL6XXpVZxVCY9korjvR8=
cheerio@^0.22.0:
version "0.22.0"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=
dependencies:
css-select "~1.2.0"
dom-serializer "~0.1.0"
entities "~1.1.1"
htmlparser2 "^3.9.1"
lodash.assignin "^4.0.9"
lodash.bind "^4.1.4"
lodash.defaults "^4.0.1"
lodash.filter "^4.4.0"
lodash.flatten "^4.2.0"
lodash.foreach "^4.3.0"
lodash.map "^4.4.0"
lodash.merge "^4.4.0"
lodash.pick "^4.2.1"
lodash.reduce "^4.4.0"
lodash.reject "^4.4.0"
lodash.some "^4.4.0"
combined-stream@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
integrity sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=
dependencies:
delayed-stream "~1.0.0"
commander@2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=
dependencies:
graceful-readlink ">= 1.0.0"
component-emitter@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
cookiejar@^2.0.6:
version "2.1.1"
resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.1.tgz#41ad57b1b555951ec171412a81942b1e8200d34a"
integrity sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
css-select@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=
dependencies:
boolbase "~1.0.0"
css-what "2.1"
domutils "1.5.1"
nth-check "~1.0.1"
css-what@2.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd"
integrity sha1-lGfQMsOM+u+58teVASUwYvh/ob0=
debug@2.6.8:
version "2.6.8"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
integrity sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=
dependencies:
ms "2.0.0"
debug@^2.2.0:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
dependencies:
ms "2.0.0"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
diff@3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
integrity sha1-yc45Okt8vQsFinJck98pkCeGj/k=
dom-serializer@0, dom-serializer@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=
dependencies:
domelementtype "~1.1.1"
entities "~1.1.1"
domelementtype@1, domelementtype@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
integrity sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=
domelementtype@~1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
integrity sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=
domhandler@^2.3.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz#892e47000a99be55bbf3774ffea0561d8879c259"
integrity sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=
dependencies:
domelementtype "1"
domutils@1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
dependencies:
dom-serializer "0"
domelementtype "1"
domutils@^1.5.1:
version "1.6.2"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff"
integrity sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=
dependencies:
dom-serializer "0"
domelementtype "1"
entities@^1.1.1, entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
integrity sha1-blwtClYhtdra7O+AuQ7ftc13cvA=
escape-string-regexp@1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
extend@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
integrity sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=
form-data@1.0.0-rc4:
version "1.0.0-rc4"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.0-rc4.tgz#05ac6bc22227b43e4461f488161554699d4f8b5e"
integrity sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14=
dependencies:
async "^1.5.2"
combined-stream "^1.0.5"
mime-types "^2.1.10"
formidable@^1.0.17:
version "1.1.1"
resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9"
integrity sha1-lriIb3w8NQi5Mta9cMTTqI818ak=
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
glob@7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg=
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.0.2"
once "^1.3.0"
path-is-absolute "^1.0.0"
"graceful-readlink@>= 1.0.0":
version "1.0.1"
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=
growl@1.9.2:
version "1.9.2"
resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
integrity sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=
has-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
he@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
htmlparser2@^3.9.1:
version "3.9.2"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338"
integrity sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=
dependencies:
domelementtype "^1.3.0"
domhandler "^2.3.0"
domutils "^1.5.1"
entities "^1.1.1"
inherits "^2.0.1"
readable-stream "^2.0.2"
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@^2.0.1, inherits@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
json3@3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=
lodash._baseassign@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=
dependencies:
lodash._basecopy "^3.0.0"
lodash.keys "^3.0.0"
lodash._basecopy@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=
lodash._basecreate@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
integrity sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=
lodash._getnative@^3.0.0:
version "3.9.1"
resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=
lodash._isiterateecall@^3.0.0:
version "3.0.9"
resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=
lodash.assignin@^4.0.9:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2"
integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI=
lodash.bind@^4.1.4:
version "4.2.1"
resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"
integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=
lodash.create@3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
integrity sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=
dependencies:
lodash._baseassign "^3.0.0"
lodash._basecreate "^3.0.0"
lodash._isiterateecall "^3.0.0"
lodash.defaults@^4.0.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=
lodash.filter@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace"
integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=
lodash.flatten@^4.2.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
lodash.foreach@^4.3.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
lodash.isarguments@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=
lodash.isarray@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=
lodash.keys@^3.0.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=
dependencies:
lodash._getnative "^3.0.0"
lodash.isarguments "^3.0.0"
lodash.isarray "^3.0.0"
lodash.map@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=
lodash.merge@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5"
integrity sha1-aYhLoUSsM/5plzemCG3v+t0PicU=
lodash.pick@^4.2.1:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
lodash.reduce@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b"
integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=
lodash.reject@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-4.6.0.tgz#80d6492dc1470864bbf583533b651f42a9f52415"
integrity sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=
lodash.some@^4.4.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=
methods@1.x, methods@^1.1.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
mime-db@~1.30.0:
version "1.30.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
integrity sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=
mime-types@^2.1.10:
version "2.1.17"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
integrity sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=
dependencies:
mime-db "~1.30.0"
mime@^1.3.4:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==
minimatch@^3.0.2:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
dependencies:
brace-expansion "^1.1.7"
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
mkdirp@0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
mocha@^3.1.1:
version "3.5.3"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d"
integrity sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==
dependencies:
browser-stdout "1.3.0"
commander "2.9.0"
debug "2.6.8"
diff "3.2.0"
escape-string-regexp "1.0.5"
glob "7.1.1"
growl "1.9.2"
he "1.1.1"
json3 "3.3.2"
lodash.create "3.1.1"
mkdirp "0.5.1"
supports-color "3.1.2"
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
nth-check@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4"
integrity sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=
dependencies:
boolbase "~1.0.0"
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
qs@^6.1.0:
version "6.5.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==
readable-stream@^2.0.2, readable-stream@^2.0.5:
version "2.3.3"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
integrity sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~1.0.6"
safe-buffer "~5.1.1"
string_decoder "~1.0.3"
util-deprecate "~1.0.1"
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==
should-equal@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-1.0.1.tgz#0b6e9516f2601a9fb0bb2dcc369afa1c7e200af7"
integrity sha1-C26VFvJgGp+wuy3MNpr6HH4gCvc=
dependencies:
should-type "^1.0.0"
should-format@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/should-format/-/should-format-1.0.0.tgz#0a30cdab4a3bd1427bbccb8b738567bda7290d78"
integrity sha1-CjDNq0o70UJ7vMuLc4VnvacpDXg=
dependencies:
should-type "^1.0.0"
should-type@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3"
integrity sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=
should@^9.0.2:
version "9.0.2"
resolved "https://registry.yarnpkg.com/should/-/should-9.0.2.tgz#b550f691e71c66788e0e96e9f721d58be6920e5a"
integrity sha1-tVD2keccZniODpbp9yHVi+aSDlo=
dependencies:
should-equal "^1.0.0"
should-format "^1.0.0"
should-type "^1.0.0"
string_decoder@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
integrity sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==
dependencies:
safe-buffer "~5.1.0"
superagent@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/superagent/-/superagent-2.3.0.tgz#703529a0714e57e123959ddefbce193b2e50d115"
integrity sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU=
dependencies:
component-emitter "^1.2.0"
cookiejar "^2.0.6"
debug "^2.2.0"
extend "^3.0.0"
form-data "1.0.0-rc4"
formidable "^1.0.17"
methods "^1.1.1"
mime "^1.3.4"
qs "^6.1.0"
readable-stream "^2.0.5"
supertest@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/supertest/-/supertest-2.0.1.tgz#a058081d788f1515d4700d7502881e6b759e44cd"
integrity sha1-oFgIHXiPFRXUcA11Aogea3WeRM0=
dependencies:
methods "1.x"
superagent "^2.0.0"
supports-color@3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
integrity sha1-cqJiiU2dQIuVbKBf83su2KbiotU=
dependencies:
has-flag "^1.0.0"
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=

View File

@ -0,0 +1,8 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
formidable@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.1.1.tgz#96b8886f7c3c3508b932d6bd70c4d3a88f35f1a9"
integrity sha1-lriIb3w8NQi5Mta9cMTTqI818ak=