The long way through Software Craftsmanship

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

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.

Navigating the GitHub repositories

Sep 8, 2015 - 1 minute read - Comments - githubrepositorykatanavigatesimple-sessionrepository-search

I’ve reorganized my github repositories, especially the katas and the simple sessions. Katas All of them can be found in this search Separated by language: Java Clojure Javascript Haskell Ruby To the best of my knowledge, all repositories follow a similar pattern: Contain the keyword ‘kata’ Contain the language Contain a description of the exercise An example: palindromes-searcher-kata-haskell Simple sessions A simple session is a lapse of time working with the language to solve a problem, but not big enough to deserve a repository of its own.

A basic working environment

Sep 8, 2015 - 2 minute read - Comments

Sometimes, when working out of somebody’s else computer, I won’t have my preferred IDE installed. In this case, what I usually do –as long as the programming session is more than 5 TDD cycles–, is to configure my own environment. It includes: text editor: $EDITOR is enough test runner. A simple bash script executing the tests will suffice git terminal: to commit, see differences, revert, etc [optional] REPL if the language has it If the system already has it, I will use screen to cycle around the sessions.

Brown-bag session: eXtreme Programming

Sep 2, 2015 - 1 minute read - Comments - brown-bag-sessionextreme-programmingclientxp

At a client, today I’ve introduced the eXtreme Programmig methodology, with its values, principles, practices in a brown-bag session. It has been an informal session, without slides, but we have used this video by the Kleer guys (in Spanish). The video gives a high-level overview of what XP is. We also needed to cover the daily practices (e.g., TDD, pair programming, whole team) After that, we’ve done a questions&answers round to solve the teammates’ doubts