…we recommend staying away from shell noscripts as much as possible.
(c) https://docs.gitlab.com/ee/development/shell_noscripting_guide/
(c) https://docs.gitlab.com/ee/development/shell_noscripting_guide/
Gitlab
Shell noscripting standards and style guidelines | GitLab
GitLab product documentation.
Perhaps one of the worst misfeatures of C is the ease with which responsibility for problems can be shifted to the person who wrote the code. “Oh, you segfaulted? I guess you forgot to check for
Clearly, computers can’t be expected to do everything for us. But they can be expected to do quite a bit. Programming languages are built for humans, and they ought to eliminate the sorts of rote work humans are bad at whenever possible. A programmer is already busy thinking about the actual problem they want to solve; it’s no surprise that they’ll sometimes forget some tedious detail the language forces them to worry about.
(с) https://eev.ee/blog/2016/12/01/lets-stop-copying-c/
NULL.” If only I had a computer to take care of such tedium for me!Clearly, computers can’t be expected to do everything for us. But they can be expected to do quite a bit. Programming languages are built for humans, and they ought to eliminate the sorts of rote work humans are bad at whenever possible. A programmer is already busy thinking about the actual problem they want to solve; it’s no surprise that they’ll sometimes forget some tedious detail the language forces them to worry about.
(с) https://eev.ee/blog/2016/12/01/lets-stop-copying-c/
eev.ee
Let’s stop copying C
Ah, C. The best lingua franca we have… because we have no other lingua francas. Linguae franca. Surgeons general? C is fairly old — 44 years, now! — and comes from a time when there were possibly more architectures than programming languages. It works well…
In essence, I would rather be remembered as a bad artist than a good programmer.
(с) The end of the Redis adventure, http://antirez.com/news/133
(с) The end of the Redis adventure, http://antirez.com/news/133
As I looked for images for the book covers, I came across some odd-looking animal engravings from the 19th century. They seemed to be a good match for all those strange-sounding UNIX terms, and were esoteric enough that I figured they’d probably appeal to programmers.
(c) https://www.oreilly.com/content/a-short-history-of-the-oreilly-animals/
(c) https://www.oreilly.com/content/a-short-history-of-the-oreilly-animals/
O’Reilly Media
A short history of the O'Reilly animals
How lions, tigers, and tarsiers went geek.
What the heck is this code? What are these method names?
If this is the quality of code which this programmer produces — at his own leisure, under ideal circumstances, with none of the pressures of real production software development, as a teaching example — then why should you pay any attention at all to the rest of his book? Or to his other books?
(c) https://qntm.org/clean
set2AsFirstPrime? smallestOddNthMultipleNotLessThanCandidate? Is this meant to be clean code? Is this meant to be a legible, intelligent way to search for prime numbers?If this is the quality of code which this programmer produces — at his own leisure, under ideal circumstances, with none of the pressures of real production software development, as a teaching example — then why should you pay any attention at all to the rest of his book? Or to his other books?
(c) https://qntm.org/clean
qntm.org
It's probably time to stop recommending Clean Code
It may not be possible for us to ever reach empirical definitions of "good code" or "clean code", which means that any one person's opinions about another person's opinions about "clean code" are necessarily highly subjective. I cannot review Robert C. Martin's…
One of the key components of designing a distributed system is deciding when the “distributed” part is actually unnecessarily complex.
(c) Designing Distributed Systems, Brendan Burns, 2018
(c) Designing Distributed Systems, Brendan Burns, 2018
In my experience Clean Code is a lot like teenage sex. Everybody brags about it, but very few are actually doing it and those that do invariably lead to accidents.
(с) comments on https://qntm.org/clean rant
(с) comments on https://qntm.org/clean rant
qntm.org
It's probably time to stop recommending Clean Code
It may not be possible for us to ever reach empirical definitions of "good code" or "clean code", which means that any one person's opinions about another person's opinions about "clean code" are necessarily highly subjective. I cannot review Robert C. Martin's…
I would go so far as to say that Kubernetes (or, as the "cool kids" say, k8s) is the worst thing to happen to system administration since systemd.
(c) https://www.roguelazer.com/2020/07/etcd-or-why-modern-software-makes-me-sad/
(c) https://www.roguelazer.com/2020/07/etcd-or-why-modern-software-makes-me-sad/
Roguelazer
roguelazer's website: etcd, or, why modern software makes me sad
musings on tech, politics, music, and more
According to Shaw, people use contempt (of developers using a different programming language, for example) as a social signifier, a way of showing that they belong to the correct group. This sort of contempt certainly plays into this story, where large groups identify themselves primarily by their disdain for systemd and those who work with it.
(c) Systemd as tragedy [LWN.net]
https://lwn.net/Articles/777595/
(c) Systemd as tragedy [LWN.net]
https://lwn.net/Articles/777595/
LWN.net
Systemd as tragedy
Tragedy, according to Wikipedia, is 'a form of drama based on human suffering that invokes an [...]
If you need to make fun of a language, do it with your own language, inside your own community. JavaScript is really good at this…
(c) https://blog.aurynn.com/2015/12/16-contempt-culture
(c) https://blog.aurynn.com/2015/12/16-contempt-culture
Aurynn
Contempt Culture - The Particular Finest
So when I started programming in 2001, it was du jour in the communities I participated in to be highly critical of other languages. Other languages
Это победа. В одной из моделей боинга в софтине, управляющей генераторами, каждые 248 дней переполняется память и генераторы вырубаются. Проблемы в авиации решают красиво: кривую софтину обнуляют, обесточивая самолёт во время техобслуживания o\
Problem:
This condition is caused by a software counter internal to the GCUs that will overflow after 248 days of continuous power. We
are issuing this AD to prevent loss of all AC electrical power, which could result in loss of control of the airplane.
Solution:
This AD requires a repetitive maintenance task for electrical power deactivation.
(c) https://s3.amazonaws.com/public-inspection.federalregister.gov/2015-10066.pdf, по наводке https://news.1rj.ru/str/sqaunderhood/217
Problem:
This condition is caused by a software counter internal to the GCUs that will overflow after 248 days of continuous power. We
are issuing this AD to prevent loss of all AC electrical power, which could result in loss of control of the airplane.
Solution:
This AD requires a repetitive maintenance task for electrical power deactivation.
(c) https://s3.amazonaws.com/public-inspection.federalregister.gov/2015-10066.pdf, по наводке https://news.1rj.ru/str/sqaunderhood/217
В Израиле решили тренировать алгоритм, чтобы он мог принимать решения в суде. Анализировали массив простых дел с ясным контекстом происшествий, по которым принимаются бинарные решения — либо штраф, либо 15 суток. Можно было проследить за историей вынесения приговоров в течение нескольких лет и заложить в алгоритм. Приходит новое дело, судья выносит свой вердикт, а люди, ведущие эксперимент, сообщают, какое решение по нему принял алгоритм. На те решения, которые принимает машина, немедленно набрасываются аналитики данных и начинают их изучать. И выясняют чудовищную вещь: у нее есть большой суточный ход. В начале рабочего дня машина выносит более мягкие приговоры, потом жесткость растет, потом снова падает и постепенно восстанавливается. Почему? Оказалось, что чем ближе по времени к обеду, тем приговоры злее, а чем живые судьи более сытые, тем они мягче. И обработка алгоритмом массива дел позволила выявить эту закономерность. Там было много еще разных сюрпризов: оказалось, что алгоритм чудовищный и с точки зрения гендера, и с точки зрения того, какого цвета подсудимый.
После этого эксперимента было сказано: все, никакие алгоритмы пускать никуда нельзя. Простите, но ведь судьи принимали решения точно так же. Судьи — это люди.
(с) https://www.colta.ru/articles/society/25546-iz-zhizni-algoritmov-intervyu-andrey-sebrant-iskusstvennyy-intellekt, via https://news.1rj.ru/str/techsparks/2615
После этого эксперимента было сказано: все, никакие алгоритмы пускать никуда нельзя. Простите, но ведь судьи принимали решения точно так же. Судьи — это люди.
(с) https://www.colta.ru/articles/society/25546-iz-zhizni-algoritmov-intervyu-andrey-sebrant-iskusstvennyy-intellekt, via https://news.1rj.ru/str/techsparks/2615
www.colta.ru
Андрей Себрант: «Средний класс просто вымрет, потому что 90% того, что он делает, алгоритмы делают лучше»
Большой разговор с Ксенией Лученко о настоящем и будущем искусственного интеллекта — и о нас, которые будут с ним жить бок о бок
This book is firmly in the tradition that we have come to expect from this author; and my reaction to it is much like my reaction to its predecessors: I think three quarters of it is superb, and the other quarter is outrageous nonsense; and the reason is that Morris Kline really doesn't understand what today's mathematics is about…
(с) https://en.wikipedia.org/wiki/Mathematics:_The_Loss_of_Certainty#cite_ref-6
(с) https://en.wikipedia.org/wiki/Mathematics:_The_Loss_of_Certainty#cite_ref-6
Wikipedia
Mathematics: The Loss of Certainty
book by Morris Kline
Formality prioritizes evaluation from the beginning, providing solid compilers to common targets such as JavaScript, Haskell and the EVM…
(с) https://github.com/moonad/formality
(с) https://github.com/moonad/formality
GitHub
GitHub - HigherOrderCO/Kind: A modern proof language
A modern proof language. Contribute to HigherOrderCO/Kind development by creating an account on GitHub.
Next time you see an argument about whether Javanoscript is a cancer or a boon to our industry, or you see someone like me getting angry about modern apps being crap, ask yourself which camp is speaking. Are they championing beautiful code? Performance and a "deep understanding"? Or do they just want to get work done and ship product?
Ultimately code is code. Even though we have different reasons for writing software, what we write is (usually) compatible. And even when its not (looking at you, Haskell) - there's always a lot of ideas we can learn from and steal.
We all owe each other a lot, after all. Without language wonks we would still be writing assembly. Without systems programmers we wouldn't have operating systems, and haskell and javanoscript would be unusably slow. And without product engineers, everyone else would be forced to write CSS. And trust me, nobody wants that.
(c) https://josephg.com/blog/3-tribes/
Ultimately code is code. Even though we have different reasons for writing software, what we write is (usually) compatible. And even when its not (looking at you, Haskell) - there's always a lot of ideas we can learn from and steal.
We all owe each other a lot, after all. Without language wonks we would still be writing assembly. Without systems programmers we wouldn't have operating systems, and haskell and javanoscript would be unusably slow. And without product engineers, everyone else would be forced to write CSS. And trust me, nobody wants that.
(c) https://josephg.com/blog/3-tribes/
Seph
3 tribes of programming
There's an old joke that computer science is a lie, because its not really about computers, and its not really a science. Funny joke. Everyone laughs, then someone says "Yeah but it sort of is about computers though, isn't it?". Feet shuffle awkwardly. Someone…
One of the most precious attributes of the Haskell community over the last twenty-five years has been its supportive, friendly, and respectful dialogue.
(с) https://mail.haskell.org/pipermail/haskell/2016-September/024995.html
(с) https://mail.haskell.org/pipermail/haskell/2016-September/024995.html
The developers of the WebAssembly spec aren’t dumb. For the most part it’s an extremely well-designed specification. However, they are weighed down by WebAssembly’s legacy. WebAssembly started out not as a bytecode, but more like a simplified binary representation for asm.js. Essentially it was originally designed to be source code, like JavaScript. It would be a more-efficient representation thereof but it still wasn’t a proper virtual machine instruction set. Then, it became a register machine, and only at the last minute did it switch to stack-based encoding for the operators. At that point, concepts like locals were quite entrenched in the spec. Not only that, but for the most part the WebAssembly specification team were flying blind. No streaming compiler had yet been built, hell, no compiler had yet been built. It wasn’t clear that having locals would be problematic - after all, C gets by just fine using local variables that the compiler constructs the SSA graph for.
(c) http://troubles.md/wasm-is-not-a-stack-machine/
(c) http://troubles.md/wasm-is-not-a-stack-machine/
The academic job market is structured in many respects like a drug gang, with an expanding mass of outsiders and a shrinking core of insiders. Even if the probability that you might get shot in academia is relatively small (unless you mark student papers very harshly), one can observe similar dynamics.
(c) https://blogs.lse.ac.uk/impactofsocialsciences/2013/12/11/how-academia-resembles-a-drug-gang/ (по наводке от https://news.1rj.ru/str/nerdlair/239)
(c) https://blogs.lse.ac.uk/impactofsocialsciences/2013/12/11/how-academia-resembles-a-drug-gang/ (по наводке от https://news.1rj.ru/str/nerdlair/239)
Impact of Social Sciences - Maximizing the impact of academic research
How Academia Resembles a Drug Gang - Impact of Social Sciences
Academic systems rely on the existence of a supply of “outsiders” ready to forgo wages and employment security in exchange for the prospect of uncertain security, prestige, freedom and reasonably high salaries that tenured positions entail. Drawing on data…
У нас нет стандарта. С середины 80-х появлялось много библиотек. Сегодня многие пользуются библиотекой Asio, которую технически можно назвать стандартной. Думаю, что в C++23 мы добавим её. Но начинаются разговоры, что нужно больше поддержки. Помимо Asio, нужно добавить то, чего не дает Asio. И это обыденный хаос в мире C++. У нас даже нет стандарта для места хранения библиотек. Никто как следует не позаботился о создании хорошего сообщества C++. Даже удивительно, как этот язык пережил десятилетия конкуренции.
(с) Бьярне Страуструп, https://habr.com/ru/company/jugru/blog/525288/
(с) Бьярне Страуструп, https://habr.com/ru/company/jugru/blog/525288/
Хабр
Бьярне Страуструп о контроле над языком, удалении старых функций, заимствованиях у Rust и многом другом
Этим летом на онлайн-конференции C++ Russia побывал самый почетный гость, какой только может быть на мероприятии по C++: создатель этого языка Бьярне Страуструп.
Название IPR, как вы могли догадаться, придумал я в свойственной мне «креативной манере», полностью оно звучит так: Internal Program Representation. Мне не нравится, когда его называют AST (Abstract Syntax Tree) потому, что это не синтаксис, не абстрактный и не древо. Но люди все называют это таким образом.
(c) Бьярне Страуструп
(c) Бьярне Страуструп
Мне кажется, C++ не создан для 80–85% программистов. Всегда стоит помнить об изначальной задумке создания языка: этот язык — распределенная система с прямым доступом к железу и немного повышенным уровнем сложности.
(c) Бьярне Страуструп
(c) Бьярне Страуструп