<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text" xml:lang="en">Growing with the Web</title>
  <link type="application/atom+xml" href="http://www.growingwiththeweb.com/site.atom" rel="self"/>
  <link type="text/html" href="http://www.growingwiththeweb.com/" rel="alternate"/>
  <updated>2022-01-09T19:03:35+00:00</updated>
  <id>http://www.growingwiththeweb.com/</id>
  <author>
    <name>Daniel Imms</name>
  </author>
  <rights>Copyright (c) 2012-2021, Daniel Imms; all rights reserved.</rights>

  
  <entry>
    <title>Inlining constants with const enums in TypeScript</title>
    
    <link href="http://www.growingwiththeweb.com/2021/01/typescript-inline-const-enums.html"/>
    
    <updated>2021-01-13T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2021/01/typescript-inline-const-enums</id>
    <content type="html">&lt;p&gt;&lt;p&gt;An often overlooked part of writing high performance JavaScript apps is to consider how your code will be compiled and minified.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2021/01/typescript-inline-const-enums.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Readonly Typed Arrays in TypeScript</title>
    
    <link href="http://www.growingwiththeweb.com/2020/10/typescript-readonly-typed-arrays.html"/>
    
    <updated>2020-10-22T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2020/10/typescript-readonly-typed-arrays</id>
    <content type="html">&lt;p&gt;&lt;p&gt;A proposal to add support for built-in readonly typed arrays &lt;a href=&quot;https://github.com/microsoft/TypeScript/issues/37792&quot;&gt;got rejected&lt;/a&gt; by the TypeScript team. This post shows how to build your own.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2020/10/typescript-readonly-typed-arrays.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Replacing Google Analytics</title>
    
    <link href="http://www.growingwiththeweb.com/2020/07/replacing-google-analytics.html"/>
    
    <updated>2020-07-11T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2020/07/replacing-google-analytics</id>
    <content type="html">&lt;p&gt;&lt;p&gt;I’ve been on Google Analytics pretty much since moving the site off of Blogger. Technically if you use GA now you require a cookie consent dialog which got me thinking why I actually use GA.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2020/07/replacing-google-analytics.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Migrating xterm.js from TSLint to ESLint</title>
    
    <link href="http://www.growingwiththeweb.com/2020/03/migrating-xtermjs-from-tslint-to-eslint.html"/>
    
    <updated>2020-03-29T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2020/03/migrating-xtermjs-from-tslint-to-eslint</id>
    <content type="html">&lt;p&gt;&lt;p&gt;As you may know, &lt;a href=&quot;https://github.com/palantir/tslint&quot;&gt;TSLint&lt;/a&gt; is now deprecated in favor of &lt;a href=&quot;https://eslint.org/&quot;&gt;ESLint&lt;/a&gt; with the &lt;a href=&quot;https://github.com/typescript-eslint/typescript-eslint&quot;&gt;typescript-eslint&lt;/a&gt; plugin. This post dives into how &lt;a href=&quot;https://github.com/xtermjs/xterm.js/pull/2786&quot;&gt;the migration&lt;/a&gt; went in &lt;a href=&quot;https://github.com/xtermjs/xterm.js&quot;&gt;xterm.js&lt;/a&gt;, hopefully it will help save some time for people searching for the same errors.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2020/03/migrating-xtermjs-from-tslint-to-eslint.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Testing using the Azure Cosmos DB Emulator in Azure Pipelines</title>
    
    <link href="http://www.growingwiththeweb.com/2019/11/cosmos-db-emulator-pipelines.html"/>
    
    <updated>2019-11-23T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2019/11/cosmos-db-emulator-pipelines</id>
    <content type="html">&lt;p&gt;&lt;p&gt;When working on an application that interfaces with an Azure Cosmos DB backend you could use an actual Cosmos DB instance to test against but that’s a bit of a hassle as it involves setting up and configuring an actual instance. It turns out there is an emulator that runs in a docker container that you can test against instead.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2019/11/cosmos-db-emulator-pipelines.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Splay Tree: TypeScript Sample</title>
    
    <link href="/data-structures/splay-tree/overview/"/>
    
    <updated>2019-11-10T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2019/11/splay-tree-typescript</id>
    <content type="html">&lt;p&gt;&lt;p&gt;The &lt;a href=&quot;/data-structures/splay-tree/overview/&quot;&gt;Splay Tree&lt;/a&gt; article now features a sample written in TypeScript that is also available on &lt;a href=&quot;https://github.com/gwtw/ts-splay-tree&quot;&gt;GitHub&lt;/a&gt; and is installable through the &lt;a href=&quot;https://github.com/gwtw/ts-splay-tree/packages&quot;&gt;GitHub Package Registry&lt;/a&gt;.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="/data-structures/splay-tree/overview/"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>How Shells Work: The cd Builtin Command</title>
    
    <link href="http://www.growingwiththeweb.com/2019/07/how-shells-work-cd.html"/>
    
    <updated>2019-07-01T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2019/07/how-shells-work-cd</id>
    <content type="html">&lt;p&gt;&lt;p&gt;I’m currently going through the POSIX specification and wanted to document some of the lesser known things you can do.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2019/07/how-shells-work-cd.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Using the Intersection Observer web API to improve performance</title>
    
    <link href="http://www.growingwiththeweb.com/2018/01/intersection-observer.html"/>
    
    <updated>2018-01-22T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2018/01/intersection-observer</id>
    <content type="html">&lt;p&gt;&lt;p&gt;xterm.js ran into a great problem to use the Intersection Observer web API. This post introduces the problem, what Intersection Observer is and why it’s such a good fit.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2018/01/intersection-observer.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>How to fix nvm slowing down terminal initialisation</title>
    
    <link href="http://www.growingwiththeweb.com/2018/01/slow-nvm-init.html"/>
    
    <updated>2018-01-09T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2018/01/slow-nvm-init</id>
    <content type="html">&lt;p&gt;&lt;p&gt;I started using &lt;a href=&quot;https://github.com/creationix/nvm&quot;&gt;nvm&lt;/a&gt; a while ago but ever since then my terminal has been very slow to start up.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2018/01/slow-nvm-init.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Fast and Simple JavaScript FPS Counter</title>
    
    <link href="http://www.growingwiththeweb.com/2017/12/fast-simple-js-fps-counter.html"/>
    
    <updated>2017-12-30T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2017/12/fast-simple-js-fps-counter</id>
    <content type="html">&lt;p&gt;&lt;p&gt;A side project called for a JavaScript &lt;abbr title=&quot;Frames per second&quot;&gt;FPS&lt;/abbr&gt; counter, here’s how I did it.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2017/12/fast-simple-js-fps-counter.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>VS Code - Integrated Terminal Performance Improvements</title>
    
    <link href="https://code.visualstudio.com/blogs/2017/10/03/terminal-renderer"/>
    
    <updated>2017-10-03T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2017/10/vscode-terminal-renderer</id>
    <content type="html">&lt;p&gt;&lt;p&gt;Visual Studio Code version 1.17 is getting a new rendering engine based on &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas&quot;&gt;HTML canvas&lt;/a&gt;. This post dives into some of the motivation and how it was done.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="https://code.visualstudio.com/blogs/2017/10/03/terminal-renderer"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Working with 32-bit processes on 64-bit Windows</title>
    
    <link href="http://www.growingwiththeweb.com/2017/08/windows-wow64.html"/>
    
    <updated>2017-08-03T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2017/08/windows-wow64</id>
    <content type="html">&lt;p&gt;&lt;p&gt;I hit &lt;a href=&quot;https://github.com/Microsoft/vscode/issues/27915&quot;&gt;a bug in VS Code&lt;/a&gt; recently related to running a 32-bit process on a 64-bit machine that was interesting. Here’s what I learned.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2017/08/windows-wow64.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Implement a maximum value aware stack</title>
    
    <link href="http://www.growingwiththeweb.com/2017/05/max-aware-stack.html"/>
    
    <updated>2017-05-01T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2017/05/max-aware-stack</id>
    <content type="html">&lt;p&gt;&lt;p&gt;This article looks at the interview question - &lt;em&gt;Implement a stack that can return its maximum value in constant time&lt;/em&gt;.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2017/05/max-aware-stack.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Five years</title>
    
    <link href="http://www.growingwiththeweb.com/2017/04/five-years.html"/>
    
    <updated>2017-04-22T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2017/04/five-years</id>
    <content type="html">&lt;p&gt;&lt;p&gt;Five years have passed since I posted my &lt;a href=&quot;/2012/04/sass-syntactically-awesome-stylesheets.html&quot;&gt;first article&lt;/a&gt; on the blog. Time for a retrospective!&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2017/04/five-years.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Mastering VS Code's Terminal</title>
    
    <link href="http://www.growingwiththeweb.com/2017/03/mastering-vscodes-terminal.html"/>
    
    <updated>2017-03-03T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2017/03/mastering-vscodes-terminal</id>
    <content type="html">&lt;p&gt;&lt;p&gt;Visual Studio Code’s integrated terminal can be launched with &lt;kbd&gt;&lt;kbd&gt;ctrl&lt;/kbd&gt;+&lt;kbd&gt;`&lt;/kbd&gt;&lt;/kbd&gt;. This article goes into some of the lesser known things you can do with the terminal.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2017/03/mastering-vscodes-terminal.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Radix sort (LSD)</title>
    
    <link href="/sorting/radix-sort-lsd/"/>
    
    <updated>2016-12-28T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2016/12/radix-sort-lsd</id>
    <content type="html">&lt;p&gt;&lt;p&gt;&lt;abbr title=&quot;Least significant digit&quot;&gt;LSD&lt;/abbr&gt; radix sort is a stable distribution sort similar to &lt;a href=&quot;/2015/06/bucket-sort.html&quot;&gt;bucket sort&lt;/a&gt;, that distributes values into buckets based on the digits within the value.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="/sorting/radix-sort-lsd/"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>VS Code - Hot Exit Comes to Insiders</title>
    
    <link href="https://code.visualstudio.com/blogs/2016/11/30/hot-exit-in-insiders"/>
    
    <updated>2016-11-30T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2016/11/vscode-hot-exit</id>
    <content type="html">&lt;p&gt;&lt;p&gt;Hot exit comes to Visual Studio Code in version 1.8.0.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="https://code.visualstudio.com/blogs/2016/11/30/hot-exit-in-insiders"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Odd-even sort</title>
    
    <link href="http://www.growingwiththeweb.com/2016/10/odd-even-sort.html"/>
    
    <updated>2016-10-03T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2016/10/odd-even-sort</id>
    <content type="html">&lt;p&gt;&lt;p&gt;Odd-even sort is an &lt;span class=&quot;math&quot;&gt;O(n^2)&lt;/span&gt; variation of the &lt;a href=&quot;/2014/02/bubble-sort.html&quot;&gt;bubble sort&lt;/a&gt; sorting algorithm.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2016/10/odd-even-sort.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Comb sort</title>
    
    <link href="http://www.growingwiththeweb.com/2016/09/comb-sort.html"/>
    
    <updated>2016-09-19T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2016/09/comb-sort</id>
    <content type="html">&lt;p&gt;&lt;p&gt;Comb sort is an &lt;span class=&quot;math&quot;&gt;O(n^2)&lt;/span&gt; variation of the &lt;a href=&quot;/2014/02/bubble-sort.html&quot;&gt;bubble sort&lt;/a&gt; sorting algorithm.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.growingwiththeweb.com/2016/09/comb-sort.html"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
  <entry>
    <title>Binary heap: Build heap proof</title>
    
    <link href="/data-structures/binary-heap/build-heap-proof/"/>
    
    <updated>2016-08-13T00:00:00+00:00</updated>
    <id>http://www.growingwiththeweb.com/2016/08/build-heap-proof</id>
    <content type="html">&lt;p&gt;&lt;p&gt;The &lt;a href=&quot;/data-structures/binary-heap/overview/&quot;&gt;binary heap&lt;/a&gt; data structure supports a &lt;a href=&quot;/data-structures/binary-heap/overview/#build-heap&quot;&gt;&lt;em&gt;build heap&lt;/em&gt; operation&lt;/a&gt; that runs in &lt;span class=&quot;math&quot;&gt;O(n)&lt;/span&gt;. Intuitively it might seem that it should run in &lt;span class=&quot;math&quot;&gt;O(n \log n)&lt;/span&gt; time since it performs an &lt;span class=&quot;math&quot;&gt;O(\log n)&lt;/span&gt; operation &lt;span class=&quot;math&quot;&gt;n/2&lt;/span&gt; times. This article provides a proof of the linear run time.&lt;/p&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="/data-structures/binary-heap/build-heap-proof/"&gt;Read the full article&lt;/&gt;&lt;/p&gt;</content>
  </entry>
  
</feed>
