{"action":"created","comment":{"url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/comments/227213195","pull_request_review_id":167200730,"id":227213195,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNzIxMzE5NQ==","diff_hunk":"@@ -2,8 +2,398 @@\n layout: docs\r\n title: \"Essentials\"\r\n section: \"docs\"\r\n-author: author\r\n+author: Mauricio Saavedra\r\n ---\r\n \r\n # Module 2: Essentials\r\n \r\n+## Scala expressions, types and values\r\n+\r\n+In functional programming an expression is a unit of code that returns a value after \r\n+executed. Expressions make a foundation of functional programming since they allow to\r\n+return data instead of modifying existing data.\r\n+\r\n+An expression is as simple as:\r\n+\r\n+```scala\r\n+\"hello world\"\r\n+1 + 1\r\n+5 < 3\r\n+``` \r\n+\r\n+### Variables\r\n+\r\n+In this context, we can define a variable as the result of an expression. In Scala,\r\n+you can define variables in three basic ways.\r\n+We will further view in detail its differences\r\n+and usages, but for now lets settle with only learning how to define them:\r\n+\r\n+#### val\r\n+`val name: type = value`\r\n+ \r\n+For example:\r\n+```scala\r\n+val number: Int = 5\r\n+val word: String = \"Hi!\"\r\n+val something = 45.6\r\n+```\r\n+\r\n+A variable defined with `val` will be immutable, the type annotation is optional, but\r\n+type will be inferred.\r\n+\r\n+#### var\r\n+`var name: type = value`\r\n+\r\n+For example :\r\n+````scala\r\n+var variable = 8\r\n+variable = 15\r\n+variable = 36\r\n+````\r\n+\r\n+As `val`, type annotation is optional and type will be inferred, but for this case, the value is not\r\n+immutable, but variable. Type should be preserved, this means you cannot define a `var` as a Double\r\n+and then use it as string. In order to follow functional paradigm `var` should\r\n+not be used.\r\n+\r\n+#### def\r\n+`def name: type = value`\r\n+\r\n+For example\r\n+\r\n+```scala\r\n+def number: Int = 15\r\n+def word = \"Weird\"\r\n+def print = println(\"\")\r\n+``` \r\n+\r\n+When defining values, `def` works pretty much as `var` (except for some details that will be further\r\n+addressed), the great difference comes from the fact that `def` will not only store the \r\n+final result of the expression, but the whole expression. Also, as we are going to see\r\n+in detail next, it can be used to define functions.\r\n+\r\n+### Expression blocks\r\n+\r\n+You can have a set of expressions surrounded by `{ }`, these groups are called\r\n+expression blocks and can be composed of any of the expressions previously mentioned.\r\n+For example:\r\n+\r\n+```scala\r\n+{\r\n+val a = 5\r\n+val b = 6\r\n+println(a)\r\n+println(b)\r\n+} \r\n+```\r\n+\r\n+### Functions\r\n+\r\n+A function is an expression that takes parameters. Parameters need to specify type and \r\n+can be as many as needed.\r\n+ \r\n+`(param1: type, param2: type, ..., paramN: type) => block expression (function body)`\r\n+ \r\n+ For example:\r\n+\r\n+```scala\r\n+(x: Int, y: Int, z:Int) => (x + y)*z \r\n+(a: Int) => {\r\n+println(\"hello human\")\r\n+a*100\r\n+}\r\n+```\r\n+As we previously anticipated `def` can be used to define functions as `var`,\r\n+type annotation is optional and type will be inferred.\r\n+\r\n+`def name(param1: type, param2: type, ..., paramN: type): return_type = block expression (function body)`\r\n+ \r\n+Some examples are:\r\n+\r\n+```scala\r\n+def product(x: Int, y: Int, z:Int) = (x + y)*z\r\n+def sameResultAlways(a: Int, b: Double): Boolean =  {\r\n+println(\"I don't care about your input\")\r\n+true\r\n+} \r\n+```\r\n+\r\n+In further modules we will talk more about functions, for now you know how to define them.\r\n+\r\n+### Boolean expressions\r\n+\r\n+In Scala as in most languages we have the standard boolean expressions:\r\n+\r\n+#### Constant\r\n+\r\n+```scala\r\n+true\r\n+false\r\n+```\r\n+\r\n+#### Negation\r\n+\r\n+```scala\r\n+val a: Boolean\r\n+!a\r\n+```\r\n+\r\n+#### Conjunctions and disjuntions\r\n+\r\n+```scala\r\n+val a: Boolean\r\n+val b: Boolean\r\n+a && b\r\n+a || b\r\n+```\r\n+\r\n+#### Comparisons\r\n+\r\n+```scala\r\n+a < b\r\n+a <= b\r\n+a > b\r\n+a >= b\r\n+a == b \r\n+a != b\r\n+```\r\n+\r\n+\r\n+### Conditionals\r\n+We can build conditional expressions by using a boolean expression and an expression\r\n+block.\r\n+\r\n+`if (boolean expresion) expression block`\r\n+\r\n+For example:\r\n+\r\n+```scala\r\n+if (a > b) {\r\n+println(\"calculating percentage\")\r\n+b/a*100\r\n+}\r\n+```\r\n+\r\n+We can also use else statement, as usual\r\n+\r\n+```scala\r\n+if (boolean expresion) expression block\r\n+else expression block\r\n+```\r\n+\r\n+For example: \r\n+\r\n+```scala\r\n+if (a > b) {\r\n+println(\"calculating percentage\")\r\n+b/a*100\r\n+}\r\n+else {\r\n+println(\"calculating percentage\")\r\n+a/b*100\r\n+}\r\n+```\r\n+\r\n+### Types\r\n+\r\n+Scala is a statically typed with type inference language. This means all variables\r\n+and functions have a specific type, but you don't need to always annotate the type.\r\n+This makes types a big deal in Scala. As we have previously reviewed, all variables have\r\n+an assigned type that will not change, as well as functions and function's parameters.\r\n+The basic Scala types are illustrated on the following picture:\r\n+\r\n+<p style=\"text-align:center;\">\r\n+<img src=\"../img/ScalaTypes\" alt=\"Scala Types\" style=\"width: 20%\"/>\r\n+</p>\r\n+\r\n+As we can see they all come from a mother type called Any and then divide into\r\n+two families: AnyVal and AnyRef. AnyVal types are common to every programmer, but\r\n+AnyRef family might not be so, we are going to elaborate a little on this.\r\n+\r\n+#### AnyRef\r\n+AnyRef types should take parameters, this means that an AnyRef type cannot be defined\r\n+on its own. This is, you can only have a list of some type, you cannot have\r\n+a list of anything. For example:\r\n+\r\n+```scala\r\n+val height: List[Double] = List(1.70, 1.77, 1.52, 1.92)\r\n+val middleName: List[Option[String]] = List(Option(\"Carlos\"), None, Option(\"Guadalupe\"))\r\n+val probabilityOfExplotion: MyVerySpecialType[Boolean] = MyVerySpecialType(true)  \r\n+```\r\n+\r\n+## Evaluation Strategies\r\n+\r\n+### call-by-value and call-by-name\r\n+The first important thing we need to know is that no matter the evaluation strategy used\r\n+it will reduce to the same value as long we only have pure functions and the evaluation terminates.\r\n+\r\n+When evaluating by call by value (cbv) we first evaluate the arguments of the function and then we substitute\r\n+on the body of the function.\r\n+\r\n+When evaluating by call by name (cbn) we first substitute on the body of the function the arguments\r\n+as they are.\r\n+\r\n+Call-by-name has the advantage that a function argument is not evaluated if the corresponding parameter is not\r\n+used in the body. But sometimes it can end up evaluating the same expression multiple times.\r\n+\r\n+In Scala the \"standard\" is cbv, but we can use cbn if a function parameter starts with =>\r\n+\r\n+This means:\r\n+\r\n+```scala\r\n+//This function will be evaluated as cbv\r\n+def sum(x: Int, y: Int): Int = x + y\r\n+\r\n+//x parameter will be evaluated as cbn\r\n+def sum_1(x: => Int, y: Int): Int = x + y\r\n+\r\n+//both parameter will be evaluated as cbn\r\n+def sum_2(x: => Int, y: => Int): Int = x + y\r\n+```\r\n+\r\n+This way, evaluating `sum`, `sum_1` and `sum_2` with the same parameters will result on different number of steps, but \r\n+same result. This is:\r\n+\r\n+```scala\r\n+sum(3*2+5, 2+3)\r\n+sum(6+5, 2+3)\r\n+sum(11, 2+3)\r\n+sum(11,5) = 11 + 5 = 16\r\n+```\r\n+for `sum_1`: \r\n+```scala\r\n+sum_1(3*2+5,2+3)\r\n+sum_1(3*2+5,5) = (3*2+5)+5 = (6 + 5) + 5 = 11 + 5 = 16\r\n+```\r\n+for `sum_2`:\r\n+```scala\r\n+sum_2(3*2+5, 2+3) = (3*2+5)+(2+3) = (6+5)+(2+3) = 11 + (2+3) = 11 + 5 = 16\r\n+```\r\n+\r\n+## Understanding the JVM:  Basics of Scala interoperability\r\n+The JVM has two main proposes: \r\n+\r\n+- Allowing any program to run in every device or operating system.\r\n+- Managing and optimizing memory usage.\r\n+\r\n+Scala is built on top of the JVM, which makes it a JVM language. A JVM language is any language with functionality\r\n+that can be expressed in terms of a valid class filed that can be hosted on de JVM, some examples of such languages are:\r\n+- Kotlin \r\n+- Groovy\r\n+- Clojure\r\n+- Scala\r\n+\r\n+The main advantage Scala has as JVM language is the interoperability with Java and some other JVM languages. In\r\n+particular the interaction with the mainstream object-oriented Java programming language is \r\n+[straight forward](https://docs.scala-lang.org/tour/tour-of-scala.html).\r\n+In general we can say you can always use existing [Java code in Scala](https://www.scala-lang.org/old/faq/4), but\r\n+using Scala features without analogues on Java in Java con get tricky, but \r","path":"src/main/tut/docs/module2.md","position":290,"original_position":290,"commit_id":"271ae2bddf23892009cde0137531632e993be3cf","original_commit_id":"271ae2bddf23892009cde0137531632e993be3cf","user":{"login":"Rafailong","id":945197,"node_id":"MDQ6VXNlcjk0NTE5Nw==","avatar_url":"https://avatars1.githubusercontent.com/u/945197?v=4","gravatar_id":"","url":"https://api.github.com/users/Rafailong","html_url":"https://github.com/Rafailong","followers_url":"https://api.github.com/users/Rafailong/followers","following_url":"https://api.github.com/users/Rafailong/following{/other_user}","gists_url":"https://api.github.com/users/Rafailong/gists{/gist_id}","starred_url":"https://api.github.com/users/Rafailong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rafailong/subscriptions","organizations_url":"https://api.github.com/users/Rafailong/orgs","repos_url":"https://api.github.com/users/Rafailong/repos","events_url":"https://api.github.com/users/Rafailong/events{/privacy}","received_events_url":"https://api.github.com/users/Rafailong/received_events","type":"User","site_admin":false},"body":"```suggestion\r\nusing Scala features without analogues on Java in Java can get tricky, but \r\n```","created_at":"2018-10-23T03:38:20Z","updated_at":"2018-10-23T03:38:20Z","html_url":"https://github.com/IntersysConsulting/scala-essentials-nanodegree/pull/34#discussion_r227213195","pull_request_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/34","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/comments/227213195"},"html":{"href":"https://github.com/IntersysConsulting/scala-essentials-nanodegree/pull/34#discussion_r227213195"},"pull_request":{"href":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/34"}}},"pull_request":{"url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/34","id":224342244,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI0MzQyMjQ0","html_url":"https://github.com/IntersysConsulting/scala-essentials-nanodegree/pull/34","diff_url":"https://github.com/IntersysConsulting/scala-essentials-nanodegree/pull/34.diff","patch_url":"https://github.com/IntersysConsulting/scala-essentials-nanodegree/pull/34.patch","issue_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/issues/34","number":34,"state":"open","locked":false,"title":"Feature/module2","user":{"login":"MMSaavedraC","id":35238383,"node_id":"MDQ6VXNlcjM1MjM4Mzgz","avatar_url":"https://avatars3.githubusercontent.com/u/35238383?v=4","gravatar_id":"","url":"https://api.github.com/users/MMSaavedraC","html_url":"https://github.com/MMSaavedraC","followers_url":"https://api.github.com/users/MMSaavedraC/followers","following_url":"https://api.github.com/users/MMSaavedraC/following{/other_user}","gists_url":"https://api.github.com/users/MMSaavedraC/gists{/gist_id}","starred_url":"https://api.github.com/users/MMSaavedraC/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MMSaavedraC/subscriptions","organizations_url":"https://api.github.com/users/MMSaavedraC/orgs","repos_url":"https://api.github.com/users/MMSaavedraC/repos","events_url":"https://api.github.com/users/MMSaavedraC/events{/privacy}","received_events_url":"https://api.github.com/users/MMSaavedraC/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-10-19T16:23:46Z","updated_at":"2018-10-23T03:38:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8c35039092e5e4adfbcdf4426b30c4ff0020cbea","assignee":null,"assignees":[],"requested_reviewers":[{"login":"oscarvarto","id":1676245,"node_id":"MDQ6VXNlcjE2NzYyNDU=","avatar_url":"https://avatars1.githubusercontent.com/u/1676245?v=4","gravatar_id":"","url":"https://api.github.com/users/oscarvarto","html_url":"https://github.com/oscarvarto","followers_url":"https://api.github.com/users/oscarvarto/followers","following_url":"https://api.github.com/users/oscarvarto/following{/other_user}","gists_url":"https://api.github.com/users/oscarvarto/gists{/gist_id}","starred_url":"https://api.github.com/users/oscarvarto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oscarvarto/subscriptions","organizations_url":"https://api.github.com/users/oscarvarto/orgs","repos_url":"https://api.github.com/users/oscarvarto/repos","events_url":"https://api.github.com/users/oscarvarto/events{/privacy}","received_events_url":"https://api.github.com/users/oscarvarto/received_events","type":"User","site_admin":false},{"login":"RHDZMOTA","id":11299634,"node_id":"MDQ6VXNlcjExMjk5NjM0","avatar_url":"https://avatars2.githubusercontent.com/u/11299634?v=4","gravatar_id":"","url":"https://api.github.com/users/RHDZMOTA","html_url":"https://github.com/RHDZMOTA","followers_url":"https://api.github.com/users/RHDZMOTA/followers","following_url":"https://api.github.com/users/RHDZMOTA/following{/other_user}","gists_url":"https://api.github.com/users/RHDZMOTA/gists{/gist_id}","starred_url":"https://api.github.com/users/RHDZMOTA/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RHDZMOTA/subscriptions","organizations_url":"https://api.github.com/users/RHDZMOTA/orgs","repos_url":"https://api.github.com/users/RHDZMOTA/repos","events_url":"https://api.github.com/users/RHDZMOTA/events{/privacy}","received_events_url":"https://api.github.com/users/RHDZMOTA/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/34/commits","review_comments_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/34/comments","review_comment_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/comments{/number}","comments_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/issues/34/comments","statuses_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/statuses/271ae2bddf23892009cde0137531632e993be3cf","head":{"label":"IntersysConsulting:feature/module2","ref":"feature/module2","sha":"271ae2bddf23892009cde0137531632e993be3cf","user":{"login":"IntersysConsulting","id":4701019,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ3MDEwMTk=","avatar_url":"https://avatars2.githubusercontent.com/u/4701019?v=4","gravatar_id":"","url":"https://api.github.com/users/IntersysConsulting","html_url":"https://github.com/IntersysConsulting","followers_url":"https://api.github.com/users/IntersysConsulting/followers","following_url":"https://api.github.com/users/IntersysConsulting/following{/other_user}","gists_url":"https://api.github.com/users/IntersysConsulting/gists{/gist_id}","starred_url":"https://api.github.com/users/IntersysConsulting/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IntersysConsulting/subscriptions","organizations_url":"https://api.github.com/users/IntersysConsulting/orgs","repos_url":"https://api.github.com/users/IntersysConsulting/repos","events_url":"https://api.github.com/users/IntersysConsulting/events{/privacy}","received_events_url":"https://api.github.com/users/IntersysConsulting/received_events","type":"Organization","site_admin":false},"repo":{"id":148518312,"node_id":"MDEwOlJlcG9zaXRvcnkxNDg1MTgzMTI=","name":"scala-essentials-nanodegree","full_name":"IntersysConsulting/scala-essentials-nanodegree","private":false,"owner":{"login":"IntersysConsulting","id":4701019,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ3MDEwMTk=","avatar_url":"https://avatars2.githubusercontent.com/u/4701019?v=4","gravatar_id":"","url":"https://api.github.com/users/IntersysConsulting","html_url":"https://github.com/IntersysConsulting","followers_url":"https://api.github.com/users/IntersysConsulting/followers","following_url":"https://api.github.com/users/IntersysConsulting/following{/other_user}","gists_url":"https://api.github.com/users/IntersysConsulting/gists{/gist_id}","starred_url":"https://api.github.com/users/IntersysConsulting/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IntersysConsulting/subscriptions","organizations_url":"https://api.github.com/users/IntersysConsulting/orgs","repos_url":"https://api.github.com/users/IntersysConsulting/repos","events_url":"https://api.github.com/users/IntersysConsulting/events{/privacy}","received_events_url":"https://api.github.com/users/IntersysConsulting/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/IntersysConsulting/scala-essentials-nanodegree","description":"Scala Essentials Nanodegree by Intersys Consulting","fork":false,"url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree","forks_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/forks","keys_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/keys{/key_id}","collaborators_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/teams","hooks_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/hooks","issue_events_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/issues/events{/number}","events_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/events","assignees_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/assignees{/user}","branches_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/branches{/branch}","tags_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/tags","blobs_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/git/refs{/sha}","trees_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/git/trees{/sha}","statuses_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/statuses/{sha}","languages_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/languages","stargazers_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/stargazers","contributors_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/contributors","subscribers_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/subscribers","subscription_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/subscription","commits_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/commits{/sha}","git_commits_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/git/commits{/sha}","comments_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/comments{/number}","issue_comment_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/issues/comments{/number}","contents_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/contents/{+path}","compare_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/compare/{base}...{head}","merges_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/merges","archive_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/downloads","issues_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/issues{/number}","pulls_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls{/number}","milestones_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/milestones{/number}","notifications_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/labels{/name}","releases_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/releases{/id}","deployments_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/deployments","created_at":"2018-09-12T17:41:11Z","updated_at":"2018-10-19T20:55:58Z","pushed_at":"2018-10-22T12:41:10Z","git_url":"git://github.com/IntersysConsulting/scala-essentials-nanodegree.git","ssh_url":"git@github.com:IntersysConsulting/scala-essentials-nanodegree.git","clone_url":"https://github.com/IntersysConsulting/scala-essentials-nanodegree.git","svn_url":"https://github.com/IntersysConsulting/scala-essentials-nanodegree","homepage":"https://intersysconsulting.github.io/scala-essentials-nanodegree/","size":3844,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":11,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":2,"open_issues":11,"watchers":0,"default_branch":"develop"}},"base":{"label":"IntersysConsulting:develop","ref":"develop","sha":"5150f81844d7c595be770065c21caecbd6ef5dd1","user":{"login":"IntersysConsulting","id":4701019,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ3MDEwMTk=","avatar_url":"https://avatars2.githubusercontent.com/u/4701019?v=4","gravatar_id":"","url":"https://api.github.com/users/IntersysConsulting","html_url":"https://github.com/IntersysConsulting","followers_url":"https://api.github.com/users/IntersysConsulting/followers","following_url":"https://api.github.com/users/IntersysConsulting/following{/other_user}","gists_url":"https://api.github.com/users/IntersysConsulting/gists{/gist_id}","starred_url":"https://api.github.com/users/IntersysConsulting/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IntersysConsulting/subscriptions","organizations_url":"https://api.github.com/users/IntersysConsulting/orgs","repos_url":"https://api.github.com/users/IntersysConsulting/repos","events_url":"https://api.github.com/users/IntersysConsulting/events{/privacy}","received_events_url":"https://api.github.com/users/IntersysConsulting/received_events","type":"Organization","site_admin":false},"repo":{"id":148518312,"node_id":"MDEwOlJlcG9zaXRvcnkxNDg1MTgzMTI=","name":"scala-essentials-nanodegree","full_name":"IntersysConsulting/scala-essentials-nanodegree","private":false,"owner":{"login":"IntersysConsulting","id":4701019,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ3MDEwMTk=","avatar_url":"https://avatars2.githubusercontent.com/u/4701019?v=4","gravatar_id":"","url":"https://api.github.com/users/IntersysConsulting","html_url":"https://github.com/IntersysConsulting","followers_url":"https://api.github.com/users/IntersysConsulting/followers","following_url":"https://api.github.com/users/IntersysConsulting/following{/other_user}","gists_url":"https://api.github.com/users/IntersysConsulting/gists{/gist_id}","starred_url":"https://api.github.com/users/IntersysConsulting/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IntersysConsulting/subscriptions","organizations_url":"https://api.github.com/users/IntersysConsulting/orgs","repos_url":"https://api.github.com/users/IntersysConsulting/repos","events_url":"https://api.github.com/users/IntersysConsulting/events{/privacy}","received_events_url":"https://api.github.com/users/IntersysConsulting/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/IntersysConsulting/scala-essentials-nanodegree","description":"Scala Essentials Nanodegree by Intersys Consulting","fork":false,"url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree","forks_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/forks","keys_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/keys{/key_id}","collaborators_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/teams","hooks_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/hooks","issue_events_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/issues/events{/number}","events_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/events","assignees_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/assignees{/user}","branches_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/branches{/branch}","tags_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/tags","blobs_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/git/refs{/sha}","trees_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/git/trees{/sha}","statuses_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/statuses/{sha}","languages_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/languages","stargazers_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/stargazers","contributors_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/contributors","subscribers_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/subscribers","subscription_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/subscription","commits_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/commits{/sha}","git_commits_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/git/commits{/sha}","comments_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/comments{/number}","issue_comment_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/issues/comments{/number}","contents_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/contents/{+path}","compare_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/compare/{base}...{head}","merges_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/merges","archive_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/downloads","issues_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/issues{/number}","pulls_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls{/number}","milestones_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/milestones{/number}","notifications_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/labels{/name}","releases_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/releases{/id}","deployments_url":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/deployments","created_at":"2018-09-12T17:41:11Z","updated_at":"2018-10-19T20:55:58Z","pushed_at":"2018-10-22T12:41:10Z","git_url":"git://github.com/IntersysConsulting/scala-essentials-nanodegree.git","ssh_url":"git@github.com:IntersysConsulting/scala-essentials-nanodegree.git","clone_url":"https://github.com/IntersysConsulting/scala-essentials-nanodegree.git","svn_url":"https://github.com/IntersysConsulting/scala-essentials-nanodegree","homepage":"https://intersysconsulting.github.io/scala-essentials-nanodegree/","size":3844,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":11,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":2,"open_issues":11,"watchers":0,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/34"},"html":{"href":"https://github.com/IntersysConsulting/scala-essentials-nanodegree/pull/34"},"issue":{"href":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/issues/34"},"comments":{"href":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/issues/34/comments"},"review_comments":{"href":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/34/comments"},"review_comment":{"href":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/pulls/34/commits"},"statuses":{"href":"https://api.github.com/repos/IntersysConsulting/scala-essentials-nanodegree/statuses/271ae2bddf23892009cde0137531632e993be3cf"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"Rafailong"}}