Using multiple git configurations

It is fairly common that you might be contributing to multiple git repositories which make different git configuration necessary. Mine and probably the most common case is that I am using different contributor email addresses for my private and work git repositories. You might also want want to have separate global git ignores or other options that differ in multiple repositories. The way I do it is having one <span style=“font-family: “courier new” , “courier” , monospace;">~/.gitconfig which looks like this: ...

February 17, 2020 · 1 min · Christof Damian

Friday Links

Supercharge your command line experience: GitHub CLI is now in beta https://github.blog/2020-02-12-supercharge-your-command-line-experience-github-cli-is-now-in-beta/ 3 (+1) Questions for impactful Sprint Goals! https://medium.com/@SkyscannerEng/3-1-questions-for-impactful-sprint-goals-48faa776aac3 Getting Started With System Tests in Rails With Minitest https://blog.appsignal.com/2020/02/12/getting-started-with-system-tests-in-ruby-with-minitest.html I love Free Software Day 2020 https://fsfe.org/campaigns/ilovefs/ Unlearning toxic behaviors in a code review culture https://medium.com/@sandya.sankarram/unlearning-toxic-behaviors-in-a-code-review-culture-b7c295452a3c Agile as Trauma https://doriantaylor.com/agile-as-trauma Rotary Cellphone http://justine-haupt.com/rotarycellphone/ Interview with Yukihiro Matsumoto: Ruby is Designed for Humans, not Machines https://hackernoon.com/interview-with-yukihiro-matsumoto-ruby-is-designed-for-humans-not-machines-1fee3610 How to Use the Distance Matrix API https://cloud.google.com/blog/products/maps-platform/how-use-distance-matrix-api Mythical man month : 10 lines per developer day https://blog.ndepend.com/mythical-man-month-10-lines-per-developer-day/ THE CYBERIZER! https://www.jwz.org/blog/2020/02/the-cyberizer/ How Big Technical Changes Happen at Slack https://slack.engineering/how-big-technical-changes-happen-at-slack-f1569d25ee7b ...

February 14, 2020 · 1 min · Christof Damian

Friday Links

3 research-backed principles that help you scale your engineering org https://www.atlassian.com/blog/technology/3-research-backed-principles-scaling-engineering Paris mayor unveils ‘15-minute city’ plan in re-election campaign https://www.theguardian.com/world/2020/feb/07/paris-mayor-unveils-15-minute-city-plan-in-re-election-campaign UN poverty expert’s visit shines light on struggles of Spain’s poor https://www.theguardian.com/world/2020/feb/06/un-poverty-experts-visit-shines-light-on-struggles-of-spains-poor Street View’s 15 favorite Street Views https://www.blog.google/products/maps/street-views-15-favorite-street-views/ A new hash algorithm for Git https://lwn.net/Articles/811068/ Istio as an Example of When Not to Do Microservices https://blog.christianposta.com/microservices/istio-as-an-example-of-when-not-to-do-microservices/ Monoliths are the future https://changelog.com/posts/monoliths-are-the-future Browsers, web sites, and user tracking https://lwn.net/Articles/811532/ Austerity, gentrification and big tunes: why illegal raves are flourishing https://www.theguardian.com/music/2020/feb/05/austerity-gentrification-and-big-tunes-why-illegal-raves-are-flourishing What we do and don’t know about the 2019-nCoV coronavirus https://80000hours.org/2020/02/experimental-episode-about-2019-ncov-coronavirus/ NYC Parks Are Using a Designer’s ‘Tree Font’ to Plant Secret Messages with Real Trees https://mymodernmet.com/nyc-trees-font-katie-holten/ AppSignal Ruby Gem 2.10: Better Diagnose (And More) https://blog.appsignal.com/2020/02/05/ruby-gem-2-10.html This Week in Programming: Forget Microservices, Monoliths Are the Way Forward https://thenewstack.io/this-week-in-programming-forget-microservices-monoliths-are-the-way-forward/ Retrium: Public Team Rooms https://blog.retrium.com/public-team-rooms thispersondoesnotexist https://www.thispersondoesnotexist.com/ The journey to fast production asset builds with Webpack https://codeascraft.com/2020/02/03/production-webpack-builds/ Facebook’s Platform Opportunity https://stratechery.com/2020/facebooks-platform-opportunity/ Letters To A New Developer: Develop empathy https://letterstoanewdeveloper.com/2020/02/03/develop-empathy/ Things I Believe About Software Engineering https://blog.wesleyac.com/posts/engineering-beliefs Google Maps Hacks http://www.simonweckert.com/googlemapshacks.html NSA Security Awareness Posters https://www.schneier.com/blog/archives/2020/01/nsa_security_aw.html Integrated systems for integrated programmers https://m.signalvnoise.com/integrated-systems-for-integrated-programmers/ The dark side of expertise https://lwn.net/Articles/809556/ ...

February 7, 2020 · 2 min · Christof Damian

Friday Links

Zappos has quietly backed away from holacracy https://qz.com/work/1776841/zappos-has-quietly-backed-away-from-holacracy/ emacs-todoist https://github.com/abrochard/emacs-todoist Use Emacs to get social and track your todo list https://opensource.com/article/20/1/emacs-social-track-todo-list How we retired Python 2 and improved developer happiness https://engineering.linkedin.com/blog/2020/how-we-retired-python-2-and-improved-developer-happiness Why the Guardian will no longer accept fossil fuel advertising https://www.theguardian.com/help/insideguardian/2020/jan/29/why-the-guardian-will-no-longer-accept-fossil-fuel-advertising Ring Doorbell App Packed with Third-Party Trackers https://www.jwz.org/blog/2020/01/ring-doorbell-app-packed-with-third-party-trackers/ Terraform at Flexport https://flexport.engineering/terraform-at-flexport-c274a9d86d9f New Enterprise IT Controls for Data Studio https://www.blog.google/products/marketingplatform/analytics/new-enterprise-it-controls-data-studio/ Google Receives Geofence Warrants https://www.schneier.com/blog/archives/2020/01/google_receives.html How to Perform Concurrent HTTP Requests in Ruby and Rails https://pawelurbanek.com/ruby-concurrent-requests Introducing Buffer’s Family Support Fund https://open.buffer.com/family-support-fund/ Confessions of a Recovering Proprietary Programmer, Part XVII https://paulmck.livejournal.com/57332.html Do more with Data Studio Community Visualizations https://www.blog.google/products/marketingplatform/analytics/do-more-data-studio-community-visualizations/ Preserving open source software for future generations https://archiveprogram.github.com/ ...

January 31, 2020 · 1 min · Christof Damian
Saying goodbye to some legacy code

Saying goodbye to some legacy code

When I joined Devex a bit more than six years ago most of the code base was in one large monolith. This monolith was based on Ruby On Rails and was responsible for delivering devex.com. urn This part was called "neo". I guess because it was a rewrite of a previous Java version. I am not sure if it was a reference to Matrix or the Greek meaning. There were already some initiatives in place rewriting parts of it in different services, but the monolith was always looming in the background. Any changes to it required increasing amount of work. It was like someone tried to put the definition of technical code into code. I generally against rewrites, they tend to last for years and you loose a lot of knowledge that is baked into the original. I also have nothing against Monoliths. So I tried refreshing the code base by upgrading the dependencies, getting the few tests to run and making local development easier with Vagrant. I realized fairly early that this was not going to work. So we went with a gradual rewrite. Whenever we worked on part of the site we migrated it to our new architecture (Also a Monolith or at least a Duolith). Now six years later we finally switched off the remainders of "neo" and I thought we should celebrate in style. Legacy code is after all something that successfully supported you for a long time and enabled you to start with something fresh. Devex wouldn't be were we are without "neo". Cremation - ignore the dog So we staged a proper funeral, where everybody who wanted said some words. We also collected printouts of the most annoying bits of code, some very dated looking screenshots and some email and chat conversations from the very beginning. This was my eulogy: Today we say goodbye to maybe the best known system at Devex.+ Neo - from Greek meaning young or new, which he was neither. Or from the Matrix character, handsome, powerful and agile, which he was also not. We all have memories of him that will stay with us for a long time. We laughed about his quirks. He had amazing depths, which brought us sometimes close to tears trying to understand him. His heritage will live forever in our data structures. Finally we burned the printouts, collected them in an urn (aka hummus glass) and cheered with Cava while chatting about the "good" old days. I hope you can give your legacy code also the sendoff they deserve. The End Update (March 2020) We got a present from our CEO while he was visiting the Barcelona Devex office this week.... RIP Neo Mug

January 28, 2020 · 3 min · Christof Damian