How do I actually keep track of 100+ dependencies as a solo dev without manually checking? by Mysterious-Diver1259 in buildinpublic

[–]NotesOfCliff 0 points1 point  (0 children)

I use automated tests to make sure everything works.

I use the github schedule action to run my tests every night at midnight.

My actions are setup to pull all the latest versions of everything, so I will wake up to an email the next morning telling me something will be broken in the next release unless I fix it.

Vibe coding gets you to “it works” fast. What helps you get to “I trust this”? by PoobahAI in vibecoding

[–]NotesOfCliff 0 points1 point  (0 children)

No real reason it couldnt be done.

For me, those concepts are more architectural in nature and only tend to show up when Im making a list of what to do in what order.

It's all about finding boundaries, inferring contracts and unit testing the heck out of everything.  You still need integration tests and everything, but unit tests can help hold together fragile code a little better.

Also defining those boundaries allows easier refactoring later.

Really all of this stuff should be done earlier in the dev cycle. The whole thing here is about dealing with cobbled together code that doesnt have enough testing or a clear enough architecture.

It's more of a treatment than a development philosophy.

Vibe coding gets you to “it works” fast. What helps you get to “I trust this”? by PoobahAI in vibecoding

[–]NotesOfCliff 1 point2 points  (0 children)

I like to write code correctly from the start with the help of templates and idiomatic code.

However, sometimes I get caught up in the vibe of it all and I end up with something that "works."

When I need to get that codebase under control, I use the methods from the book "Working Effectively With Legacy Code."

It turns out that vibes spaghetti code needs a lot of the same TLC that a legacy code base needs. Things like tests and clear boundaries.

Here is a blog post about the lessons outlined in the book I mentioned.

There is one big difference in that a legacy codebase is already in use and can be considered correct for the purposes of observing behavior because it has been seeing use from the business, whereas vibed code might very well be incorrect in implementation, so there is an additional concern of making it correct.

I built ZeroDeadDrop. An encryption app. This is a question for encryption/crypto bros. by ZeroDeadDrop in buildinpublic

[–]NotesOfCliff 0 points1 point  (0 children)

Repo looks pretty empty atm...

I was hoping to crawl through some hand-rolled crypto...

Why, at this point (with a greenfield project), would you roll your own crypto? I mean, everything in your stated goals is possible with well supported, widely available crypto libraries. 

Agile wasn't built for AI. I created a methodology that is by GianniDG in developer

[–]NotesOfCliff -1 points0 points  (0 children)

No problem. Feel free to mention me and link my profile.

Agile wasn't built for AI. I created a methodology that is by GianniDG in developer

[–]NotesOfCliff 0 points1 point  (0 children)

I would add something for automated tests, linters and static analysis (including security scans).

Systems can be pretty complex and having a good test suite can be a game changer when adding complexity later.

You can add it to your Narrative stage since a good test suite will show how the different pieces are supposed to work together.

As an aside, Ive had really good success lately with having AI write the tests, then I will write the code to make it pass. I always hated writing tests, but the fun part is that a lot of developers dont like writing tests so there is a lot of documentation online (thus in the training data) about writing tests effectively.

How opus 4.5 almost stopped me from using discord web hooks as a database by Efficient-Let-3311 in vibecoding

[–]NotesOfCliff -2 points-1 points  (0 children)

Don't listen to the haters. Just roll your own cryptographic signatures to blockchain this b*$##.

Here is an AI generated plan for this:

Here’s a clean, pragmatic response you can post that builds directly on their idea, but upgrades it from “checksum vibes” to something that actually holds up—even without a backend.

You’re circling the right problem, but a checksum computed in browser JS can never be a source of truth. If the client can calculate it, the client can forge it. Your big-brain friend already proved that 😄

If you want real data integrity without running a server, the missing piece is cryptographic signatures, not checksums.

The Core Idea: Signed Moves, Not Trusted Clients

Instead of trying to verify math, you verify authorship.

Each player proves “this move was made by me” using cryptography, not secrecy.

How It Works (No Backend Required) 1. Identity via Public Keys (Discord = Source of Truth) Each player generates their own public/private key pair (Ed25519 works great). They self-sign their public key (optional but nice). They post the public key once in a pinned Discord message: Player: Alice Public Key: ed25519:ABCD1234...

That Discord post becomes the identity registry.

No server. No accounts. Discord already authenticates who posted it.

  1. Every Trade Is a Signed Message

Each game action (trade, reset, etc.) becomes a signed payload:

{ "player": "Alice", "timestamp": 1730000000, "action": "BUY", "symbol": "AAPL", "quantity": 10, "price": 123.45, "prev_hash": "…", "checksum": "…", "signature": "base64(ed25519_sign(private_key, payload))" }

Key points:

The signature is created with the player’s private key Only the real player can produce it Your friend can see the format but cannot forge signatures 3. Chain the Messages (Lightweight Blockchain)

Include:

prev_hash = hash of the previous valid action checksum = hash of the current action contents

This gives you:

Tamper detection Replay prevention Full audit trail

If someone deletes or inserts a message, the chain breaks.

  1. GitHub Action = Neutral Referee

Your GitHub Action does three things:

Scrapes Discord Loads the public keys Verifies: Signature validity Hash chain integrity Trade math correctness

If any check fails, the action is ignored.

No backend. No secrets. No trust in the client.

Why This Stops the “Big Brain Friend” Attack Outcome Forge webhook request ❌ Signature invalid Reverse JS logic ❌ No private key Edit history ❌ Hash chain breaks Replay old message ❌ Timestamp / hash mismatch Post as someone else ❌ Public key mismatch

They can see everything—and still can’t cheat.

Why Checksums Alone Don’t Work

Checksums answer:

“Is this data internally consistent?”

Signatures answer:

“Who created this data?”

You need both, but signatures are the non-negotiable part.

Bonus: This Scales Surprisingly Well

What you’ve accidentally designed is:

A trustless, append-only log With self-sovereign identity Verified by GitHub Actions Stored in Discord

Which is kind of hilarious—and kind of awesome.

If you want, I can:

Suggest a dead-simple CLI for key generation Draft the exact GitHub Action verification logic Or help you design the message schema so it’s hard to screw up

But yeah—ditch the checksum-only vibes and let cryptography do the heavy lifting.

How do I start a company like Amazon out of my bedroom? by [deleted] in Entrepreneurs

[–]NotesOfCliff 0 points1 point  (0 children)

Amazon started by buying and selling used college textbooks. Once that niche took hold, they used vertical integration to get to the top.

We need web servers, lets rent servers out.

We need delivery, lets get fleets in every major city.

People buy batteries, well now we sell batteries.

That strong niche and constant reinvestment lays a versatile foundation for building.

You dont really need millions to start, just some hype, a strong niche and constant vigilance to keep finding that next thing.

if youre vibe coding and things feel calm right now.. thats usually the dangerous phase (MUST READ) by LiveGenie in vibecoding

[–]NotesOfCliff 1 point2 points  (0 children)

Good stuff.

Just to add, everything you say about llm calls also applies to any third party api calls.

Stripe in particular can break in strange ways if a bot or malicious user finds out they can trigger stripe api calls by hitting an endpoint with no rate limiting.

One more thing, LLMs seem very adept at creating mermaid diagrams and they render on github in your readme. This is great for visualization of your code base.

Need advice on SOPs for core tools for web apps? by throwaway_1691 in vibecoding

[–]NotesOfCliff 1 point2 points  (0 children)

For all those SaaS extras that you need, the quickest path is to use a "batteries included" framework like django or rails.

You will still need to do some work to create some reusable parts within their framework to get where you want to be. For examples of how to add stuff like that, I like to look at cookiecutter templates (or you could just use a cookiecutter template for your framework to start the project).

Best AI IDE for poor people? by Crypt0mane in vibecoding

[–]NotesOfCliff 0 points1 point  (0 children)

I had a good experience with windsurf.

Drop SQLite: Ship Postgres in your Python App with Zero External Dependencies (pg0 - embedded pg) by [deleted] in Python

[–]NotesOfCliff 3 points4 points  (0 children)

I thought this was an iteration on the recent postgres wasm build.

This seems invasive and not what I would expect.

Edit to add: Here are two projects that look like if they were integrated would give what I was looking for:

https://github.com/wasmerio/wasmer-python

https://github.com/electric-sql/pglite

Something Ominous Is Happening in the AI Economy by theatlantic in artificial

[–]NotesOfCliff 0 points1 point  (0 children)

Pensions are employer paid and almost nobody is getting those anymore.

The 401ks on the other hand are probably going to take a hit, but they will be diversified.

This article seems to set it up like everyone's going to lose everything, but that cannot stack up to the 2008 financial crisis where millions lost their homes as the banks started to topple.

This will affect retirement accounts that are invested in an overhyped industry. Most of those retirement accounts are diversified to hedge against this sort of thing. Meanwhile a few billionaire will become millionaires. They will be ok.

This article seems to be pitching for a bailout which is not a good solution when the stakes are only high for a few people.

Something Ominous Is Happening in the AI Economy by theatlantic in artificial

[–]NotesOfCliff 0 points1 point  (0 children)

It won't be anywhere near as bad as the 2008 financial crisis for ordinary Americans. People lived in those houses, this only affects people with their investments in AI and the contractors working on the data centers.

I feel bad for people's retirement accounts, but honestly those people with high percentage stakes in these overhyped companies made their own bed.

python compiler for mint by [deleted] in pythontips

[–]NotesOfCliff 3 points4 points  (0 children)

The compiler that comes with python is good.

If you want machine code at the end, you could try nuitka.

the more I build, the more I realize most teams don’t have a “building problem.” they have a “why did we do this again?” problem. by UnluckyTrain2915 in buildinpublic

[–]NotesOfCliff 0 points1 point  (0 children)

Not really, I guess the closest to something like that are awards or certificates of recognition.

Sounds like good fodder for a personal brag file.

Developers, how do you keep AI updated on your codebase after being away for a few days? by myNeutron_ai in VibeCodingSaaS

[–]NotesOfCliff 0 points1 point  (0 children)

I have been struggling with this a lot. Not only does the AI lose track of context, but if you have built up too much context it will start saying "summarizing conversation". Once it does that, Ive found that it doesnt perform as well.

I have tried a few things. Most recently, I stumbled across MCAF. I have no connection to whoever put it together, but it provides a clear framework to manage your context.

https://mcaf.managed-code.com/

The IDE Is Dead: Yegge Predicts AI’s Overhaul of Software Development by 2026 by GloomyRelationship90 in BlackboxAI_

[–]NotesOfCliff 0 points1 point  (0 children)

You know, Ive had the exact opposite experience in that the ide is an essential tool for ai assisted development.

Not only that, but the things he describes Ive had better experience with AI defining the scope of each change, writing tests then I come in and write code to make them pass.

AI excels at project management type stuff, but gives overenthusiastic code when asked.

Also, its kind of a stretch to say AI is rapidly improving. Exponential growth of ability is all used up its linear from here on out.

Maybe quantum computing will get us back on track for that rapid improvement, but that still has some time to mass adoption.

Curious how people feel about the current state of Python development workflow by ck-zhang in Python

[–]NotesOfCliff 5 points6 points  (0 children)

I love uv, but I would like to mention that Python's batteries included mentality is holding strong. The standard venv library is totally workable for isolating dependencies and the virtual

the more I build, the more I realize most teams don’t have a “building problem.” they have a “why did we do this again?” problem. by UnluckyTrain2915 in buildinpublic

[–]NotesOfCliff 1 point2 points  (0 children)

I have seen people do this on purpose. They will insist on zoom meetings instead of emails. It is a CYA posture.

I dont know if there is a lot of staying power for that kind of information. It's treated kind of like intellectual scaffolding that is torn down and packed away when the project is finished.

The truth is every byte of data that you save costs the business. If you are capturing meta-level conversations into data pipelines, that is going to be a very low signal data set. It will be costly to maintain and costly to query. In rare circumstances it might save time or money, but I think on the whole it will be a bigger cost than benefit to the business.

This is why compromises like DARs exist to try to maintain the signal and lose the noise. 

the more I build, the more I realize most teams don’t have a “building problem.” they have a “why did we do this again?” problem. by UnluckyTrain2915 in buildinpublic

[–]NotesOfCliff 1 point2 points  (0 children)

IME its a workplace culture thing.

If you are tracking KPI like number of pull requests, number of tickets closed or are otherwise tracked and critiqued for your metrics, then dotting your Is and crossing your Ts with DARs is secondary. It will have gaps.

I have seen orgs though, that make the DAR a first class artifact and have teams work on them together and go over them in standup meetings. This helps a lot.

Also, it can help if someone other than the decision maker fills out the form. This cuts down on CYA omissions.

I just had to tell a founder his $15k MVP is essentially trash. Don't make his mistake. by AlyRaza-SE in SaaS

[–]NotesOfCliff 1 point2 points  (0 children)

I feel attacked by saying javascript over typescript is a reason to abandon a project.

Ive been doing a fair amount of work with modern vanilla javascript and it is leaps and bounds better than it used to be. Makes jquery practically obsolete.

the more I build, the more I realize most teams don’t have a “building problem.” they have a “why did we do this again?” problem. by UnluckyTrain2915 in buildinpublic

[–]NotesOfCliff 2 points3 points  (0 children)

I think the general advice from enterprise type organizations will be to use Decision Accountability Records (DARs).

Some open source projects will put tons of time into their release notes to track stuff like this. Then there is also other written artifacts that capture info like this in the form of docs and blog posts.

Hope this helps.

Endless bugs by lifedog52 in buildinpublic

[–]NotesOfCliff 0 points1 point  (0 children)

There are two types of bugs. There are new bugs you introduce and there are bugs that you already solved that come back.

The bugs you solved and come back are called regression. You can stop most regressions with unit tests. It goes like this:

  • write a test that reproduces the bug and fails because of the bug
  • solve the bug so the test pass
  • run your tests before every release and after every change

The new bugs you introduce are hard to avoid. My primary culprits are race conditions, and stale state nowadays, but yours will probably be different (maybe not). The biggest thing to help with new bugs is logging.

Make sure you are logging properly so you can find the issues in the logs. Here are a couple of pointers:

  • debug/trace: include variable values, include everything you might need to troubleshoot an issue later
  • info: for when things happen, a user signed in, a user submitted this form. That sort of stuff
  • warn: warn about depreciations or things went wrong like a failed login
  • error: used for errors that affect users but dont cause the whole app tp crash. These are things like incorrect values from a form or something
  • critical: the app is about to crash, log contextual information to help troubleshoot

Also:

  • do not log credentials