Thursday, 26 February 2015

underscore.io: Creative Scala: A New Introduction to Scala

Creative Scala: A New Introduction to Scala

As we’ve taught more training courses, both free and paid, we’ve seen the need for material that is more basic than Essential Scala. In our free courses we often have students with very little programming experience. The programming patterns in Essential Scala are tough going for them, as they don’t have the background to appreciate the problems we’re solving. In our paid courses we find a lot of time is spent on syntax and other Scala basics that take away from more useful material. Creative Scala is designed to appeal to both groups by covering the very basics of functional programming and Scala is a fun way. We assume some familiarity with another programming language but little or no experience with Scala or other functional languages.

Friday, 2 January 2015

ByteRot: Rise of the Scientific Programmer

http://byterot.blogspot.nl/2015/01/future-of-programming-rise-of-the-scientific-developer-bigdata-datascience-machine-learning-and-fall-of-the-craftsman.html

Python is a very popular language in the academic space. It is easy to pick up works everywhere and has some functional aspects making it terse. But that is not all: it sits on top of a huge wealth of scientific libraries and it can talk to Java and C as well. Industry innovations have started to come straight from the Universities. From the early 2000s where the academia seemed completely irrelevant to now where it leads the innovation.PySpark has come fully from the heart of Berkeley's University. Many of the contributors to Hadoop code and its wide ecosystem are in the academia.

We are now in need of people who can scientifically argue about algorithms and data (is coding anything but code+data?) and most of them could implement an algorithm given the paper or mathematical notation. And guess what, this is the trend for jobs with "Machine Learning":
Trend of jobs containing "Machine Learning" - Source: ITJobsWatch

And this is really not just Hadoop. According to the source above Machine learning jobs have had 41% rise from 2013 to 2014 while hadoop jobs had only 16%.

This Deep Learning thing is real. It is already here. All those existing algorithms need to be polished and integrated with the new concepts and some will be just replaced. If you can give interactions of a person with a site to a deep network, it can predict with a high confidence whether they are gonna buy, leave or indecisive. It can find patterns in diseases that we as humans cannot. This is what we were waiting for (and we were afraid of?). Machine intelligence is here.

Scott Wlaschin: Functional Programming Patterns

http://www.slideshare.net/ScottWlaschin/fp-patterns-ndc-london2014

Tuesday, 30 December 2014

radimrehurek.com: Practical Data Science in Python


End-to-end example: automated spam filtering

http://www.johndcook.com : Object oriented vs. functional programming

OO makes code understandable by encapsulating moving parts.
FP makes code understandable by minimizing moving parts.
This explains some of the tension between object oriented programming and functional programming. The former tries to control state behind object interfaces. The latter tries to minimize state by using pure functions as much as possible.
It’s understandable that programmers accustomed to object oriented programming would like to add functional programming on top of OO, but I believe you have to make more of an exclusive commitment to functional programming to get the most benefit. For example, pure functions are easier to debug and to execute in parallel due to their lack of side effects. But if your code is only semi-functional, you can’t have the same confidence in testing your code or in spreading it across processors.
James Hague argues that 100% functional purity is impractical and that one should aim for 85% purity. But the 15% impurity needs to be partitioned, not randomly scattered across your code base. A simple strategy for doing this is to use functional in the small and OO in the large.Clojure also has some very interesting ideas for isolating the stateful parts of a program.
http://www.johndcook.com/blog/2010/11/03/object-oriented-vs-functional-programming/

vladmihalcea.com: A BEGINNER’S GUIDE TO TRANSACTION ISOLATION LEVELS IN ENTERPRISE JAVA

http://vladmihalcea.com/2014/12/23/a-beginners-guide-to-transaction-isolation-levels-in-enterprise-java/

A relational database strong consistency model is based on ACID transaction properties. In this post we are going to unravel the reasons behind using different transaction isolation levels and various configuration patterns for both resource local and JTA transactions.

Monday, 29 December 2014

Apache Camel <-> Enterprise Integration Patterns

In order to understand what Apache Camel is, you need to understand what Enterprise Integration Patterns are.