After a brief hiatus, we're back! Today, we'll look at how to perform a 'deep copy' of structures in JavaScript. We'll look at a couple of different out-of-the-box solutions and then roll our own recursive solution. This tutorial will also provide some background on the difference between copying by reference and by value in JS, and the difference between 'deep' and 'shallow' copies.
Recently, I've been working a lot with Vue.js. Not having much of a JavaScript background, I've been bitten by what seem like some pretty basic 'gotchas'. I've also had to look up a couple fairly basic things a number of times, which usually means one thing: it's time for some structured notes!
Samba is a collection of programs that form a file server for Linux. It's dead-easy to setup and get going with, and is very fast. I use it for a variety of things, but its killer application for me was accessing my music collection. I recently moved from NFS to Samba to share around 500 gigs of tunes, and what was a mediocre solution turned into something that I can't tell isn't on my local disk. It's great.
Anyone who's used Linux on a laptop has likely encountered some less than ideal trackpad behavior. For instance, I lived with what appeared to be a random pasting problem for months before discovering that it to be a middle mouse button 'feature'. I'm sure that in some cases calling it a feature is warranted - but I found it infuriating. Some times edits before committing get a little too large - and when that coincides with having accidentally pasted a semi colon into a large file with lots of other edits, hair pulling ensues. As with most things, once we understand the problem, the fix is simple!
In this tutorial, we'll cover how to create an encrypted container on Linux. We'll also cover how to integrate its use into your environment. You can think of this space as a safe, which you can open, store things in or read things from, and then close again. Additionally, some of the techniques used to do this are generally quite valuable. Among them are the ability to create files of arbitrary sizes, and create links that allow arbitrary scripts to be run as you would any other installed program.