GoatCounter is a web analytics platform, roughly similar to Google Analytics or Matomo. It aims to give meaningful privacy-friendly web analytics for business purposes, while still staying usable for non-technical users to use on personal websites. The choices that currently exist are between freely hosted but with problematic privacy (e.g. Google Analytics), hosting your own complex software or paying $19/month (e.g. Matomo), or extremely simplistic “vanity statistics”.
Welcome to 2020 — on this year’s “State of the ‘log’” episode Jerod and I look back at our favorite moments from 2019 and forward to 2020 and beyond. We talk through our most popular episodes, our personal favorites, our 10-year anniversary, the excitement we have for Brain Science our newest podcast, it’s for the curious! And we also look forward to plans we have for 2020 and the decade to come…
Here’s a heartwarming tale of how Backblaze broke libcurl’s copyright, then fixed it, then donated a hefty $15,600 to the project. Why that particular amount?
Backblaze was started in my living room on Jan 15, 2007 (13 years ago tomorrow) and that represents $100/month for every month Backblaze has depended on libcurl back to the beginning. / Brian Wilson, CTO of Backblaze
More like this!
Building a chat app from scratch is a pretty daunting task. But you don’t need to start from scratch when you can get a working concept up and running in just a few minutes using Stream’s Chat API and Svelte 3. This post on the Stream blog will help to get you started. In this article, you’ll learn how to build a chat app with Stream Chat API and Svelte 3. I’ll demonstrate how to add users to the app, how to retrieve the message history and how to send and receive messages between users.
If the author of this library put as much effort into its API as they did the website, it’ll be a joy to use.
import pendulum now = pendulum.now('Europe/Paris') # Changing timezone now.in_timezone('America/Toronto') # Default support for common datetime formats now.to_iso8601_string() # Shifting now.add(days=2)
Jaana, Jon, and Mat are joined by John Graham-Cumming, the CTO of Cloudflare, to discuss Go at Cloudflare along with John’s unique involvement in Gordon Brown’s apology to Alan Turing. How did Cloudflare get started with Go? What problems do they use Go for and when to they turn to other languages? And how exactly did John’s petition for an apology to Turing get so popular?
Mireille and Adam discuss goal setting and the different types of goals we set. We reflect on how can you set goals that work for you and measure them. We also talk about how you go about building the behaviors that align with your identity and resistance we face when we do this. We also share our 2020 goal for Brain Science. This is a must-listen episode to get a grounded perspective in planning your goals for this year and decade.
HTTP/3 is the next protocol for network communication across the Web, which is meant to partially replace HTTP/1 and HTTP/2. One month before the next QUIC Working Group meeting, to be held in Zurich next February, it may be useful to recap what HTTP/3 promises and what its current client/server support looks like.
It’s been awhile since we discussed QUIC and HTTP/3 with curl’s Daniel Stenberg. A lot has happened since then, and this InfoQ article will do a good job of catching you up. Browser support is still limited, but things are coming along nicely.
In this GitHub repository, I’m documenting my journey to write a self-compiling compiler for a subset of the C language. I’m also writing out the details so that, if you want to follow along, there will be an explanation of what I did, why, and with some references back to the theory of compilers.
But not too much theory, I want this to be a practical journey.
Join Warren on his journey and learn a lot along the way.
This week’s episode from Heroku’s Code[ish] podcast covers the costs and benefits of GraphQL. GraphQL is a querying language with the aim of increasing the productivity of frontend and backend developers. It can make working with React easier, be used as an API for third-party clients, and allow for feature-rich applications to request precisely the data they need. Like any part of your stack, GraphQL isn’t a panacea. The language is still being developed, and has some limitations. Tanmai Gopal, the CEO of Hasura, guides us through the pros and cons of using GraphQL in your application.
Chris and Daniel talk with Greg Allen, Chief of Strategy and Communications at the U.S. Department of Defense (DoD) Joint Artificial Intelligence Center (JAIC). The mission of the JAIC is “to seize upon the transformative potential of artificial intelligence technology for the benefit of America’s national security… The JAIC is the official focal point of the DoD AI Strategy.” So if you want to understand how the U.S. military thinks about artificial intelligence, then this is the episode for you!
This is a full-featured replacement for many of your shell’s built-ins.
sscaffold combines css rules from normalize.css, skeleton.css, and milligram into a single, reorganized, easy-to-use css file, with bugfixes and a few other updates and additions. It emphasizes sensible defaults and semantic HTML.
This library (not framework) looks like a good starter for many projects.
The single file is human-readable, commented, includes credits to original authors, and is designed to be easily customized.
No more waiting for your bundler to rebuild your site every time you hit save. Instead, every change is reflected in the browser instantly.
This relies on ESM (Mikeal gave a great rundown on the current state of things on a recent JS Party), so it’s not for everyone. The homepage has rundowns on who should use this, who should avoid it, and how to get started.
Brought to you by the fine folks at Pika.
At Node+JS Interactive… the talks are all quite attractive. From transpilation dread… to awesome worker threads. This conf is surely impactive!
Think of this like jq, but for people who love parentheses. 😀
cat test.json | jql '(elem "countries" (elem (keys) (elem "name")))' [ "Poland", "United States", "Germany" ]
If you’re processing large amounts of data in memory, copying data uses up RAM, but mutating data leads to bugs. Learn the design pattern that gives you safety while still reducing memory usage: interior mutability.
Arijit Mukherji on The New Stack:
We all have our favorite urban legends. From cow tipping to chupacabras, these myths persist despite a lack of definitive proof (and often evidence to the contrary). Technology isn’t immune to this phenomenon. It has its own set of urban legends and myths that emerge alongside new technologies and continue well into mass adoption. As organizations consider the shift from monitoring to Observability, I hear three common misperceptions. It’s time to debunk the myths.
This is an NES emulator and a work in progress. The CPU, PPU, and APU mostly work, though there are still at least a couple bugs. I’ve mostly tested on Donkey Kong and Super Mario Bros. so far. There are plenty of full-featured emulators out there; this is primarily an educational project but I do want it to run well.
If you’re interested in learning about Rust and/or emulators, this is for you.
Patrick DeVivo pointed tickgit at Kubernetes’ source code and discovered that the team has a lot TODO…
- 2,380 TODOs across 1,230 files from 363 distinct authors
- 489 TODOs were added in 2019 so far
- 860 days (or 2.3 years) is the average age of a TODO
That’s just a taste of what they found. The article has more info and some analysis to boot.
Mat, Carmen, and Jon are joined by Dan Scales to talk about Mat’s favorite keyword in Go - defer. Where did the defer statement come from? What problems can it solve? How has it shaped how we write Go code? How are other languages solving similar problems? And what exactly was changed in Go 1.14 to improve the performance of defer?