

Email validation for a form should at most look for
- at least one character
- followed by @
- followed by at least one character
- followed by .
- followed by at least two characters
Sending an email can take a few minutes. Form validation is instant.


Email validation for a form should at most look for
Sending an email can take a few minutes. Form validation is instant.


Someone else will point out the typo and ask a question about it.


I simply dump the installed packages into a text file and then use that on the next install.
Pseudo terminal commands:
packagemanager list installed -nodeps >> myfacorites.txt
packagemanager install `cat myfacorites.txt`


NextCloud is pretty meh. Worst cloud storage I have used so far. A hosted NextCloud with just a few users is also surprisingly expensive. Self hosting is only an option for people with too much time.
Linux actually has a couple usable DEs.


NetNewsWire started as a closed source app.


You can always export stl or dxf files and use them with other software.


I use a dependency manager, so I don’t need to think about “it depends”.


Tradition is loving your ancestors’ wisdom.


Affinity Suite for Linux would be a game changer.


The alternative to FreeCAD on Linux is OnShape running in the browser.


Backups are a good idea.


Excel (all spreadsheet applications) are an integrated environment for non linear functional programming with flexible data structures, where you can see all memory and data at the same time. It’s a marvel.


Depending on the language exceptions are used in many different ways. Some use it liberally for all kinds of error handling.
A good feature of Exceptions is you can throw them all the way up the stack and handle them there, giving you loose coupling between the code that calls the dangerous code and the one that catches it.
Exceptions have a big runtime overhead, so using them for normal control flow and error handling can be a bit meh.
Using return types can be great, if the language has good support for. For example swift enums are nice for this.
enum ResultError {
case noAnswer;
case couldNotAsk;
case timeOut
}
enum Result {
case answer: String;
case error: ResultError
}
func ask(){
let myResult = askQuestion(“Are return types useful?”);
switch myResult {
case answer:
print(answer);
case error:
handleError(error);
}
}
func handleError(error: ResultError) {
switch ResultError {
case noAnswer:
print(“Received no answer”);
case couldNot:
…
}
}
Using enums and switch means the compiler ensures you handle all errors in a place you expect.


A friend has had good results using AIDD as an agent framework. It’s basically a built in project/product/scrum master that creates tickets and with that constraints.
Have you tried something like this?


The available libraries, operating system, and hardware platform pay a bigger role than the programming language. Often the choice of language follows the tool chain and frameworks that fit with the intended program.


For LLM generated code, it can also take a whole to read and understand. When I write code myself, I understand the intention, architecture, and so on. Machine written code is very different. I need to understand how it works. There’s often extraneous stuff in there or weird patterns.


This video is older than YouTube, I think.


Write a program that reads or writes a simple binary file format. I recommend midi, TIFF, BMP.
For example write a generator for fractal images.


Making something that goes boom is easy. Making something that can contain a boom and channel the boom into only one direction is difficult. Quality metallurgy and precision metal work is actually difficult. Making a tube and a projectile that fit each other nicely is very hard to do at scale.
Let the AI do the review as well.