The operating system is another concept that is curious. Operating systems are dauntingly complex and totally unnecessary. It’s a brilliant thing that Bill Gates has done in selling the world on the notion of operating systems. It’s probably the greatest con game the world has ever seen.
An operating system does absolutely nothing for you. As long as you had something—a subroutine called disk driver, a subroutine called some kind of communication support, in the modern world, it doesn’t do anything else. In fact, Windows spends a lot of time with overlays and disk management all stuff like that which are irrelevant. You’ve got gigabyte disks; you’ve got megabyte RAMs. The world has changed in a way that renders the operating system unnecessary.
(c) Chuck Moore (Masterminds of Programming Book)
An operating system does absolutely nothing for you. As long as you had something—a subroutine called disk driver, a subroutine called some kind of communication support, in the modern world, it doesn’t do anything else. In fact, Windows spends a lot of time with overlays and disk management all stuff like that which are irrelevant. You’ve got gigabyte disks; you’ve got megabyte RAMs. The world has changed in a way that renders the operating system unnecessary.
(c) Chuck Moore (Masterminds of Programming Book)
I’m amazed that software written in the 1970s hasn’t/can’t be rewritten. One reason might be that in those days software was exciting; things being done for the first time; programmers working 18-hour days for the joy of it. Now programming is a 9–5 job as part of a team working to a schedule; not much fun.
(c) Chuck Moore (Masterminds of Programming Book)
(c) Chuck Moore (Masterminds of Programming Book)
Keep it simple. If you’re encountering an application, if you’re on part of a design team, try to persuade other people to keep it simple. Don’t anticipate. Don’t solve a problem that you think might occur in the future. Solve the problem you’ve got. Anticipating is very inefficient. You can anticipate 10 things happening, of which only one will, so you’ve wasted a lot of effort.
...
I think it’s like beauty. You can’t define it, but you can recognize it when you see it —- simple is small.
(c) Chuck Moore (Masterminds of Programming Book)
...
I think it’s like beauty. You can’t define it, but you can recognize it when you see it —- simple is small.
(c) Chuck Moore (Masterminds of Programming Book)
Compilers are probably the worst code ever written. They are written by someone who has never written a compiler before and will never do so again.
(c) Chuck Moore (Masterminds of Programming Book)
(c) Chuck Moore (Masterminds of Programming Book)
Programmers have realized that the only valuable part of OO was modularity and the modern approach boils down to 'procedural programming with first-class modules', no one attempts to model the world using complex inheritance hierarchies and abstract data types anymore. "Rich Domain Model" using encapsulation is dead, "Anemic Domain Model" using algebraic data types is king. That's why new languages – such as Go, Rust, Swift, Nim – don't even bother including a classic OO system anymore.
(c) https://www.reddit.com/r/haskell/comments/8n4zc7/oops_vs_pure_functional_programming/
(c) https://www.reddit.com/r/haskell/comments/8n4zc7/oops_vs_pure_functional_programming/
reddit
r/haskell - OOPs vs Pure Functional Programming
0 votes and 1 so far on reddit
— Good practices decided by purported experts like Gang of Four and people like Martin Fowler who do not have any good reason why they are right except that they are influential. They got influential by preaching feel good practices they discovered through experience which like religion feels right.
— Abstractions that are only used in job interviews to hire programmers to maintain poorly written code which does not use any of the said abstractions.
(c) https://meinwords.wordpress.com/2018/02/10/oops-vs-pure-functional-programming/
— Abstractions that are only used in job interviews to hire programmers to maintain poorly written code which does not use any of the said abstractions.
(c) https://meinwords.wordpress.com/2018/02/10/oops-vs-pure-functional-programming/
Me in Words
OOPs vs pure functional programming
The central tenet of object-oriented programming is perhaps the encapsulation of shared mutable state and behavior into a single unit, the object. This is beneficial because shared mutable state is…
In a field where young straight white dudes take an overwhelming majority of the jobs (including most of the management jobs) it’s perhaps to be expected that web making has lately become something of a dick measuring competition.
(c) https://alistapart.com/article/cult-of-the-complex
(c) https://alistapart.com/article/cult-of-the-complex
A List Apart
The Cult of the Complex
’Tis a gift to be simple. ALA’s Zeldman bemoans our industry’s current fetish for the needlessly complicated over the straightforward. Escape the cult of the complex! Get back to improving lives, o…
We have allowed the “full stack developer” term to frame the debate. We should not. It is a term that defines something that doesn’t exist - cannot exist because it is an impossible standard. We can begin by refusing to use the term ourselves. We can try to cut through the BS being fed to junior devs and aspiring devs so that they don’t see the term as an impediment to future success. And we can ask our employers to not use the term - lay out your requirements, rather than hide them under a ridiculous noscript.
(c) https://www.remotesynthesis.com/blog/full-stack-developer
(c) https://www.remotesynthesis.com/blog/full-stack-developer
Remote Synthesis
There’s No Such Thing as a Full Stack Developer
A rant about defining noscripts with unachievable standards.
Ухх, бля:
Сам процесс взаимодействия с компилятором статического языка имеет зачастую необратимый эффект на психику человека. Этот эффект похож на последствия длительного сабмиссивного общения с авторитарным и жестоким человеком.
Зачем нужна статическая типизация в принципе - вопрос не интересный. Сама по себе она не представляет никакой ценности и ее особенности подробно описаны в литературе. Интерес представляет вопрос, зачем она нужна людям при написании программ. Нужна она в основном для обеспечения чувства безопасности людей, которые были невротизированы процессом разработки программ на статических языках.
Статическая типизация защищает от проблем, которых не существует. Если бы они существовали, то не работал бы почти весь интернет, написание mission critical систем на динамических языках было бы невозможно.
Сама философия статической типизации, что программа - это окаменевший кусок говна, с полностью зафиксированными относительно друг друга, ригидными частями, дефективна и показывает однобокость мышления аутистов-полудурков, живущих на гранты и разрабатывающих теории типов.
Еще пара десятков лет и ваши "исследователи"(aka долбоебы-аутисты) загонят вас в такую яму типизации, из которой вам не вылезти, потому что нельзя будет написать и двух слов без доказывания пятидесяти теорем и прогона 90% рантайма во время компиляции и уплаты благотворительного взноса в Международную Ассоциацию Трансвеститов.
(с) https://theiced.livejournal.com/254704.html?thread=3242224#t3242224
Сам процесс взаимодействия с компилятором статического языка имеет зачастую необратимый эффект на психику человека. Этот эффект похож на последствия длительного сабмиссивного общения с авторитарным и жестоким человеком.
Зачем нужна статическая типизация в принципе - вопрос не интересный. Сама по себе она не представляет никакой ценности и ее особенности подробно описаны в литературе. Интерес представляет вопрос, зачем она нужна людям при написании программ. Нужна она в основном для обеспечения чувства безопасности людей, которые были невротизированы процессом разработки программ на статических языках.
Статическая типизация защищает от проблем, которых не существует. Если бы они существовали, то не работал бы почти весь интернет, написание mission critical систем на динамических языках было бы невозможно.
Сама философия статической типизации, что программа - это окаменевший кусок говна, с полностью зафиксированными относительно друг друга, ригидными частями, дефективна и показывает однобокость мышления аутистов-полудурков, живущих на гранты и разрабатывающих теории типов.
Еще пара десятков лет и ваши "исследователи"(aka долбоебы-аутисты) загонят вас в такую яму типизации, из которой вам не вылезти, потому что нельзя будет написать и двух слов без доказывания пятидесяти теорем и прогона 90% рантайма во время компиляции и уплаты благотворительного взноса в Международную Ассоциацию Трансвеститов.
(с) https://theiced.livejournal.com/254704.html?thread=3242224#t3242224
Livejournal
Адвентисты Седьмого Теста
Нет ну реально заебали. Вконец. Блядская секта, похуже хрестанутых. Что характерно, в секте состоит в основном всякая тупая копчёная индусня и прочие говноеды . При этом они считают всех не разделяющих их пидорастическую религию убогими, жалкими и недостойными…
Virtually no company has a hiring process which is accurately explained by blog posts about the company. No company anywhere has a hiring process which is accurately explained by their own documents about how the hiring process works.
(c) https://www.kalzumeus.com/2012/01/23/salary-negotiation/
(c) https://www.kalzumeus.com/2012/01/23/salary-negotiation/
Most other higher level, so-called interactive systems were like TINT (a variant of ALGOL-68) in which the reactions with the system are very much like BASIC. The user is stuck out in a corner, viewing his world through a very narrow porthole.
A notable group of exceptions to all the previous systems are Interactive LISP and TRAC. Both are functionally oriented (one list, the other string), both talk to the user with one language, and both are homo-iconic in that their internal and external representations are essentially the same. They both have the ability to dynamically create new functions which may then be elaborated at the user's pleasure.
Their one great drawback is that programs written in then look like King Burniburiach's letter to the Sumerians done in Babylonian cuneiform!
(c) http://www.chilton-computing.org.uk/inf/pdfs/kay.htm#c3
A notable group of exceptions to all the previous systems are Interactive LISP and TRAC. Both are functionally oriented (one list, the other string), both talk to the user with one language, and both are homo-iconic in that their internal and external representations are essentially the same. They both have the ability to dynamically create new functions which may then be elaborated at the user's pleasure.
Their one great drawback is that programs written in then look like King Burniburiach's letter to the Sumerians done in Babylonian cuneiform!
(c) http://www.chilton-computing.org.uk/inf/pdfs/kay.htm#c3
Now make this thought experiment interesting: Imagine adding object orientation to the C and Scheme programming languages. Making Scheme object-oriented is a sophomore homework assignment. On the other hand, adding object orientation to C requires the programming chops of Bjarne Stroustrup.
The consequences of this divergence in needed talent and effort cause The Lisp Curse:
Lisp is so powerful that problems which are technical issues in other programming languages are social issues in Lisp.
…
Lisp is a painfully eloquent exemplar of this lesson. Lisp is so powerful, that it encourages individual independence to the point of bloody-mindedness. This independence has produced stunningly good innovation as in the Lisp Machine days. This same independence also hampers efforts to revive the “Lisp all the way down” systems of old; no “Lisp OS” project has gathered critical mass since the demise of Symbolics and LMI.
(c) http://www.winestockwebdesign.com/Essays/Lisp_Curse.html
The consequences of this divergence in needed talent and effort cause The Lisp Curse:
Lisp is so powerful that problems which are technical issues in other programming languages are social issues in Lisp.
…
Lisp is a painfully eloquent exemplar of this lesson. Lisp is so powerful, that it encourages individual independence to the point of bloody-mindedness. This independence has produced stunningly good innovation as in the Lisp Machine days. This same independence also hampers efforts to revive the “Lisp all the way down” systems of old; no “Lisp OS” project has gathered critical mass since the demise of Symbolics and LMI.
(c) http://www.winestockwebdesign.com/Essays/Lisp_Curse.html
Winestockwebdesign
The Lisp Curse
The expressive power of Lisp has drawbacks.
So we would think, off the cuff, that Lisp should be well established, the premiere programming language because hey - its great and we were the first guys to do this stuff.
But it isn't and the reasons why not are not in the language, but in the community itself, which contains not just the strengths but also the weaknesses of the BBM (brilliant bipolar mind).
One of these is the inability to finish things off properly. The phrase 'throw-away design' is absolutely made for the BBM and it comes from the Lisp community. Lisp allows you to just chuck things off so easily, and it is easy to take this for granted. I saw this 10 years ago when looking for a GUI to my Lisp (Garnet had just gone West then). No problem, there were 9 different offerings. The trouble was that none of the 9 were properly documented and none were bug free. Basically each person had implemented his own solution and it worked for him so that was fine. This is a BBM attitude; it works for me and I understand it. It is also the product of not needing or wanting anybody else's help to do something.
Now in contrast, the C/C++ approach is quite different. It's so damn hard to do anything with tweezers and glue that anything significant you do will be a real achievement. You want to document it. Also you're liable to need help in any C project of significant size; so you're liable to be social and work with others. You need to, just to get somewhere.
And all that, from the point of view of an employer, is attractive.
(c) http://www.shenlanguage.org/lambdassociates/htdocs/blog/bipolar.htm
But it isn't and the reasons why not are not in the language, but in the community itself, which contains not just the strengths but also the weaknesses of the BBM (brilliant bipolar mind).
One of these is the inability to finish things off properly. The phrase 'throw-away design' is absolutely made for the BBM and it comes from the Lisp community. Lisp allows you to just chuck things off so easily, and it is easy to take this for granted. I saw this 10 years ago when looking for a GUI to my Lisp (Garnet had just gone West then). No problem, there were 9 different offerings. The trouble was that none of the 9 were properly documented and none were bug free. Basically each person had implemented his own solution and it worked for him so that was fine. This is a BBM attitude; it works for me and I understand it. It is also the product of not needing or wanting anybody else's help to do something.
Now in contrast, the C/C++ approach is quite different. It's so damn hard to do anything with tweezers and glue that anything significant you do will be a real achievement. You want to document it. Also you're liable to need help in any C project of significant size; so you're liable to be social and work with others. You need to, just to get somewhere.
And all that, from the point of view of an employer, is attractive.
(c) http://www.shenlanguage.org/lambdassociates/htdocs/blog/bipolar.htm
You never really know a technology until the honeymoon is over and you are familiar with all of the ways it sucks.
(c) https://www.codementor.io/cultofmetatron/when-you-should-and-shouldn-t-use-firebase-f62bo3gxv
(c) https://www.codementor.io/cultofmetatron/when-you-should-and-shouldn-t-use-firebase-f62bo3gxv
When you ask somebody what garbage collection is, the answer you get is probably going to be something along the lines of "Garbage collection is when the operating environment automatically reclaims memory that is no longer being used by the program. It does this by tracing memory starting from roots to identify which objects are accessible."
This denoscription confuses the mechanism with the goal. It's like saying the job of a firefighter is "driving a red truck and spraying water."
(c) https://blogs.msdn.microsoft.com/oldnewthing/20100809-00/?p=13203
This denoscription confuses the mechanism with the goal. It's like saying the job of a firefighter is "driving a red truck and spraying water."
(c) https://blogs.msdn.microsoft.com/oldnewthing/20100809-00/?p=13203
The Old New Thing
Practical development throughout the evolution of Windows.
Then there was another book that everybody thought was the greatest thing ever in that same period—Design Patterns—which I just thought was crap. It was just like, programming via cut and paste. Rather than thinking through your task you looked through the recipe book and found something that maybe, kinda, sorta felt like it, and then just aped it. That’s not programming; that’s a coloring book. But a lot of people seemed to love it. Then in meetings they’d be tossing around all this terminology they got out of that book. Like, the inverse, reverse, double-back-flip pattern—whatever. Oh, you mean a loop? OK.
(c) Jamie Zawinski in «Coders at work»
(c) Jamie Zawinski in «Coders at work»
Раньше CSS писали люди, а теперь — разработчики.
Разработчик — он же как дитя малое — всё в рот тянет.
(с) Макеев, t.me/webstandards_ru/4253
Разработчик — он же как дитя малое — всё в рот тянет.
(с) Макеев, t.me/webstandards_ru/4253
Telegram
Веб-стандарты
Программисты — это, по-сути, психи. Только психически больному человеку будет интересно сидеть 24 часа в сутки перед экраном и заниматься перемещением единичек и ноликов, вместо того, чтобы, скажем, просто прогуляться весенним днем на солнышке и ни о чем не думать.
…
Но как быть простому смертному? Простому, нормальному парню, который в гробу видал все эти технологии. Парню, который не торчит от новой операционки, или сраного гаджета. Парню, который, как и любой другой нормальный человек, иногда ошибается и не уделяет слишком много внимания каждой чертовой мелочи, из-за которой он мог бы пропустить всю жизнь вокруг. Как быть ему? Непсиху-неизгою, не занудному ботану, но мужу, который решил стать на путь программирования, то есть общения с машинами на их языке?
Ответ может быть несколько неожиданным, но суть в том, что парню этому, если он и правда хочет стать хорошим программистом, сначала придется стать психом. Стать психом сознательно, прошу заметить. В отличие от рожденных психами программистов, которые изначально имели все предпосылки для этой работы, нашему парню поначалу будет очень некомфортно делать первые шаги на чужой территории. На территории психов и гиков, компьютерных задротов, которые по технологиям прутся больше, чем по окружающему миру. Это как добровольно ампутировать себе руку, чтобы стать инвалидом и, таким образом, приобщиться к касте инвалидов.
https://habr.com/post/218727/
…
Но как быть простому смертному? Простому, нормальному парню, который в гробу видал все эти технологии. Парню, который не торчит от новой операционки, или сраного гаджета. Парню, который, как и любой другой нормальный человек, иногда ошибается и не уделяет слишком много внимания каждой чертовой мелочи, из-за которой он мог бы пропустить всю жизнь вокруг. Как быть ему? Непсиху-неизгою, не занудному ботану, но мужу, который решил стать на путь программирования, то есть общения с машинами на их языке?
Ответ может быть несколько неожиданным, но суть в том, что парню этому, если он и правда хочет стать хорошим программистом, сначала придется стать психом. Стать психом сознательно, прошу заметить. В отличие от рожденных психами программистов, которые изначально имели все предпосылки для этой работы, нашему парню поначалу будет очень некомфортно делать первые шаги на чужой территории. На территории психов и гиков, компьютерных задротов, которые по технологиям прутся больше, чем по окружающему миру. Это как добровольно ампутировать себе руку, чтобы стать инвалидом и, таким образом, приобщиться к касте инвалидов.
https://habr.com/post/218727/
Хабр
Клуб анонимных программистов, или почему только псих может стать настоящим программистом
Конечно, вместо того, чтобы тратить время на написание этого поста, я мог бы изучать программирование. Но здесь ведь собрались не ботаны-зануды, чтоб на ночь гля...
В сети вы встретите примеры, где из однобуквенных переменных будут собираться функции с ядреной математикой на 200 строк сплошного текста, но то, что кто-то так делает, еще не значит, что это стоит повторять. Подобный подход — это не "специфика работы с GL", это — банальная копипаста исходников еще из прошлого века, написанных людьми, которые в молодости имели ограничения на длину имен переменных.
(c) https://habr.com/post/420847/
(c) https://habr.com/post/420847/
Habr
Введение в программирование шейдеров для верстальщиков
WebGL существует уже давно, про шейдеры написано немало статей, есть серии уроков. Но в основной массе они слишком сложные для верстальщика. Даже лучше сказать, что они охватывают большие объемы...
JSON is intended to be a “lightweight data-interchange format”, and claims that it is “easy for humans to read and write” and “easy for machines to parse and generate”.
As a data interchange format JSON is pretty okay. A human can read and write it comparatively easily, and it’s also pretty easy to parse for machines (although there are problems). It’s a good trade-off between machine-readable and human-readable and a huge improvement on what it intended to replace: XML, which I consider to be unreadable by both machines and humans.
(c) https://arp242.net/weblog/json_as_configuration_files-_please_dont
As a data interchange format JSON is pretty okay. A human can read and write it comparatively easily, and it’s also pretty easy to parse for machines (although there are problems). It’s a good trade-off between machine-readable and human-readable and a huge improvement on what it intended to replace: XML, which I consider to be unreadable by both machines and humans.
(c) https://arp242.net/weblog/json_as_configuration_files-_please_dont
Software which OpenBSD uses and redistributes must be free to all (be they people or companies), for any purpose they wish to use it, including modification, use, peeing on, or even integration into baby mulching machines or atomic bombs to be dropped on Australia.
(c) cvs@openbsd.org mailing list, https://en.m.wikiquote.org/wiki/Talk:Theo_de_Raadt
(c) cvs@openbsd.org mailing list, https://en.m.wikiquote.org/wiki/Talk:Theo_de_Raadt