The long way through Software Craftsmanship

On the Make, Buy or Rent decision: Stateful vs Stateless components

Mar 16, 2017 - 2 minute read - Comments - lessons-learnedclientstatefulstateful-componentstatelessstateless-componentseparationresource-managementmake-buy-rentphil-simonit-managertotal-cost-ownershiptcoquotedecision

From the Make, Buy or Rent article: […] [T]he three main system options for organizations seeking to upgrade their systems [are :] Make Buy Rent IT managers have different criteria for deciding which components to assign in each category. Another criteria for deciding At a client, they have taken the decision to split their core IT systems in to the three options: make, buy, rent. The business logic to handle the core business is ‘make’.

Modifying titles in a Trello Board

Mar 16, 2017 - 1 minute read - Comments - trelloautomationscriptcodetool

A teammate and I have created a small tool to modify the titles of the trello card in a trello board. Technical description It works by applying a function to the existing title (because we wanted to remove a prefix from the existing title). The modification is done, not through the API, but simulating user interaction: Click to edit the card Input the new title Save The full code is available here

Convert a project from npm to yarn

Mar 3, 2017 - 1 minute read - Comments - dockertoolpipelinejenkinsyarnnpmjavascript

At a client, we’re converting all projects (i.e., sites, services, libraries) from npm to yarn. Mostly for the speed (as it uses the internal cache). Step by step guide Install yarn in your local environment * https://yarnpkg.com/lang/en/docs/install/ Run yarn install * This will create a yarn.lock file * Add that file to the repo: git add yarn.lock Modify Dockerfile * Install yarn (in the Dockerfile). Idea: shortcut this execution with yarn --version in case it is installed * Configure the PATH variable (ENV PATH …) * ADD yarn.

Self-Study in March 2017

Mar 1, 2017 - 5 minute read - Comments - self-study-aggregationmarch2017readabstractionadviceanalogyapplicationapprovalarchitecturearun-guptaautomationbackupbackup-strategybenjamin-hardybusiness-logicccareercarl-tashianclaire-lewclicode-qualitycomparisoncplusplusdatabasedavid-bonilladdddenis-kalinindependency-injectiondevoxxdicedomaindomain-driven-developmentdonkey-codeeigenvectoreinar-hosterik-bernevolutionexpatfacebookfeedbackfeedback-processframeworkframework-vs-librarygitgogojko-adzicgraham-kingheinz-kabutzhumorian-malpassimprovementinterviewjavajava-championjeronimo-palacioslanguageleadershiplearninglessons-learnedlibrarymacwiremeetingmeeting-policymicroservermissing-abstractionmistakemoneymythnumber-generatorormpaasparodypatrick-kuaplatform-as-a-serviceprngprogramming-languagepseudo-random-number-generatorpsychologypythonqualityraidrandom-numberrandom-number-generatorrandomnessraul-avilaretrospectivesabbaticalscalasemantic-versioningsemversentimental-versioningserializationserverlessspainspanishstatistictcoteam-managementtech-leadterminaltigtotal-cost-of-ownershiptrue-random-number-generatoruenounited-kingdomutilityvitaly-belmanzfs

¿Volver? I’ve read this article by Raul Avila comparing the options between working in the UK and in Spain (where he’s originally from). Inspired by other professionals (e.g., David Bonilla, Jerónimo Palacios). Tags: spanish, jeronimo-palacios, david-bonilla, expat, comparison, raul-avila, united-kingdom, spain Donkey code I’ve read this article by Einar W. Høst in which he introduces the concept of a ‘missing domain term’ with the example of a donkey being ‘closely related to a horse, though not exactly the same’

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