Not everything is thrown together code churn. Some tools have earned their keep and don’t need to be in the constant spotlight because they do their job silently and effectively for people such as myself on a daily basis.
372 karma · joined September 16, 2023
Not everything is thrown together code churn. Some tools have earned their keep and don’t need to be in the constant spotlight because they do their job silently and effectively for people such as myself on a daily basis.
I spent some time recently coming to the conclusion that I did not prefer CC, but wanting some reliable structure. In the end, I found I was coming up with convoluted schemes that were getting in the way of actually solving my real problems and just settled on the tried and true:
“When applied this commit will...”
- Add <functionality>
- Update <existing>
- Refactor <while keeping same boundary behavior>
- Remove <some subsystem or functionality>
- Cleanup <documentation or style>
I don’t consider this to be a complete taxonomy, but it does let me get on with my day and covers most things, especially when combined with thoughtful commit messages.To represent something like sin(x) with f(x,y) requires infinite steps. Conversely, with eml you get an exact result in around 4 using identities and such.
One could argue that we do Taylor Series approximations on the hardware to represent trigonometric functions, but that highlights the key aspect of the eml approach. You can write a paper with those four steps that describes an exact model, here sin(x). And people can take that paper and optimize the result. This paper is about an auditable grammar that you can compute with.
> Prefer do notation if the effects of the flow are more important than the data structure, and prefer using Applicative style if the data structure layout is more important to understand than the effects to build i.
If they are correct and things must be done, they aren’t providing the evidence. That’s not the same as saying there’s no evidence or reason to take this stance. Do you see the distinction I am making?
I would expect a decrease in code quality in a specific part of the repo or at least a quote/link to a changelog stating that generated code is being used as part of the fork making its case.
Something like [1] can be inspiration.
I use HTML and Modern CSS for frontend. I sprinkle htmx when I want interactivity and a tiny amount of plain JavaScript. That gives me a mostly declarative frontend.
On the backend I use Haskell, which is also declarative unless you opt into other things.
The challenge with web development is that we’ve learned over the years that asynchronous, stateful programming is the most bug-prone programming yet we reach for it first. We should reach for those things last and where they are appropriate.
The thing about cascading style sheets is that it all cascades by default. A web page naturally resizes. It’s when we add all this other stuff that things start breaking and becoming rigid. The key to CSS is knowing when to let go.
Earlier in my career, I found that my employers would often not buy Matlab licenses, or would make everyone share even when it was a resource needed daily by everyone. Not having access to the closed-source, proprietary tool hurt my ability to be effective. So I started doing my "whiteboard coding" in Julia and still do.
A shift to Python or Ruby is fundamentally a shift to a different set of core cognitive patterns. This influences how problems are solved and how sense is made of the world, with the programming languages being tools to facilitate and, more often than not, shepherd thought processes.
The culture shift we have seen with corporations and socialized practices for collaboration, coding conventions, and more coincides with the decline of a language that does in fact have a culture that demands you RTFM. Now, the dominant culture in tech is one that either centralizes solutions to extract and rent seek or that pretends that complexity and nuance does not exist so as to move as quickly as possible, externalizing the consequences until later.
If you've been on this forum for a while, what I am saying should seem familiar, because the foundations have already been laid out in "The Pervert's Guide to Computer Programming", which applies Lacanian psychoanalysis to cognitive patterns present in various languages[1][2]. This explains the so-called decline of Perl—many people still quietly use it in the background. It also explains the conflict between Rust and C culture.
As an aside, I created a tool that can use this analysis to help companies hire devs even if they use unorthodox languages like Zig or Nim. I also briefly explored exposing it as a SaaS to help HR make sense of this (since most HR generalists don't code and so have to go with their gut on interviews, which requires them to repeat what they have already seen). With that stated, I don't believe there is a large enough market for such a tool in this hiring economy. I could be wrong.
[1] [PDF] -- "The Pervert's Guide to Computer Programming" https://s3-us-west-2.amazonaws.com/vulk-blog/ThePervertsGuid...
[2] [YouTube Vulc Coop]-- https://www.youtube.com/watch?v=mZyvIHYn2zk
I did a quick search and found that many plastics are governed by ISO 11357 test standard [1]. Some of the plastics I have worked with used this standard.
A spec sheet for that material is here [2].
[1]: https://www.iso.org/standard/83904.html
[2]: https://um-support-files.ultimaker.com/materials/1.75mm/tds/...
I've found the book "Foundations of Multidimensional and Metric Data Structures" by Hanan Samet to be an excellent resource when looking for a slightly deeper dive than a more introductory algorithms course. It goes in depth on the nuances of these approaches, many of which are highly similar at a cursory glance.
Losing a close relative or a job is normal adversity that everyone will go through but not everyone has. Going through those other things while having a different philosophy or life ethos than those around you, thus also causing you to prioritize and pursue different things in life adds a different layer of challenge. That causes you to have to figure stuff out on your own and thus contributes to maturing in a different manner and at a different rate.
Some chips can use Micro Python or even Rust. I have not explored those myself.
Longer answer: It's been a while since I have thought about Arduino. But last I recall, it is just an Atmega chip connected to IO. Maybe newer ones have moved to ARM M0 or beyond. That's about when I stopped using Arduino.
But it isn't hard to just start from baremetal on those. You need the user manual for the actual chip so you can configure timers and such. Once you know how to set up one chip, you can set up most any chip.
I do think there is use for a plug and play system like Arduino. It is very user friendly to just use that IDE and get started on Arduino. My critique is that there is rarely a followup progression. That followup progression is critical.
Here's a video showing how to make your own "Arduino" [1]. All the hard work is done by the Atmega chip. So Arduino has built this mythos and this IDE that it seems you have to use. It traps people and prevents them from doing the exploration into the chip itself.
[1]"Build your own Arduino for $5" https://www.youtube.com/watch?v=tlh0dBa2bFA
When he starts talking about the “hygiene of the programmer”, he is referring to the concept of a “code smell” rather than making literal statements about the literal cleanliness of programmers.
From there, he is saying that the industry has distanced itself from object-oriented programming because it often causes problems and added “smells” to the architecture of code bases. This is regardless of what your specific definition of OO is.
Finally, he ends by raising awareness around the fact that even if people claim to not use much OO in their codebases, when you look at the total architected solution, those various services like Docker and so on are themselves various Gang of Four style OO patterns. Because we talk about OO in code, we are not watching the OO that happens around the code.
You began an inappropriate chain of comments by being uncharitable in your initial interpretation of my sentiment. People piled on emotionally as a direct result of your opening sentence even though your second one confirms what I said.
Unfortunately, it suffers from having a very generic name. It is short enough while going over concepts to take a person just beyond Arduino-land.
Yet, when the intent is that the population is to be empowered democratically to wield these tools, there needs to be a better pedagogical culture in the communities.
I cannot believe the amount of people replying who seem to think that having a path to improvement is gatekeeping. How are people supposed to actually use these tools to make greater than novelty-level changes in their lives and communities?
The price of Arduino has not only been going up and up, but there have been IP disputes over the years. At the same time, you can get chips for pennies on the dollar. People in this thread are lamenting the possible demise of Arduino, when like Cloudflare, like Github, and like so many other things, they should have never been so invested into a single player.
The result of Arduino going away should be "Ah, it is a sad day that one of our many choices of accessible boards is going away. let's make sure the other ones are robust against that same fate and keep creating with our remaining tools."
Instead, the conversation is "How dare that big corp change the terms and conditions on our only hobby option!"
I certainly see a structural and cultural problem here.
You also talk about gatekeeping when in the many makerspaces I have been to, there are always highly experienced people who tinker on their own terms but rarely pay it forward, meaning they keep their knowledge. The reason for this is due to the often anarchist structure of maker spaces. Things happen if they do.
Sometimes there is an organized class. Most of the times, not. So you come in every week and people are just sitting around talking about the rules of keeping the space clean and when dues are due.
The concept of the hacker space and maker space is great. The execution leaves a lot to be desired. I consider it a 1.0 of a technical movement.
This also goes beyond programming on a microcontroller as the Maker Movement is about more than just electronics.