The long way through Software Craftsmanship

Tip: Differences in maven test execution

Oct 5, 2015 - 1 minute read - Comments - protiptipmaventestskip-testsmaven-test-skip

There are times when you only want to have the production code: downstream job after a successful build compiling in local after checkout from DVCS spiking (possibly the tests are broken) speeding up the process For that, maven allows to skip the tests, selectively: -DskipTests compiles the tests, but skips running them -Dmaven.test.skip skips compiling the tests and does not run them. This can also be written as -Dmaven.

Tip: Propagate the failure in bash

Oct 2, 2015 - 2 minute read - Comments - tipbashpipefailureexit-codeexit-statuscodefeature-toggle

In bash, the usual behavior is to return the last status code: bash-3.1$ tr tr: two strings must be given when translating bash-3.1$ echo $? 1 But this also applies to pipes: bash-3.1$ tr|tee 1.txt tr: two strings must be given when translating bash-3.1$ echo $? 0 Should you want to pass the non-zero (error) status code to the next operation, use this feature toggle: set -o pipefail bash-3.1$ set -o pipefail bash-3.

Self-Study in October 2015

Oct 1, 2015 - 5 minute read - Comments - self-study-aggregationoctober2015read1986abstract-syntax-treeacidagileagile-academyalex-smithandrew-stewartarrayblockingqueueastbacklogbenchmarkbrett-l.-schuchertclassloaderclojurecode=datacommitmentcomparisonconcurrencyconcurrentlinkedqueuecontentioncost-reductiondata-structuredata=codedave-farleydependency-inversion-principledesign-principledipdisruptordocument-storedomdomain-specific-languagedoug-leadownsideelmevan-czaplickiexampleextreme-programmingframeworkfunctiongregory-brownhaskellhirotaka-takeuchihomoiconicityikujiro-nonakaintroductionjames-donelanjavajevgeny-kabanovjsonlambda-calculuslean-startuplmaxlow-costlow-level-optimizationmacromanagementmartin-thompsonmatt-mightmichael-barkermongodbmvpnikolaos-raptisobject-orientedoptimizationpair-programmingpaperparallelismpatricia-geepet-projectpostgresqlprinciplepriorityproduct-developmentproofproof-of-conceptracketring-bufferrobert-martinscriptscrumside-projectsoftware-qualitysolidspeedsprintstar-videosstephen-wolframsven-slootwegtddtrisha-geeturing-machineuniversal-turing-machinevideovirtual-domwhite-paperxp

Blazing Fast HTML: Virtual DOM in Elm I’ve read this article explaining how Elm works in relation to the virtual DOM. By Evan Czaplicki. Tags: elm, dom, virtual-dom, comparison, speed, haskell, evan-czaplicki Why you should never, ever, ever use MongoDB I’ve read this article stating the downsides of using MongoDB. Written by Sven Slootweg Tags: mongodb, downside, sven-slootweg, json, document-store, postgresql, acid Do you really get classloaders? I’ve watched this video by Jevgeny Kabanov on classloaders: what they are, how they work nad some tips to solve common issues.

Books read in 2015Q3

Sep 30, 2015 - 1 minute read - Comments - bookreading2015Q3self-study

Books I’ve read this quarter1: The Craftsman by Richard Sennett. Posts under the tag the-craftsman Software Craftsmanship: The New Imperative by Pete McBreen. Posts under the tag software-craftsmanship-book Lisp Hackers by Vsevolod Dyomkin The Passionate Programmer: Creating a Remarkable Career in Software Development by Chad Fowler. Books started, not yet finished (WIP): Haskell Programming, By Chris Allen and Julie Moronuki. This book is still in progress and I’m reviewing it Functional Programming Patterns in Scala and Clojure by Michael Bevilacqua-Linn Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt Books I want to finish:

Brown Bag Session: Clojure's Data and Code

Sep 23, 2015 - 1 minute read - Comments - brown-bagtrainingclientclojurehomoiconicityprepared-katalispcode=datadata=codefeedback

Today, at a client, I’ve facilitated the brown-bag session on Clojure, introducing Lisp’s homoiconicity. Session Structure The session was designed as a kata, first introducing participants in the problem, letting some time to read the initial version and to think about possible solutions. Then, I structured the rest of the time as a prepared kata, where I was explaining in the beamer our current problems (day-to-day tasks) and possible solutions in Clojure.