< Back to the archive

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

Issue #259 - February 25, 2024

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

Top comment by lapcat

I use Objective-C exclusively (no Swift) in my App Store apps.

I wrote a Swift app for a hobby/free project a few years ago and regretted it. They changed the language and deprecated some of my code, which isn't easily replaceable without a significant rewrite. The project now compiles only in Swift 4 and will die when Swift 4 support is removed from Xcode.

I see no reason to use Swift. The compiler is slower and buggier. The debugger is slower and buggier. C interoperablity, while it exists in Swift, can be very painful. And I don't actually ship any bugs that Swift could have theoretically saved me from. I see no gain in switching.

People have been telling me since 2014 that every line of code I write in Objective-C is "technical debt". I continue to laugh at them and ask them to compile Swift code they wrote in 2014.

Of course if I had to get a job, it would be a different story, but I own my company, so I can do whatever I want.

Top comment by stanislavb

Not exactly a resource but more of an advice - learn software development. Unless you are familiar to some extent, you will always be dependent on a competent software engineer, and that will make it much harder to build a lifestyle business.

Second advice, use Ruby on Rails or Django as a web framework and don't follow after the complexities of JS and other newcomers. Phoenix (Elixir) is awesome but that will require much more efforts and expertise compared to the established and time-tested Rails and Django.

Good luck!

p.s. I'm writing this as a person managing a lifestyle business (LibHunt & SaaSHub).

p.p.s. I'd also recommend getting into the IndieHackers community for inspiration and shared experience.

Top comment by afavour

You haven’t really said much about your personal situation and in this scenario it’s very important.

- Do you have a family or other dependents?

- How much do you have in savings?

- Could you fall back on e.g. moving in with parents in the very short term if things go horribly wrong?

Entrepreneurship is a wonderful adventure but at a very base level you need to be able to put a roof over your head and eat. As long as you’re able to do that even if your business completely fails, go for it. If you don’t, take the safe option, build up savings, then go on your adventure.

Also, to be blunt: is your idea any good? Do you have domain-specific knowledge you’re able to leverage in your market? I sometimes find people who are putting the idea of entrepreneurship ahead of any specific concept fail because they’re not actually passionate or well positioned, they just want success.

Taking a job also isn’t wasted time. Going back to the criteria above, in my day job over the last few years I’ve identified a few SaaS concepts I know my employer would very gladly pay for, and I imagine others would too. I’m not in the situation to execute on any of it right now so I’m going to stay right where I am, but I hope to pull the trigger sometime in the not too distant future.

Top comment by Jemaclus

As an engineer, my view on days/hackathons is pretty simple: you don't pay me enough for my good ideas. If I had an idea that could make the business $5M, I'm better off going into business for myself. Instead, I'm going to do whatever I can to try something new and different to learn

So with that in mind, as a leader, I view them as opportunities for sanctioned on-the-job learning. I would hope that you spend the time automating existing processes or learning a new technology that might be useful. At our most recent company hackathon, we focused on a new way to do the old thing. Everyone could build basically whatever they wanted, but they had to use the new tool to do it. Not because we want the output, but because we want everyone to feel comfortable with the new tool. There was zero expectation about turning anything into a production project, although we did have two projects come out of it that are likely to go to prod soon without disrupting the roadmap.

I get where you're coming from, and I agree wholeheartedly with your assessment. If your work is doing hack days, and then getting mad because features aren't shipped, that's pretty shitty of them. Might want to try and find another place with better culture -- easier said than done!

Top comment by pubby

Well, consumer reports is still kicking. I don't think an aggregate review service does much good though.

Reviews for physical items are super inaccurate. The average consumer doesn't have the money to buy 10 laptops and compare them, so they buy one and hold a biased opinion about it. In 5 years when shitty battery and defective hinge become apparent, the laptop is already off the market and the user isn't interested in reviewing it.

Besides, a ton of reviews are fake these days. You just can't trust them anymore. And for many products, the manufacturer cheapens them oven time without telling the public. So a review from 2 years ago may not reflect the quality of today.

Top comment by drekipus

Pyright is the Microsoft provided lsp: does anyone else feel uneasy about using this? Especially given the EEE playbook "that we definitely won't do this time" - would love to have a discussion on this if someone could talk me into using it.

I just use a combination of black, flake, and mypy. Apparently ruff is quite good as well. For lsp I use Jedi, which actually worked faster on my company's code base than pyright, a year or so ago.

Top comment by Me1000

One thing I've found Gemini Advanced (Ultra) is actually good at is sustaining a conversation to work towards a goal that requires some back and forth. I've been calling it "putting it in collaboration mode", which isn't super accurate since it's not technically a "mode" but whatever. But in my experience ChatGPT (and a lot of instruction tuned LLMs) tend to try to get to the end of the conversation as quickly as possible. (To the point where GPT4 will regularly just end the "and if that doesn't work, go read the documentation" ... which is very frustrating.)

Gemini on the other hand will ask several follow-up questions and behaves more like a conversation you might have with a coworker on a pair-programming topic. It's kind of changed the way I think about the utility of LLMs.

Top comment by exceptione

Pro tip: run Linux on host, run Windows in a vm for just those applications you need to run on Win.

That way you contain the inherent mess that a Windows install will eventually devolve into. You also get the ability to snapshot states of your windows install, which makes it possible to mess around a bit and then roll back to a previous state.

You didn't tell what Windows software you want to run, but depending on your needs you could even do a pci-passthrough in this setup.

I do not recommend Ansible as someone else did. You will spend your days fighting a mix of yaml and Jinja. You will end up looking at Python errors because there are no static types. Never again.

Top comment by luke-stanley

For Python, Pyreverse is a subproject of Pylint and it can help make diagrams: https://pylint.readthedocs.io/en/latest/pyreverse.html It makes class diagrams, it can even output Mermaid diagrams.

Also I saw that Aider.chat makes a text "repo map" for GPT-4 to use using some tree-sitters. In the past, I ended up using the Python AST module with LLM's to help me filter for what I was looking for.

I was happy to find out recently that there is a way to make Mermaid diagrams WYSIWYG / drag and drop editable that the open source https://excalidraw.com has and did I mention it's open source!? With a LLM, you can go full loop back to Mermaid again after a few rounds of manual editing. "What a time to be alive!"

But what I would quite like is bi-directional syncing of code and diagrams. Just as looking at black and white code with no syntax highlighting is not so common, I think there are lots more visual cues and contexts we can integrate in clever ways that use our visual system better. There is a whole wide spectrum of augmentation possible within bidirectional visual programming languages, from auto-generating high level code maps with Mermaid diagrams with LLM generated high level summaries and emojis linking to different sub-systems, to being optionally able to have an X,Y position for a function, perhaps moved somewhere more visually convenient as part of a map.

You could probably ask Aider to make Markdown of code actually. I'm not affiliated, I just saw it on here recently. Cool stuff's happening!

Top comment by blinding-streak

Do a test for sleep apnea. I didn't realize I had apnea but my dad and brother had it, so I did a sleep test. Turns out I had severe apnea.

I suffered from massive procrastination and focus problems in the couple years leading up to the test. Once I got a CPAP machine to sleep better, it made a profound change in my life. Mental acuity, productivity, mood, everything was far better. Sleep is no joke. For about a month, my dreams were crazy long epic sagas as my brain caught up on REM sleep it had been deprived of for years. My bosses at the time mentioned I was like a different person altogether. Got great performance reviews.

So, just my tale on how I beat procrastination. Probably not what you expected.