HNHacker News
TopNewBestAskShowJobs

gav

1,629 karma · joined December 21, 2011

I work at making organizations better at digital, with a focus on content and commerce. One of my interests is "experience optimization": attempting to reduce the barriers to a sale by optimizing the entire purchase journey (from discovery to delivery and beyond).

I've been helping people sell online since 1995.

Currently based in Los Angeles, CA. Feel free to reach out if you ever want to discuss anything over coffee; I'm always in search of new stories and new ideas.

Contact: gavin@estey.com http://www.linkedin.com/in/gavinestey

submissionscomments
gav··on Architecture diagrams enable better conversations
I believe that one of the big things that diagrams help with is maintaining state while having a conversation. You don't have to keep track of so many things in your head and it works in a similar way to the "tell ’em what you’re gonna tell ’em, tell ’em, and then tell ’em what you’ve told ’em" style of presenting--your audience gets to see up front what journey you are taking them on.

There's a great book by Abby Covert about diagrams in general: "Stuck? Diagrams help."[1]

From a learning perspective, having multimodal[2] options, such as a mix of visual (diagrams), reading, and videos/audio can really help with onboarding. Different people learn better with different methods, and different methods work better in different contexts, for example I personally hate sitting at my desk watching a video, but enjoy doing so on my phone while commuting.

[1] https://abbycovert.com/stuck/ [2] https://www.learnupon.com/blog/multimodal-learning/

gav··on Accidentally Load Bearing
I like to make sure the "why" is documented, but it's hard to get people to care about that.

I remember a former client tracking me down to ask about a bug that they had struggled to fix for months. There was a comment that I'd left 10 years earlier saying that while the logic was confusing, there was a good reason it was like that. Another developer had come along and commented out the line of code, leaving a comment saying that it was confusing!

gav··on Why do ships use “port” and “starboard” instead of “left” and “right?”
If you're giving directions to somebody driving, like when reversing into a tricky spot, you can tell them to "turn driver" or "turn passenger" so there's no ambiguity.
gav··on How To Get Started In Soldering
I also think he's talking about tools where inferior means build quality vs. performance. You can go buy a bunch of cheap wrenches from Harbor Freight and they'll be just fine compared to Snap-On.

> Quality is an issue, true. But for beginning makers there is often no cheaper alternative. Back in the day I’d “test buy” a tool from HFT and then if it was useful I’d invest in a more substantial version. Also browsing their aisles is a singular pleasure. https://twitter.com/donttrythis/status/941149124497305600

gav··on My thoughts on “bad code”
At my first programming job they were religious about the single `return' and followed a pattern that was bizarre and luckily I've not seen since--using a `retVal' variable declared at the top.

  int foo(int bar) {
    int retVal = -1;
    if (bar == 1) {
      retVal = 1;
    }
    if ((retVal % 2) == 0) {
      retVal = 2; 
    }
    return retVal;
   }
gav··on The perks workers want also make them more productive
One of my early jobs was being the most junior "mechanic" in an repair shop, basically the guy that did all the low-skill things that nobody else wanted to do.

Our shop foreman was very keen that everyone looked busy if you were clocked in, you were getting paid to work so you should be working. I was trained by my seniors in the two key activities to do to avoid standing around: spraying things with a hose, and sweeping the floor. It didn't matter if you were going over what you did five minutes ago, it just had to look like you were doing something useful.

Personally I try to avoid perpetuating a culture where looking busy is important because people will find ways to look busy.

gav··on In Defense of Not-Invented-Here Syndrome (2001)
> Kind of funny to read this, now that the practice is no longer a fantasy. I'm thinking of devs who have outsourced their jobs, and Amazon/Etsy sellers who simply resell/drop-ship goods from Alibaba.

One of the issues with being a middleman without a moat is that there's downward pressure on your margin over time until you are squeezed out of the market.

Given the amount of ads I get encouraging people to become a Amazon drop-shipper, I assume that making money doing that has got hard enough that selling shovels became more profitable.

gav··on Google combines Maps and Waze teams in restructuring move
I stopped using Waze (I live in Los Angeles) because it would give a slightly faster route with unprotected left turns that was riskier, more stressful, and ultimately not much faster in reality.
gav··on Low-code is not a cure for overworked IT departments
Exactly, there's a huge appetite for products that allow Marketing, for example, to get things done without IT involvement; I'm not sure why people are surprised that other departments want to do the same.

I think that low-code platforms can fill a need where they can help a team iterate on a solution without IT and get to a 80% solution that solves real problems, then bring in IT to help productize it rather than trying to start from scratch.

gav··on Optimizations can have unexpectedly large effects when combined with caches
> Instead, it's pointing out a risk that sometimes they are too good, leading to a system that can't function when the normal level of locality and memoization are not available.

And at that point cache management starts to be a huge problem. Clearing caches becomes a death spiral because your system can't actually support your normal load.

For example I worked with a large retailer, who had a giant monolithic enterprise Java ecommerce system. It was so slow that product detail pages took upwards of 30 seconds to render. There was a cache in front of that system (Ehcache), then a page-level cache (Varnish) in front of that, then finally Akamai took 98% of the load.

Rollouts were terrifying, you cleared the cache and the site might come back up. Changing Akamai configuration was also similarly risky.

It's critical that systems don't become cache dependent for load, they should be a performance boost, not a required component.

gav··on The slow death of the traditional business card
I was at my first post-Covid sales conference a couple of months ago and this is the only way that contacts was shared.

I've been thinking about getting a QR code sticker that I can stick to my phone that has my LinkedIn url for easy adding.

gav··on What ever happened to the neighborhood paperboy?
I was a paperboy for a year or so in the mid-90s, for today's equivalent of about $4/day I'd get up at 5:30am to get to the newspaper shop by 6am and deliver for maybe 30-45 mins.

It's pretty miserable work in the winter, and probably a net-negative for a teenager to be missing that much sleep, but my parents believed it "built character".

gav··on North Korean Tactics (2020) [pdf]
FICO impacts a lot more than just how much borrowing money cost including insurance rates (except for CA, HI, MA) and a lot of rentals (both to deny, increase costs, and having to pay for your credit report to be run).
gav··on Use one big server
If you add a delay of say 30 minutes for one of your replicas, you have another option in a "drop table" type event.
gav··on Shipping Multi-Tenant SaaS Using Postgres Row-Level Security
Ignoring the cost, there's the risk/reward alignment you see in large enterprises.

Imagine you're a new CIO. You know you're probably looking at a 3-5 year tenure at this new company and you want to lead with some big wins to set the tone and show your value.

You're reviewing proposals from your senior leadership. One of the options is an Oracle migration. It could cost a million dollars to migrate, but you'd save a million dollars a year going forward. Oracle runs your mission-critical internal systems, any issues with the migration and the system you migrate to is going to cause significant financial and reputation damage. You'll have to defend this decision if anything goes wrong, i.e. you've absorbed a lot of risk but a lot less upside to you personally.

What do you do? You put the proposal to the side and look for something that has a lot better upside.

gav··on Vercel Build Output API: Infrastructure-as-Filesystem
I looked at FAB[1] to support this in the past, it would be great if it supported more platforms.

[1] https://fab.dev/

gav··on The Elves Leave Middle Earth – Sodas Are No Longer Free (2009)
I think that these cost-cutting schemes never really work out, they either cause the best people to leave or trade money for work-done.

I worked for a bank where they had terrible coffee on our floor. We used to joke about how bad it was until one day these fancy automatic machines showed up that ground the coffee for each cup, they even had milk! Times were good, we'd walk over to somebody's desk--"I'm running a build, do you want to grab a coffee?"--and we'd chat in the break room about how great these new machines were.

Then we had a couple of quarters in a row with bad numbers, cutbacks were being made, if we do this then we don't have to have layoffs, etc. We lost our fancy machines.

The impact to morale was huge, we only had had them for a couple of months, taking them away once we got used to them was a huge deal. But more importantly, most people on our floor were now used to drinking partly-decent coffee. A couple times a day we'd go to the nearest coffee shop and buy our own, which involved walking to the elevator, waiting, going 23 floors to the lobby, badging out, walking across the street, getting coffee, walking back, badging in, waiting for the elevator, going up 23 floors, then finally back to your desk. This had to waste at least 20 minutes, more if the elevators were busy.

gav··on Reducing Cognitive Load in Agile DevOps Teams Using Team Topologies
This isn't a new phenomenon, 70-years ago people thought serviette was posher than napkin:

https://en.wikipedia.org/wiki/U_and_non-U_English

gav··on Goldilocks Zone Finder – Find your ideal climate
The calculation from the NWS: https://www.weather.gov/epz/wxcalc_heatindex (see the linked PDF[1])

Given an air temperature (T) in °F and a relative humidity (rh).

    Indexheat = − 42.379 + (2.04901523 × T) + (10.14333127 × rh) − (0.22475541 × T × rh) − (6.83783×10−3×T^2) − (5.481717 × 10−2 × rh^2) + (1.22874 × 10−3 × T^2 × rh) + (8.5282×10−4 × T × rh^2) − (1.99×10−6 × T^2 × rh^2)
[1] https://www.weather.gov/media/epz/wxcalc/heatIndex.pdf
gav··on Jless – a command-line JSON viewer (written in Rust)
I might be weird, but I find gron invaluable for figuring out what I need to pass to jq.

   gron log.json | grep https
   # see a json.log.entries[334].request.url

   jq -r '.log.entries[] | .request.url' log.json
gav··on A Macintosh History 85.10
Same process, you need to repeat it for each color that you would want printed.

This video shows a bit of the process such as the Rubylith sheets used to create masks for each color: https://www.youtube.com/watch?v=fxddg3dNKgw

gav··on A Macintosh History 85.10
The board shown was camera-ready and would be photographed like that, though maybe after cleaning off some glue with a rubber cement eraser. It's a monochrome camera that will only pick up blacks and reds, the lines are drawn with blue pencil so they won't be visible. It will photograph cleanly.
gav··on A Macintosh History 85.10
Before DTP, paste up involve pasting content onto boards that were then photographed (with a stat camera) to create film negatives for printing plates.

https://www.youtube.com/watch?v=CwrePe4-ID4

gav··on Is BI dead? – On dismantling data's ship of Theseus
This is the direction that I'd like to see more people moving in: pushing insights to users rather than expecting users to come to dashboards and get those insights.

Nobody is saying "I'd love another tool that I am expected to check every day", both embedded analytics and insights are how to drive adoption and unlock value from data.

gav··on Intuit to Acquire Mailchimp for $12B
Exact Target has been Salesforce Marketing Cloud since 2014.
gav··on Gift card gang extracts cash from 100k inboxes daily
My email was hacked and the attacker used that to reset my Delta password to clear out my points to use on the marketplace where you could exchange them for gift cards.

What's interesting is that they logged into my webmail to create rules to forward all mail from Delta to trash so that I wouldn't see any of the notifications.

gav··on Story of a Tshirt with a Shellcode
It looks like they borrowed the code from Intel. It's the code from Volume 3 9.10 "INITIALIZATION AND MODE SWITCHING EXAMPLE":

https://github.com/cirosantilli/x86-bare-metal-examples/blob...

gav··on My Favorite One Liners
I use it on macOS and it works fine. There is a brew recipe for pwgen, but that's one more dependency to worry about.
gav··on My Favorite One Liners
If you change `openssl rand 150` to a bigger number, say 1000 or so, you can generate longer passwords.
gav··on My Favorite One Liners
My version of `pw', might be useful to those without `pwgen':

  function genpasswd() { 
    openssl rand 150 | LC_CTYPE=C tr -dc '[[:alnum:]!@#$%^&]' | tr -d iIlLOo0 | cut -c 1-${1:-12}; 
   }
← PreviousPage 2 of 14Next →