The long way through Software Craftsmanship

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

Coding dojo: Palindromes

Aug 19, 2015 - 1 minute read - Comments - clientcoding-dojojavapalindromefacilitationfacilitator

At a client, today I’ve facilitated a coding dojo on palindrome searching. I’ve prepared a github repository for the java solutions. In this repository, the tag start-here has the prepared pom with dependencies. We have paired to work on the kata but none of my teammate’s solutions are available (at the moment), but mine is at the master branch.

Searching on a suite of failing tests

Aug 13, 2015 - 5 minute read - Comments - tipsearchnaive-searchbinary-searchdichotomous-searchcomparisonspringcontextend-to-end-testtest-dependencyantipattern

Motivation Today, at a client, in the green phase, we had a test suite which was failing: the whole suite fails but the test cases, individually, succeed. So my first impression was that something was being shared between tests. Also confirmed because the failing class was an EndToEnd test, in which we load the whole spring context A quick glance was not revealing anything interesting, so I decided to find which is the minimum suite (as opposed as to the whole suite) that makes the new testcase fail, expecting to narrow the search for possible causes.