The long way through Software Craftsmanship

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

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.