< Back to the archive

Like what you see? Subscribe here and get it every week in your inbox!

Issue #238 - October 1, 2023

Here are the top threads of the week, happy reading!

Top comment by jmduke

(Context — I run Buttondown (http://buttondown.email/) as a solo founder, with a handful of contractors on support/documentation but no other W2s.)

1. You need to either a) have an answer for "what happens if you get hit by a bus?" or b) create a product for customers to whom that doesn't matter. In general, people really _like_ being able to chat with the founder directly (lean into that! it's a superpower!) but feel very anxious about committing $X0,000/yr to you.

2. It will be somewhere between "vanishingly rare" to "non-existent" to feel like you are moving as fast as you should be. Instead of setting milestones and thinking about metrics, _especially_ in the early goings I'd focus on just spending as much time as you can on critical-path work (chatting with customers, chatting with prospects, improving core flows.)

3. This does not matter. I moved from Seattle to Richmond, VA last year and literally nothing changed about my business.

4. This is a very broad topic that is hard to answer concisely, but the closest answer I can give is "figure out how your first five users found your product and then figure out how to find more people like them".

5. Venture capital is a tool by which you exchange agency for large sums of money. There are a lot of great businesses that require more time, energy, and money than can be provided by a single engineer working for an indefinite amount of time; there are a lot of great businesses that can be built without those things. I would not take a lot of stock in any prescriptive answer that says you HAVE to take VC or you HAVE to bootstrap; it depends on the type of company you want to build and what you consider a successful way to spend a decade or so of your life.

Top comment by itsoktocry

I've worked in many analytics projects across a number of companies as a consultant. I'm a big believer in "decision support systems". Find out what decisions your customers need to make, repeatedly, to their job. Quantify the heuristics and visualize that information (and that information only) in an easy to consume manner. More often than not that's an email or PDF. Another advantage is that by supporting the business users they feel less threatened by the changes or technology.

I think "self-serve" analytics is silly, the idea that you put all of the data in front of people and they'll derive "insights". That's not how normal people or data work. We just had a discussion on HN the other day about Facebook's Prophet, and its pitfalls. Meanwhile we expect Joe in sales to be able to identify useful trends on a chart he made. Every company needs to forecast, regardless of their sophistication. That stuff needs to be defined by the right people and given to the users.

Top comment by iterateoften

I have been a big advocate for Elixir for 5 years before switching off.

My takeaways: love José Valim and the team and the libs they produce. The team is always humble and helpful and produces high quality content in both code and documentation.

Why I stopped using Elixir: I was using Elixir obsessively as a performance chasing tool, but then it just didn’t fill the gap properly:

1. Python (or other massively used language) is preferred for large SaaS apps where performance doesn’t matter. As an engineering manager, I can go out and hire a huge team instantly for Python.

2. Rust is much faster and not super difficult. When I ran out of optimizations for Elixir I found myself dropping down to Rust. Then asked myself why even use Elixir?

With those two points, Elixir, like Haskell, changed my programming mindset immensely, but as a professional context, quite frankly you have to use what you can build a team with. Elixir has very few engineers to source from.

Top comment by Apreche

I was at a company that got bought. Shortly thereafter they started laying people off. For some reason I wasn't. I was one of the last ones there, commuting to a mostly empty office not doing much. Obviously by that point I was already deep into a job search.

They did some shenanigans to try to fabricate reasons to let me go with cause, presumably to save money. It had absolutely no impact on me afterwards in any way whatsoever. I got a new job within a month or so. It was a much better job that I stayed at for way too long.

I feel worse about the people who were laid off before me. The company took everyone on a big team building type trip to a tropical place. I refused to go. After everyone got back from the trip they started the layoffs just before the holidays. I told that CEO straight to his face he was a scumbag. That people probably would have rather had their paychecks through the holidays than some vacation with their co-workers, would they have known.

And yet, somehow the person who didn't go on the company trip, and stuck it to the CEO was one of the last ones still around.

Top comment by MPSimmons

Mostly to get around bad docs. I need to implement things using libraries, services, and APIs that aren't well documented, but the source code is public, and people have written code against them, and ChatGPT has read all of the things that I would read (and more) to get to the point where I can use it, so I just ask it.

The 2021 knowledge limit is pretty annoying, since libraries change so often, but it's still very useful.

It's ALSO very useful for asking stupid questions that I don't want to waste someone's time with. Like for instance, in bash, when you redirect stdout to a file with > filename it works, and when you redirect stderr to stdout with 2>&1 it works, but when you try to redirect stderr to stdout and stdout to a file, it only works when you do it in this order:

command > filename 2>&1

it doesn't work if you do

command 2>&1 > filename

which feels more natural to me, so I asked ChatGPT why that is, and it explained that you have to consider it from a filehandle perspective and that if you look in /proc/pid/fd you can see that 2>&1 is really redirecting to the terminal, and > is redirecting from the terminal to a file.

I would have had to find someone deeply steeped in unix/linux fundamentals to explain that to me, or I could just ask ChatGPT. I've done the same thing again and again - how are HSMs really different than TPMs? How are heat pumps different than ACs?

I'll read a reference to something, and immediately go to ChatGPT to learn more - "Can you give me a brief summary of the writings and opinions of Cicero?" and then I can spend 20-30 minutes learning more about stoicism, epicureanism, and whatever else I'm curious about. It's like being able to interview wikipedia.

Top comment by jwr

Somewhat less philosophically: there is a huge technological problem in keeping photo archives. We entrust our photos to companies like Apple and Google with the attention span of a fruit fly — nobody seems to give any thought to long-term archival. Solutions appear and disappear within several years.

Also, all current photo library solutions are deficient and built mostly for a single flashy keynote presentation, not for managing actual photo libraries. Sharing with your family has only recently started arriving at Apple, for example. There is no good and reliable way to manage and keep metadata with your photos (like extended descriptions), and it seems everybody at Apple believes that the EXIF date in an image is the actual date that the photo was taken (apparently nobody at Apple used older digital cameras, or scanned anything from paper/film).

I was severely bitten by this approach, because I entrusted my archives to Aperture, which Apple later discontinued. I am not left with a large library which I can't migrate anywhere: first, because there is nowhere to migrate it TO, and second, because I know of no other programs that can manage photo stacks: groupings of several related images (like the front and back of a scanned paper photo, or several versions of a scan). I still don't know what to do about this library. I'm thinking about writing my own exporter that will read the Aperture sqlite database and export the pictures with all the metadata.

I thought about writing my own long-term photo archival and sharing software and making it open-source, but when I realized which particular group of lowlives this will be very useful for, it gave me pause and I'm reconsidering. Perhaps I'll write something for my own use.

Top comment by jdietrich

Samsung phones have a feature for this specific scenario. Maintenance Mode creates a temporary user account, allowing a service technician to test all of the functionality of your device without exposing any user data. Given Apple's stated commitment to privacy and security, I'm surprised that there's no equivalent feature.

https://www.samsung.com/uk/support/mobile-devices/what-is-ma...

Top comment by starbugs

The best thing one can do is not use cookies -> no need for a consent banner.

If that's not an option, the next best thing is to have an overlay that is as honest as possible and most importantly provides not only an "Accept all", but also a "Reject all" button.

Don't use dark patterns, basically. That is, use the same color, style and size for each of those buttons.

My experience is that most users are so used to these overlays by now, they just look for the button which gets rid of them most quickly. Marketing will typically push to tinker with the appearance of the buttons to increase the conversion rate in favor of the "Accept all" option.

Top comment by kazinator

> Why is this the case?

In a sentence: because doing FOSS is just a way for some people to enhance their careers.

Anything not related to the code is extraneous to that.

Running a mailing list (for example) isn't resume-stuffing material for someone who isn't a sysadmin.

A popular, well-known FOSS project enhances your career better than one that is unpopular and obscure. From that perspective, that forum system is best which facilitates popularity.

Then there is the youth factor. I think that mostly older developers care about this issue. Younger developers who didn't live through the Unix wars and the rise of GNU/Linux and all that are deaf to the issues. They take an Internet full of wall-gardened social networks to be the norm; it's what they were already born into. Asking the kids not to gather in some Discord group is like asking kids of yesteryear not to hang around at the mall. (The mall is proprietary, so what?)

Top comment by pjc50

> there should be a way for people to raise funds quickly in those dark moments when they need it the most

gofundme

> an app that would enable people to raise funds by offering services to their community

Taskrabbit?

> creators can begin receiving orders from their supporters, discuss details, create customized offers, and more. On an agreed-upon date, creators would complete their tasks, the supporter would confirm that the task has been completed, and creators would get paid

Kickstarter, except kickstarter fronts the money which is often necessary for completion.

You have built a two-sided market. This is very difficult, because you need to recruit both sides of the market. And you need to convince them that you can handle money.

> I'm an introvert. I have a small group of friends, I work remotely, and I don't use social media like Facebook, Instagram, Twitter or LinkedIn.

Unless you get a co-founder who does, or some sort of marketing lead, your chances of success are zero. Your best hope is to find some sort of community which needs this service and persuade them you can help. I think Kickstarter got started with comics and board games: raising money for printing costs. You will also need to decide what you want to do when the "community" who want to exchange money for "services" is sex workers.

Work out your route to market before writing any code, if you want to make any money.