atomicbeanie
atomicbeanie on Hacker News
Comm signal in band with GPS? Control for a GPS software supply chain attack?
I used to joke that when SO goes under, I will move professions. The joke came from my experience of how many common issues in technology could not be solved with knowledge found via a search engine. I don’t see that niche as gone, so I wonder what is satisfying that requirement such that new questions do not show up at SO?
Has AI summarization led to people either getting their answer from a search engine directly, and failing that, just giving up?
Posted by
atomicbeanie on Friday May 30, 2025 @01:20PM
from the electrek.co dept.
Must be the tremendous new leadership in the US Intelligence aparatus.
The white house prefers chaos. This will certainly be a step in that direction.
Time to just call these tariffs: sales tax. Extra money for the government on all goods imported are taxes. The rest of the complexity distracts from the basic cash flow and the inevitable results. More money spent and consumed by the government.
Posted by
atomicbeanie on Monday April 07, 2025 @05:48PM
from the reuters.com dept.
Posted by
atomicbeanie on Monday April 07, 2025 @05:36PM
from the factcheck.org dept.
Posted by
atomicbeanie on Sunday January 26, 2025 @01:29AM
from the eff.org dept.
What? Deciding to stop writing a book because no one will read is the furthest one can get from a moral decision.
Posted by
atomicbeanie on Friday July 19, 2024 @11:54PM
from the tonsky.me dept.
Posted by
atomicbeanie on Tuesday July 09, 2024 @02:26PM
from the cmdzero.io dept.
Yes, I like to call the style Procedural Composition. The key characteristics are no logic with IO, and all system functions are assembled from higher-order middleware functions. This is the way ring, the web framework, and various client libraries like clj-http work. One of the best ways to get familiar with it is to look at the ring libraries.
What this allows one to do is assemble handlers from lots of small higher order functions. It has the downside of one needing to have initialization well organized and thought out. But the fractal-cul-sac as one co-worker has nicknamed it of ever dividing and increasingly specialized functions with IO and logic twisted together is effectively prevented. One can always modify one handler without affecting others or changing how existing functionality works. And it is always testable in small unit tests because the logic is pure.
Systems built in this style can radically reform themselves in a controllable, reliable and consistent way indefinitely. They are immune to the "apogee" phenomena whereby a system gets to the size and fragility where it can no longer be modified without causing unforeseen regressions, triggering the need to rewrite it to move it forward.
This style is for handler-oriented procedural software common in web services etc. It does not apply to embedded state-machine oriented software that operates real-time control etc. That is a different problem space.
Complex solutions are easy. Simple is hard. Often simplicity takes time, iteration and understanding that comes from actually operating a system. I think the missing link here is the Kaizen-oriented refinement that turns complex into simple over time. I find that modern OO-languages frustrate this process by needing cross-cutting changes to refactor for incremental improvements. Expression-oriented languages (like Clojure) are much more fluid, enabling the incremental refactoring required to transform the initially complex and awkward system into the simple and refined scalable system. Unfortunately, just like other languages, it is possible to write difficult-to-change systems in Clojure. And that seems to be often the way it is done.
With text that continues with serious consideration of guano-doped graphene... Graphine chemistry has a meme!
Yes, I agree, logging in is different than forcing people to use installed software.
I don’t wish to be too much of a fly in the ointment. I understand the darkness of dark patterns. But if we wish to not be secretly tracked (which is dark), then isn’t the alternative to openly ask if I want to exchange knowledge of my identity in exchange for the content I seek, so they can target the ads that pay for the content aggregation service I am using? The preceding question mark is not rhetorical. Maybe I am missing something? In the end though, Cat picture or not, the people that provide the service need to get paid.
Any dumbing down of end-to-end encryption will hand Russia and China nuclear powered hacking tools for our economy, infrastructure and digital integrity. With near peer wars ongoing, I would relegate this stuff to a noise filter. The US DoD cannot afford encryption to be dumbed down. And they seem to understand that.
These initiatives will always exist because there will always be people that do not understand what encryption is and what it provides. But lots of smart people understand the consequences would be catastrophic, and rapid. We cannot eliminate dumb politically-motivated ideas.
Any dumbing down of end-to-end encryption will hand Russia and China nuclear powered hacking tools for our economy, infrastructure and digital integrity.
This narrative points to no proof expecting motive to suffice. I think the US is not the only motive hypothesis. It would have made more sense for the US to blow it up earlier. Given that the pipeline was unused at the time of destruction it seems more likely a Russian intelligence ploy executed from Baltic ports.
I think the Swedish investigation, with no public announcement, might be the only source of primary information. Add to this the sabotage against German trains etc, and the overall lack of ability of the Russian government to negotiate for its interests but instead choose subterfuge (they denied the invasion, and claim themselves the victim), it is more likely such a secret operation is in the interests of the aggressor.
I think the difference here is that static typing gives a poverty of real reliability guarantee's but one must always pay the cost. Since Clojure gives agency back to the programmer, there is a choice here. Clojure for production should check its types at the domain level or as close as possible, be simple, and spare. Personal experiments and tooling can be in a different style. It is just like building anything else, design and construction for maintainability is very different than prototyping or experimenting. Clojure has all the tools required to make robust production software. But it takes the intention and proper decision making to do so.
I had similar feelings, and I get the same feelings looking at today's front end development which looks increasingly like embedded C++ development. I had always tinkered with Lisp but expected it to be forever marginalized given how good Common Lisp was, and how poorly it had been adopted by industry. But Clojure changed that for me. The fun seems to come from agency, the ability to affect outcomes with reasonable amounts of time and energy expended. Agency is the ability to change one's circumstances, and modern tool chain's vast incidental complexity takes such agency away. But restore agency, and fun will follow, I suspect.
Now I don't mean to imply there are not good uses for tool chains like C++'s etc. Only I will say that the disconnection from the end result caused by the long write-debug-ship cycle leads to a certain programmer malaise. The same is true for things like coding chips with Verilog. The production chain is so long with respect to the creative endeavor itself that motivation and satisfaction is hard to get.
So, for me, doing SaaS software, which ships "all the time" with Clojure, has restored my ability to 1) read the std library and most others easily to understand them, 2) Create control, preprocessing and IO primitives myself for special purposes which easily rival standard ones, 3) use interop to access large libraries written in another long lived language (Java), 4) build and use tools that simply introspect the code, producing my own tool additions and automations without AST's, and elaborate tooling, after all, code is just data.
Obviously YMMV. One blog post documented someone who changed from C++ to Clojure and did not find satisfaction. But he was attempting to do something, embedded I believe, that is not well suited to a JVM. So changing to Clojure does involve changing to an area that favors one of the two big Clojure host language machines, JVM or Javascript based environments.
This populist stuff does nothing but create blame and distract from the real issues. Ending billions of dollars in petro-subsidies is where this energy should be pointed. Instead journalistic need for clicks will take us further away from decisions that that will change our fate.
My god, about time. Given the war on drugs' history this is just astonishing.
Subsidize oil while pumping investment into fusion.... sigh.... Talk about using the nation's dwindling resources to pursue news.
I think fission and nuclear waste are problems that technology can solve. However, the desire of the country to continue to operate old methods and not invest to raise the standards of these processes is like Nevada not so long ago contracting for a coal plant, sadly behind the times. The West does not have extra water to risk. We need new better facilities and investment in nuclear that keeps the environment safe and clean for the country's residents.
And I would offer does not match the experience of those working on web apps with large amounts of at-rest data. Internet connected services are subjected to constantly changing data inputs which break software unexpectedly. The only place to see these data outliers is production. The companies that make this automated, auditable, safe and repeatable win.
Posted by
atomicbeanie on Wednesday July 21, 2021 @10:05AM
from the hackaday.com dept.