Like what you see? Subscribe here and get it every week in your inbox!
Issue #293 - October 20, 2024
Here are the top threads of the week, happy reading!
1. Ask HN: Founders, what was the major sourcing channel for your first 100 users?
Top comment by buf
I'm a founder of 3 small saas companies that I run by myself, generating about $1M ARR.
1. First one I started 10 years ago. I built a bot that auto DMed people in various internet forums. My first 100 users came from that. The product is highly shareable, so it quickly grew. Now it's 1.6M users (most of them free).
2. Second started 3.5 years ago. My first 100 users came from simply emailing the newsletter list from my first company. This product has no free plan, so it became profitable instantly.
3. Third started 1 month ago. And it's been a struggle. I got 10k free users just by emailing my list, but 0 paying users. So I tried ads and had similar results from the ads. Now I'm taking a step back and understanding why they aren't paying, which involves just emailing them.
Summary: once you have an email list and viral social loops built-in, marketing gets easier.
2. Ask HN: Solopreneurs, how did you come up with your idea?
Top comment by mamcx
> but everything I create or try to do seems like there are already dozens of other solutions doing the same thing
The major lesson I have after +20 years doing this: WHO CARES.
This concern is valid for a huge company or anybody that wanna get like 70% of the whole market.
For solo/small teams? Think of yourself as a street cart vendor that sells hamburgers, and is located on the front of mac donalds.
They still sell.
What you has but not others is that you are small, and is the actual person other person can , FOR REAL, talk about your product.
That is the whole thing of working as a freelancer, solo, small business. You can, FOR REAL, provide personal training/consulting/support, etc.
And that works even if you just take the product made by the big corporation and just know how to use it. There is business in being the guy who knows Excel well.
3. Ask HN: Do you track how your email address is used?
Top comment by bityard
I self-host my own email server (against The Greater Internet's better judgement, it feels) and one of the neat things I can do with Postfix is set any arbitrary character as a username/junk separator.
Gmail has supported this for a long time with the '+' character, but this has some major problems. Many things that accept email addresses don't recognize '+' as a valid email username character and won't let you submit the form. I hypothesize that some of this is poor awareness of what constitutes a valid email address, and some of it is intentional to force users to input their "real" email address. I have also run across a few systems that stripped off the '+' suffix off my gmail address.
My solution is to use the '.' as the separator because 'firstname.lastname' is a VERY common email username and I'm happy to not allow it in a "real" username on my tiny mail host.
So every new site or company I interact with gets user.acme@example.com instead of my "real" email address. I can filter incoming emails based on the To header. And I even have a list of companies (a couple well-known) that have leaked or sold my email address to spammers. Some day I'll write a blog post about that.
4. Ask HN: Best AI Code Assistant?
Top comment by simonw
I have yet to find a code assistant that's more generally useful than copying and pasting code back and forth from https://claude.ai and https://chatgpt.com
I use Copilot in VS Code as a typing assistant, but for the most part I find copy and paste into the chat interfaces is the most valuable way to use LLMs for coding.
Even more so with the Claude Artifacts feature, which lets me see an interactive prototype of frontend code instantly - and ChatGPT Code Interpreter, which can run, test, debug and rewrite Python snippets for me.
5. Ask HN: Why is there not more concern about the physical security of Cloudflare?
Top comment by simonw
It's interesting to explore https://where.durableobjects.live/ - a tool that maps where Cloudflare's worker scripts actually run.
Notably, while Cloudflare has CDN edge locations in countries like China and Russia they don't appear to run workers there.
EDIT: I was wrong - I misinterpreted the map. A solid border circle around a location indicates "Worker-only Datacenter" (see the map legend) and there are indeed locations with those solid borders in Russia (including Moscow and Yekaterinburg) and China (Haidong, Lanzhou and more).
I doubt we could get them on the record for this, but I suspect this may be very deliberate. Maybe CDN edge locations can be run completely securely with forwarded encrypted traffic, while workers are at a higher risk of physical attack.
6. Ask HN: Tips for hacking a TV?
Top comment by Benjamin_Dobell
Hacking TVs was a favourite pasttime of mine. There's nothing quite like flashing a TV with AOSP such that it thinks it's 55" smartphone. Lock screen and all.
See if you can find a service manual for your TV. You'll want to get UART as soon as possible.
Just remember crashes are for chumps: https://gist.github.com/Benjamin-Dobell/bb13f6169aaa48625453...
PS. I think that may be my favourite piece of code I've ever written. Mostly because it's completely absurd but worked just fine.
7. Ask HN: Where After WordPress?
Top comment by runjake
Recent similar Ask HNs with discussion: https://hn.algolia.com/?dateRange=pastMonth&page=0&prefix=fa...
I think it'd best to just stay. I see one of two likely things happening:
1. Matt comes to his senses and formally secedes his control of the WordPress Foundation and WordPress OSS to a qualified group of people.
2. He doesn't and the project gets forked to something that gets traction and will be immediately compatible.
8. Ask HN: How Many Hours Do You Code in a Day?
Top comment by barrkel
What is coding?
Actively typing in code, maybe 30 minutes long term average, with spikes up to 8 to 10 hours when the road ahead is clear and what to do is obvious, which happens about once a year for a few weeks. It's quite rare outside of greenfield, which itself is rare. It's much more common in hobby projects.
Debugging? Sometimes I can spend several days debugging a problem, not actively writing any code which goes into production, but creating harnesses, ad-hoc logging, verification / assertion routines and so on. The amount this averages to depends heavily on the maturity of the product and the health of the code. A mature product with a gnarly codebase means a lot more time debugging.
Reading code? I spend a fair amount of time reading and analyzing code before a chunky task, figuring out where the seams are, where the data I need comes from, what the best places to add code are, figuring out data flow. When I'm at the start of a task like that, I can do that for 3 or 4 hours a day. But long term average, it's more like 10 to 20 minutes?
Reviewing code: this is similar but different to reading code. I don't do as in-depth reading as I do for a task, but if I find something suspicious and I want to make sure I'm right, I can go for an hour or two on research, to prevent something problematic hitting production. But I guess this averages about 20 to 30 minutes a day long-term. I don't do as much code review as I used to when I was more senior roles before. Expect a lot more code review with more seniority.
9. Ask HN: How do you cope with a deluge of job applications?
Top comment by colinwilyb
I hope you'll address a few points:
1.Job hunting is dehumanizing: Most of the time you will receive no response to a carefully worded cover letter. There is no option to speak with a human, or point of contact. (I dub this /Throwing hope into the void and see what sticks/.)
2.Job hunting is primarily online. From searching job posts to application, the reach of an open position is literally world-wide.
3.Due to Covid, remote work is now in the zeitgeist, opening up remote work to many who otherwise wouldn't have considered it.
4.Digital tools for resume writing and bulk sending.
5.The stagnation of salaries, increased cost of living, and poor investment options has forced many into living paycheck to paycheck. In order to /get ahead/ the only option is to constantly seek new positions.
The deluge recruiters are feeling is merely the tip of a iceberg.
10. Ask HN: How do you add guard rails in LLM response without breaking streaming?
Top comment by CharlieDigital
If it's the problem I think it is, the solution is to run two concurrent prompts.
First prompt validates the input. Second prompt starts the actual content generation.
Combine both streams with SSE on the front end and don't render the content stream result until the validation stream returns "OK". In the SSE, encode the chunks of each stream with a stream ID. You can also handle it on the server side by cancelling execution once the first stream ends.
Generally, the experience is good because the validation prompt is shorter and faster to last (and only) token.
The SSE stream ends up like this:
data: ing|tomatoes
data: ing|basil
data: ste|3. Chop the
I have a writeup (and repo) of the general technique of multi-streaming: https://chrlschn.dev/blog/2024/05/need-for-speed-llms-beyond... (animated gif at the bottom).