When we started optimizing our AI pipeline costs, we expected model selection to be the biggest lever. It was not. The bigger win came from a relatively small change to how we structured our prompts. This post is about that change. How Prompt Caching Works Most AI providers cache the prefix of your prompt and reuse it across calls. If you send the same context repeatedly, you only pay full price…
Over the last year I have started to think of AI as something like a very fast junior developer. It can read and understand a codebase quickly and produce a lot of code in a short amount of time, but it needs clear instructions and you still have to review everything it writes. That comparison has ended up being the most accurate way I can describe what using AI in day to day development actually…
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…
Feature 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.…
We 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…
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…
Do 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…
Hey 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.…
Recently, 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…
I 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…
I have not blogged in over a year. Shame on me. I think part of the reason was because my blog template had become quite dated. I tweaked it a bit to make it semi-responsive a while back. But, I have never been happy with it. So, 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…
I have found that people tend to use the acronym ASAP incorrectly. ASAP stands for As Soon As Possible. The most important part of that phrase to me is As Possible . Sometimes, it's only possible to get something done 3 weeks from now due to other priorities. Or, to do it correct, it will take hours or days. However, some people don't seem to get this concept. Here are a couple of examples I found…
I have always had the utmost respect for Apple. Even before I used Macs and before the iPhone came out, I knew they were a top notch company. I have had five iPhones. I have had 6 or 7 MacBook Pros. My kids have Macs. My kids have iPhones. My parents use iPads. I think a lot of Apple products and service... until today. We took my daughter's hand me down iPhone 5 in to have the ear piece and top…
TL;DR I was having trouble with socket connections timing out reliably. Sometimes, my timeout would be reached. Other times, the connect would fail after three to six seconds. I finally figured out it had to do with trying to connect to a routable, non-localhost address. This function is what I finally ended up with that reliably connects to a working server, fails quickly for a server that has an…
UPDATE: I should clarify. This ticket is an internal ticket at DealNews. It is about what the defaults on our servers should be. It is not about what the defaults should be in MySQL. The frustration that UTF8 support in MySQL is only 3 bytes is quite real. This epic ticket of the day is brought to you by Joe Hopkinson . #7940: Default charset should be utf8mb4…
I have found myself using UNION in MySQL more and more lately. In this example, I am using it to speed up queries that are using IN clauses. MySQL handles the IN clause like a big OR operation. Recently, I created what looks like a very crazy query using UNION, that in fact helped our MySQL servers perform much better. With any technology you use, you have to ask yourself, "What is this tech good…
When I dropped out of college at 19, I came home to my parents' house. My parents had moved since I had left home. There was no room for me in the new house. I was not there to claim one when they moved in. My Dad and I put up a wall with paneling on it to enclose part of the garage. We cut a hole in the air duct that was in that space. Tada! That was now my bedroom. My room consisted of a…
I like to use a 24 hour clock. I have my iPhone set to a 24 hour clock. I have my Mac's time setting set to a 24 hour clock. I would set my car to a 24 hour clock if I could. It's German. You would think that would be an option, but no. Thunderbird was not using a 24 hour clock despite me setting my Mac to a 24 hour clock in the Date/Time preferences. I found some mentions of an "International"…
Source: http://www.flickr.com/photos/viernest/3380560365/ About a year ago, I had a wreck. I totaled my car. I took my eyes off the road to look at my son in the back seat. I put two of my children in danger. Luckily, everything turned out alright. This week, I have attended the Velocity Conference . It’s not my first time. I have attended all of them but the one last year. Velocity is all…
As I have worked on being a better manager, I have been trying to determine what our strengths and weakness are as a development team. Communication is once place I think we can do a better job. The problem we have had was how other departments communicated with the development team. The company had been small and now it is large. When the company was small, anyone could talk to anyone. If Bob…
The concept of unit testing is not new, however it has only gained popularity in the last 10 years or so. When I was asked about it for the first time, I was unsure where it would fit in to my development life. I dismissed it for a long time. I have begun to come around however. I wanted to share how and why. I have been a professional software developer since 1996. Neither in school nor in…
I am a huge sports fan. I particularly love college sports. We don't have any pro sports teams in Alabama. So, we take our college sports very seriously. Like many sports fans I have watched the NCAA tournament this year. I have to say, if the current trend continues, I don't think I will in the future. I don't like the product. In particular, I pretty much hate the way Louisville plays…
I was reading Chris Shiflett's blog and he mentioned a blog post about the web the way it used to be before Facebook and Twitter. I almost tweeted it. Then I thought, nah, a good old fashion blog post that linked to it was way better. The Web We Lost - Anil Dash The tech industry and its press have treated the rise of billion-scale social networks and ubiquitous smartphone apps as an unadulterated…
There is plenty to read about continuous delivery in terms of rolling out code. In my journey to be a better leader and manager, I have realized there is something we are doing badly. While we are continuously integrating, testing, and deploying code to production, we are not reliably delivering a product for our client. I use client loosely here. The client for the development team at dealnews is…
I have typically blogged on this site about things I have learned in the web application world that may help others. In the last year or so, I have been learning a lot of new things. Most of them are not technical in nature however. You see, I have moved into a role of being a manager. I am a developing manager. I still write code. And a lot of my time is dedicated to management as well. I think…
This is a selfish blog post. I read a great blog post titled " Why You Need To Hire Great Developers " but I could not find it in my browser history or chat history. It talks about entropy creators versus entropy reducers and how bad we are at knowing which one someone is during the hiring process. I wanted to mention it here so my followers could read it and so I could find it again when I was…
If you use MySQL with InnoDB (most everyone) then you will likely see this error at some point. There is some confusion sometimes about what this means. Let me try and explain it. Let's say we have a connection called A to the database. Connection A tries to update a row. But, it receives a lock wait timeout error. That does not mean that connection A did anything wrong. It means that another…
The other day Twitter was down and I had no place to comment on Twitter being down. This got us to talking about scaling at work. I was reminded of the recent slides posted from Instagram about their scaling journey . They are great slides. There is only one problem I have with them. They are just the same slides that you would find from 2000 about scaling. I have to say, I like Instagram. My…
I normally don't do this. When I see someone write a blog post I don't agree with, I often just dismiss it and go on. But, this particular one caught my attention. It was titled PHP vs Node.js: Yet Another Versus . The summary was: Node.js = PHP + Apache + Memcached + Gearman - overhead What the f**k? Are you kidding me? Clearly this person has NEVER used memcached or Gearman in a production…
Update : Matthew Weier O'Phinney, one of the core members of the group, has cleared up the naming history in the comments. During the /dev/hell podcast at Tek12 , someone asked the guys their opinion about PSR. I did not know what PSR was by that name. A quick search lead me to the Google Group named PHP Standards Working Group . I had vaguely remembered a consortium of frameworks, libraries and…