I’ve been looking at Datadog’s distribution metrics recently and found it a little bit tricky to understand how much they cost. https://docs.datadoghq.com/account_management/billing/custom_metrics/?tab=distribution| Daniel Compton
Datadog has a number of sites (regions) you can choose. You can reduce bandwidth egress costs by making a direct connection to your Datadog site, but only if you are connecting from the same cloud provider. However, Datadog is weirdly silent about where each of the sites run. You can’t change the site you’re using after you sign up, so it’s important to get it right! Here is a list of the available regions as of October 2025 and where they run:| Daniel Compton
Recently at work create apple id “cannot find this person” $ xcrun notarytool store-credentials "Whimsical Development" --apple-id "name@company.com" --team-id "2N6497CB83" --verbose [18:23:07.326Z] Debug [MAIN] Running notarytool version: 1.0.0 (32.0.1), date: 2024-02-29T18:23:07Z, command: /Applications/Xcode-15.2.0.app/Contents/Developer/usr/bin/notarytool store-credentials Whimsical Development --apple-id name@company.com --team-id 2N6497CB83 --verbose This process stores your credent...| Daniel Compton
I was looking at the docs for Google Cloud Storage and came across Turbo Replication. Turbo replication is a Cloud Storage feature designed to asynchronously replicate newly written Cloud Storage objects associated with any insert, rewrite, copy, or compose operation—regardless of object size—to a separate region within a target of 15 minutes. Available for dual-region buckets, turbo replication offers a shorter, more predictable recovery point objective (RPO), helping to reduce data loss...| Daniel Compton
I was looking through our app logs recently and saw this warning message printed from our headless Chrome service: [1208/221244.718990:ERROR:devtools_http_handler.cc(636)] Using unsafe HTTP verb GET to invoke /json/new. This action will stop supporting GET and POST verbs in future versions. After some searching, I found that the solution is to change the request to use PUT instead of GET. It appears as if the change is to prevent XSRF attacks against the DevTools HTTP server.| Daniel Compton
CloudFront recently announced HTTP/3 support. I wanted to add it to the CloudFront distributions at work. I looked at the AWS Terraform Provider docs for setting the HTTP version. It said: The maximum HTTP version to support on the distribution. Allowed values are http1.1, http2, http2and3 and http3. The default is http2. I was confused about the difference between http2and3 and http3. I looked at the CloudFront API docs, which said pretty much the same thing as the Terraform docs.| Daniel Compton
At work, we have recently converted our projects to the Clojure CLI and deps.edn. There were a few commands from Leiningen that I needed to find an equivalent for when working with dependencies. Download all dependencies Often in a CI environment, you want to download all of the dependencies for a project before building the project. In Leiningen, you can use lein deps to do this. You can use clojure -P to Prepare the project with the Clojure CLI.| Daniel Compton
One of Maven’s dependency management features is the classifier. Classifiers let you create multiple different artifacts from the same POM. You might use this to publish variations with native libraries for each OS, or to support different Java versions. This is also how sources and javadoc artifacts are created. In Maven you can specify a dependency on a version with <classifier> like this: <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport-native-epoll</artifactId> <vers...| Daniel Compton
If you or your company ever receive AWS credits, your bill the next month will probably show a decrease in spending. This is great because you spent less money. However, at first glance, it can make comparing this month’s bill to the previous month difficult. The trick is to use AWS Cost Explorer, and exclude the Credit and Tax Charge Types: If you don’t see “Charge Type” in the Cost Explorer sidebar, you might need to expand Advanced Options.| Daniel Compton
The two iron rules of cloud pricing introduced by AWS are: Prices never go up1 2. We will absolutely soak you on data transfer charges. Last week Google Cloud published a post explaining how they were ignoring the first rule in favour of adopting the second. The post was called “Unlock more choice with updates to Google Cloud’s infrastructure capabilities and pricing”, though the <title> was more straightforward: “Updates to Google Cloud’s Infrastructure pricing”.| Daniel Compton
I recently was looking at how to get more than one display connected to my new M1 MacBook Air. DisplayLink technology had a lot of limitations but was the only option I could see. I looked at different docks and ended up purchasing the ALogic DX3. These are my thoughts after a few months use. I’ve split the review into DisplayLink and ALogic DX3 sections. Most of my complaints are about DisplayLink and I think would be the same no matter which dock/USB adapter you choose.| Daniel Compton
Introduction I needed to buy a new Mac recently. I couldn’t bring myself to buy a legacy Intel Mac, but the new M1 Macs only support up to two displays. For the MacBook Air, MacBook Pro, and iMac that means you can connect one additional display along with the built-in display. For the Mac Mini, you can add two displays. I wanted a MacBook Air and already had two external displays which I wanted to keep using.| Daniel Compton
This was a talk I gave at the first Heart of Clojure in 2019. I wrote more about why I enjoyed it so much at the time. You can also see the talk on Youtube. Good morning. I was going to ask if everyone’s feeling awake, but I think after that karaoke, I think everyone’s pretty well awake by now. This talk is called Building Stable Foundations, and it’s about building stable long lasting foundations for the Clojure community.| Daniel Compton
I’m thriled to announce that I have finally attained the coveted blue GitHub “Staff” badge! I’m joining the Social Coding team at GitHub as a product manager. For the last six years I’ve been writing Clojure professionally; product management is going to be quite different, but I’m looking forward to it. There are a few reasons why I’m looking forward to working at GitHub: Over the last few years working on Clojurists Together I’ve been looking at how to fund open source softw...| Daniel Compton
This tax season I got an email from IRD reminding me I had to file my return. This happens every year and is usually not a surprise. However this year, the returns were slightly different. They said: The 31 March 2019 IIT return for {person} is due 8 July 2019. and The 31 March 2019 ITN return for {company} is due 8 July 2019. I’d never heard of an IIT return or an ITN return.| Daniel Compton
I’ve been working remotely for about five years full-time. Over that time I’ve talked with colleagues pretty much every work day, so being able to communicate clearly by audio has been crucial. Bad quality audio can quickly turn a good conversation into a frustrating one when you struggle to hear the speaker, or keep needing to ask them to repeat themselves. Videoconferencing is lower bandwidth than in-person communication; I’ve tried to get as good quality when videoconferencing so I c...| Daniel Compton
A few weeks ago I got to attend and speak at Heart of Clojure. I met lots of online friends in person for the first time, and made some new ones too. I’ve thought a lot about how to describe it since then, and every time I come back to the word special. Others have also posted their thoughts on Heart of Clojure: Fork This Conference, The people’s conference, The hallway track conference, Community with lots of heart, and A courageous conference?| Daniel Compton
A few years ago I came across a Leiningen project that defined profiles for :project/dev, :profiles/dev, :project/test, and :profiles/test. It took me a little bit of digging, but eventually I discovered what was happening. This is a convention that I think originated with James Reeves. I’m reposting my issue comment here, so it can be more accessible for searchers. If you see profiles like this in a project.clj, here is what is happening:| Daniel Compton
When I first started using Apple Music I signed up for a solo subscription. During the day, I would listen to music on my Mac, and my family would listen to music on the iPad. If we listened at the same time, we would get the error: “Looks like you’re listening to music on another device.” Eventually this error became too annoying and I looked at upgrading to a Family subscription.| danielcompton.net
Update 2024-05-21: Miles Ward has an update with more details in this X thread: UniSuper’s production Google Cloud VMware Engine (GCVE) private cloud was automatically deleted one year after it’s creation due to a misconfiguration in how it was created. When it was created, there was a bug in the creation script which passed a null value. This caused the private cloud to be created with a one year subscription, rather than a perpetual one.| danielcompton.net