Jamie Zawinski (между прочим, автор названия “Mozilla”) давным-давно сказал «Linux is only free if your time has no value.» По-моему, легко переносится на весь Open Source, а не только отдельно взятый Linux.
Предлагаю попробовать осилить для начала хотя бы статью на wikipedia, чтобы не делать столь далёких от истины предположений о “исполняющем максимально простые операции модуле в составе более сложной системы.” AGC — единственный (на лунном модуле ещё был AGS, способный поднять модуль с Луны и пристыковать к командному модулю в случае отказа основного) и главный компьютер в каждом из двух модулей миссий “Apollo.” И его работа — не “максимально простые операции”, а полностью полёт, навигация и управление.
Если бы у NASA в те времена была упомянутая тобой Sega с её Motorola 68000 и 72KB RAM, то она бы астронавтам ещё и кофе в полёте варила, и в Super Mario давала бы резаться. Проблемы не в разрядности, не в гигагерцах и гигабайтах. Проблемы в программистах.
Текст перед публикацией не дали просмотреть тому, чей взгляд ещё не замылен её написанием. Понятно же, что в блоке N+1 считается хэш блока N, а не N-1.
Парень, поинтересуйся на досуге хотя бы характеристиками “Apollo Guidance Computer.” Это бортовой компьютер, который астронавтов на Луну доставлял. И мне кажется, что ты либо не поверишь, либо охренеешь :) Ну, если ты, конечно, не из числа убеждённых сторонников версии, что Луна и астронавты — продукт Голливуда.
“Заполняется мусором” ничуть не лучше, поскольку за словом “заполняется” стоит какое-то активное действие. А по факту никаких таких действий в коде нет. Объект буквально размещается на куче мусора (хоть на куче, хоть в стеке), и больше никаких действие не происходит.
В самом деле, если в слове “мама” сделать четыре опечатки, то получится слово “пиво”. Это ж сколько надо опечаток, чтобы “блок управления процессом” превратился в “печатную плату”? “Опечатка” называется “древний переводчик, не умеющий в контекст”.
Судя по “PCB”, переведённому как “печатная плата”, это больше похоже на наспех переработанный автоматизированный перевод довольно поверхностной статьи.
Автор молодец, но всё же ему ещё есть что поизучать. Судя по разбору примера
print(not 1 == 2 or 3 == 3 and 5 == 6)
с концепцией неполного или быстрого вычисления условий (принятой в большинстве актуальных языков программирования, включая Python) он незнаком. В этом примере вообще не будут вычисляться условия 3 == 3 и 5 == 6 , так как уже при вычислении not 1 == 2 становится ясным результат всего выражения. Легко проверить на практике таким примером:
print((not 1 == 2) or ((2/0) == 0) and ((1/0) == 0))
Будет просто True без всяких ZeroDivisionError: division by zero
кто-то когда то пошутил, что UB означает, что программа может отформатировать жесткий диск
Шутка неудачна по причине повального заблуждения, что “неопределённое поведение” — это о “моей” программе. А оно, вообще-то, о компиляторе. Поведение “моей” программы всегда абсолютно однозначно определено архитектурой целевой системы и средой исполнения.
То, что стандарт позволяет разработчикам компиляторов делать их настолько “заумными”, не освобождает программиста от необходимости изучать опции управления оптимизатором :)
Что до malloc(0), то это не “неопределённое поведение” (undefined behavior), а “поведение, определяемое реализацией” (implementation-defined behavior). Таким образом, обязано (по стандарту) быть документировано реализацией и прочитано программистом.
Воспоминание довольно близко к оригиналу, но всё же далековато :)
«APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.»
Ошибка, доведённая до совершенства. А “coding bums” — это скорее не “любители кодирования”, а “кодеры-раздолбаи-бездельники”
Сам не джавист, потому вопрос мой основан исключительно на мнениях моего немногочисленного окружения, имеющего отношение к теме: а сто́ит ли вообще строить такую программу на pure Java, если давным-давно есть Kotlin, про который существует популярное мнение, что это “Та Java, которой она изначально должна была бы быть”? Лучшая Java. чем сама Java, типа такого...
Привет, коллега. Я вот тоже активно использовал C++ ещё со времён второго Cfront, но то, куда двинулся язык после внедрения шаблонов, меня сначала изрядно тормознуло, а позже и вовсе отвратило от него. Нахожу весьма забавным и показательным тот факт, что А. Степанов глубоко разочарован тем, во что эволюционировал C++ с тех пор, как он создал STL. И немалую роль в этом всём сыграл создатель C++, который из своего тщеславия соглашался практически на всё, что предлагали члены WG (а тут важно понимать, что немалая их часть — вовсе не самостоятельные люди, а лоббисты разных групп, хотелки которых нередко конфликтуют). Ох, не зря Томпсон всю дорогу в AT&T чморил и C++, и самого Страуструпа, чем регулярно вызывал у последнего полыхание пятой точки.
PID 0 ничуть не менее и не более уязвим, чем PID 1. Или PID 65535. Потому, что это всего лишь ID. Самое “страшное”, что с ним можно сделать — использовать в качестве индекса, но поскольку массивы в языках, на которых обычно пишут ОС, и так начинаются с 0, то никто никому ничего не сломает.
А нулевые указатели не используются только в пользовательских приложениях для универсальных ОС, где даже указатель со значением 0x00001234 (т.е. откровенно не 0) легко может привести к трапу. Защита памяти — это несколько больше, чем нулевой указатель. А нулевой указатель — это совсем не обязательно нулевые биты.
Для программ, работающих на голом железе, работа с нулевым указателем — нормальное явление.
внутренняя ОС системы хранения может требовать разный объем ресурсов во время своей работы. Мы не зря ранее говорили о легковесности управляющей ОС Qsan.
Малые потребности в RAM — вовсе никакая не заслуга и не уникальность ОС Qsan. Это естественное свойство любой блочной SAN.
Куда проще завалить того, кто не понимает разницы между оператором и операцией.
А домен — проблема?
Задавать такие вопросы сотруднику МТС (у которого “палки” на публикации) — это почти спросить как пропатчить FreeBSD под KDE2 на irc-канале про аниме.
Jamie Zawinski (между прочим, автор названия “Mozilla”) давным-давно сказал «Linux is only free if your time has no value.» По-моему, легко переносится на весь Open Source, а не только отдельно взятый Linux.
Предлагаю попробовать осилить для начала хотя бы статью на wikipedia, чтобы не делать столь далёких от истины предположений о “исполняющем максимально простые операции модуле в составе более сложной системы.” AGC — единственный (на лунном модуле ещё был AGS, способный поднять модуль с Луны и пристыковать к командному модулю в случае отказа основного) и главный компьютер в каждом из двух модулей миссий “Apollo.” И его работа — не “максимально простые операции”, а полностью полёт, навигация и управление.
Если бы у NASA в те времена была упомянутая тобой Sega с её Motorola 68000 и 72KB RAM, то она бы астронавтам ещё и кофе в полёте варила, и в Super Mario давала бы резаться. Проблемы не в разрядности, не в гигагерцах и гигабайтах. Проблемы в программистах.
Текст перед публикацией не дали просмотреть тому, чей взгляд ещё не замылен её написанием. Понятно же, что в блоке N+1 считается хэш блока N, а не N-1.
Парень, поинтересуйся на досуге хотя бы характеристиками “Apollo Guidance Computer.” Это бортовой компьютер, который астронавтов на Луну доставлял. И мне кажется, что ты либо не поверишь, либо охренеешь :) Ну, если ты, конечно, не из числа убеждённых сторонников версии, что Луна и астронавты — продукт Голливуда.
“правак”, а в некоторых случаях ещё и “Сусанин”
А я до сих пор помню это всё и в восьмеричной системе, в эпоху СМ/ЕС ЭВМ она была сильно популярнее шестнадцатеричной.
“Заполняется мусором” ничуть не лучше, поскольку за словом “заполняется” стоит какое-то активное действие. А по факту никаких таких действий в коде нет. Объект буквально размещается на куче мусора (хоть на куче, хоть в стеке), и больше никаких действие не происходит.
В самом деле, если в слове “мама” сделать четыре опечатки, то получится слово “пиво”. Это ж сколько надо опечаток, чтобы “блок управления процессом” превратился в “печатную плату”? “Опечатка” называется “древний переводчик, не умеющий в контекст”.
Судя по “PCB”, переведённому как “печатная плата”, это больше похоже на наспех переработанный автоматизированный перевод довольно поверхностной статьи.
Автор молодец, но всё же ему ещё есть что поизучать. Судя по разбору примера
с концепцией неполного или быстрого вычисления условий (принятой в большинстве актуальных языков программирования, включая Python) он незнаком. В этом примере вообще не будут вычисляться условия
3 == 3
и5 == 6
, так как уже при вычисленииnot 1 == 2
становится ясным результат всего выражения. Легко проверить на практике таким примером:Будет просто
True
без всякихZeroDivisionError: division by zero
Шутка неудачна по причине повального заблуждения, что “неопределённое поведение” — это о “моей” программе. А оно, вообще-то, о компиляторе. Поведение “моей” программы всегда абсолютно однозначно определено архитектурой целевой системы и средой исполнения.
То, что стандарт позволяет разработчикам компиляторов делать их настолько “заумными”, не освобождает программиста от необходимости изучать опции управления оптимизатором :)
Что до malloc(0), то это не “неопределённое поведение” (undefined behavior), а “поведение, определяемое реализацией” (implementation-defined behavior). Таким образом, обязано (по стандарту) быть документировано реализацией и прочитано программистом.
Воспоминание довольно близко к оригиналу, но всё же далековато :)
«APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.»
Ошибка, доведённая до совершенства. А “coding bums” — это скорее не “любители кодирования”, а “кодеры-раздолбаи-бездельники”
Это Э. Дейкстра, «How do we tell truths that might hurt?» © June 18, 1975
Сам не джавист, потому вопрос мой основан исключительно на мнениях моего немногочисленного окружения, имеющего отношение к теме: а сто́ит ли вообще строить такую программу на pure Java, если давным-давно есть Kotlin, про который существует популярное мнение, что это “Та Java, которой она изначально должна была бы быть”? Лучшая Java. чем сама Java, типа такого...
Привет, коллега. Я вот тоже активно использовал C++ ещё со времён второго Cfront, но то, куда двинулся язык после внедрения шаблонов, меня сначала изрядно тормознуло, а позже и вовсе отвратило от него. Нахожу весьма забавным и показательным тот факт, что А. Степанов глубоко разочарован тем, во что эволюционировал C++ с тех пор, как он создал STL. И немалую роль в этом всём сыграл создатель C++, который из своего тщеславия соглашался практически на всё, что предлагали члены WG (а тут важно понимать, что немалая их часть — вовсе не самостоятельные люди, а лоббисты разных групп, хотелки которых нередко конфликтуют). Ох, не зря Томпсон всю дорогу в AT&T чморил и C++, и самого Страуструпа, чем регулярно вызывал у последнего полыхание пятой точки.
PID 0 ничуть не менее и не более уязвим, чем PID 1. Или PID 65535. Потому, что это всего лишь ID. Самое “страшное”, что с ним можно сделать — использовать в качестве индекса, но поскольку массивы в языках, на которых обычно пишут ОС, и так начинаются с 0, то никто никому ничего не сломает.
А нулевые указатели не используются только в пользовательских приложениях для универсальных ОС, где даже указатель со значением 0x00001234 (т.е. откровенно не 0) легко может привести к трапу. Защита памяти — это несколько больше, чем нулевой указатель. А нулевой указатель — это совсем не обязательно нулевые биты.
Для программ, работающих на голом железе, работа с нулевым указателем — нормальное явление.
Малые потребности в RAM — вовсе никакая не заслуга и не уникальность ОС Qsan. Это естественное свойство любой блочной SAN.