The long way through Software Craftsmanship

Comparing options for parametrized testing in javascript

Feb 26, 2017 - 3 minute read - Comments - javascripttestparametrized-testingjavacsharpnunitjunitcomparisonetudestudy

We explore how to use parametrized tests (example in java, example in c#) The tests are written using mocha syntax: describe, it. Using chai for expectations: assert. Note: the example used below (adding to an array) is simple enough to be understood by everybody, without having to explain the domain. The real tests can have a more complicated environment or domain. This is just an example. Using a custom syntax This is just an example of some possible syntax, not using any (currently) existing framework.

Self-Study in February 2017

Feb 1, 2017 - 7 minute read - Comments - self-study-aggregationfebruary2017readalan-brouilettealyssa-mazzinaanalysisandromedaapiappashton-kemerlingattack-vectorbonilistabonusbookbrandurbruce-schneierchallengechange-jobclojurecode-reviewcompanyconferenceconsultingdaniel-dietrichdaniel-mattedarius-forouxdark-standupdavid-bonilladavid-casseldavid-dawsondiffeisenhower-productivity-matrixemailencryptionexperience-reportexperimentfalliblefrustrationfuchsiafunctional-programminggithubgooglehappinesshaskellhrhuman-resourcesimportantimportant-vs-urgentinterfaceinterface-designinterruptionjavajavaslangjob-offerjoel-spolskyjohn-napierjoyentkat-boogaardkeykim-zetterknowledge-workerlambdalanguagelavabitlegacylegacy-hardwarelegacy-softwarelegacy-systemlibrarylimited-timelisticlemailmainframemanagementmanaging-performancemarianne-bellottimaybemeasuring-performancemonadnotificationoperating-systemoptionoptionalorganizationosovertimepalatablepapers-we-lovepayperformancephonepost-mortempostmortemprivacyproblemproductivitypsychologypull-requestpurpose-of-lifequestionquotereferencereferentremoteremote-workreviewrobert-austinscalascott-nonnenbergsecuritysexismshut-downsimplicity-itselfstack-overflowsusan-fowlersystemsystems-we-loveteamteam-managementtime-managementtokenuberuiurgenturgent-vs-importantusefulnessuxwhatsappwomenwork-environment

WhatsApp Security Vulnerability I’ve read this article by Bruce Schneier on a security defect in whatsapp, where an ‘unconfirmed’ message can be re-encrypted (with a new key) and resent. This is a vector for some attacks. Tags: bruce-schneier, security, whatsapp, encryption, attack-vector Encrypted email service once used by Edward Snowden relaunches I’ve read this article, by Kim Zetter, on Lavabit restablishing its service. Explains the company’s past and the new services they are offering

Self-Study in January 2017

Jan 1, 2017 - 7 minute read - Comments - self-study-aggregationjanuary2017readadditive-monadadvicealvaro-videlaamplifierauthoritybenjamin-hardybindc-sharpcode-completecoding-horrorcomonadcompound-interestcontinous-improvementdan-piponidata-structuredennis-forbesdisciplineeric-elliotteric-lippertessayfunctional-programminggerald-weinberghaskellhume-loganhunter-thompsoninterviewinterviewingisomorphicjames-coglanjavascriptjeff-atwoodkaizenleadershipleading-by-examplelifeliftlinreclong-term-plansmonadmonad-explanationmotivationmultirecnasapersonal-improvementplanningpoliticspsychologyquadtreerecruitementrecursive-data-structurereginald-braithwaiteshinystephen-toubtailrecteam-leadtestthomas-oppongtreeunitunit-test

Translation from Haskell to JavaScript of selected portions of the best introduction to monads I’ve ever read I’ve read this article by James Coglan, introducing monads. About composability: The symmetry of the argument and return types is what makes these functions composable or symmetric input and output types Guide to basic monadic functions: lift, which converts a ‘simple’ function into a debuggable function bind, which converts a debuggable function into a composable form unit, which converts a simple value into the format required for debugging, by placing it in a container

Books read in 2016Q4

Dec 31, 2016 - 1 minute read - Comments - bookreading2016Q4self-studycodurance

Books I’ve read this quarter1: Books started, not yet finished (WIP): Functional Programming in Scala, by Chiusano and Bjarnason. Doing the exercises with the codurance team Gödel, Escher, Bach: An Eternal Golden Braid, Hofstadter Books I want to finish. Usually come from another quarter: Books that have entered the queue: Non-technical that have entered the queue: La psicología del dinero, Hammond Invirtiendo a largo plazo, García Paramés Quién domina el mundo, Chomsky Homenaje a Cataluña, Orwell El camino al 18J, Payne Cartas desde la revolución bolchevique, Sadoul Shogun: The Life of Tokugawa Ieyasu, Sadler Els jueus i Catalunya, Villatoro Russell en 90 minutos, Strathern El problema de los tres cuerpos, Liu The ending date of the quarter is the same as the publication date [return]

A common misunderstanding about `reduce`

Dec 14, 2016 - 2 minute read - Comments - functional-programmingclojurehaskelljavascriptmisunderstandingreducefoldhigher-order-functionquotemozilla-developer-network

Misconception I’ve read in several places that reduce reduces an array1 of values to a single one. The main characteristic of this function is not to reduce to a ‘smaller element’ / ‘single element’, but to have access to the accumulated results and the elements, one by one. Quoting Mozilla Developer Network’s (MDN) Javascript reference: The reduce() method applies a function against an accumulator and each value of the array (from left-to-right) to reduce it to a single value.

Self-Study in December 2016

Dec 1, 2016 - 5 minute read - Comments - self-study-aggregationdecember2016readalex-williamsanalogyautomationautopilotbob-wisebull-in-a-china-shopbytecode-generationcobra-effectcompanycompany-practicecomplacencycontainercopy-pastecppcurious-geordedebugdecoratordevopsdisable-pastedockerdocker-swarmeurekaflat-hierarchyfunctional-programminghackerhaskellimmutabilityinternet-of-thingsiotjames-sinclairjavajavascriptjoab-jacksonkuberneteslearninglearning-programming-languagemanagementmaria-konnikovamario-brosmatthew-garrettmetaprogrammingmonadmonad-explanationmonitoringnpmnpm-linkobi-wan-kenobiociodeopen-salarypassword-fieldpastepawel-brodzinskiphilippa-warrprogramming-languagepromisepythonreal-worldrequestrubysalarysecuritysimeon-simeonovsinging-in-the-rainsource-codetealteal-organizationtoby-retallicktooltroy-huntusabilityuxvalvewatch-expression

A Docker Fork: Talk of a Split Is Now on the Table I’ve read this article by Alex Williams and Joab Jackson about the possible split in the Docker environment following Docker’s and other providers’ product roadmaps. Each own has their policies and priorities and they collide in this case Tags: docker, alex-williams, joab-jackson, container, oci, kubernetes, devops, tool An Ode to Boring: Creating Open and Stable Container World I’ve read this article by Bob Wise, in which he describes the state of the Docker tool and the Docker Engine.