Functional Programming in Haskell: Supercharge Your Coding

Today I will start another programming course at FutureLearn. The course is named “Functional Programming in Haskell: Supercharge Your Coding” and it looks interesting. Here is a short description of the course:

“On this introductory course, you will discover the power, elegance and simplicity of functional programming in Haskell. By the end, you will be able to:
characterise the differences between imperative and functional programming paradigms;
implement small-scale functional programs in elementary Haskell;
apply standard combinators for operating on lists;
create new algebraic data types and use recursion to define functions that traverse recursive types; and reason in a mathematical manner about data types, functions, recursion and similar functional constructs.”

You can read more about the course here:


Functional Programming in Haskell: Supercharge Your Coding

Developer Testing

Henrik Warne's blog

I recently found out about the book Developer Testing – Building Quality Into Software by Alexander Tarlinder, and I immediately wanted to read it. Even though I am a developer at heart, I have always been interested in software testing (I even worked as a tester for two years).

I think the subject of the book, developer testing, is timely. There seems to be a broad trend where more and more responsibility for testing is given to developers. It follows from the move towards micro services, dev ops and the “you built it, you run it” principle. Another driving force is the prevalence of developer testing frameworks that started with JUnit and now includes many more. These frameworks encourage and help developers write automatic tests.

Despite this trend of increasing developer testing, my feeling is that many developers still don’t test their programs well enough. For example, they may…

View original post 1,010 more words

Developer Testing

Caffeine :: Livecode the Web!


CaffeineFor the impatient… here it is.

Back to the Future, Again

With the arrival of Bert Freudenberg’s SqueakJS, it was finally time for me to revisit the weird and wonderful world of JavaScript and web development. My previous experiences with it, in my consulting work, were marked by awkward development tools, chaotic frameworks, and scattered documentation. Since I ultimately rely on debuggers to make sense of things, my first question when evaluating a development environment is “What is debugging like?”

Since I’m a livecoder, I want my debugger to run in the web browser I’m using to view the site I’m debugging. The best in-browser debugger I’ve found, Chrome DevTools (CDT), is decent if you’re used to a command-line interface, but lacking as a GUI. With Smalltalk, I can open new windows to inspect objects, and keep them around as those objects evolve. CDT…

View original post 626 more words

Caffeine :: Livecode the Web!

Is Software Engineering Possible?

A Programmers Place

When the textile industry arose in the 18th century, craft was the norm in manufacturing. As the industrial revolution progressed, one after another sector of the economy made the transition from craft to industry. In 1968 it was noticed that the creation of software was a craft in a world where industry was the norm. In that year a conference was convened to address that anomaly. Those present saw themselves as participants in a momentous occasion: after this conference, Software Engineering existed, which was not the case before.

In the final paragraph of my 2009 article “Software Engineering: From Craft to Industry?” [8], I ventured to disagree. From the final paragraph:

While the processing of material leaves an irreducible residue of work for humans, in the processing of information any work that is routine instantly vanishes. Extracting the routine part from an information processing task is a creative…

View original post 1,730 more words

Is Software Engineering Possible?