Pull to refresh
0
0.1
andrey @kekoz

User

Send message

Кодировать видео в H.265 или AV1 ничуть не “более сложная операция”, чем ориентация летательного аппарата в пространстве. Можно хоть на машине Тьюринга считать. Всего шесть команд. Ладно, семь, “стоп” — это тоже команда.

Если бы ты внимательно читал стандарт, ты не писал бы таких глупостей.

Что должно подаваться на вход strlen()? Указатель на строку. Это в мане написано. Что такое строка в С? Массив символов (возможно, пустой), терминированный нулевым символом. Каким образом NULL является указателем на строку? Никаким. Annex J стандарта информирует, что поведение компилятора в таких случаях не определено. А ты ничем не отличаешься от тех суровых сибирских мужиков из анекдота, которые продемонстрировали, что японская лесопилка — отстой, засунув в неё стальной лом.

Отличие оператора := от классического оператора присваивания = заключается в том, что благодаря ему можно присваивать переменным значения внутри выражений.

Странно говорить о том, что “позволяет” при прямо заданном контексте “отличие”. “Как использовать” — это не отличие.

Во-первых, присваивание = — это операция (operator), а не оператор (statement). Разница существенная, если вы задумываетесь о семантике.

Во-вторых, ключевое, принципиальное отличие = от := заключается в том, что операция (operator) := является выражением (expression), а всякое выражение имеет значение (value). Операция = выражением не является, и значения не имеет.

Таким образом, вы можете использовать := везде, где язык требует наличия значения. И это вовсе не деды от Pascal (который сам заимствовал := из Algol) себе на радость притащили в Python, это скорее “давайте ещё функциональщины в язык добавим.” Взгляните на Rust — там практически любой оператор является выражением. Удобно, чёрт побери, присвоить переменной значение цикла или условного оператора let x = if y {a} else {b};

Куда проще завалить того, кто не понимает разницы между оператором и операцией.

Задавать такие вопросы сотруднику МТС (у которого “палки” на публикации) — это почти спросить как пропатчить 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”, переведённому как “печатная плата”, это больше похоже на наспех переработанный автоматизированный перевод довольно поверхностной статьи.

Автор молодец, но всё же ему ещё есть что поизучать. Судя по разбору примера

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” — это скорее не “любители кодирования”, а “кодеры-раздолбаи-бездельники”

Это Э. Дейкстра, «How do we tell truths that might hurt?» © June 18, 1975

Сам не джавист, потому вопрос мой основан исключительно на мнениях моего немногочисленного окружения, имеющего отношение к теме: а сто́ит ли вообще строить такую программу на pure Java, если давным-давно есть Kotlin, про который существует популярное мнение, что это “Та Java, которой она изначально должна была бы быть”? Лучшая Java. чем сама Java, типа такого...

1
23 ...

Information

Rating
3,169-th
Location
Россия
Registered
Activity