Skip to content

Scala Lang website redesign #606

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 147 commits into from
Jul 13, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
b583a6e
Fetching data from the Twitter API
Jan 9, 2017
4c80890
Using correct @scala_lang account
Jan 9, 2017
1b46577
Mostly recreating original DOM structure of the tweet carousel - For …
Jan 10, 2017
8057318
Added new data to frontpage md and YAML data files
Jan 16, 2017
2fd7afb
Added collection for frontpage bulletpoints
Jan 17, 2017
abd2989
Fixing https addresses for twitter and github sns
Jan 17, 2017
4667771
Merge pull request #15 from 47deg/sl13-frontpage-data-collections
Jan 17, 2017
543b840
Added styles and dom modifications for the twitter feed (still WIP)
Jan 17, 2017
dbe8cea
Fixed issues with tweetMachine and unslider to make the tweet feed work
Jan 18, 2017
d0ca599
Merge branch 'master' into sl11-fix-twitter-feed
Jan 18, 2017
f3e45e9
Added call to action to twitter feed
Jan 18, 2017
6d29ddc
Removing original tweetMachine plugin
Jan 18, 2017
fb8c09c
Merge pull request #16 from 47deg/sl11-fix-twitter-feed
Jan 18, 2017
2bdcd90
Front page elements until Scala in the nutshell
Jan 19, 2017
bd52ca4
Online courses and upcoming trainings
Jan 19, 2017
f5d33bd
Moved events to custom collection - Upcoming events and scala ecosyst…
Jan 19, 2017
58eb626
Moved old categorized blogs to custom collections - Blog section in f…
Jan 19, 2017
d0f1984
Gitter section in front page
Jan 19, 2017
3b4ac36
Footer section in front page
Jan 19, 2017
ed27252
Scala maintainers and supporters section
Jan 20, 2017
d114fce
Fixed wrong links in footer - Added last blog post ribbon over header
Jan 20, 2017
b3ec6cc
Add Heroku generated app.json
Jan 20, 2017
79b9853
Fixing pushpin, added Scaladex autocomplete functionality (but deacti…
Jan 20, 2017
d57a299
Merge branch 'master' into sl4-design-functionality-front-page
Jan 20, 2017
7af7ac9
Added composer.json for heroku/php buildpack
Jan 20, 2017
656f62d
Fixed wrong image url
Jan 20, 2017
8c21104
Testing multi-buildpack installation
Jan 20, 2017
c5ad2b6
Testing multi-buildpack installation
Jan 20, 2017
0b1462d
Further heroku configuration
Jan 20, 2017
36fdd0a
Further heroku configuration
Jan 20, 2017
e780f0b
Further heroku configuration
Jan 20, 2017
b494154
Further heroku configuration
Jan 20, 2017
e8cbecc
Fix issue with IDE logos
Jan 20, 2017
8c336b0
Updated styles to make tweet boxes the same height
Jan 20, 2017
7b23818
Scala in a nutshell functionality
Jan 20, 2017
923bae6
Updated CSS to fix a problem with the scala-in-a-nutshell section whi…
Jan 23, 2017
9d0bac8
Fix issue that prevented closing the menu in mobile mode - Fix extra …
Jan 23, 2017
e0ef3ce
Fixed problem with font sizes in Google Chrome Linux
Jan 23, 2017
0c0f4e2
Added missing meta
Jan 23, 2017
2b12d2d
Fixed CSS styles for the X button at the latest news ribbon
Jan 23, 2017
0c1afac
Removed console log lines
Jan 23, 2017
2954af9
Scaladex search implementation
Jan 24, 2017
8be0006
Adding ruby version to Gemfile - removing precompile stage from rakef…
Jan 26, 2017
858ea2c
Testing task rename in rakefile
Jan 26, 2017
5f9b552
Restoring rakefile
Jan 26, 2017
105c5a2
Trigger new deployment
Jan 26, 2017
f76618e
Fixing non-http images from twitter feed
Jan 27, 2017
0f59eb6
Removed communities section from frontpage (while leaving the structu…
Jan 27, 2017
3d6daa4
Made online courses be marked as free with opt-in paid certificate
Jan 27, 2017
685460a
Final scaladex code
Jan 27, 2017
e2a5f2a
Merge pull request #18 from 47deg/sl4-design-functionality-front-page
Jan 27, 2017
db0cc17
Added tooltip for IDEs with ensime plugin - Added retina support for …
Jan 30, 2017
b5a2b29
Removed previous scala-in-the-browser element in scala in a nutshell …
Jan 30, 2017
152b14d
Updated styles to make the Getting Started/Current API Docs more visible
Jan 30, 2017
1ed44ff
Removing logos for the excluded communities section
Jan 30, 2017
1836f52
Removed superfluous console.log code from functions.js
Jan 30, 2017
9d3b915
Merge pull request #26 from 47deg/sl24-requested-changes-frontpage
Jan 31, 2017
5f1b1b0
Adding layout for the Scala in the browser feature (still no connecti…
Feb 3, 2017
90f2cb4
Added new section to diferentiate JVM and JS backends
Feb 3, 2017
7382e5d
Fixed missing style in scala ecosystem section
Feb 3, 2017
39f9d8a
Updated JS and JVM logos
Feb 6, 2017
f9532b5
Adding prototype of the TOC sidebar, applying TOC generator script al…
Feb 7, 2017
333df6a
Removing superfluous comment
Feb 7, 2017
f45f4d9
Merge pull request #28 from 47deg/sl27-adding-jvm-js-box-and-scala-in…
Feb 7, 2017
ed06c79
Merge branch 'master' into sl29-sidebar-toc-generator
Feb 7, 2017
92cc245
Include selector for including or not the TOC sidebar in a page-per-p…
Feb 7, 2017
93edfc3
Documentation page layout
Feb 8, 2017
4e29d1a
First migration of content pages to new content layout - First migrat…
Feb 8, 2017
3ace9cb
Adding new layout to changelog
Feb 8, 2017
80d5da0
Short items list for the contribute subpages
Feb 8, 2017
de74d98
Merge pull request #30 from 47deg/sl29-sidebar-toc-generator
Feb 9, 2017
ef22caa
Merge branch 'master' into sl9-internal-pages-implementation
Feb 9, 2017
4a3ac82
Books page features
Feb 9, 2017
d785350
Adding code of conduct
Feb 9, 2017
cc71fe4
Add what is scala page
Feb 9, 2017
ce13fef
Added license page
Feb 9, 2017
aee0025
Updating further simple pages
Feb 9, 2017
a45113e
Taking gitter and discourse info to a separate yaml file
Feb 9, 2017
81cbe8f
Merge branch 'sl9-internal-pages-implementation' into sl9-internal-pa…
Feb 9, 2017
1f5355d
Adding community page with masthead
Feb 9, 2017
365fc20
Moving news posts to the general posts collection
Feb 9, 2017
49a41a2
Download all page
Feb 9, 2017
efe7fec
Remove old news collection
Feb 9, 2017
4499102
Fixing indentation issue
Feb 9, 2017
2a0630f
Fixing indentation issue
Feb 9, 2017
a96c9e0
Merge pull request #34 from 47deg/sl9-internal-pages-implementation-set2
Feb 9, 2017
12de631
Merge pull request #33 from 47deg/sl9-internal-pages-implementation
Feb 9, 2017
62c6fcd
Merge branch 'master' into sl32-bring-back-data-from-older-collections
Feb 9, 2017
ff44b87
Merge pull request #35 from 47deg/sl31-bring-back-data-from-older-col…
Feb 9, 2017
c9ec8ec
Training / Events functionality
Feb 10, 2017
c29b528
Fixing wrong YAML markup in previous trainings
Feb 10, 2017
8909df0
Remove superfluous comment
Feb 10, 2017
586336c
Remove superfluous image placeholder
Feb 10, 2017
6793ccb
Update styles
Feb 10, 2017
d62dfb6
Fixing urls in frontpage for the courses, training and events
Feb 10, 2017
03d9c50
Functionality for blog categorization and pagination
Feb 10, 2017
2263e69
Changing parameter for each post categorization value
Feb 10, 2017
c4425dc
Blog list implementation
Feb 13, 2017
32678b2
Blog detail functionality
Feb 13, 2017
94cddaf
Removing layout definitions per post, using defaults
Feb 13, 2017
3ba543a
Download page functionality
Feb 13, 2017
13153cf
Fixing wrong permalinks in release notes
Feb 13, 2017
f6ae0f3
Removing superfluous placeholders in search bar layout
Feb 13, 2017
08eac34
Merge pull request #38 from 47deg/sl9-internal-pages-blog-list
Feb 13, 2017
0e39957
Merge pull request #36 from 47deg/sl9-internal-pages-functionality-ev…
Feb 13, 2017
7d39939
Merge branch 'master' into sl9-internal-pages-download
Feb 13, 2017
763960d
Merge pull request #43 from 47deg/sl39-internal-pages-download
Feb 14, 2017
c0d5469
Fixing missing content in Download page
Feb 14, 2017
11b9028
Make sidebars stick to scroll
Feb 14, 2017
a04f91c
Fixing problem with CodeMirror editor line numbers misalignment
Feb 14, 2017
1be8a2b
Fixing problem with sticky TOC when resizing and in mobile mode
Feb 14, 2017
ab84f16
Update styles
Feb 14, 2017
24d1ce2
Fix broken links
Feb 14, 2017
1f074a6
Highlighting some posts to try out the highlights sidebar in blog
Feb 14, 2017
29f2e10
Keeping active state to current selected link in header nav bar
Feb 14, 2017
fcaa768
Merge pull request #47 from 47deg/sl46-fix-missing-content-in-downloa…
Feb 21, 2017
2e923e1
Fixing missing close menu overlay in internal pages
Feb 22, 2017
8e600f3
Fix layout issues in the download page
Feb 22, 2017
cb394d2
Fixing scaladex search url - Temporarily removing scastie block
Feb 22, 2017
a2b9dca
Moving scaladex search styles to the general stylesheet - Fixing unca…
Feb 22, 2017
3eb66b5
Detecting user's OS and show different step 1 and step 2 information …
Feb 22, 2017
6ae38fb
Updating download links and info
Feb 22, 2017
21b6d53
Cleaning up unused layouts/includes/js/css files from the old version
Feb 22, 2017
d6fab6d
Updating documentation
Feb 22, 2017
4ddef7d
Fixing wrong data in the downloads.yml file
Feb 22, 2017
7b4d540
Updating online courses dates
Feb 22, 2017
9c3013a
Updating styles
Feb 23, 2017
b50a863
Merge remote-tracking branch 'scala-lang/master' into test-merge
dominv Feb 23, 2017
60c8646
Updating events and posts with the last changes
dominv Feb 23, 2017
90a02cd
Removing events files from its old location
dominv Feb 23, 2017
96a3814
Fixing posts' layouts
dominv Feb 23, 2017
e9ed7f5
Fixing 2017.md layout
dominv Feb 23, 2017
e24243f
Removing twitter authentication and including the url where the scrip…
dominv Feb 23, 2017
03e7ca4
Fixing getFromTwitter.php url in tweetMachine-update.js
dominv Feb 24, 2017
f8f2640
Setting relative urls for twitter feed and updating gems
dominv Feb 27, 2017
78d7212
Merge pull request #49 from 47deg/bug-48-fix-issues-from-client-feedback
dominv Feb 27, 2017
b21e3ee
Updating jekyll version in README.md
dominv Feb 27, 2017
2ed8003
Merge remote-tracking branch 'scala-lang/master' into setting-up-merg…
dominv Feb 27, 2017
7013885
Relocating Scala Up North event
dominv Feb 27, 2017
d0ddcb3
Merge pull request #51 from 47deg/setting-up-merge-scala-lang
dominv Feb 27, 2017
d60cdb8
Merge remote-tracking branch 'scala-lang/master'
dominv Feb 28, 2017
6cf737c
Moving new blog posts to custom collection
dominv Feb 28, 2017
87daea2
Fixing marker position style
dominv Mar 2, 2017
fa08659
Fixing marker position style
dominv Mar 2, 2017
97d74df
Merge remote-tracking branch 'origin/fix-marker-position' into fix-ma…
dominv Mar 3, 2017
020670d
Hiding marker to avoid overlapping with text
dominv Mar 6, 2017
6b7be36
Merge pull request #53 from 47deg/fix-marker-position
dominv Mar 7, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 0 additions & 3 deletions .bundle/config

This file was deleted.

2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@ _site/
.DS_Store
/bundle-vendor/bundle/
/.jekyll-metadata
.bundle
/.idea
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ sudo: false

language: ruby
rvm:
- 2.2
- 2.4.0

# for faster builds
cache: bundler
Expand Down
6 changes: 5 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
source 'https://rubygems.org'
gem 'github-pages', '>=104', group: :jekyll_plugins
ruby '2.4.0'
gem 'jekyll'
gem 'kramdown'
gem 'rack-jekyll'
gem 'rake'
140 changes: 27 additions & 113 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,61 +1,12 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (4.2.7)
i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.4.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.10.0)
addressable (2.5.0)
public_suffix (~> 2.0, >= 2.0.2)
colorator (1.1.0)
ethon (0.9.1)
ffi (>= 1.3.0)
execjs (2.7.0)
faraday (0.9.2)
multipart-post (>= 1.2, < 3)
ffi (1.9.14)
ffi (1.9.17)
forwardable-extended (2.6.0)
gemoji (2.1.0)
github-pages (104)
activesupport (= 4.2.7)
github-pages-health-check (= 1.2.0)
jekyll (= 3.3.0)
jekyll-avatar (= 0.4.2)
jekyll-coffeescript (= 1.0.1)
jekyll-feed (= 0.8.0)
jekyll-gist (= 1.4.0)
jekyll-github-metadata (= 2.2.0)
jekyll-mentions (= 1.2.0)
jekyll-paginate (= 1.1.0)
jekyll-redirect-from (= 0.11.0)
jekyll-sass-converter (= 1.3.0)
jekyll-seo-tag (= 2.1.0)
jekyll-sitemap (= 0.12.0)
jekyll-swiss (= 0.4.0)
jemoji (= 0.7.0)
kramdown (= 1.11.1)
liquid (= 3.0.6)
listen (= 3.0.6)
mercenary (~> 0.3)
minima (= 2.0.0)
rouge (= 1.11.1)
terminal-table (~> 1.4)
github-pages-health-check (1.2.0)
addressable (~> 2.3)
net-dns (~> 0.8)
octokit (~> 4.0)
public_suffix (~> 1.4)
typhoeus (~> 0.7)
html-pipeline (2.4.2)
activesupport (>= 2)
nokogiri (>= 1.4)
i18n (0.7.0)
jekyll (3.3.0)
jekyll (3.4.0)
addressable (~> 2.4)
colorator (~> 1.0)
jekyll-sass-converter (~> 1.0)
Expand All @@ -66,80 +17,43 @@ GEM
pathutil (~> 0.9)
rouge (~> 1.7)
safe_yaml (~> 1.0)
jekyll-avatar (0.4.2)
jekyll (~> 3.0)
jekyll-coffeescript (1.0.1)
coffee-script (~> 2.2)
jekyll-feed (0.8.0)
jekyll (~> 3.3)
jekyll-gist (1.4.0)
octokit (~> 4.2)
jekyll-github-metadata (2.2.0)
jekyll (~> 3.1)
octokit (~> 4.0, != 4.4.0)
jekyll-mentions (1.2.0)
activesupport (~> 4.0)
html-pipeline (~> 2.3)
jekyll (~> 3.0)
jekyll-paginate (1.1.0)
jekyll-redirect-from (0.11.0)
jekyll (>= 2.0)
jekyll-sass-converter (1.3.0)
sass (~> 3.2)
jekyll-seo-tag (2.1.0)
jekyll (~> 3.3)
jekyll-sitemap (0.12.0)
jekyll (~> 3.3)
jekyll-swiss (0.4.0)
jekyll-sass-converter (1.5.0)
sass (~> 3.4)
jekyll-watch (1.5.0)
listen (~> 3.0, < 3.1)
jemoji (0.7.0)
activesupport (~> 4.0)
gemoji (~> 2.0)
html-pipeline (~> 2.2)
jekyll (>= 3.0)
json (1.8.3)
kramdown (1.11.1)
kramdown (1.13.2)
liquid (3.0.6)
listen (3.0.6)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9.7)
listen (3.0.8)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
mercenary (0.3.6)
mini_portile2 (2.1.0)
minima (2.0.0)
minitest (5.9.1)
multipart-post (2.0.0)
net-dns (0.8.0)
nokogiri (1.6.8.1)
mini_portile2 (~> 2.1.0)
octokit (4.4.1)
sawyer (~> 0.7.0, >= 0.5.3)
pathutil (0.14.0)
forwardable-extended (~> 2.6)
public_suffix (1.5.3)
public_suffix (2.0.5)
rack (1.6.5)
rack-jekyll (0.5.0)
jekyll (>= 1.3)
listen (>= 1.3)
rack (~> 1.5)
rake (12.0.0)
rb-fsevent (0.9.8)
rb-inotify (0.9.7)
rb-inotify (0.9.8)
ffi (>= 0.5.0)
rouge (1.11.1)
safe_yaml (1.0.4)
sass (3.4.22)
sawyer (0.7.0)
addressable (>= 2.3.5, < 2.5)
faraday (~> 0.8, < 0.10)
terminal-table (1.7.3)
unicode-display_width (~> 1.1.1)
thread_safe (0.3.5)
typhoeus (0.8.0)
ethon (>= 0.8.0)
tzinfo (1.2.2)
thread_safe (~> 0.1)
unicode-display_width (1.1.1)
sass (3.4.23)

PLATFORMS
ruby

DEPENDENCIES
github-pages (>= 104)
jekyll
kramdown
rack-jekyll
rake

RUBY VERSION
ruby 2.4.0p0

BUNDLED WITH
1.13.6
1.14.3
1 change: 1 addition & 0 deletions Procfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web: vendor/bin/heroku-php-apache2 ./site
33 changes: 30 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ It's a static site generated by [Jekyll](https://github.com/mojombo/jekyll), and

## Dependencies

This site uses a Jekyll, a Ruby framework. The required Jekyll version is 3.3.0.
This site uses a Jekyll, a Ruby framework. The required Jekyll version is 3.4.0.

## Building the site

Expand All @@ -33,9 +33,9 @@ you used to run Jekyll.

### Option 2) Building with global Jekyll

Install Jekyll 3.3.0 on your system using RubyGems:
Install Jekyll 3.4.0 on your system using RubyGems:

gem install jekyll -v 3.3.0
gem install jekyll -v 3.4.0

After cloning, `cd` into the directory where you cloned this repository and run:

Expand Down Expand Up @@ -97,7 +97,34 @@ The least error-prone way to link between documents, to link to local images, or

Here, `{{ site.baseurl }}` is a site-wide variable that represents the root directory of the static site. So, to display the Scala logo image, located in `img/scala-logo.png`, one must simply write: `![Img alt text]({{ site.baseurl }}/resources/img/scala-logo.png)`

## Permalinks

In this new version of the scala-lang site we've tried to follow a `pretty permalink` style, so that any generated page will have an permalink finishing in a slash character (`/`). This will tell Jekyll to build that particular page as an `index.html` inside a folder with a name as specified in the provided permalink. i.e.: if a page has a permalink as follows:

`permalink: /what-is-scala/`

This will tell Jekyll to create a `what-is-scala` folder, with an `index.html` file inside. Links to this page will refer to the `{{site.baseurl}}/what-is-scala/`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do previous links still work?


## Custom collections and data

In the previous version of the site, data used in different pages was contained in categorized blogs. This has been changed to use custom collections. Every custom collection is a folder starting with an underscore character (`_`), containing a `markdown` file for each member of the collection. As any markdown containing a page in the site, it starts with a YAML front matter containing the data for this item, and can optionally contain markdown text to be rendered as html.

Right now there are no collections being rendered as specific pages in the site (they're only consumed internally as static data), but in the future this can be changed by specifying the global `output: true` variable in the `_config.yml` custom collections section. You'll also need to specify a layout by using the `defaults` settings in the `_config.yml` file. i.e.:

```
defaults:
- scope:
path: ""
type: collection_name
values:
layout: layout_name
```

To access data from a custom collection just refer to `site.<collection_name>`. The collection's name will be the name of its folder sans the underscore character. i.e.: to access the data inside `_downloads`, you can do it as follows:

`site.downloads`

Some of the data has been also modelled as YAML files inside the `_data` folder. Generally for data that is used throughout the site (i.e: the navigation bar links).

## Resources and Workflow

Expand Down
5 changes: 5 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
namespace :assets do
task :precompile do
puts `bundle exec jekyll build --destination ./site`
end
end
12 changes: 12 additions & 0 deletions _books/1-programming-in-scala-3rd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: "Programming in Scala, 3rd ed"
link: http://booksites.artima.com/programming_in_scala_3ed
image: /resources/img/books/ProgrammingInScala.gif
status: Updated for Scala 2.12
authors: ["Martin Odersky", "Lex Spoon", "Bill Benners"]
publisher:
---

(First edition [available for free online reading](http://www.artima.com/pins1ed/))

Being co-written by the language's designer, Martin Odersky, you will find it provides additional depth and clarity to the diverse features of the language. The book provides both an authoritative reference for Scala and a systematic tutorial covering all the features in the language. Once you are familiar with the basics of Scala you will appreciate having this source of invaluable examples and precise explanations of Scala on hand. The book is available from [Artima](http://booksites.artima.com/programming_in_scala_3ed). Award winning book - [Jolt Productivity award](http://www.drdobbs.com/joltawards/232601431) for Technical Books.
22 changes: 22 additions & 0 deletions _books/2-scala-for-the-impatient.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
title: "Scala for the Impatient"
link: http://www.horstmann.com/scala/index.html
image: /resources/img/books/scala_for_the_impatient.png
status: Available Now
authors: ["Cay S. Horstmann"]
publisher: Addison-Wesley
publisherLink: https://heuk.pearson.com/about-us.html/Addison-Wesley/
---

What you get:

* A rapid introduction to Scala for programmers who are competent in Java, C#, or C++
* Blog-length chunks of information that you can digest quickly
* An organization that you'll find useful as a quick reference

What you don't get:

* An introduction into programming or object-oriented design
* Religion about the superiority of one paradigm or another
* Cute or academic examples
* Mind-numbing details about syntax minutiae
11 changes: 11 additions & 0 deletions _books/3-programming-scala.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: "Programming Scala"
link: http://shop.oreilly.com/product/0636920033073.do
image: /resources/img/books/ProgrammingScala-final-border.gif
status: Updated for Scala 2.11
authors: ["Alex Payne", "Dean Wampler"]
publisher: O’Reilly
publisherLink: http://www.oreilly.com/
---

Both are industry experts, Alex Payne being the lead API programmer at Twitter, a social networking service based on Scala. O’Reilly, the publisher, writes: "Learn how to be more productive with Scala, a new multi-paradigm language for the Java Virtual Machine (JVM) that integrates features of both object-oriented and functional programming. With this book, you'll discover why Scala is ideal for highly scalable, component-based applications that support concurrency and distribution. You'll also learn how to leverage the wealth of Java class libraries to meet the practical needs of enterprise and Internet projects more easily."
11 changes: 11 additions & 0 deletions _books/4-functional-programming-in-scala.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: "Functional Programming in Scala"
link: https://www.manning.com/books/functional-programming-in-scala
image: /resources/img/books/FPiS_93x116.png
status: Available now
authors: ["Paul Chiusano", "Rúnar Bjarnason"]
publisher: Manning
publisherLink: http://www.manning.com/
---

"Functional programming (FP) is a style of software development emphasizing functions that don't depend on program state... Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply it to the everyday business of coding. The book guides readers from basic techniques to advanced topics in a logical, concise, and clear progression. In it, you'll find concrete examples and exercises that open up the world of functional programming."
11 changes: 11 additions & 0 deletions _books/5-scala-in-depth.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: "Scala in Depth"
link: http://www.manning.com/suereth
image: /resources/img/books/icon_Scala_in_Depth_93x116.png
status: Available now
authors: ["Joshua D. Suereth"]
publisher: Manning
publisherLink: http://www.manning.com/
---

"While information about the Scala language is abundant, skilled practitioners, great examples, and insight into the best practices of the community are harder to find. Scala in Depth bridges that gap, preparing you to adopt Scala successfully for real world projects. Scala in Depth is a unique new book designed to help you integrate Scala effectively into your development process. By presenting the emerging best practices and designs from the Scala community, it guides you though dozens of powerful techniques example by example. There's no heavy-handed theory here-just lots of crisp, practical guides for coding in Scala."
11 changes: 11 additions & 0 deletions _books/6-scala-puzzlers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: "Scala Puzzlers"
link: http://www.artima.com/shop/scala_puzzlers
image: /resources/img/books/icon_Scala_in_Depth_93x116.png
status: Available now
authors: ["Andrew Phillips", "Nermin Šerifović"]
publisher: Artima Press
publisherLink: http://www.artima.com/index.jsp
---

"Getting code to do what we want it to do is perhaps the essence of our purpose as developers. So there are few things more intriguing or important than code that we think we understand, but that behaves rather contrary to our expectations. Scala Puzzlers is a collection of such examples in Scala. It is not only an entertaining and instructive way of understanding this highly expressive language better. It will also help you recognize many counter-intuitive traps and pitfalls and prevent them from inflicting further production bug hunt stress on Scala developers."
Loading