<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://delicious-insights.com/en/">
  <title>Articles, protips, tutorials by Delicious Insights</title>
  <subtitle>Tutorials, protips and other technical stuff, mostly about JavaScript, React and Git</subtitle>
  <link href="https://delicious-insights.com/en/feed.xml" rel="self"/>
  <link href="https://delicious-insights.com/en/"/>
  <updated>2023-04-10T00:00:00Z</updated>
  <id>https://delicious-insights.com/en/</id>
  <author>
    <name>Delicious Insights</name>
  </author>  <entry>
    <title>Git protip: easy templates for `.gitignore`</title>
    <link href="https://delicious-insights.com/en/posts/git-protip-gitignore-io/"/>
    <updated>2023-04-10T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-protip-gitignore-io/</id>
    <content xml:lang="en" type="html">The .gitignore file is great! But it can be tedious to fill in. What if we could do it all in one go?</content>
  </entry>  <entry>
    <title>Ignoring files with Git</title>
    <link href="https://delicious-insights.com/en/posts/git-ignore/"/>
    <updated>2023-04-10T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-ignore/</id>
    <content xml:lang="en" type="html">How can we avoid adding unwanted files to Git?  And reciprocally, how can we add otherwise ignored files?</content>
  </entry>  <entry>
    <title>Configuring Git</title>
    <link href="https://delicious-insights.com/en/posts/git-config-part-2/"/>
    <updated>2023-03-27T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-config-part-2/</id>
    <content xml:lang="en" type="html">Using Git optimally goes through tweaking its configuration!</content>
  </entry>  <entry>
    <title>JS protip: Array.from() vs. Array#fill()</title>
    <link href="https://delicious-insights.com/en/posts/js-protip-array-from-fill/"/>
    <updated>2023-03-22T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-protip-array-from-fill/</id>
    <content xml:lang="en" type="html">Array.fill() or Array#from()?!  It all depends on what you need, so here’s your guide to picking the right one every time.</content>
  </entry>  <entry>
    <title>JS protip: Delaying with setTimeout(), but using await!</title>
    <link href="https://delicious-insights.com/en/posts/js-protip-timers-promises/"/>
    <updated>2023-02-08T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-protip-timers-promises/</id>
    <content xml:lang="en" type="html">Callback-based `setTimeout()` is dead, long live promise-based `await` delays!</content>
  </entry>  <entry>
    <title>Git protip: speed up conflicts management with mergetool</title>
    <link href="https://delicious-insights.com/en/posts/git-mergetool/"/>
    <updated>2023-02-06T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-mergetool/</id>
    <content xml:lang="en" type="html">Resolving conflicting files after a merge can be time consuming. Fortunately Git provides us with a tool to speed this up!</content>
  </entry>  <entry>
    <title>Git protip: automatically setup remote tracking on push</title>
    <link href="https://delicious-insights.com/en/posts/git-push-auto-setup-remote/"/>
    <updated>2023-01-30T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-push-auto-setup-remote/</id>
    <content xml:lang="en" type="html">No more explicit branch tracking on push! Say hello to autoSetupRemote configuration!</content>
  </entry>  <entry>
    <title>Git protip: gently force push</title>
    <link href="https://delicious-insights.com/en/posts/git-push-with-lease/"/>
    <updated>2023-01-23T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-push-with-lease/</id>
    <content xml:lang="en" type="html">Did you know that you could force the push without risking to erase your collegues work?</content>
  </entry>  <entry>
    <title>Modern Web Apps expands and becomes React PWA!</title>
    <link href="https://delicious-insights.com/en/posts/react-pwa/"/>
    <updated>2022-12-22T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/react-pwa/</id>
    <content xml:lang="en" type="html">Our flagship training course expands and changes name to better reflect its core tenets!</content>
  </entry>  <entry>
    <title>Git protip: autocorrect command typos</title>
    <link href="https://delicious-insights.com/en/posts/git-autocorrect/"/>
    <updated>2022-12-12T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-autocorrect/</id>
    <content xml:lang="en" type="html">Do you make typos when writing your commands? Would you like Git to correct automatically?</content>
  </entry>  <entry>
    <title>JS protip: Flattening nested arrays</title>
    <link href="https://delicious-insights.com/en/posts/js-protip-array-flat-flatmap/"/>
    <updated>2022-12-07T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-protip-array-flat-flatmap/</id>
    <content xml:lang="en" type="html">Pas besoin de bibliothèques tierces pour aplanir des tableaux en JavaScript, y compris lors d’opérations `.map()` renvoyant des tableaux !</content>
  </entry>  <entry>
    <title>JS protip: Formatting a time distance</title>
    <link href="https://delicious-insights.com/en/posts/js-protip-time-distances/"/>
    <updated>2022-10-28T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-protip-time-distances/</id>
    <content xml:lang="en" type="html">Find out how to easily and cleanly format date/time distances in JavaScript whilst honoring locale preferences, all without resorting to third-party libraries!</content>
  </entry>  <entry>
    <title>JS protip: Formatting date/time ranges</title>
    <link href="https://delicious-insights.com/en/posts/js-protip-date-ranges/"/>
    <updated>2022-10-27T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-protip-date-ranges/</id>
    <content xml:lang="en" type="html">Find out how to easily and cleanly format date/time ranges in JavaScript whilst honoring locale preferences, all without resorting to third-party libraries!</content>
  </entry>  <entry>
    <title>JS protip: Formatting a date/time according to locale</title>
    <link href="https://delicious-insights.com/en/posts/js-protip-date-formatting/"/>
    <updated>2022-10-26T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-protip-date-formatting/</id>
    <content xml:lang="en" type="html">Find out how to easily and cleanly format dates and times in JavaScript whilst honoring locale preferences, all without resorting to third-party libraries!</content>
  </entry>  <entry>
    <title>JS protip: Grabbing last items from an array</title>
    <link href="https://delicious-insights.com/en/posts/js-protip-last-items/"/>
    <updated>2022-10-19T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-protip-last-items/</id>
    <content xml:lang="en" type="html">Check out the many ways — some brand-new! — to grab stuff from the end of an array in JavaScript.</content>
  </entry>  <entry>
    <title>Git protip: quickly rewrite an old commit message</title>
    <link href="https://delicious-insights.com/en/posts/git-protip-autoreword/"/>
    <updated>2022-10-17T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-protip-autoreword/</id>
    <content xml:lang="en" type="html">What about an alias that would to the job for you?</content>
  </entry>  <entry>
    <title>Git protip: easily add missing changes to an old commit</title>
    <link href="https://delicious-insights.com/en/posts/git-protip-autofixup/"/>
    <updated>2022-10-17T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-protip-autofixup/</id>
    <content xml:lang="en" type="html">You can quickly &quot;update&quot; an old commit thanks to &quot;commit --fixup&quot;</content>
  </entry>  <entry>
    <title>Git protip: track function changes with &quot;log -L&quot;</title>
    <link href="https://delicious-insights.com/en/posts/git-protip-log-l/"/>
    <updated>2022-10-10T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-protip-log-l/</id>
    <content xml:lang="en" type="html">Use &quot;git log -L&quot; to track changes only within a code block, figure out who actually introduced a bug, etc.</content>
  </entry>  <entry>
    <title>Git protip: blame, please don’t!</title>
    <link href="https://delicious-insights.com/en/posts/git-protip-dont-blame-me/"/>
    <updated>2022-10-10T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-protip-dont-blame-me/</id>
    <content xml:lang="en" type="html">Do you think &quot;git blame&quot; is a good idea? You’re wrong!</content>
  </entry>  <entry>
    <title>JS protip: npm-check</title>
    <link href="https://delicious-insights.com/en/posts/js-protip-npm-check/"/>
    <updated>2022-09-28T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-protip-npm-check/</id>
    <content xml:lang="en" type="html">Easily keep your JS deps in sync with npm-check!  So much nicer than npm outdated + update…</content>
  </entry>  <entry>
    <title>Git protip: fix last commit with &quot;--amend&quot;</title>
    <link href="https://delicious-insights.com/en/posts/git-protip-amend/"/>
    <updated>2022-09-26T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-protip-amend/</id>
    <content xml:lang="en" type="html">You just screwed up your last commit and want to fix it? The &quot;git commit --amend&quot; command is your friend!</content>
  </entry>  <entry>
    <title>Git protip: a graphical log that rocks!</title>
    <link href="https://delicious-insights.com/en/posts/git-protip-lg/"/>
    <updated>2022-08-29T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-protip-lg/</id>
    <content xml:lang="en" type="html">The classic Git log (for displaying the commit history) does not fit the standard use case. Rather than using a graphical interface, let’s use an alias and a custom log.</content>
  </entry>  <entry>
    <title>Git protip: a nice and efficient diff in the console</title>
    <link href="https://delicious-insights.com/en/posts/git-protip-diff-so-fancy/"/>
    <updated>2022-08-28T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-protip-diff-so-fancy/</id>
    <content xml:lang="en" type="html">See differences in files, line by line, without any visual pollution</content>
  </entry>  <entry>
    <title>JS default values in ES2015+</title>
    <link href="https://delicious-insights.com/en/posts/js-default-values/"/>
    <updated>2022-02-16T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-default-values/</id>
    <content xml:lang="en" type="html">Default values might seem like a simple topic, but JS seized that opportunity to get more powerful ones than most, making it well worth the wait!  Read all the juicy bits in this post!</content>
  </entry>  <entry>
    <title>JS rest and spread in ES2015 / ES2018</title>
    <link href="https://delicious-insights.com/en/posts/js-rest-spread/"/>
    <updated>2022-02-14T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-rest-spread/</id>
    <content xml:lang="en" type="html">Rest / Spread is kind of a cousin to destructuring, and has become a must in modern JS… Learn how to unleash its power on objects and iterables!</content>
  </entry>  <entry>
    <title>JS destructuring in ES2015+</title>
    <link href="https://delicious-insights.com/en/posts/js-destructuring/"/>
    <updated>2022-01-31T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-destructuring/</id>
    <content xml:lang="en" type="html">Destructuring has quickly become a staple of modern JS code… but are you sure you understand it properly?</content>
  </entry>  <entry>
    <title>JS classes with ES2015+</title>
    <link href="https://delicious-insights.com/en/posts/js-classes/"/>
    <updated>2022-01-17T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-classes/</id>
    <content xml:lang="en" type="html">So you think you now everything on ES2015+ classes?  Let’s wager you’ll still learn a ton in this article…</content>
  </entry>  <entry>
    <title>JS computed property names</title>
    <link href="https://delicious-insights.com/en/posts/js-computed-property-names/"/>
    <updated>2021-12-23T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-computed-property-names/</id>
    <content xml:lang="en" type="html">Fed up with having to use a temp variable just so you can add a dynamically-named property to object literals?  Computed property names to the rescue!</content>
  </entry>  <entry>
    <title>JS shorthand properties and methods</title>
    <link href="https://delicious-insights.com/en/posts/js-shorthand-properties/"/>
    <updated>2021-12-23T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-shorthand-properties/</id>
    <content xml:lang="en" type="html">Make your object literals lighter with shorthand syntax for properties and methods, available since ES0215.</content>
  </entry>  <entry>
    <title>Idiomatic JS: meet our new series!</title>
    <link href="https://delicious-insights.com/en/posts/idiomatic-js/"/>
    <updated>2021-12-23T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/idiomatic-js/</id>
    <content xml:lang="en" type="html">Enjoy our new must-see series of articles and videos: Idiomatic JS!</content>
  </entry>  <entry>
    <title>Negative array indices thanks to proxies</title>
    <link href="https://delicious-insights.com/en/posts/js-index-proxies/"/>
    <updated>2020-05-22T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-index-proxies/</id>
    <content xml:lang="en" type="html">Proxies are a wonderful feature from ES2015.  This post explores a cool trick you can do with them: negative array indices.</content>
  </entry>  <entry>
    <title>Simulating an abstract class with new.target</title>
    <link href="https://delicious-insights.com/en/posts/js-new-target/"/>
    <updated>2020-05-21T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-new-target/</id>
    <content xml:lang="en" type="html">Have you heard about new.target?  Thanks to this unusual reference, you can easily implement abstract classes by forbidding some uses of the new operator…</content>
  </entry>  <entry>
    <title>The for…of loop: should there remain only one…</title>
    <link href="https://delicious-insights.com/en/posts/js-for-of/"/>
    <updated>2020-05-20T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-for-of/</id>
    <content xml:lang="en" type="html">Forget numerical for: the for…of loop that came out in ES2015 is your new best friend. Such versatility!</content>
  </entry>  <entry>
    <title>Converting an object to Map and vice-versa</title>
    <link href="https://delicious-insights.com/en/posts/js-object-map/"/>
    <updated>2020-05-19T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-object-map/</id>
    <content xml:lang="en" type="html">Sometimes a plain object is enough.  Other times you’ll want a Map.  But why, and how, can you switch between one and the other?</content>
  </entry>  <entry>
    <title>Object spread vs. Object.assign</title>
    <link href="https://delicious-insights.com/en/posts/js-object-spread-assign/"/>
    <updated>2020-05-18T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-object-spread-assign/</id>
    <content xml:lang="en" type="html">With everyone boarding the “object spread” train, is there still a place for the Object.assign(…) API?  Are they even different?  Yes, and yes!</content>
  </entry>  <entry>
    <title>Using named captures</title>
    <link href="https://delicious-insights.com/en/posts/js-named-captures/"/>
    <updated>2020-05-17T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-named-captures/</id>
    <content xml:lang="en" type="html">ES2018 finally brings named capturing groups to regular expressions and boy is it cool!</content>
  </entry>  <entry>
    <title>const is the new var</title>
    <link href="https://delicious-insights.com/en/posts/const-is-the-new-var/"/>
    <updated>2020-05-16T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/const-is-the-new-var/</id>
    <content xml:lang="en" type="html">Should you still use “var”?  Should we just replace it with “let”? What about “const” anyway?  In this post, we’ll explain why “const” should be your go-to declarative keyword.</content>
  </entry>  <entry>
    <title>Properly defining optional named parameters</title>
    <link href="https://delicious-insights.com/en/posts/js-optional-named-parameters/"/>
    <updated>2020-05-15T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-optional-named-parameters/</id>
    <content xml:lang="en" type="html">JavaScript doesn’t have keyword parameters? No worries! Named destructuring offers a way out… but beware of edge cases.</content>
  </entry>  <entry>
    <title>Extracting emojis from a text</title>
    <link href="https://delicious-insights.com/en/posts/js-extract-emojis/"/>
    <updated>2020-05-14T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-extract-emojis/</id>
    <content xml:lang="en" type="html">Emojis are everywhere, but it’s hard to identify, extract and collect them from a string.  They’re on the rise and always use surrogate pairs…  How can we be quick and clean about this?</content>
  </entry>  <entry>
    <title>Properly sorting texts</title>
    <link href="https://delicious-insights.com/en/posts/js-array-sorting/"/>
    <updated>2020-05-13T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-array-sorting/</id>
    <content xml:lang="en" type="html">Sorting complex data arrays in JS is often Mission Impossible… yet native capabilities are amazing!</content>
  </entry>  <entry>
    <title>Long live numeric separators!</title>
    <link href="https://delicious-insights.com/en/posts/js-numeric-separators/"/>
    <updated>2020-05-12T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-numeric-separators/</id>
    <content xml:lang="en" type="html">Tired of having to manually count the digits to get the scale of a number?  Annoyed by having to manually split to isolate its components?  Numeric separators are finally here!</content>
  </entry>  <entry>
    <title>Easily stripping “blank values” from an array</title>
    <link href="https://delicious-insights.com/en/posts/js-strip-blank-values/"/>
    <updated>2020-05-11T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-strip-blank-values/</id>
    <content xml:lang="en" type="html">Need to clean up an array? We’ve got a lot of solutions, and some are… super concise!</content>
  </entry>  <entry>
    <title>Inverting two values with destructuring</title>
    <link href="https://delicious-insights.com/en/posts/js-invert-by-destructuring/"/>
    <updated>2020-05-10T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-invert-by-destructuring/</id>
    <content xml:lang="en" type="html">If you’re still going through a temporary variable to invert two others, You’re Doing It Wrong™</content>
  </entry>  <entry>
    <title>Short-circuiting nested loops</title>
    <link href="https://delicious-insights.com/en/posts/js-labels/"/>
    <updated>2020-05-09T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-labels/</id>
    <content xml:lang="en" type="html">Sometimes the best way to short-circuit nested loops is statement labels!</content>
  </entry>  <entry>
    <title>Strings and Unicode in JavaScript</title>
    <link href="https://delicious-insights.com/en/posts/js-strings-unicode/"/>
    <updated>2020-05-08T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-strings-unicode/</id>
    <content xml:lang="en" type="html">Everything you should know to correctly process advanced Unicode codepoints in JavaScript strings.</content>
  </entry>  <entry>
    <title>Array#splice, the Swiss-army knife</title>
    <link href="https://delicious-insights.com/en/posts/array-splice/"/>
    <updated>2020-05-07T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/array-splice/</id>
    <content xml:lang="en" type="html">Do you *really* know Array#splice, the Swiss-army knife of JavaScript array tweaking?</content>
  </entry>  <entry>
    <title>Properly formating a number</title>
    <link href="https://delicious-insights.com/en/posts/js-number-formatting/"/>
    <updated>2020-05-06T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-number-formatting/</id>
    <content xml:lang="en" type="html">Fine-tuning number formating with JS? Easy as pie!</content>
  </entry>  <entry>
    <title>Efficiently extracting a substring</title>
    <link href="https://delicious-insights.com/en/posts/js-string-slice/"/>
    <updated>2020-05-05T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-string-slice/</id>
    <content xml:lang="en" type="html">Splitting strings in JS? Thow away substring and forget substr! Your salvation lies with slice!</content>
  </entry>  <entry>
    <title>Efficiently deduplicating an array</title>
    <link href="https://delicious-insights.com/en/posts/js-array-deduplication/"/>
    <updated>2020-05-04T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-array-deduplication/</id>
    <content xml:lang="en" type="html">Discover the best way to deduplicate an array since ES2015…</content>
  </entry>  <entry>
    <title>19 JavaScript nuggets!</title>
    <link href="https://delicious-insights.com/en/posts/js-nuggets/"/>
    <updated>2020-04-27T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/js-nuggets/</id>
    <content xml:lang="en" type="html">Every day a JavaScript nugget, for 19 days!</content>
  </entry>  <entry>
    <title>Call a JavaScript function with an explicit this</title>
    <link href="https://delicious-insights.com/en/posts/call-and-apply-in-javascript/"/>
    <updated>2020-02-25T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/call-and-apply-in-javascript/</id>
    <content xml:lang="en" type="html">JavaScript does not intrinsically bind your functions to a specific “this”… but that means JS lets you call them with an explicitly given “this”!  What’s it useful for, and how to go about it?</content>
  </entry>  <entry>
    <title>Writing Modern Async JS: our new screencast</title>
    <link href="https://delicious-insights.com/en/posts/async-js-screencast/"/>
    <updated>2019-06-14T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/async-js-screencast/</id>
    <content xml:lang="en" type="html">Our first screencast is out! 4hr and 40+ code samples for just €29, the go-to top-notch course.</content>
  </entry>  <entry>
    <title>Enhance your commits with Git hooks!</title>
    <link href="https://delicious-insights.com/en/posts/git-hooks-commit/"/>
    <updated>2019-01-03T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-hooks-commit/</id>
    <content xml:lang="en" type="html">Enhance your code and your commit messages with Git hooks.</content>
  </entry>  <entry>
    <title>The Q2 2018 sessions are here!</title>
    <link href="https://delicious-insights.com/en/posts/new-q2-2018-sessions/"/>
    <updated>2017-12-04T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/new-q2-2018-sessions/</id>
    <content xml:lang="en" type="html">A whole slew of new training dates for Q2 2018: Webpack, 360° ES, Git, Node.js, Modern Web Apps…</content>
  </entry>  <entry>
    <title>360° ES and Webpack: 2 new training courses!</title>
    <link href="https://delicious-insights.com/en/posts/360-es-and-webpack/"/>
    <updated>2017-09-25T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/360-es-and-webpack/</id>
    <content xml:lang="en" type="html">Check out our 2 new courses:: 100% of latest-gen JavaScript and a deep-dive into Webpack…</content>
  </entry>  <entry>
    <title>360° JS becomes Modern Web Apps</title>
    <link href="https://delicious-insights.com/en/posts/360js-becomes-mwa/"/>
    <updated>2017-09-23T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/360js-becomes-mwa/</id>
    <content xml:lang="en" type="html">Our “360° JS” training rebrands as “Modern Web Apps”: why?</content>
  </entry>  <entry>
    <title>Addicted to hooks</title>
    <link href="https://delicious-insights.com/en/posts/git-hooks/"/>
    <updated>2017-04-14T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-hooks/</id>
    <content xml:lang="en" type="html">Improve quality and reduce stress with tasks automation.</content>
  </entry>  <entry>
    <title>Mastering Git Reset: Commit Alchemy</title>
    <link href="https://delicious-insights.com/en/posts/git-reset/"/>
    <updated>2016-05-11T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-reset/</id>
    <content xml:lang="en" type="html">The git reset command is a formidable tool unfortunately far too often misunderstood or poorly used. This is too bad, as it opens up a wide range of solutions and tips to optimize our work and workflows.</content>
  </entry>  <entry>
    <title>Mastering GitHub: just released!</title>
    <link href="https://delicious-insights.com/en/posts/mastering-github/"/>
    <updated>2016-05-02T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/mastering-github/</id>
    <content xml:lang="en" type="html">Last December, we had told you about the release of the first-parter in our GitHub training video series: Learning GitHub. We had then hinted at the second part, aimed at topics even more advanced.</content>
  </entry>  <entry>
    <title>Key figures from the Node.js Foundation user survey</title>
    <link href="https://delicious-insights.com/en/posts/node-js-key-figures-2016/"/>
    <updated>2016-04-15T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/node-js-key-figures-2016/</id>
    <content xml:lang="en" type="html">A couple days ago, the Node.js Foundation released its first-ever Node.js User Survey Report. It is chock-full of interesting data points. Here’s what peaked my interest most.</content>
  </entry>  <entry>
    <title>20 years.</title>
    <link href="https://delicious-insights.com/en/posts/20-years/"/>
    <updated>2016-01-16T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/20-years/</id>
    <content xml:lang="en" type="html">A look back on Christophe’s 20 years so far of professional IT career.</content>
  </entry>  <entry>
    <title>Mastering Git subtrees</title>
    <link href="https://delicious-insights.com/en/posts/mastering-git-subtrees/"/>
    <updated>2015-01-30T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/mastering-git-subtrees/</id>
    <content xml:lang="en" type="html">A month ago we were exploring Git submodules; I told you then our next in-depth article would be about subtrees, which are the main alternative.</content>
  </entry>  <entry>
    <title>Mastering Git submodules</title>
    <link href="https://delicious-insights.com/en/posts/mastering-git-submodules/"/>
    <updated>2014-12-31T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/mastering-git-submodules/</id>
    <content xml:lang="en" type="html">If you used submodules before, you certainly got a few scars to show for it, probably swearing off the dang thing. Submodules are hair-pulling for sure, what with their host of pitfalls and traps lurking around most use cases. Still, they are not without merits, if you know how to handle them.</content>
  </entry>  <entry>
    <title>Git Bisect: quickly zero in on a bug’s origin</title>
    <link href="https://delicious-insights.com/en/posts/git-bisect/"/>
    <updated>2014-12-09T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-bisect/</id>
    <content xml:lang="en" type="html">Oooh, what a nasty bug you just noticed! Alas, you can’t seem to find out where it originates just now, and it appears to have been around for a while, too… How can you avoid combing through the entire history?</content>
  </entry>  <entry>
    <title>How to make Git preserve specific files while merging</title>
    <link href="https://delicious-insights.com/en/posts/how-to-make-git-preserve-specific-files-while-merging/"/>
    <updated>2014-11-28T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/how-to-make-git-preserve-specific-files-while-merging/</id>
    <content xml:lang="en" type="html">Oh boy, are branches great. They let you have entirely different versions of a given file, depending on the context. The thing is, in a few (not so rare) situations, you may want to version a file that changes from branch to branch, but retain its current content when merging another branch into yours.</content>
  </entry>  <entry>
    <title>Fix conflicts only once with git rerere</title>
    <link href="https://delicious-insights.com/en/posts/git-rerere/"/>
    <updated>2014-11-04T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-rerere/</id>
    <content xml:lang="en" type="html">So you fixed a conflict somewhere in your repo, then later stumbled on exactly the same one (perhaps you did another merge, or ended up rebasing instead, or cherry-picked the faulty commit elsewhere…). And bang, you had to fix that same conflict again. That sucks.</content>
  </entry>  <entry>
    <title>30 Git CLI options you should know about</title>
    <link href="https://delicious-insights.com/en/posts/30-git-cli-options-you-should-know-about/"/>
    <updated>2014-09-15T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/30-git-cli-options-you-should-know-about/</id>
    <content xml:lang="en" type="html">You think you know Git? Maybe you do… And yet, I’d bet my shirt that many cool little command-line options remain unknown to you.</content>
  </entry>  <entry>
    <title>What’s new since Git 1.7</title>
    <link href="https://delicious-insights.com/en/posts/whats-new-since-git-1-7/"/>
    <updated>2014-08-28T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/whats-new-since-git-1-7/</id>
    <content xml:lang="en" type="html">A lot of people use Git without quite tracking what’s coming up in later releases. Sometimes you just go with whatever’s available on your Linux distro, even if that is quite outdated.</content>
  </entry>  <entry>
    <title>Getting solid at Git rebase vs. merge</title>
    <link href="https://delicious-insights.com/en/posts/getting-solid-at-git-rebase-vs-merge/"/>
    <updated>2014-05-04T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/getting-solid-at-git-rebase-vs-merge/</id>
    <content xml:lang="en" type="html">Each one is best for specific purposes, so learn when to use them efficiently, and why.</content>
  </entry>  <entry>
    <title>A well-honed Git configuration</title>
    <link href="https://delicious-insights.com/en/posts/git-configuration/"/>
    <updated>2013-04-03T00:00:00Z</updated>
    <id>https://delicious-insights.com/en/posts/git-configuration/</id>
    <content xml:lang="en" type="html">Detailed overview of must-have settings for efficiently using Git everyday.  A must-read.</content>
  </entry></feed>
