{"action":"created","comment":{"url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/comments/40244010","id":40244010,"diff_hunk":"@@ -0,0 +1,156 @@\n+---\n+comments: true\n+date: 2015-09-24 14:00:00\n+layout: post\n+slug: getting-started-scala-js\n+title: Scala in the browser. Getting Started with Scala.js\n+summary: In this post we will take a look at Scala.js, write a simple app with it and think about it's potential use cases\n+author: Patryk Jażdżewski\n+feed_group: scala\n+tags:\n+- Scala\n+- Scala.js\n+- Frontend\n+---\n+\n+<img src=\"https://raw.githubusercontent.com/pjazdzewski1990/scala-js-organizer-example/91f153b796219e8970f893fadd73a9c6b9108997/images/Scala.jpg\" alt=\"Scala.js\" style=\"width: 40%; height: 40%; display: block; margin-left: auto; margin-right: auto;\"/>\n+\n+## <a name=\"what-is\" href=\"#what-is\">What is Scala.js?</a>\n+\n+[Scala.js](http://www.scala-js.org/) is compiler that targets Javascript, unlike the traditional Scala compiler which target JVM bytecode. What it means in practice - with Scala.js you can write Scala code that will be executed in the browser. \n+\n+hen Node.js first appeared, it's selling point was the ability to use the same language for backend and frontend development. It did that by using Javascript to write backend code. This idea was heavily criticized. Many people claimed that if we want to strive for a single client and backend language we should pick the better one and in their opinion Javascript was not the one. \n+\n+Scala.js goes the other way around - it takes backend language and compiles it to executable Javascript. Effectively extending Scala programming concepts to the web. Now, with Scala.js you can use all the Scala tricks you learned in backend to create Web apps. Of course, the strict compiler and advanced type system are definitely in place, so you don't have to worry about ReferenceErrors, coercion or undefined variables.\n+\n+> Pitfalls\n+>\n+> There are also things Scala.js cannot do. As the Javascript runtime strongly differs from that offered by the JVM, some libraries written for the JVM won't run in the browser. Most importantly Scala.js is unable to run Java code (say goodbye to Joda time) and libraries using reflection under the hood will fail (for instance many serialization libraries). Fortunately it's not as bad as it seems. There are many Scala.js-compatible libraries available. For a more detailed description of the issue look [here.](http://lihaoyi.github.io/hands-on-scala-js/#DeviationsfromScala-JVM)\n+\n+In this post we will create a simple app to help you with get started. We will see how to build html, style it with CSS, fetch data and some interaction. \n+\n+## <a name=\"getting-started\" href=\"#getting-started\">Getting started</a>\n+\n+The fastest way to get started is to clone the [barebone template](https://github.com/sjrd/scala-js-example-app) created by Sébastien Doeraene. It doesn't do much, but it takes care of the configuration so you can move straight to the fun part. We will add changes there to make it fit our requirements. \n+\n+<script src=\"https://gist.github.com/pjazdzewski1990/bd25920b8e7b4e025681.js\"></script>\n+[\\[build.sbt\\]](https://github.com/pjazdzewski1990/scala-js-organizer-example/blob/b843de619f8c8a56cf52cfbf7b0e26d3ec5196e5/build.sbt)\n+\n+A few things to notice here - we commented `persistLauncher` out, added `scalatags` as a dependency, and renamed the app. `persistLauncher` is a handy flag that lets us use an auto-start script. We don't need it here. In this case I would prefer to make Scala.js build an executable Javascript class and then I will start it manually. For your simple app we added `scalatags` library. I found this one to be very useful. It allows us to build html structure in a typesafe manner. It's a huge improvement over strings. The last thing is to change the name. \n+\n+As we changed the name, we have to update the HTML file too:  \n+\n+<script src=\"https://gist.github.com/pjazdzewski1990/c3f20e2903d5ee7883b1.js\"></script>\n+[\\[index-fastopt.html\\]](https://github.com/pjazdzewski1990/scala-js-organizer-example/blob/b843de619f8c8a56cf52cfbf7b0e26d3ec5196e5/index-fastopt.html)\n+\n+The important part here are the `<script>` tags. First of all we pull `scala-js-organizer-fastopt.js` in. This is the runnable file Scala.js is building via sbt. That's why it's located in `target` directory. The name of the script consist of `name` from `build.sbt` and a \"-fastopt\" suffix. The second script tag contains the actual entry point of our application. The call is built as follows: it starts with package name, followed by a call to an exported class and then we can the exported method with some client side parameters. It might sound a bit complicated at this point, but the confusion will go away after we inspect `ScalaJSExample`.\n+\n+> What is fastopt? \n+>\n+> You might not have noticed it during backend programming, but Scala standard library is quite big in terms of code size. It's not a big deal when doing server-side programming, but on mobile and web the size of the executable is a huge issue. Scala.js tries to be the both of both worlds - provide you with the whole power of Scala standard library also producing a small executable. To make the code small for live environments Scala.js makes heavy use of minification and dead code elimination. Unfortunately the whole process is time consuming and makes the turnaround time longer. That's why Scala.js has two build 'modes' - fast-opt for developer builds and full-opt for production machines. \n+> In this post we will use fastopt only.\n+\n+Now let's take a brief look at `ScalaJSExample`\n+\n+<script src=\"https://gist.github.com/pjazdzewski1990/9b3b11c0b49378c38d6d.js\"></script>\n+[\\[ScalaJSExample.scala\\]](https://github.com/pjazdzewski1990/scala-js-organizer-example/blob/b843de619f8c8a56cf52cfbf7b0e26d3ec5196e5/src/main/scala/example/ScalaJSExample.scala#L13)\n+\n+Having this in place run `sbt ~fastOptJS` and open index-fastopt.html in a browser.  \n+\n+## <a name=\"basic-app\" href=\"#basic-app\">Basic App</a>\n+\n+We'll build a Todo app. We will keep it simple - track tasks and count the time needed to finishing them. Nothing fancy, but it will demonstrate how to use Scala and Javascript features together. \n+\n+Tasks will be represented as \n+<script src=\"https://gist.github.com/pjazdzewski1990/34aa386986ace3b18a54.js\"></script>\n+\n+Let's use `scalatags` to build an UI.\n+\n+<script src=\"https://gist.github.com/pjazdzewski1990/2f18f143f6b6a35e3c3a.js\"></script>\n+\n+The snippet above creates the UI for our TODOS. For now it doesn't really do anything. We will add interaction later on.","path":"_posts/2015-09-19-scala_js.md","position":71,"original_position":71,"commit_id":"cafd81ec80f6dcee611f7614002175608db89f4c","original_commit_id":"cafd81ec80f6dcee611f7614002175608db89f4c","user":{"login":"leszekgruchala","id":89165,"avatar_url":"https://avatars.githubusercontent.com/u/89165?v=3","gravatar_id":"","url":"https://api.github.com/users/leszekgruchala","html_url":"https://github.com/leszekgruchala","followers_url":"https://api.github.com/users/leszekgruchala/followers","following_url":"https://api.github.com/users/leszekgruchala/following{/other_user}","gists_url":"https://api.github.com/users/leszekgruchala/gists{/gist_id}","starred_url":"https://api.github.com/users/leszekgruchala/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leszekgruchala/subscriptions","organizations_url":"https://api.github.com/users/leszekgruchala/orgs","repos_url":"https://api.github.com/users/leszekgruchala/repos","events_url":"https://api.github.com/users/leszekgruchala/events{/privacy}","received_events_url":"https://api.github.com/users/leszekgruchala/received_events","type":"User","site_admin":false},"body":"`TODOS` - make it consistent across the article. Either `Todo`/`Todos` or `TODO`/`TODOs`","created_at":"2015-09-23T19:06:39Z","updated_at":"2015-09-23T19:06:39Z","html_url":"https://github.com/ScalaConsultants/ScalaConsultants.github.io/pull/74#discussion_r40244010","pull_request_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/74","_links":{"self":{"href":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/comments/40244010"},"html":{"href":"https://github.com/ScalaConsultants/ScalaConsultants.github.io/pull/74#discussion_r40244010"},"pull_request":{"href":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/74"}}},"pull_request":{"url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/74","id":45502172,"html_url":"https://github.com/ScalaConsultants/ScalaConsultants.github.io/pull/74","diff_url":"https://github.com/ScalaConsultants/ScalaConsultants.github.io/pull/74.diff","patch_url":"https://github.com/ScalaConsultants/ScalaConsultants.github.io/pull/74.patch","issue_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/issues/74","number":74,"state":"open","locked":false,"title":"Scala js","user":{"login":"pjazdzewski1990","id":1136843,"avatar_url":"https://avatars.githubusercontent.com/u/1136843?v=3","gravatar_id":"","url":"https://api.github.com/users/pjazdzewski1990","html_url":"https://github.com/pjazdzewski1990","followers_url":"https://api.github.com/users/pjazdzewski1990/followers","following_url":"https://api.github.com/users/pjazdzewski1990/following{/other_user}","gists_url":"https://api.github.com/users/pjazdzewski1990/gists{/gist_id}","starred_url":"https://api.github.com/users/pjazdzewski1990/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pjazdzewski1990/subscriptions","organizations_url":"https://api.github.com/users/pjazdzewski1990/orgs","repos_url":"https://api.github.com/users/pjazdzewski1990/repos","events_url":"https://api.github.com/users/pjazdzewski1990/events{/privacy}","received_events_url":"https://api.github.com/users/pjazdzewski1990/received_events","type":"User","site_admin":false},"body":"To be pushed this Thursday: 19.09.2015\r\nWill have a follow up post (they are too long together)","created_at":"2015-09-20T19:19:24Z","updated_at":"2015-09-23T19:06:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d377603f19bda67890e8f784b519a755b711a386","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/74/commits","review_comments_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/74/comments","review_comment_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/issues/74/comments","statuses_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/statuses/cafd81ec80f6dcee611f7614002175608db89f4c","head":{"label":"ScalaConsultants:scala_js","ref":"scala_js","sha":"cafd81ec80f6dcee611f7614002175608db89f4c","user":{"login":"ScalaConsultants","id":6207831,"avatar_url":"https://avatars.githubusercontent.com/u/6207831?v=3","gravatar_id":"","url":"https://api.github.com/users/ScalaConsultants","html_url":"https://github.com/ScalaConsultants","followers_url":"https://api.github.com/users/ScalaConsultants/followers","following_url":"https://api.github.com/users/ScalaConsultants/following{/other_user}","gists_url":"https://api.github.com/users/ScalaConsultants/gists{/gist_id}","starred_url":"https://api.github.com/users/ScalaConsultants/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ScalaConsultants/subscriptions","organizations_url":"https://api.github.com/users/ScalaConsultants/orgs","repos_url":"https://api.github.com/users/ScalaConsultants/repos","events_url":"https://api.github.com/users/ScalaConsultants/events{/privacy}","received_events_url":"https://api.github.com/users/ScalaConsultants/received_events","type":"Organization","site_admin":false},"repo":{"id":15366666,"name":"ScalaConsultants.github.io","full_name":"ScalaConsultants/ScalaConsultants.github.io","owner":{"login":"ScalaConsultants","id":6207831,"avatar_url":"https://avatars.githubusercontent.com/u/6207831?v=3","gravatar_id":"","url":"https://api.github.com/users/ScalaConsultants","html_url":"https://github.com/ScalaConsultants","followers_url":"https://api.github.com/users/ScalaConsultants/followers","following_url":"https://api.github.com/users/ScalaConsultants/following{/other_user}","gists_url":"https://api.github.com/users/ScalaConsultants/gists{/gist_id}","starred_url":"https://api.github.com/users/ScalaConsultants/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ScalaConsultants/subscriptions","organizations_url":"https://api.github.com/users/ScalaConsultants/orgs","repos_url":"https://api.github.com/users/ScalaConsultants/repos","events_url":"https://api.github.com/users/ScalaConsultants/events{/privacy}","received_events_url":"https://api.github.com/users/ScalaConsultants/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ScalaConsultants/ScalaConsultants.github.io","description":"Scalac blog","fork":false,"url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io","forks_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/forks","keys_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/teams","hooks_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/hooks","issue_events_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/events","assignees_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/tags","blobs_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/languages","stargazers_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/stargazers","contributors_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/contributors","subscribers_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/subscribers","subscription_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/subscription","commits_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/merges","archive_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/downloads","issues_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/labels{/name}","releases_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/releases{/id}","created_at":"2013-12-21T22:28:57Z","updated_at":"2015-08-26T10:49:35Z","pushed_at":"2015-09-23T06:47:14Z","git_url":"git://github.com/ScalaConsultants/ScalaConsultants.github.io.git","ssh_url":"git@github.com:ScalaConsultants/ScalaConsultants.github.io.git","clone_url":"https://github.com/ScalaConsultants/ScalaConsultants.github.io.git","svn_url":"https://github.com/ScalaConsultants/ScalaConsultants.github.io","homepage":null,"size":4297,"stargazers_count":1,"watchers_count":1,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":9,"mirror_url":null,"open_issues_count":2,"forks":9,"open_issues":2,"watchers":1,"default_branch":"master"}},"base":{"label":"ScalaConsultants:master","ref":"master","sha":"4cb381c9fcccd971fccc7051c3810230a2d383b4","user":{"login":"ScalaConsultants","id":6207831,"avatar_url":"https://avatars.githubusercontent.com/u/6207831?v=3","gravatar_id":"","url":"https://api.github.com/users/ScalaConsultants","html_url":"https://github.com/ScalaConsultants","followers_url":"https://api.github.com/users/ScalaConsultants/followers","following_url":"https://api.github.com/users/ScalaConsultants/following{/other_user}","gists_url":"https://api.github.com/users/ScalaConsultants/gists{/gist_id}","starred_url":"https://api.github.com/users/ScalaConsultants/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ScalaConsultants/subscriptions","organizations_url":"https://api.github.com/users/ScalaConsultants/orgs","repos_url":"https://api.github.com/users/ScalaConsultants/repos","events_url":"https://api.github.com/users/ScalaConsultants/events{/privacy}","received_events_url":"https://api.github.com/users/ScalaConsultants/received_events","type":"Organization","site_admin":false},"repo":{"id":15366666,"name":"ScalaConsultants.github.io","full_name":"ScalaConsultants/ScalaConsultants.github.io","owner":{"login":"ScalaConsultants","id":6207831,"avatar_url":"https://avatars.githubusercontent.com/u/6207831?v=3","gravatar_id":"","url":"https://api.github.com/users/ScalaConsultants","html_url":"https://github.com/ScalaConsultants","followers_url":"https://api.github.com/users/ScalaConsultants/followers","following_url":"https://api.github.com/users/ScalaConsultants/following{/other_user}","gists_url":"https://api.github.com/users/ScalaConsultants/gists{/gist_id}","starred_url":"https://api.github.com/users/ScalaConsultants/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ScalaConsultants/subscriptions","organizations_url":"https://api.github.com/users/ScalaConsultants/orgs","repos_url":"https://api.github.com/users/ScalaConsultants/repos","events_url":"https://api.github.com/users/ScalaConsultants/events{/privacy}","received_events_url":"https://api.github.com/users/ScalaConsultants/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ScalaConsultants/ScalaConsultants.github.io","description":"Scalac blog","fork":false,"url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io","forks_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/forks","keys_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/teams","hooks_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/hooks","issue_events_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/issues/events{/number}","events_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/events","assignees_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/assignees{/user}","branches_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/branches{/branch}","tags_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/tags","blobs_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/statuses/{sha}","languages_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/languages","stargazers_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/stargazers","contributors_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/contributors","subscribers_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/subscribers","subscription_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/subscription","commits_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/contents/{+path}","compare_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/merges","archive_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/downloads","issues_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/issues{/number}","pulls_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls{/number}","milestones_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/milestones{/number}","notifications_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/labels{/name}","releases_url":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/releases{/id}","created_at":"2013-12-21T22:28:57Z","updated_at":"2015-08-26T10:49:35Z","pushed_at":"2015-09-23T06:47:14Z","git_url":"git://github.com/ScalaConsultants/ScalaConsultants.github.io.git","ssh_url":"git@github.com:ScalaConsultants/ScalaConsultants.github.io.git","clone_url":"https://github.com/ScalaConsultants/ScalaConsultants.github.io.git","svn_url":"https://github.com/ScalaConsultants/ScalaConsultants.github.io","homepage":null,"size":4297,"stargazers_count":1,"watchers_count":1,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":9,"mirror_url":null,"open_issues_count":2,"forks":9,"open_issues":2,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/74"},"html":{"href":"https://github.com/ScalaConsultants/ScalaConsultants.github.io/pull/74"},"issue":{"href":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/issues/74"},"comments":{"href":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/issues/74/comments"},"review_comments":{"href":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/74/comments"},"review_comment":{"href":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/pulls/74/commits"},"statuses":{"href":"https://api.github.com/repos/ScalaConsultants/ScalaConsultants.github.io/statuses/cafd81ec80f6dcee611f7614002175608db89f4c"}}}}