When I set out to build Murmur the goal was not to reinvent social media but to create a community space that feels purposeful and that you control. Traditional forums worked well for niche interest groups for decades, but modern social platforms are driven by engagement metrics and algorithmic feeds that do not always serve community wellbeing. Murmur embraces a different model: chronological posts, calm interaction, and ownership of your own data.
Murmur is a self hosted, open source social platform that lets you run your own community space on your infrastructure. There are no recommendation algorithms pushing content, no public leaderboards, and no hidden optimization logic. Posts appear in chronological order and you see what you choose to follow. This design makes the experience predictable and easier to moderate without external pressures.
You can like posts, but Murmur does not expose detailed engagement mechanics that encourage competition or gaming the system. There are no public leaderboards and you cannot see who liked a post. The emphasis stays on conversation rather than visible social scoring.
For anyone who has wanted to host a private community, whether for a club, hobby group, alumni network, or special interest, the appeal of owning the platform and the data is significant. With Murmur you host it yourself, you define the rules, and you decide how conversations flow. There is no external service shaping what gets seen or surfaced.
Feature wise, Murmur provides the basic building blocks of a community space. You can create posts and replies with optional attachments, organize discussions with topics, and build personal feeds by following people or topics you care about. One to one private messaging is available between mutual follows, and there are admin controls for registration settings and user management. It supports multiple database backends, flexible storage options, OAuth login providers, theming, and internationalization so it can adapt to different hosting environments.
I chose PHP as the platform for practical reasons. It is the environment I have worked in for more than twenty years and it remains well suited to building web applications that are straightforward to deploy and maintain. A server rendered approach keeps the operational footprint simple. I kept the feed chronological rather than algorithmic both to simplify the product and to lower the cognitive load for moderators and users.
This project was also one of my first serious attempts to build an application with AI assistance. What surprised me was how effectively AI helped with architectural thinking and scaffolding. It was useful in sketching out structure and moving from idea to working code quickly. That said, it did not produce a finished system on its own. There were several rounds where features did not behave the way I expected. It took repeated testing, feedback, and iteration to get the application working the way I wanted. AI accelerated parts of the process, but validation and refinement still required hands on attention.
Murmur is new and does not yet have usage metrics to point to. It exists because I believe there are still people who want to run their own communities on their own terms. If you are looking for a simple, intentional alternative to large social platforms, one that you can host and control yourself, Murmur is a practical starting point.
Phlag: A Practical, Self-Hosted Feature Flag System
TweetFeature flags seem simple at first, but they tend to grow complicated over time.
You start with a boolean in a config file. Then you need environment overrides. Then kill switches. Then scheduled rollouts. Then temporary debug settings. Before long, you have conditionals scattered throughout the codebase and a shared understanding of how to toggle things that only exists in people’s heads.
At DealNews we had an internal feature flag system that handled basic enable and disable cases. It worked, but we kept running into situations where we wanted something more flexible. So I started looking at alternatives.
Most of the commercial options were focused heavily on experimentation. They support A/B testing, segmentation, analytics, and complex rollout strategies. Those features are useful for certain teams, but they were not what we needed. We were not trying to build an experimentation platform. We just needed reliable feature control and the ability to store configuration values.
The open source landscape did not have many options that matched those needs out of the box. The tools that existed either did not support the scheduling and value storage we wanted or required architectural patterns that did not fit our environment. So we built Phlag.
Phlag has a very narrow purpose. When asked for a feature flag, it returns a value. That value might be a boolean, a number, or a string. That is the entire contract. It does not attempt to track user behavior or run experiments. It simply answers the question: what is the value of this flag right now?
One of the features that was important for us was scheduling. In production environments you often need temporary changes. You may want to enable debug logging during an investigation and ensure it turns off later. You may want to enable functionality for a seasonal promotion. You may need a change to activate during a maintenance window. Without scheduling, someone has to remember to reverse the change. Eventually someone forgets. Phlag allows flags to have start and end times so those temporary changes manage themselves.
Today we primarily use Phlag for feature rollouts and kill switches. That alone provides a lot of operational safety. It allows us to deploy code paths that can be disabled quickly if needed. Phlag also supports numeric and string values, which means it can act as a centralized configuration system rather than just a collection of booleans. We are beginning to use it in that way as well.
Phlag is written in PHP because that matches our team’s expertise, but it is not limited to PHP environments. It exposes a REST API and can be deployed using Docker or Kubernetes. Any system that can make an HTTP request can consume it. In practice, it should work for most teams regardless of their application stack.
I suspect Phlag will be most useful for teams that want a self-hosted option and do not need a full experimentation suite. Commercial feature flag services can become expensive as usage scales, especially when you are paying for capabilities you do not use. Phlag focuses on the core problem of returning a flag value reliably, without adding layers of complexity.
There was not a single dramatic challenge in building Phlag. Keeping the scope small made the architecture straightforward. We focused on the data model, the API, and predictable behavior. We used AI tools to help with the UI, which allowed us to spend more time on the underlying system design.
Recent work has focused on improving the user interface and making the system easier to use. I have looked at efforts like OpenFeature, which are interesting, but they also aim to support a broader set of capabilities than Phlag currently targets. For now, the goal remains the same: keep it focused and reliable.
If you are evaluating feature flag systems and find yourself wanting something simple and self-hosted that just returns a value when asked, Phlag might be worth trying.
Varnish Workspace Error
TweetWe had been having an issue with losing cookies in Varnish. Because of how Varnish works, the way to work around cookies is to store them in headers inbetween states of the request process. We were finally able to get some data out of varnishlog that looked like this.
- ReqHeader DN-Varnish-Offer-Group:
- LostHeader DN-Varnish-Offer-Sort: price
- Error out of workspace (req)
- LostHeader DN-Varnish-Sbtab-Sorts:
- Error out of workspace (req)
- LostHeader DN-Varnish-Use-View:
- Error out of workspace (req)
- LostHeader DN-Varnish-Ux-Variant: classic_site
- Error out of workspace (req)
When you first read these errors, you will likely find the settings workspace_client and workspace_backend. Those seem like very logical settings to tweak. However, no matter how big we set them nothing helped. We graph stats coming out of Varnish using the prometheus exporter. We found the metric varnish_main_ws_backend_overflow. That made us believe even more that this was a workspace_backend limit we were hitting. It turns out, there is more to the workspace settings than just this. I read through an old issue on Github and found some folks trying to set other settings related to header size and header limits. In the end, that was our issue. We increased these settings and our overflows disappeared.
http_req_hdr_len = 64k (default is 8k)
http_req_size = 128k (default is 32k)
http_max_hdr=256 (default is 64)
Hopefully this will help someone else that runs up against this.
Disc Golf Discs similar to Remix Discs on Amazon
Tweet
Remix Disc Golf is a brand of disc golf discs that I have only been able to find on Amazon. The seller on Amazon is named Disc Golf Goods. On its Amazon store page, they sell MVP, Axiom, Remix and other brands of disc golf equipment. The detailed seller information on Amazon says the "Business Name" is MVP Pro Shop, LLC. It is pretty common knowledge that these discs are manufacturered and sold by MVP. The speculation is that they are molds made for other companies (Mint, Thought Space Athletics, and possibly others) which they are selling under the Remix name on Amazon. Many of the reviews mention the discs have cosmetic defects or look like they have been used. That has led some to think these are factory seconds. The cool thing is, they cost less than any of the MVP brands or third party brands for which they are known to manufacturer discs. The discs sell from $9.95 to $12.95.
One thing people are always trying to figure out is what disc from another brand was renamed for a Remix disc. Well, it's not an exact science. Some of them could be rejected molds. So, while they may be very similar to another disc, it could be a mold that was meant for another disc that was not used for that disc. This is pure speculation based on talking to people in the know for almost 28 years of playing disc golf.
Now, there is a site that already has a feature that lets one search for similar discs. It is called Try Discs. Their recommendation engine seems to favor flight number similarities over measurements. And we all know that flight numbers are kind of made up. I decided to use the PDGA specs for approved discs to find the discs most similar to the Remix discs available on Amazon. I did not limit the search to brands that are known or believed to be manufactured by MVP. Perhaps you have a favorite disc from another brand that is similar to a Remix disc. There are more Remix discs approved by the PDGA than are on thist list. However, they are not for sale anywhere I can find. I am not claiming that any of the discs will fly like one another. I am solely comparing the measuerments has observed by the PDGA.
If you are interested in some reviews of Remix Discs, Pete Collins has some on his YouTube channel.
All values are centimeters except rim configuration. To determine similarity, diameter and inside rim diameter must to be +/- 0.5cm, height, rim depth, and rim thickness must be +/- 0.2cm (it was 0.1cm in an earlier version of the blog post), and rim configuration must be +/- 1.
For details on these specifications, see the PDGA Technical Standards document.
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Battleship 5 / 4.5 / 0 / 2.5 |
21.4 | 1.8 | 1.4 | 18.5 | 1.4 | 50.5 |
| Clash Discs | Cherry 5 / 5 / -1 / 1 |
21.4 | 1.7 | 1.4 | 18.5 | 1.4 | 51 |
| Clash Discs | Berry 5 / 5 / -1 / 1 |
21.4 | 1.7 | 1.4 | 18.8 | 1.3 | 50.5 |
| Kastaplast | Järn 5 / 3 / 0 / 3 |
21.3 | 1.8 | 1.4 | 18.8 | 1.3 | 51.5 |
| Legacy Discs | Sumo 4 / 2 / 0 / 4 |
21.3 | 1.7 | 1.3 | 18.7 | 1.3 | 50.25 |
| Axiom Discs | Paradox 5 / 4 / -4 / 0 |
21.5 | 1.8 | 1.3 | 18.9 | 1.3 | 50.25 |
| Innova Champion Discs | Gator 5 / 2 / 0 / 4 |
21.2 | 1.9 | 1.4 | 18.6 | 1.3 | 49.5 |
| Innova Champion Discs | Gator3 5 / 2 / 0 / 3 |
21.2 | 1.8 | 1.4 | 18.2 | 1.5 | 49.5 |
| Discmania | MD5 5 / 3 / 0 / 4 |
21.2 | 2 | 1.3 | 18.2 | 1.5 | 51.25 |
| Lone Star Disc | Artemis 4 / 4 / 0 / 2 |
21.1 | 2 | 1.4 | 18.8 | 1.2 | 50.5 |
| Infinite Discs | Ra 5 / 4 / 0 / 3 |
21.7 | 1.8 | 1.4 | 18.8 | 1.4 | 50.25 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Behemoth 12 / 4.5 / -1 / 3 |
21.2 | 1.8 | 1.2 | 16.6 | 2.3 | 26.5 |
| Mint Discs | Goat 12 / 4 / -1 / 3 |
21.2 | 1.7 | 1.2 | 16.6 | 2.3 | 27 |
| Thought Space Athletics | Synapse 12 / 5 / -1 / 3 |
21.2 | 1.6 | 1.2 | 16.6 | 2.3 | 26.25 |
| Axiom Discs | Time-Lapse 12 / 5 / -1 / 3 |
21.2 | 1.7 | 1.2 | 16.5 | 2.3 | 26.25 |
| Discmania | Astronaut 12 / 6 / -4 / 1 |
21.2 | 1.8 | 1.1 | 16.6 | 2.3 | 26 |
| Prodigy Disc | X4 13 / 5 / -2 / 2 |
21.2 | 1.7 | 1.1 | 16.6 | 2.3 | 27 |
| Disc Golf Association | Hypercane 13 / 4 / 0 / 4 |
21.2 | 1.6 | 1.2 | 16.7 | 2.2 | 26.5 |
| Latitude 64 | Recoil 12 / 4 / 0 / 3 |
21.2 | 1.8 | 1.2 | 16.8 | 2.2 | 26 |
| Kastaplast | Rask 14 / 3 / 0 / 4 |
21.2 | 1.6 | 1.1 | 16.8 | 2.2 | 26.5 |
| Lone Star Disc | Curl 11 / 6 / -1 / 2 |
21.2 | 1.8 | 1.1 | 16.8 | 2.2 | 26.75 |
| MVP Disc Sports | Zenith 11 / 5 / -0.5 / 2 |
21.2 | 1.7 | 1.1 | 16.8 | 2.2 | 27 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Creature 5 / 5 / -3 / 1 |
21.4 | 1.8 | 1.4 | 18.6 | 1.4 | 46.25 |
| Thought Space Athletics | Crux 5 / 4 / 0 / 2 |
21.4 | 2 | 1.4 | 18.5 | 1.4 | 47.25 |
| Discmania | Origin 5 / 5 / -2 / 1 |
21.4 | 1.6 | 1.2 | 18.8 | 1.3 | 46.5 |
| Dynamic Discs | Culprit 4 / 2 / 0 / 3.5 |
21.3 | 1.6 | 1.3 | 18.9 | 1.2 | 46.25 |
| Streamline Discs | Runway 5 / 4 / 0 / 3.5 |
21.5 | 1.7 | 1.4 | 18.6 | 1.4 | 47.25 |
| MVP Disc Sports | Matrix 5 / 4 / -1 / 2 |
21.5 | 1.6 | 1.4 | 18.7 | 1.4 | 46.5 |
| MVP Disc Sports | Vertex 4 / 4 / -2 / 0.5 |
21.5 | 1.9 | 1.3 | 19 | 1.2 | 46.75 |
| MVP Disc Sports | Tensor 4 / 4 / 0 / 2.5 |
21.5 | 2 | 1.3 | 19.1 | 1.2 | 46.75 |
| Doomsday Discs | Wasteland 5 / 4 / 0 / 1 |
21.2 | 2 | 1.2 | 18.6 | 1.3 | 45.5 |
| MVP Disc Sports | Detour 5 / 5 / -2 / 1 |
21.6 | 1.6 | 1.3 | 18.7 | 1.4 | 47.25 |
| Doomsday Discs | Scavenger 5 / 5 / -2 / 1 |
21.6 | 1.9 | 1.2 | 19 | 1.3 | 46.75 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Eldritch 3 / 3 / 0 / 1 |
21.2 | 2 | 1.5 | 18.9 | 1.1 | 55.75 |
| Prodiscus | Origo 3 / 3 / 0 / 1 |
21.2 | 1.9 | 1.5 | 19.1 | 1.1 | 56.75 |
| Streamline Discs | Stabilizer 3 / 3.5 / 0 / 3 |
21.2 | 1.8 | 1.4 | 18.8 | 1.1 | 56.25 |
| Viking Discs | Rune 2 / 4 / 0 / 0 |
21.2 | 2.1 | 1.6 | 19 | 1.1 | 55.5 |
| Discmania | Logic 3 / 3 / 0 / 1 |
21.2 | 1.9 | 1.3 | 19 | 1.1 | 55 |
| Gateway Disc Sports | Houdini 3 / 3 / 0 / 3 |
21.2 | 1.9 | 1.5 | 18.8 | 1.2 | 55.75 |
| Gateway Disc Sports | Warlock GE 2 / 3 / 0 / 1 |
21.2 | 1.9 | 1.5 | 19.2 | 1 | 56.25 |
| Innova Champion Discs | Aviar3 3 / 2 / 0 / 2 |
21.2 | 1.9 | 1.5 | 19.2 | 1 | 55.75 |
| Prodigy Disc | P Model S 3 / 5 / 0 / 2 |
21.2 | 2 | 1.5 | 19.2 | 1 | 56.25 |
| Disc Golf Association | Steady 2 / 3 / 0 / 2 |
21.2 | 2 | 1.4 | 19.3 | 1 | 56 |
| Gateway Disc Sports | Chief OS 3 / 3 / 0 / 2 |
21.2 | 2.1 | 1.3 | 19.2 | 1 | 55.75 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Gladius 5 / 5 / -0.5 / 1 |
21.4 | 1.9 | 1.4 | 18.5 | 1.4 | 45.75 |
| Clash Discs | Peach 4 / 5 / -2 / 1 |
21.4 | 1.9 | 1.3 | 18.6 | 1.4 | 45 |
| Doomsday Discs | Despair 5 / 4 / -1 / 1 |
21.4 | 2.1 | 1.4 | 18.8 | 1.3 | 46.25 |
| Discraft | Malta 5 / 4 / 0 / 3 |
21.3 | 1.7 | 1.3 | 18.6 | 1.3 | 45 |
| MVP Disc Sports | Uplink 5 / 5 / -3 / 0.5 |
21.5 | 1.8 | 1.4 | 18.8 | 1.3 | 45 |
| MVP Disc Sports | Vertex 4 / 4 / -2 / 0.5 |
21.5 | 1.9 | 1.3 | 19 | 1.2 | 46.75 |
| Innova Champion Discs | Spider 5 / 3 / 0 / 1 |
21.2 | 1.7 | 1.4 | 18.6 | 1.3 | 45 |
| Doomsday Discs | Wasteland 5 / 4 / 0 / 1 |
21.2 | 2 | 1.2 | 18.6 | 1.3 | 45.5 |
| Prodiscus | STARi 4 / 4 / -2 / 0 |
21.6 | 1.9 | 1.4 | 18.9 | 1.3 | 45 |
| Doomsday Discs | Scavenger 5 / 5 / -2 / 1 |
21.6 | 1.9 | 1.2 | 19 | 1.3 | 46.75 |
| Innova Champion Discs | Hydra 3 / 3 / 0 / 2 |
21.1 | 2 | 1.4 | 18.3 | 1.4 | 44.75 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Goliath 10.5 / 4.5 / -1 / 2.5 |
21.2 | 1.6 | 1.2 | 17 | 2.1 | 31 |
| RPM Discs/Disc Golf Aotearoa | Tara Iti 10 / 5 / 0 / 2 |
21.2 | 1.5 | 1.2 | 17 | 2.1 | 30 |
| Thought Space Athletics | Animus 11 / 5 / -1 / 2 |
21.2 | 1.6 | 1.2 | 17 | 2.1 | 30 |
| Thought Space Athletics | Mantra 9 / 6 / -2 / 1 |
21.2 | 1.7 | 1.2 | 17.1 | 2 | 32 |
| Discraft | Spectra 12 / 5 / -2 / 2 |
21.2 | 1.7 | 1.2 | 16.8 | 2.2 | 30.75 |
| Latitude 64 | Blitz 12 / 3 / 0 / 4 |
21.2 | 1.6 | 1.2 | 16.8 | 2.2 | 30.5 |
| Lone Star Disc | Chupacabra 9 / 3 / 0 / 4 |
21.2 | 1.6 | 1.2 | 17.2 | 2 | 30.5 |
| Mint Discs | Phoenix 9 / 3 / 0 / 4 |
21.2 | 1.5 | 1.2 | 17.2 | 2 | 30.25 |
| Streamline Discs | Trace 11 / 5 / -1 / 2 |
21.2 | 1.7 | 1.2 | 16.8 | 2.2 | 31.25 |
| Dynamic Discs | Sockibomb Felon 9 / 3 / 0.5 / 4 |
21.2 | 1.6 | 1.1 | 17.1 | 2 | 31.5 |
| Discmania | DD 11 / 6 / -3 / 2 |
21.2 | 1.7 | 1.1 | 16.8 | 2.2 | 30 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Haymaker 9 / 4 / 0 / 4 |
21.2 | 1.8 | 1.2 | 17.2 | 2 | 31.5 |
| Gateway Disc Sports | Ninja 10 / 5 / -1 / 2 |
21.2 | 1.9 | 1.2 | 17.2 | 2 | 31.75 |
| Lone Star Disc | Chupacabra 9 / 3 / 0 / 4 |
21.2 | 1.6 | 1.2 | 17.2 | 2 | 30.5 |
| Gateway Disc Sports | Diablo 9 / 5 / 0 / 2 |
21.2 | 1.7 | 1.2 | 17.1 | 2 | 32.5 |
| Thought Space Athletics | Mantra 9 / 6 / -2 / 1 |
21.2 | 1.7 | 1.2 | 17.1 | 2 | 32 |
| Prodigy Disc | FX-4 9 / 5 / -2 / 1 |
21.2 | 1.8 | 1.2 | 17.3 | 2 | 32.25 |
| Dynamic Discs | Felon 9 / 3 / -0.5 / 4 |
21.2 | 1.8 | 1.1 | 17.2 | 2 | 31.5 |
| Prodigy Disc | Feedback 9 / 5 / -1 / 3 |
21.2 | 1.7 | 1.1 | 17.2 | 2 | 31 |
| Dynamic Discs | Sockibomb Felon 9 / 3 / 0.5 / 4 |
21.2 | 1.6 | 1.1 | 17.1 | 2 | 31.5 |
| Latitude 64 | Culverin 9 / 5 / -0.5 / 3 |
21.2 | 2 | 1.1 | 17 | 2 | 31.25 |
| Thought Space Athletics | Coalesce 9 / 5 / 0 / 3 |
21.2 | 1.9 | 1.2 | 17.4 | 1.9 | 32.5 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Ronin 8 / 4.5 / 0 / 2 |
21.3 | 1.9 | 1.2 | 17.4 | 1.9 | 31.5 |
| Prodigy Disc | H1 9 / 5 / -2 / 2 |
21.3 | 1.8 | 1.2 | 17.4 | 1.9 | 31.75 |
| Lone Star Disc | Dos X 8 / 4 / -1 / 2 |
21.3 | 1.9 | 1.2 | 17.3 | 2 | 32.25 |
| Prodigy Disc | H3 V2 11 / 5 / -1 / 2 |
21.3 | 1.8 | 1.2 | 17.3 | 2 | 30.75 |
| Clash Discs | Soda 7 / 5 / -2 / 2 |
21.4 | 2 | 1.2 | 17.8 | 1.8 | 31.5 |
| Thought Space Athletics | Coalesce 9 / 5 / 0 / 3 |
21.2 | 1.9 | 1.2 | 17.4 | 1.9 | 32.5 |
| Latitude 64 | Honor 9 / 5 / 0 / 2.5 |
21.2 | 1.8 | 1.1 | 17.4 | 1.9 | 31.75 |
| Yikun Discs | Hu 9 / 5 / -2 / 2 |
21.2 | 1.8 | 1.1 | 17.4 | 1.9 | 31.75 |
| Discmania | CD1 9 / 5 / -1 / 2 |
21.2 | 1.7 | 1.1 | 17.3 | 1.9 | 31.25 |
| Discraft | Tracker 8 / 4 / -1 / 3 |
21.2 | 1.7 | 1.2 | 17.7 | 1.8 | 32.5 |
| Discmania | Instinct 7 / 5 / 0 / 2 |
21.2 | 1.9 | 1.1 | 17.6 | 1.8 | 32.25 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Rumble 10 / 5 / -1 / 2 |
21.2 | 1.7 | 1.2 | 17.1 | 2 | 33.75 |
| Gateway Disc Sports | Blade V2 9 / 5 / 0 / 3 |
21.2 | 1.7 | 1.2 | 17.2 | 2 | 34 |
| Legacy Discs | Vengeance 10 / 5 / 0 / 2 |
21.2 | 1.7 | 1.2 | 17.2 | 2 | 33 |
| Prodiscus | Titan 8 / 3 / 0 / 2 |
21.2 | 1.6 | 1.2 | 17.3 | 1.9 | 32.75 |
| MVP Disc Sports | Terra 8 / 5 / 0 / 3 |
21.2 | 1.8 | 1.2 | 17.4 | 1.9 | 32.75 |
| Prodigy Disc | F Model OS+ 10 / 5 / 2 / 4 |
21.2 | 1.7 | 1.1 | 17.1 | 2.1 | 34.25 |
| Streamline Discs | Shift 11 / 5 / -2 / 2 |
21.2 | 1.5 | 1.1 | 17.1 | 2.1 | 32.75 |
| Dynamic Discs | Thief 8 / 5 / -1.5 / 2 |
21.2 | 1.8 | 1.1 | 17.3 | 1.9 | 34.25 |
| Mint Discs | Jackalope 8 / 5 / -2 / 1 |
21.2 | 1.5 | 1.1 | 17.3 | 1.9 | 32.75 |
| Infinite Discs | Aztec 10 / 5 / -1 / 2 |
21.2 | 1.5 | 1.1 | 16.9 | 2.1 | 33 |
| Latitude 64 | Spark 7 / 4 / -0.5 / 2 |
21.2 | 1.5 | 1.1 | 17.4 | 1.9 | 34 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Spartan 9 / 6 / -2 / 1 |
21.2 | 1.6 | 1.2 | 17 | 2.1 | 32.5 |
| Infinite Discs | Aztec 10 / 5 / -1 / 2 |
21.2 | 1.5 | 1.1 | 16.9 | 2.1 | 33 |
| Streamline Discs | Shift 11 / 5 / -2 / 2 |
21.2 | 1.5 | 1.1 | 17.1 | 2.1 | 32.75 |
| Gateway Disc Sports | Diablo 9 / 5 / 0 / 2 |
21.2 | 1.7 | 1.2 | 17.1 | 2 | 32.5 |
| Thought Space Athletics | Mantra 9 / 6 / -2 / 1 |
21.2 | 1.7 | 1.2 | 17.1 | 2 | 32 |
| Legacy Discs | Vengeance 10 / 5 / 0 / 2 |
21.2 | 1.7 | 1.2 | 17.2 | 2 | 33 |
| Prodigy Disc | FX-4 9 / 5 / -2 / 1 |
21.2 | 1.8 | 1.2 | 17.3 | 2 | 32.25 |
| Dynamic Discs | Sockibomb Felon 9 / 3 / 0.5 / 4 |
21.2 | 1.6 | 1.1 | 17.1 | 2 | 31.5 |
| Dynamic Discs | Felon 9 / 3 / -0.5 / 4 |
21.2 | 1.8 | 1.1 | 17.2 | 2 | 31.5 |
| Westside Golf Discs | Sorcerer 13 / 5 / -0.5 / 3 |
21.2 | 1.6 | 1.1 | 16.7 | 2.3 | 32.25 |
| Innova Champion Discs | Mystere 11 / 6 / -2 / 2 |
21.1 | 1.6 | 1.1 | 16.9 | 2.1 | 31.5 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Torpedo 5 / 5 / 0 / 1 |
21.4 | 1.6 | 1.4 | 18.5 | 1.4 | 42.5 |
| Lone Star Disc | Middy 5 / 5 / 0 / 3 |
21.4 | 1.6 | 1.2 | 18.8 | 1.3 | 42.75 |
| Streamline Discs | Echo 5 / 5 / -1.5 / 1 |
21.4 | 1.6 | 1.3 | 18.5 | 1.5 | 42 |
| Legacy Discs | Badger 6 / 3 / 0 / 3 |
21.4 | 1.6 | 1.3 | 18.3 | 1.5 | 42 |
| Westside Golf Discs | Anvil 4 / 2 / 0 / 4 |
21.3 | 1.8 | 1.2 | 18.3 | 1.5 | 41.75 |
| Thought Space Athletics | Pathfinder 5 / 5 / 0 / 1 |
21.5 | 1.7 | 1.3 | 18.6 | 1.4 | 43 |
| Westside Golf Discs | Tursas VIP Air 5 / 5 / -2 / 1 |
21.6 | 1.7 | 1.3 | 18.8 | 1.4 | 42.5 |
| Westside Golf Discs | Tursas 5 / 5 / -2 / 1 |
21.7 | 1.7 | 1.3 | 18.9 | 1.4 | 42.5 |
| Latitude 64 | Anchor 5 / 4 / 0 / 3 |
21.7 | 1.8 | 1.5 | 18.9 | 1.4 | 43.25 |
| Latitude 64 | Fuji 4 / 4 / 0 / 2 |
21.7 | 1.8 | 1.2 | 18.9 | 1.3 | 42.75 |
| Dynamic Discs | EMAC Truth 5 / 5 / 0 / 2 |
21.7 | 1.8 | 1.2 | 18.7 | 1.5 | 42.25 |
| Brand | Name | Diameter | Height | Rim Depth | Inside Rim Diameter | Rim Thickness | Rim Configuration |
|---|---|---|---|---|---|---|---|
| Remix Disc Golf | Troll 7.5 / 4.5 / 0 / 2 |
21.2 | 1.8 | 1.2 | 17.6 | 1.8 | 37 |
| Thought Space Athletics | Votum 8 / 5 / 0 / 3 |
21.2 | 1.7 | 1.2 | 17.5 | 1.8 | 36.25 |
| Discmania | FD1 7 / 4 / 0 / 2 |
21.2 | 1.7 | 1.1 | 17.6 | 1.8 | 36.25 |
| Dynamic Discs | Vandal 9 / 5 / -1.5 / 2 |
21.2 | 1.7 | 1.1 | 17.4 | 1.9 | 36.25 |
| Latitude 64 | Fury 9 / 6 / -2 / 2 |
21.2 | 1.8 | 1.1 | 17.4 | 1.9 | 36.75 |
| Streamline Discs | Ascend 6 / 5 / -3 / 0.5 |
21.2 | 1.8 | 1.2 | 17.8 | 1.7 | 38 |
| Innova Champion Discs | Kite 5 / 6 / -3 / 1 |
21.2 | 1.9 | 1.3 | 17.9 | 1.6 | 36.25 |
| Infinite Discs | Exodus 7 / 5 / -1 / 2 |
21.1 | 1.8 | 1.1 | 17.5 | 1.8 | 36.25 |
| Prodiscus | Talisman 9 / 4 / 0 / 2 |
21.1 | 1.7 | 1.2 | 17.3 | 1.9 | 37.75 |
| Innova Champion Discs | Savant 9 / 5 / -1 / 2 |
21.1 | 1.6 | 1.1 | 17.2 | 1.9 | 36.5 |
| Lone Star Disc | The Dome 8 / 6 / -3 / 1 |
21.1 | 1.8 | 1.1 | 17.2 | 1.9 | 36 |
How I got Disc Golf Network Pro for FREE for 2024
TweetDo you plan to go to a DGPT event this year? Are you a PDGA member? Then it could be worth it to buy the Disc Golf Network yearly plan.
Disc Golf Network (aka DGN) (the media arm of the Disc Golf Pro Tour) (aka DGPT), announced their new pricing tiers for 2024 earlier this month. It was met with some mixed reviews. Some users of the service had issues using it the first week. Most of those appear to be due to users needing to update the app on their devices or using older streaming devices that do not support the new 60fps stream. They have updated their upgrade guide. I experienced this on one of my Roku devices. I was not surprised to be honest. Many of the Roku apps we use on that device are laggy and crash from time to time. It is over 10 years old. The fact that it has kept working at all is a credit to Roku.
As for the pricing for DGN, there are three tiers: Basic, Standard, and Pro. See the link above for the differences. The pricing ranges from $5.99/mo to $19.99/mo for non-PDGA members. While PDGA members can get Basic for free, Standard for $5.99/mo, and Pro for $12.99/mo. There are also yearly options. Basic for $59.99, Standard for $129.99, and Pro for $239.99 for non-PDGA members. And for PDGA members, Standard for $69.99 and Pro for $139.99. Since Basic is free, there is no yearly option for PDGA members of course. Most people I know that want to consume live disc professional disc golf are PDGA members. While some say you have to factor in the $50 annual PDGA membership cost along with the discounted DGN price, that does not apply to me. I would be renewing my PDGA membership either way. So, I will only be speaking about how and why I chose the option I did based on the discounted PDGA pricing.
The first question I had to ask is what do I want to pay monthly or go ahead and pay for the whole year? The Standard plan annual cost only saves you $2 for the year. Not a compeling reason to do it in my opinion. The annual cost for Pro actually saves more than the cost of a month, $139.99 one time compared to $12.99/mo over 12 months totaling $155.88. There are some ways to save if you change your plan for certain months for certain events or remember to cancel after the DGPT Finale in October. But, let's be real. I won't remember to do that. Most people won't remember to do that. That is why the subscription model is so popular in the USA. That is how gyms stay in business to be honest. If you are the kind of person that likes to manage subscriptions that way, go for it. If you micro manage it completely and only pay for February through October and upgrade the months of the USDGC and European Open, you could get all of the coverage for as low as $88.89 for the year as a PDGA member. I think I did that math right. You are probably saying "Hey, your headline says you are getting it free for the whole year! What gives?" Yes, let me get to that.
Here is why I opted for the full year, Pro plan. It’s $139.99 for the year. The kicker for me is that any yearly plan includes two free general adminssion (aka GA) weekend passes to a Disc Golf Pro Tour event as well as 10% off any other DGPT ticket purchases. As a family, we had already booked an AirBnB for Nashville in April to go watch the Music City Open before this announcement was made. My two sons and I are going for all three days. And two other family members will be joining us for Sunday. I had planned to get the weekend VIP pass for myself. So, altogether, our tickets to the Music City Open were going to cost around $350. However, with the yearly DGN option, I get the GA passes for free. And I get a 10% discount on the other tickets. Those ended up costing me around $210 after the discount. So, my savings on tickets (tickets I had already planned to buy before I knew there was a discount available) is around $140. That is the cost of the yearly plan. If you include all of the decimals in all of the math, I technically am spending 17 cents more on the DGN subscription than I am saving on tickets. Would that make a better headline?
| Ticket | Quantity | Regular Price | DGN Discounted Price |
|---|---|---|---|
| 3-Day General Admission | 2 | $116.88 ($58.44/ea) | FREE |
| Sunday General Admission | 2 | $71 ($35.50/ea) | $64.12 ($32.06/ea) |
| 3-Day VIP | 1 | $161.68 | $145.62 |
| Total | 5 | $349.56 | $209.74 |
| Savings | $139.82 | ||
Having said all that, if you are not really into watching live disc golf and don’t follow the pro scene on social media, the best way to consume the pro tour is next day, post produced coverage on the JomezPro YouTube channel. In the past, their coverage only included the lead group each round. This year, JomezPro are doing more comprehensive coverage of the event as a whole. I am sure this is due in part to having multiple winners last season that were not in the lead group in the final round (aka chase card champions). This meant that the JomezPro coverage didn’t include footage (or not much at least) of the actual winner of the event. They were purchased or merged with Disc Golf Network early last year. However, other media companies covered the second and third groups. This year, they didn’t partner with those media companies in the same way which allows JomezPro to use the footage from all groups. Listening to Jeff Spring on the Staggered Stance podcast, it sounds like they will still be partnering with some of those media companies like Ace Run Pro for some things this year as well.
Update
I forgot to mention that I had a hard time finding information about how to get my free tickets and discounts. After some digging, I found in the DGN support pages. You have to fill out a form which triggers an email which has discount coupon codes and a link to another form you have to fill out to get your free DGPT tickets. So, if you get an annual subscription, be sure and fill out this form to at least get your 20% discount codes for the DGPT Pro Shop and JomezPro Shop. JomezPro has made some cool stamps in the past that I have rarely bought unless they had a sale going. Having a 20% discount code will make me consider them more often when ordering discs online.
This post was not paid for or done as a favor for the DGPT. I am just a disc golf fan that wanted to share my experience.
So, I had a heart attack and bypass surgery
TweetHey y’all. So, I had a heart attack and bypass surgery. Here is the full story.
Friday (3/31) and Saturday (4/1) nights I had chest pain that I thought was acid reflux. On Sunday morning, the pain returned. I checked my blood pressure. It was 170/103. I took some anxiety meds, gas x, and aspirin. An hour later it was still high.
So we went to the ER. Blood work showed troponin in my blood. “When heart muscles become damaged, troponin is sent into the bloodstream. As heart damage increases, greater amounts of troponin are released in the blood.” I was then admitted for observation and further testing.
On Monday (4/3) morning they performed an echocardiogram. There were some abnormalities. They then performed a heart catheter. I had 90% blockage in at least one artery. And blockages in several others. I was immediately transferred to UAB hospital.
Later that day I met with a surgeon. After discussing it with him, we decided to do bypass surgery. The long term success rate with this surgery at my age is better than the alternatives. Surgery was booked for Thursday, April 6.
On Tuesday (4/4) and Wednesday (4/5) I just hung out at the hospital. I could have another heart attack at any moment. Going home was not an option. Friends and family visited. I had some hard conversations with family about what to do “just in case”. Those conversations don’t phase me. And the family I spoke to were very practical about it as well.
Early Thursday morning, before dawn, I broke down a little bit. The reality that I could not wake up was hitting me. I knew it was not likely. These procedures are done every day. My doctor would probably do several that day alone. Still, it could have happened. It’s normal for me to have these emotional outbursts alone. The first time I remember it happening was with my great grandmothers death when I was 15. It’s been the same with all my other grandparents’ deaths as well. It’s just how I deal with it.
Then it was time to go. The family that was there followed us down to the waiting room. Once I was in pre-op and settled they said I could have one person come back. They let two coke back. The nurse said we seemed like solid people. I don’t remember a lot about that time. I do remember Deedra deciding to read my chart. Haha. The staff walking by was confused. Then I was off. While still rolling me in, I started to feel woozy. And then black.
I wake up very confused with some voices I know and others I don’t know. I understand their instructions but don’t know how to follow them. I need to breath. Ok. There is something in my mouth. Oh it’s the ventilator of course. They can’t remove it until I breath. There are two people I know there. My ex wife, and mother of my six children, Robin, coaching me on what to do. Good I need that right now. And Amy, my platonic life partner, speaking to me softly and encouraging me to breath. Man, I really need that approach too. If you had asked me what two people I would want in that moment, I would probably not have chosen either of them. And yet, they were the perfect combination at that time. Some (I assume) nurse said “good job” and out came the ventilator. Based on when I knew I went into the OR and how long the surgery took, I would say this is around 2pm. People say they visited with me in recovery. I believe them. Still, I really don’t recall much until 5AM on Friday morning.
Friday was confusing. It’s like my mind was still trying to figure out what happened to my body.
Between Friday and Tuesday (4/11) I had good times and bad times. I eventually got to go home. That is where I am now. My strength has slowly been recovering. The last device attached to my body came off yesterday. It will be several weeks of very limited activity. Mostly I just can’t lift things or drive. Slowly that will be allowed more and more. Then once all restrictions are removed, I can start building up my strength again.
Who am I to call anyone a racist?
TweetRecently, on Facebook, I was asked "Who are you to call anyone a racist?". To be clear, I did not call anyone a racist. But, really, let's say I did call someone a racist? Who am I to call anyone a racist? After all, I am a 47 year old, white, middle class man. I am, quite possibly, in the absolute sweet spot of my life for white privilege.
As a child, I heard older family members say racist things. Luckily, my parents made it clear to me that they were wrong and I should ignore them. So I have for 40+ years. Some of those racist things were said about my childhood best friend, who is black. Were they nasty, ugly, hateful remarks? No. They didn't use the "N" word. It was subtle things that made me question if I should have a best friend that is black. They found it confusing. They found it odd. It was clear they did not approve.
I was fortunate to have lived in a very diverse neighborhood in Huntsville, AL as a child. My next door neighbor was two years older than me. He was my best friend. I don't know if I was his best friend but he was definitely mine. And like I said, he is black. His father pulled the first tooth I lost. I spent so much time at his house as a child and he spent time at mine. We liked his house better because his parents had converted their two car garage into an awesome den/music hall. I was young and innocent as they say. I didn't know any different. I am so glad that was the case. I have not seen him in years as I moved away from Huntsville when I was eleven years old. A year or so ago, I did find his mother and sisters on Facebook and was able to reconnect with them online. He has a career in the Air Force. I am very proud to have called, and still consider, him my friend.
After living in Tuscumbia, AL for four years where racial topics were basically not discussed despite there being a neighborhood named Richman Hills where the road leading into it was named White City Drive, I moved to a suburb of Birmingham, AL. I have lived in the Birmingham area, including some years in the city proper, for all but two years of my life since I was 15 years old. This is the city where police turned fire hoses and dogs on protesters during the Civil Rights movement.
I found things in Birmingham different than they were in Huntsville. The Birmingham area was and still is highly segregated. It's not by law or force. It's mostly white flight which is itself a form of socioeconomic racism. It was a strange thing for me to realize as I grew older. I found the history of racial injustice to be just below the surface in Birmingham. I did not witness any overtly racist behavior in public. But, it was there, kind of like that subtle language my elders used when I was young. There was a lot of use of the words like "those people" or "they" when referring to black people. Again, I ignored the people saying these things and was silent.
Shortly after President Obama was elected, I was in a barber shop. It was not a local place. I travel for work between Birmingham and Huntsville very regularly. A small town between here and there had a barber shop. It was very convenient for me to stop in there on my way to Huntsville. I had been in there four or five times with little to no issues. Then one day, I am getting my haircut and a customer comes in. He and the barber seemed to know each other socially. They did not seem to be great friends, but they knew each other's names. At some point, the customer says, "You know what Lincoln, Kennedy, and Obama have in common?" I could think of nothing. The barber said "I don't know." The customer says "Nothing yet." I took a minute or so for it to sink in. He was saying that Obama would be assassinated. I was stunned. That was the most overt racism I had faced in years. The barber didn't seem too happy about it, but he didn't say anything about it either. I never went back to that barbershop. Now though, I regret that I ignored it and was silent.
During President Obama’s tenure, I saw posts on Facebook from friends and family, people I shared a meal with, that blamed him for all their problems. I unfollowed some of them. I ignored others. And, I was silent.
In the last three and a half years, I have seen many of those same people post things supporting President Trump and his agenda to divide this country. I unfollowed some of them. I ignored others. And, I was silent.
I have done my best to be a good example to my children the same way my parents were to me. The other day, I told my youngest child “I don’t think I need to say this, but I am going to. Racism is wrong.” His response was “Of course Dad, I know that.” I wanted to be sure I said it out loud though.
I am done being silent. My silence has not helped the world. Who am I to call anyone a racist? I am a 47 year old, white, middle class man. I will not ignore them and I will not be silent any longer.
Masks in Design and How They Relate to HTML/CSS
TweetI have always struggled understanding the use of masks in design tools like Photoshop, Illustrator, and Sketch. I recently had to work on translating some creative from Sketch into a responsive design. I realized that a mask in these tools is like a containing element in HTML with overflow hidden and the contents being absolutely positioned.
This is not something you would want to do a lot of as there is a lot of the image being loaded that not being shown. But, it is useful in responsive designs.
See the Pen How masks in design tools translate to HTML by Brian Moon (@brianlmoon) on CodePen.
New Responsive Design
TweetSo, I decided to build a new, mobile first template from scratch and use lots of modern (relative to my old template) CSS and responsive web design techniques. Things like rem for sizing things, flexbox, text-shadow, and background-size (for the header image). I know it is nothing ground-breaking. And, at the same time, it was nice to shed all the old compatibility layers and work with the code without worrying about fall backs.
For the font, I chose the super-popular Open Sans after reading "Serif or Sans Serif?" by Danielle Stone. I looked at many sans serif fonts. Open Sans just looked the cleanest to me.
I opted to go with an easy to read black text on white background after reading "How the Web Became Unreadable" by Kevin Marks. One great nugget in that article is where Kevin quotes Adam Schwartz:
A color is a color isn’t a color……not to computers…and not to the human eye.I found this very interesting. I often look at my "black" SUV and think "my car looks kind of brown today".
With the help of the love of my life, Deedra, I found the header graphic, bought it from iStockPhoto and then played with the hue a bit to get it just right.
While testing, I found myself reading my old blog posts. It felt good. I really need to do this more.
Don't say ASAP when you really mean DEADIN
TweetThe Problem with ASAP
What ‘ASAP’ Really Means
ASAP is toxic, avoid it As Soon As Possible
ASAP
It's not the fault of those writers. The world in general seems to be confused on this. Not everyone is confused though. I found ASAP — What It REALLY Means which does seem to get the real meaning.
At DealNews, we struggled with the ambiguity surrounding this acronym. To resolve this, we coined our own own phrase and acronym to represent what some people seem to think ASAP means.
DEADIN:
Drop
Everything
And
Do
It
Now
We use this when something needs to be done right now. It can't wait. The person being asked to DEADIN a task needs to literally drop what they are doing and do this instead. This is a much clearer term than ASAP.
With this new acronym in your quiver, you can better determine the importance of a task. Now, when someone asks you to do something ASAP, you can ask "Is next Tuesday OK?" Or you can tell them it will take 10 hours to do it right. If they are okay with those answers, they really did mean ASAP. If they are not, you can ask them if you should "Drop Everything And Do It Now". (Pro tip: It still make 10 hours to to right. Don't compromise the quality of your work.)