The long way through Software Craftsmanship

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

Self-Study in September 2015

Sep 1, 2015 - 9 minute read - Comments - self-study-aggregationseptember2015read195830-secondalgebraic-data-typealonzo-churchanalogyanalysisandrea-mannaanonymous-functionarm-length-recursionarticleartificial-intelligenceassumptionawsbase-casebeginnerben-whaleybig-datablue-hatbooleanboolean-parameterbootcampbrainbrowserc-plus-plusc-sharpcfa2charlie-amberclassclass-invariantclojureclojurescriptclosurecobolcodycoinductioncomparisonconnor-mendenhallcontext-free-grammarconversioncorecursioncouplingcurryingdariusz-pasciakdata-structuredata-typedesign-by-contractdeveloperdialoguedimitrios-vardoulakisdirect-recursionduck-typingeiffelelevator-testentropyeric-lippertextreme-programmingfeaturefmapformal-language-theoryfrank-rosenblattfreezerfunctorgarbage-collectiongenerative-recursiongerardo-rosselgooglehabithaskellhawk-hosthenry-bakerhigher-order-functionhiringhoare-triplethow-toideaindirect-recursioninductioninformationinstant-gratification-monkeyiterative-functionjason-friedjason-liszkajavajavascript-type-inferencejay-fieldsjeff-atwoodjim-dueyjordan-medlockjudd-keppelkleerlambda-calculuslambda-expressionlanguagelisplog4jloggingloose-couplingmachine-learningmacrostatemapmartin-fowlermartin-saliasmastermarvin-minskymaxwell-boltzmannmedian-agemethod-invariantmicroservicemicrosoft-bobmicrostatemisunderstandingmutual-recursionnbanorman-ramseyobject-orientationovenpanic-monsterpaul-grahampeceptronperlpeter-norvigpeteris-kruminsphil-calcadopostconditionpreconditionprocrastinationproductprogrammingprogramming-contestprogramming-languageprogramming-skillprologpullpushqualityqueuerational-partrecursionrecursive-caserecursive-functionrecursive-regular-expressionred-hatregular-expressionreorganizationreplretirementritika-trikharobyn-scottserviceseymour-papertshannonsimulated-annealingsix-thinking-hatssl4jsoundcloudsrpstack-overflowstacktracestandard-mlstartupstatisticsstorystrengthstrongly-typedstructural-recursionstudenttail-call-optimizationtail-recursionteam-splittech-leadthermodynamicsthinkthinking-hattim-urbantiptmuxtomasz-nurkiewicztrusttype-classtype-inferencetype-inference-algorithmtype-systemunam-mxuploadvalue-stream-mappingvideovisionweakly-typedweaknessweaponwikipediawilliam-mathesonxpyagnizen

The 30 second habit with a lifelong impact I’ve read this article list of patterns, by Robyn Scott, in which it is explained why to compress information in a few ideas, investing 30 seconds to condense the article. Tags: 30-second, habit, robyn-scott The Strengths and Weaknesses of Extreme Programming I’ve watched this video explaining the strengths and weaknesses of extreme programming. By William Matheson Tags: extreme-programming, xp, william-matheson, video, strength, weakness