[-] pkill@programming.dev 20 points 1 month ago

This. I can't count HOW MANY FUCKING TIMES I had to either look up the source code or search GitHub for code using a function from a given library because the documentation was so laconic and/or disjointed.

[-] pkill@programming.dev 18 points 2 months ago* (last edited 2 months ago)

Clojure. Although it's currently the most popular lisp but the ecosystem is not super lively and sometimes you need to rely on Java interop. This also severely limits the platform flexibility, if more things were written in pure Clojure or targeting BEAM or CLR it'd be nice. But luckily at least unless a library you use doesn't rely on Java interop, the language is designed in a way that really reduces the bit rot.

Fun thing about it is that despite the S-expressions which you love to appreciate - I mean, it usually looks better than }) at the end of a Promise / closure in js or super deep nesting which you'd easily resolve using a thread last macro in Clojure. Therefore I'm also really excited that the pipe operator is finally coming to JS soon. Just add colored delimiters to your IDE. The virtual lack of syntax makes it quite easy to pick up.

With lisp semantics and minimal syntax that resemble the lambda calculus very closely, dynamic typing is rarely an issue (you can still specify types optionally), not to mention that pure functions are super easy to reliably test. Also, many things like DOM, nested data structures, b-trees (to a degree) or ASTs are actually structured like an S-expression tree, making Clojure good for such applications. All of this allows for clean code that does not feel like an assortment of free functions but is usually very loosely coupled yet everything seems to fit really neatly together like a coherent tree.
In general LISPs, as the name implies, are a superb tool for studying algorithms and DS in a way that allows you to focus on the problem itself more than the implementation, unlike in imperative languages where going into every little step in what feels like almost operating at individual CPU instructions at times can feel overwhelming and confuse the hell out of you.

Realizing the open-closed principle with Clojure comes pretty naturally since you'd more likely use function composition or write new transformations than modify the existing functionality.
Since functions are the primary unit of abstraction, dependency inversion is also trivial to adhere to.
Also protocols, which are somewhat more powerful than interfaces in some OO languages. They offer multi-method dynamic dispatch, retroactive polymorphism (extending types defined outside the current codebase), are independent from class hierarchy and are generally somewhat more succinct as virtually everything in that language.

First-class support for STM and immutability also make it good for concurrency like most functional PLs and make it a bit more intuitive than the actor model of Elixir/Akka.
Some Clojure frameworks do as well in certain benchmarks as those written in Rust.
Also compared to some other lisp dialects, the "primary" data structure is not a singly-linked list.

It's goto data representation format, EDN is also a really nice thing.
And you have a REPL and get to choose what should be compiled AOT and what JIT. It's most popular build tool, Leiningen is quite neat and in my experience has been a little bit faster in terms of dependency retrieval than Mix used by Elixir.

It can also transpile to js or dart. It generally is a quite flexible and extensible language where the said extensibility does not really make you feel the levels of inconsistency comparable only with PHP a couple years ago before they've decided to get it's shit together as much as possible as can be the case with Haskell codebases that rely on a large number of language extensions.

And lastly, first-class documentation support but that should be a standard (looking at you JS and everything that still uses Doxygen)

Tbh Clojure's greatest Achilles' foot is the baggage of JVM with it's lengthy stack traces, startup time, lack of tail call optimization, different paradigm and backwards compatibility issues. So if the question was which runtime you wish was more popular, I'd pick BEAM. But in it's current state, whilst BEAM is more suited for functional programming, Clojerl doesn't allow you to do much more than the standard library since many libraries wrap java, like web frameworks for example.
But on the other hand, JVM integration might make it easier for teams using Java or Scala to adopt Clojure.

Also it might not do the best job of handling bugs gracefully. This is good in the sense of giving you those almost Rust-like levels of strictness but without the lengthy compilation time but if you are looking for a way to move fast and tolerate some breakage, Elixir could be a better pick.
Also currying is not automatic and you have to use partial or macros.
But speaking of macros, they are almost as neat as in Rust and much more intuitive than in C or Scala.

[-] pkill@programming.dev 21 points 2 months ago* (last edited 2 months ago)

Luckily LineageOS and GrapheneOS have a lockdown mode (Graphene also supports disabling fingerprint for screen unlock), though rebooting your phone usually doesn't cause you to lose any work since everything autosaves as phones kill background apps to save battery and memory. Separate user profiles for situations like protests or certain contexts (preferably with some dummy data to make it not look to sus) are also useful.

[-] pkill@programming.dev 26 points 3 months ago

2008 will be just a little slump compared to the upcoming crash. hope this time we'll end up with a "burn down the wall street" movement, not "occupy wall street"

[-] pkill@programming.dev 24 points 4 months ago

you made me nostalgic for the floppy tray check sound from my old PC ;;

[-] pkill@programming.dev 18 points 4 months ago

Play undefined, win undefined

[-] pkill@programming.dev 17 points 5 months ago

And your IDE is laggy as hell

[-] pkill@programming.dev 23 points 5 months ago* (last edited 5 months ago)

getting into power in corporate env usually takes fairly strong narcissistic traits so no wonder such control freaks will try to abuse their power to micromanage the "human resources"

[-] pkill@programming.dev 16 points 5 months ago

The trick is to use a DNS-based blocker + uMatrix instead of cosmetic filtering. I block all js by default, use adguard dns and firefox's reading mode.

Opinion: The absurdity of the return-to-office movement 5 - 7 minutes Pedestrians walk towards Goldman Sachs headquarters in New York, US, on Thursday, July 6, 2023.

Editor’s Note: Peter Bergen is CNN’s national security analyst, a vice president at New America, a professor of practice at Arizona State University, the host of the Audible podcast “In the Room” also on Apple and Spotify and was the founding editor of the Coronavirus Daily Brief. The opinions expressed in this commentary are his own. View more opinion at CNN.

CNN —

I host a podcast, “In the Room with Peter Bergen,” which focuses on national security issues. Every day, I see the merits of being part of an entirely remote workforce. Peter Bergen

We have a production team, around half of whom live in Brooklyn and Manhattan, and the others live in places like Chicago, Mexico City and San Francisco. We have met in person only twice in the year that the production has been up and running, and we have put out dozens of highly produced episodes, often featuring multiple guests, which go through many rounds of edits.

In my four decades of working in media, I have never worked somewhere with a better esprit de corps, creative energy and a collective willingness to help everyone else out.

And yet, some corporate titans are still pushing for their employees to return to their offices. Banks like Goldman Sachs and JPMorgan Chase and tech giants like Meta are demanding that their staff be back at the office several days a week.

Those return-to-office demands are often couched in non-falsifiable claims about the necessity of having chance encounters at the office where folks bounce creative, productive ideas off of each other.

Typical of this view is JP Morgan CEO Jamie Dimon, who claimed in 2021 that working from home “doesn’t work for spontaneous idea generation.” There is no empirical evidence for this claim, and the desire for employers to see their employees working in their offices seems to be more about the need for control and an attachment to the old ways of doing things.

The return-to-office demands also make little sense from an overall economic perspective at a time when a third of Americans who can do their job remotely now only work from home, up from only 7% before Covid, according to the Pew Research Center, yet the economy is very strong in terms of low unemployment and GDP growth. If working from home suppressed innovation, productivity and creativity, you would expect quite different economic results.

Further, working from home saves Americans an average daily commute of 72 minutes a day, to say nothing about the reduced pollution and energy consumption that comes from fewer commuters, according to a 2023 University of Chicago study.

Working parents, in particular, benefit from not having to waste time, money and flexibility commuting to an office. A 2023 Bankrate survey found that 74% of working women with children are in favor of remote work, while 64% of all working Americans support it.

I have some insight into this as a parent who now works mostly from home. This arrangement gives me a lot more time to spend with my kids, and if there is any kind of unforeseen emergency, I can be there for them in a way that, during the era of the office, I couldn’t be.

The internet and cell phones obviate so much of what was once done at the office, which is, after all, largely an artifact of the 20th century thanks to the rise of mass transportation, the ability to build tall office buildings and the previous immovability of the “work” telephone, which was stuck to a desk. All this, thankfully, is going the way of the dodo.

During the office era, so many workers spent so much time at their desks that workplaces often tried to present themselves as some kind of alternative family. You had your “work husbands” and mandatory “team building” events. Of course, this all came at the expense of your loved ones at home, as you had to spend time away from them while doing all your office-based events and tasks.

I am writing this column in Washington, DC, but work with editors in New York, London or Atlanta. In fact, I have written several hundred of these columns over the past dozen years and I have never met most of the editors I work with, and yet I still have a warm, productive relationship with them.

To be sure, a Starbucks cappuccino is not going to make itself, and certain kinds of work environments — such as hospitals, restaurants, film sets or government offices where classified material is handled in a secure environment — require employees to be in person.

But for much of the economy where work doesn’t need to be in person, the demand to “return to office” is not rooted in any concern for employees, a large majority of whom want to work from home — not because they are lazy or don’t want to be productive, but because it gives them more freedom and control over their own lives.

So why do some bosses still feel it necessary to prolong the slow and necessary death of The Office? Beats me.

[-] pkill@programming.dev 19 points 5 months ago

non-AMOLED devices spreading misinfo by enabling dark mode by default on low battery and it's consequences...

[-] pkill@programming.dev 16 points 6 months ago

the twisted idea of extreme proprietarianism, which we'll combat with free software extremism!

view more: ‹ prev next ›

pkill

joined 9 months ago