Profile

Cover photo
Raymond Tay
Works at HP Labs Singapore
Attended National University of Singapore
Lives in Singapore
281 followers|121,771 views
AboutPostsPhotosYouTube+1's

Stream

Raymond Tay

Shared publicly  - 
 
 
Learning Concurrent Programming in Scala - a brief review

The preface of the book says “Its goal is to introduce important concurrency abstractions, and at the same time show how they work in real code”. The book is indeed a detailed one with 366 pages discussing concurrency paradigms in Scala. The author has organized the book very carefully, starting with the basics of concurrency and then building advanced materials on top of them. 

Chapter 2 discusses all concurrency primitives on the JVM - processes, threads, monitors and synchronization, atomicity, reordering and the Java Memory Model. Even if you are not very familiar with these concepts, a run through this chapter will serve you good to know the basics. I liked this approach very much.

Chapter 3 builds on top of chapter 2 and teaches you how the bigger building blocks are built on top of the primitives. It discusses topics like the Executor framework, atomic variables, lazy values and concurrent collections. There is a section dedicated to lock free programming where the author discusses CAS based implementations and lock free operations. I think this section could have been a bit more detailed with comparisons of lock free programming and wait free programming or designing a lock free data structure.

Chapter 4 is perhaps the core chapter of the book which discusses the various asynchronous abstractions that Scala standard library offers like Futures, Promises, importance of non blocking operations and the scala async framework. The discussion on Futures and Promises is fairly comprehensive and contains code snippets illustrating the usage of each of them. However the examples shown in this chapter are quite basic ones - may be the book targets a basic learning of the tools (in fact the title of the book also says so). But adding a section for the advanced learners where we develop some interesting combinators that can be used for concurrent composition would have been great.

Chapter 5 discusses parallel collections and chapter 6 details the reactive extensions. Both of these chapters are well written and covers the basics pretty well. In chapter 6 the author discusses reactive programming and event driven programming. The sections on Observables, composing observables and writing custom observables give a very detailed account of the programming model. The reader should benefit from these discussions.

Chapter 7 discusses software transactional memory, though I am not sure how many people use that in Scala. The chapter discusses all the basics of STM as implemented in Scala. But a section on gotchas and pitfalls would have been very useful. In the summary section of this chapter there are a few good references on STM, but the performance issues that are there in the Scala STM needed to be highlighted a bit more.

Chapter 8 is all actors and Akka. Again the author discusses as much as possible to elaborate the features in one chapter. It’s fairly comprehensive as an introduction to the framework.

The core strength of the book is the breadth of topics that it covers. The reader should get an idea of the overall space of concurrency on the JVM in general and Scala in particular. In some parts of the book, the discussion may seem a bit prosaic and mechanical, sometimes you get the feeling that you are reading a text book. In some of the chapters I would have liked to see specific sections dedicated to discussing design patterns and idioms for using the techniques, and also gotchas and pitfalls. But overall the book looks quite comprehensive and is possibly the best reference material out there that touches upon so many topics of concurrency on the JVM. 
View original post
1
Add a comment...

Raymond Tay

Shared publicly  - 
 
Haskell is quite fun once you get the hang of it. Lots of code reusability.
2
Add a comment...

Raymond Tay

Shared publicly  - 
 
When learning Haskell, mastery of typeclasses was really necessary if you wish to be a craftsman and i did this article from FPComplete really helpful.
https://www.fpcomplete.com/school/starting-with-haskell/introduction-to-haskell/5-type-classes
1
Add a comment...

Raymond Tay

Shared publicly  - 
1
Add a comment...

Raymond Tay

Shared publicly  - 
 
 
My "Review" of Haskell covering why I am still a programmer today.

Note: You do not need to register with Quora to read. You can click the "Close & Read" button outside of the box.

Why Quora?

Mostly to reach out to people who are outside of our little #haskell  channel / reddit bubble.
3 comments on original post
2
Add a comment...

Raymond Tay

Shared publicly  - 
 
 
as #scala.js approaching its maturity (v1.0), its document is getting better as well.  a supplementary site to http://www.scala-js.org/ has been set up by +Haoyi Li  that goes into detail on how to get scala.js up and running fast and easy.  highly recommended!
var x = 0.0 type Graph = (String, Double => Double) val graphs = Seq[Graph]( ("red", sin), ("green", x => 1 - abs(x % 4 - 2)), ("blue", x => pow(sin(x/12), 2) * sin(x)) ).zipWithIndex dom.setInterval(() => { x = (x + 1) % w; if (x == 0) clear() for (((color, f), i) <- graphs) { val offset = h ...
View original post
1
Add a comment...

Raymond Tay

Shared publicly  - 
 
 
Want to know more about working at Hazelcast? Stop by and chat with us at @Devoxx. http://buff.ly/1EEuyuw
View original post
1
Add a comment...
Have him in circles
281 people
Brandon Phuan's profile photo
Jerome Basa's profile photo
Mohd Syamsuri Che Mud's profile photo
Dominik Raniszewski's profile photo
Kin Vanna's profile photo
Manu Datta's profile photo
Ian Lim's profile photo
Gregg Lebovitz's profile photo
Jovian Li's profile photo

Raymond Tay

Shared publicly  - 
 
Don Stewart is giving a talk on FP in Google; you should go listen if you are in that area
 
Giving a Google tech talk next week in London about Haskell and software engineering. Exciting to talk about FP at Google!
8 comments on original post
1
Add a comment...

Raymond Tay

Shared publicly  - 
 
Echoing James's message and i hope you do the same as well, for obvious reasons. Flight travel safety needs to be re-examined with much urgency.
 
How can we help? The airline industry refuses to get together to put tracking electronics aboard all aircraft. The regulatory agencies sit on their hands, refusing to do anything that might cost the airlines any money. The only reason the latest missing aircraft was found at all is that it went down in a sea only 46 meters deep. The Java Sea is one of the shallowest in the world. We've all got to stand up and protest to the airlines. I emailed United, American and Southwest and I'm following up with hard copy. You do the same. The families of people aboard missing aircraft deserve better. We all do!
View original post
1
Add a comment...

Raymond Tay

Shared publicly  - 
 
I had several (i.e. > 3 ) bad experiences shopping with Amazon.
 
A short while ago I wrote about a bad experience with Amazon. They do not stand behind their customers. I bought a product from a reseller that advertised on item and sent me another. The reseller left me to get the package back to them and made me pay for shipping. The shipper lost the package and now I must fight with the post office over the insurance.

I use Amazon for convenience. From my perspective, their prices vary only slightly from an in store purchase. It is not convenient when you spend hours dealing with deceptive resellers and the shipper. I did insure the package, but try getting the money out of the post office.

I am out $1000 for trusting Amazon. I suggest you tread carefully when purchasing from Amazon. They no longer stand behind their customers.
2 comments on original post
1
Add a comment...

Raymond Tay

Shared publicly  - 
 
The more interesting part of this article is really the follow up conversations (scroll right to the bottom to follow those conversations)
https://codequalified.com/blog/2014/11/20/nonsense-of-10x-developers-and-github-as-a-cv/
Spend less time filtering CVs & interviewing unqualified candidates - automate programmer auditions with Code Qualified
4
Add a comment...

Raymond Tay

Shared publicly  - 
 
You might want to bookmark this talk
2
1
Lee Seng's profile photo
Add a comment...
People
Have him in circles
281 people
Brandon Phuan's profile photo
Jerome Basa's profile photo
Mohd Syamsuri Che Mud's profile photo
Dominik Raniszewski's profile photo
Kin Vanna's profile photo
Manu Datta's profile photo
Ian Lim's profile photo
Gregg Lebovitz's profile photo
Jovian Li's profile photo
Work
Occupation
Software Engineer
Employment
  • HP Labs Singapore
    2013 - present
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
Singapore
Previously
Singapore - Kuala Lumpur, Malaysia - Taipei, Taiwan - Bangkok, Thailand - Jakarta, Indonesia - Sydney, Australia - Melbourne, Australia - Beijing, China - Chicago, USA - San Francisco, USA - Marseilles, France
Story
Tagline
Software Developer in Scala, GPU Researcher whose interests are in GPGPU Stochastic Applications
Introduction
Scala Software Developer, Architect, Husband, Father, Son.

Used to be a performance engineer in Mercury Interactive and Singapore Computer Systems but i've been a software developer most of my career. My short gig as a whitebox tester leveraged my skills as a developer and made me more effective but boredom set in and moved back to software developer. I'm working with Scala most of the time.

Was in the finalist round for an article on string matching algorithms via GPGPU http://code.google.com/p/exactstrmatchgpu for Morgan Kauffman's GPU Computing Gems but did make it to the final cut but am glad to be part of it.

Picked up Scala in 2009 and used it on-off basis but only professionally starting in 2011 til present. Three articles were picked up and got some air time:


Wrote two books
Bragging rights
I survived 39 years in good health and good spirits !
Education
  • National University of Singapore
    Compiler & Algorithms, 1997 - 2001
Basic Information
Gender
Male
Raymond Tay's +1's are the things they like, agree with, or want to recommend.
What's new in iOS 8 by Mugunth Kumar
geekcamp.sg

Join me and vote for a talk at Geekcamp.SG today!

GNU Tools Cauldron 2013
google-opensource.blogspot.com

Recently Google hosted just over 100 GCC (GNU Compiler Collection) developers at our Mountain View, CA headquarters for the 3rd annual GNU T

Closure Tools — Google Developers
developers.google.com

What is the Closure Compiler? The Closure Compiler is a tool for making JavaScript download and run faster. It is a true compiler for JavaSc

Scale without NoSQL by Justin Mann
geekcamp.sg

Join me and vote for a talk at Geekcamp.SG today!

Google+Tweet
crossrider.com

A full featured twitter client for Google+! View your timeline, url shortening, photo sharing and more...!

openjdk-osx-build
code.google.com

Build scripts and packages for OpenJDK 7 and 8 under OS/X Snow and Lion

Explore functional programming with Scala by Raymond Tay
geekcamp.sg

Join me and vote for a talk at Geekcamp.SG today!

kosmosfs
code.google.com

Kosmos Distributed Filesystem

geekcamp / Frank
geekcamp.pbworks.com

Insert links. Insert links to other pages or uploaded files. Pages Images and files. Insert a link to a new page. Loading... No images or fi

Geekcamp.SG
geekcamp.sg

Vote for your favourite talks here!

Geekcamp.SG
geekcamp.sg

Vote for your favourite talks here!

Geekcamp.SG
geekcamp.sg

Vote for your favourite talks here!

Geekcamp.SG
geekcamp.sg

Vote for your favourite talks here!

Geekcamp.SG
geekcamp.sg

Vote for your favourite talks here!

geekcamp / Frank
geekcamp.pbworks.com

Insert links. Insert links to other pages or uploaded files. Pages Images and files. Insert a link to a new page. Loading... No images or fi

geekcamp / Frank
geekcamp.pbworks.com

Insert links. Insert links to other pages or uploaded files. Pages Images and files. Insert a link to a new page. Loading... No images or fi

Geekcamp.SG
geekcamp.sg

Vote for your favourite talks here!

geekcamp / Frank
geekcamp.pbworks.com

Insert links. Insert links to other pages or uploaded files. Pages Images and files. Insert a link to a new page. Loading... No images or fi

Geekcamp.SG
geekcamp.sg

Vote for your favourite talks here!

Geekcamp.SG
geekcamp.sg

Vote for your favourite talks here!