LastPass was bought by a private equity company. As is often the case, that change of ownership heralded a change in the business model. Usually, these changes are not beneficial to customers. Since the acquisition, LastPass has raised prices and had a very significant security breach. I dropped it early last year after they changed the subscription plan and switched to Bitwarden. Bitwarden has worked really well for me and I would recommend it to anyone looking for a cross-platform password solution.
Read MorePricy clouds
37Signals has a large AWS bill. About $3.2M USD last year. It sounds like they have been proactive at managing the bill and that’s just what it costs to run their business on AWS. They are an interesting and smart company and it seems they are going to try to move some/most of that out of AWS. Dell will be happy to hear that but I don’t know if it will result in significant savings because you now have to hire and manage people to run the show robustly (especially the 8PB of storage).
Read MoreDiseconomies of scale
The Register has an interesting article on the underlying economics of big tech. The Amazons and Googles of the world have grown huge by offering “free” products like Alexa and Gmail. As we all know by now, if it’s free, you are the product. Has this model run out of steam at huge scale? These huge free services are expensive to run. The most recent results from Amazon show how difficult it can be to make money on a free service.
Read MoreEqual or not
Yet more JavaScript notes. This time, it’s all about equality. They key part to various control structures (e.g., if, switch, while, do and for)in JavaScript (and other languages for that matter), are the comparison operators. These are less than, greater than, equals and the combinations thereof. In JavaScript, the operands (the things that are being compared) get converted automatically. So, you need to be careful and favor the strict comparisons.
Read MoreMore JavaScript Notes
A couple of winter solstice notes on JavaScript from my recent reading. The first is on automatic semicolon insertion. You don’t have to use semicolons to write JavaScript, but if you don’t, some rules apply. The first rule is pretty simple: when processing a statement, the parser includes everything until it encounters a semicolon or an “offending token” that cannot be part of the statement. If this offending token is a line termination, end of input or a }, a semicolon is added.
Read MoreGolden Rules
As mentioned in my previous post, I’m reading JavaScript for the Impatient. Something I really like about it is that the author, Cay S. Horstmann is opinionated. Technical books need to have a point of view. If you disagree with it, fine. You can take another path but part of the value of reading a technical book is to understand better ways to do it and that is almost always an opinion.
Read MoreSvelteScript
As I’ve been experimenting with Svelte, I wanted to hone my JavaScript skills. I’ve done some development in the past but it’s been a while and things have changed. I did some research to figure out what might be a good resource and ended up reading Modern JavaScript for the Impatient to get back up to speed. As it says on the tin, it’s all about modern JavaScript and skips much of the old and weird stuff that you really don’t need to know in favor of getting to the point for developers who know other languages.
Read MoreSvelter - part III
I went through the rest of the Svelte tutorial to understand the basics. It’s a nicely structured tutorial and I was able to get the gist of the major features of Svelte by going through it. Svelte has a lot of power and the compilation process makes it simpler to deal with than some of the other modern frameworks. The proof is in the pudding though and I’ll need to actually build something to see how it all fits together.
Read MoreSvelter - part II
The next interesting bit about Svelte is the reactive functions. Often code needs to do something in response to a variable change. Svelte makes that easy by automatically rendering the view when a variable is reassigned on the next browser paint. That’s nice but sometimes you need to react to a variable change inside of the script before it gets rendered. For example, if you need to get new data from the backend on the change of a variable.
Read MoreSvelter
I’ve been doing some more digging on Svelte and have learned some interesting stuff. A basic thing is the way that Svelte just uses {brackets} to demarcate dynamic content. Everything that is inside the brackets is just JavaScript. Another very basic thing is how the control flow works. It’s very much as expected and supports {if} with multiple {:else if} branches all closed with a final {/if} as well as {#each} for iterating through a list.
Read More