Мне кажется, C++ не создан для 80–85% программистов. Всегда стоит помнить об изначальной задумке создания языка: этот язык — распределенная система с прямым доступом к железу и немного повышенным уровнем сложности.
(c) Бьярне Страуструп
(c) Бьярне Страуструп
Поучительную историю о реиспользовании кода вспомнили в одном чатике. Посоны (airbus с подрядчиками) строили ракету, притом не в первый раз, пятую версию, и заюзали код от предыдущей, в котором ну точно ошибок не было (сотня успешных запусков). А далее по классике, новая ракета должна была лететь по другой траектории с другой скоростью:
- Velocity was represented as a 64-bit float
- A conversion into a 16-bit signed integer caused an overflow
- The current velocity of Ariane 5 was too high to be represented as a 16-bit integer
...
- The explosion occurred at an altitude of approximately 4 km, and the debris was scattered over an area of about 12 square km in the savanna and the surrounding swamps.
Статья с картинками и ссылками на репорты: https://hownot2code.com/2016/09/02/a-space-error-370-million-for-an-integer-overflow
Разборы кода (то, что выше несколько упрощенная интерпретация):
https://forum.oberoncore.ru/viewtopic.php?f=152&t=6389
https://stackoverflow.com/questions/52792505/how-is-it-possible-in-ada-to-have-a-code-failure-from-assigning-a-64bit-floati/54345040#54345040
- Velocity was represented as a 64-bit float
- A conversion into a 16-bit signed integer caused an overflow
- The current velocity of Ariane 5 was too high to be represented as a 16-bit integer
...
- The explosion occurred at an altitude of approximately 4 km, and the debris was scattered over an area of about 12 square km in the savanna and the surrounding swamps.
Статья с картинками и ссылками на репорты: https://hownot2code.com/2016/09/02/a-space-error-370-million-for-an-integer-overflow
Разборы кода (то, что выше несколько упрощенная интерпретация):
https://forum.oberoncore.ru/viewtopic.php?f=152&t=6389
https://stackoverflow.com/questions/52792505/how-is-it-possible-in-ada-to-have-a-code-failure-from-assigning-a-64bit-floati/54345040#54345040
Coding School
Home - Coding School
IT School Learn to programming in C C++ Java You… Read more
To make things worse, it is common for OCSP to use HTTP - I’m talking about good old plaintext HTTP on port 80, none of that HTTPS rubbish.
(c) https://blog.jacopo.io/en/post/apple-ocsp/
(c) https://blog.jacopo.io/en/post/apple-ocsp/
Practical type systems are often too complex to permit an affordable formal investigation, especially since language developers often lack the necessary expertise
(с) Type Systems for the Masses: Deriving Soundness Proofs and Efficient Checkers, Sylvia Grewe and others
(с) Type Systems for the Masses: Deriving Soundness Proofs and Efficient Checkers, Sylvia Grewe and others
There is a religious war between people who think dynamic checking is better and people who think static type checking is better. I believe that one of the reasons why this war has gone on for so long is that both groups have good points. (They also have some not-so-good points.) Unfortunately the two groups typically don’t acknowledge the good points made by the other group as being good points. My evaluation of the points, given below, will probably annoy both the static typing fans and the dynamic typing fans.
(c) What is Gradual Typing | Jeremy Siek
https://wphomes.soic.indiana.edu/jsiek/what-is-gradual-typing/
(c) What is Gradual Typing | Jeremy Siek
https://wphomes.soic.indiana.edu/jsiek/what-is-gradual-typing/
Jeremy Siek | Indiana University Bloomington
What is Gradual Typing | Jeremy Siek
(For a Japanese translation, go here) Gradual typing is a type system I developed with Walid Taha in 2006 that allows parts of a program to be dynamically typed and other parts to be statically typed. The programmer controls which parts are which by either…
Fun fact о понтах конца XIX века:
The treatise is written in Latin, which was already somewhat unusual at the time of publication, Latin having fallen out of favour as the lingua franca of scholarly communications by the end of the 19th century. The use of Latin in spite of this reflected Peano's belief in the universal importance of the work – which is now generally regarded as his most important contribution to arithmetic – and in that of universal communication.
(c) https://en.wikipedia.org/wiki/Arithmetices_principia,_nova_methodo_exposita
The treatise is written in Latin, which was already somewhat unusual at the time of publication, Latin having fallen out of favour as the lingua franca of scholarly communications by the end of the 19th century. The use of Latin in spite of this reflected Peano's belief in the universal importance of the work – which is now generally regarded as his most important contribution to arithmetic – and in that of universal communication.
(c) https://en.wikipedia.org/wiki/Arithmetices_principia,_nova_methodo_exposita
Wikipedia
Arithmetices principia, nova methodo exposita
The 1889 treatise Arithmetices principia, nova methodo exposita (The principles of arithmetic, presented by a new method; 1889) by Giuseppe Peano is a seminal document in mathematical logic and set theory, introducing what is now the standard axiomatization…
It’s a strange system, but perhaps not more so than the zoo of cute names and symbols Girard conferred to every construct.
(c) https://www.tweag.io/blog/2017-03-13-linear-types/
(c) https://www.tweag.io/blog/2017-03-13-linear-types/
www.tweag.io
Linear types make performance more predictable
Scale your engineering power. We enable deep-tech startups to achieve
their vision, from research to product delivery.
their vision, from research to product delivery.
It’s going to cause issues for some, but it isn’t catastrophic, and generally it’s a good thing.
(c) https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/
(c) https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/
Kubernetes
Don't Panic: Kubernetes and Docker
Update: Kubernetes support for Docker via dockershim is now removed. For more information, read the removal FAQ. You can also discuss the deprecation via a dedicated GitHub issue.
Kubernetes is deprecating Docker as a container runtime after v1.20.
You do…
Kubernetes is deprecating Docker as a container runtime after v1.20.
You do…
Treat with suspicion anyone who says abstractions are fundamentally leaky; maybe these people are just bad at abstraction.
(c) Sandy Maguire, Algebra-Driven Design
(c) Sandy Maguire, Algebra-Driven Design
The goal of abstraction is to shield us from the reality…
(c) Sandy Maguire
(c) Sandy Maguire
Only languages which exhibit an algebra or calculus for reasoning about the objects they purport to describe will be useful in the long run.
(с) J.N. Oliveira, Program Design by Calculation (retelling John Backus Turing Award Lecture)
(с) J.N. Oliveira, Program Design by Calculation (retelling John Backus Turing Award Lecture)
I'm shocked by the PL grad students who tell me they work in "verification" but don't know even really the most basic results about model checking or temporal logic. That kind of narrowness of vision is … not my style, let's say.
(с) Shriram Krishnamurthi (тот самый, который plai и papl, да), https://twitter.com/ShriramKMurthi/status/1339353472160952327
(с) Shriram Krishnamurthi (тот самый, который plai и papl, да), https://twitter.com/ShriramKMurthi/status/1339353472160952327
Twitter
ShriramKrishnamurthi
@notypes 40yo question. Similarly, in the 90s, whenever people would say "pure FP programs are so much easier to reason about" I'd ask "oh great, where's your prover and what programs hav you proved". The sound that followed was the shifting of goalposts.…
The focus towards Stream, while not exactly meeting the needs of enterprise use cases, wasn't the biggest problem, it was the unexpected change in the CentOS End Of Life (EOL) which moved from 2029 to 2021. But either one, much less both together, demonstrates that the Community Enterprise Operating System is not technically "community" or "enterprise". We have heard from many people now that this move has undermined not only trust in CentOS, but also other open source distributions of Linux which are commercially controlled. Who is to stop them from doing something very similar?
(с) Gregory Kutzer, https://en.m.wikinews.org/wiki/Gregory_Kurtzer_discusses_plans_for_Rocky_Linux_with_Wikinews_as_Red_Hat_announces_moving_focus_away_from_CentOS
(с) Gregory Kutzer, https://en.m.wikinews.org/wiki/Gregory_Kurtzer_discusses_plans_for_Rocky_Linux_with_Wikinews_as_Red_Hat_announces_moving_focus_away_from_CentOS
en.wikinews.org
Gregory Kurtzer discusses plans for Rocky Linux with Wikinews as Red Hat announces moving focus away from CentOS - Wikinews, the…
I'd rather hire a bunch of dumb mathematicians than one really smart one
(c) https://www.youtube.com/watch?v=j0XmixCsWjs
О том, что гениальные ребята, которые привыкли держать любую задачу целиком в голове, частенько не умеют декомпозировать, и когда сталкиваются с проблемой, которая в очень умную голову не влезает, терпят фиаско. А глупые математики по кусочку, не торопясь, разгрызают проблему. Всё как у программистов. Там много всякого такого, житейская мудрость от Кметта, доклад нетехнический, но любопытный.
(c) https://www.youtube.com/watch?v=j0XmixCsWjs
О том, что гениальные ребята, которые привыкли держать любую задачу целиком в голове, частенько не умеют декомпозировать, и когда сталкиваются с проблемой, которая в очень умную голову не влезает, терпят фиаско. А глупые математики по кусочку, не торопясь, разгрызают проблему. Всё как у программистов. Там много всякого такого, житейская мудрость от Кметта, доклад нетехнический, но любопытный.
A prime portrait is a prime number formatted as a matrix with X digits per line. When we select a color for each digit, we can generate an image.
Instead of doing this for many prime numbers and color schemes until you find something that resembles a known image, I have turned the process around. I have taken iconic images, such as the Mona Lisa and Starry Night, and converted them to images with only 10 colors. I assigned a digit to each color. Then I generated many similar images with a little bit of ‘noise’ added. The noise changed the colors in the images slightly, and thus the digits. If the digits in the image formed a prime number, I found a prime portrait!
(c) https://www.pinchofintelligence.com/painting-by-prime-number/
Instead of doing this for many prime numbers and color schemes until you find something that resembles a known image, I have turned the process around. I have taken iconic images, such as the Mona Lisa and Starry Night, and converted them to images with only 10 colors. I assigned a digit to each color. Then I generated many similar images with a little bit of ‘noise’ added. The noise changed the colors in the images slightly, and thus the digits. If the digits in the image formed a prime number, I found a prime portrait!
(c) https://www.pinchofintelligence.com/painting-by-prime-number/
If you don’t guard against the curse of knowledge it has the potential to obfuscate all forms of communication, including code. The more specialized your work, the greater the risk that you will communicate in ways that are incomprehensible to the uninitiated.
(c) https://www.bti360.com/what-ive-learned-in-45-years-in-the-software-industry/ via https://news.1rj.ru/str/sqaunderhood/232
(c) https://www.bti360.com/what-ive-learned-in-45-years-in-the-software-industry/ via https://news.1rj.ru/str/sqaunderhood/232
Bti360
What I've Learned in 45 Years in the Software Industry
BTI360 teammate Joel Goldberg recently retired after working in the software industry for over four decades. When he left he shared with our team some of the lessons he learned over his career. With his...
Разве не в глубоком, чистом океане аналитических доказательств и теорем мы находим настоящих математиков, плавающих, как могучие лоснящиеся тюлени?
(c) Нахин Пол Дж., Секреты интересных интегралов (ДМК, 2019)
(c) Нахин Пол Дж., Секреты интересных интегралов (ДМК, 2019)
Operating a database is like sailing in the middle of an ocean. Whenever you encounter a problem, you need to fix it without sinking the database, even in the midst of a storm.
(c) https://medium.com/@jeeyoungk/why-i-love-databases-1d4cc433685f
(c) https://medium.com/@jeeyoungk/why-i-love-databases-1d4cc433685f
Medium
Why I love databases
Initially forced by necessity, I soon became fascinated by databases. The study of databases intersects almost every topic in computer science — its theory and implementation are both sophisticated…
It is unfortunate (but unavoidable) that the meteoric rise in the popularity of software patterns has led to massive hype. Many use the word "pattern" primarily for its appeal as a hot new buzzword.
Such "patterns-hype" ultimately causes disappointment, resentment, and even disdain when the hype proves different than the reality. This harms the credibility and legitimacy of those in the patterns community making genuine efforts to document "true" patterns. This greatly upsets many "patternites" and, as a result, there is a strong ethic within this community to avoid and dispel hype about patterns and patterns-related work. One might call this the hype-no-cratic oath: First, do no hype!
(c) https://www.bradapp.com/docs/patterns-intro.html
Such "patterns-hype" ultimately causes disappointment, resentment, and even disdain when the hype proves different than the reality. This harms the credibility and legitimacy of those in the patterns community making genuine efforts to document "true" patterns. This greatly upsets many "patternites" and, as a result, there is a strong ethic within this community to avoid and dispel hype about patterns and patterns-related work. One might call this the hype-no-cratic oath: First, do no hype!
(c) https://www.bradapp.com/docs/patterns-intro.html