Pull to refresh
2
0
andrey @kekoz

User

Send message

Парень, поинтересуйся на досуге хотя бы характеристиками “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, типа такого...

Привет, коллега. Я вот тоже активно использовал C++ ещё со времён второго Cfront, но то, куда двинулся язык после внедрения шаблонов, меня сначала изрядно тормознуло, а позже и вовсе отвратило от него. Нахожу весьма забавным и показательным тот факт, что А. Степанов глубоко разочарован тем, во что эволюционировал C++ с тех пор, как он создал STL. И немалую роль в этом всём сыграл создатель C++, который из своего тщеславия соглашался практически на всё, что предлагали члены WG (а тут важно понимать, что немалая их часть — вовсе не самостоятельные люди, а лоббисты разных групп, хотелки которых нередко конфликтуют). Ох, не зря Томпсон всю дорогу в AT&T чморил и C++, и самого Страуструпа, чем регулярно вызывал у последнего полыхание пятой точки.

PID 0 ничуть не менее и не более уязвим, чем PID 1. Или PID 65535. Потому, что это всего лишь ID. Самое “страшное”, что с ним можно сделать — использовать в качестве индекса, но поскольку массивы в языках, на которых обычно пишут ОС, и так начинаются с 0, то никто никому ничего не сломает.

А нулевые указатели не используются только в пользовательских приложениях для универсальных ОС, где даже указатель со значением 0x00001234 (т.е. откровенно не 0) легко может привести к трапу. Защита памяти — это несколько больше, чем нулевой указатель. А нулевой указатель — это совсем не обязательно нулевые биты.

Для программ, работающих на голом железе, работа с нулевым указателем — нормальное явление.

внутренняя ОС системы хранения может требовать разный объем ресурсов во время своей работы. Мы не зря ранее говорили о легковесности управляющей ОС Qsan.

Малые потребности в RAM — вовсе никакая не заслуга и не уникальность ОС Qsan. Это естественное свойство любой блочной SAN.

В ближайшие годы от С++ точно не откажутся.

Что-то мне так чувствуется, что “ближайшие годы” — это лет так 15-20 минимум. Больше того, я практически уверен, что в эти “ближайшие годы” и C никуда не умрёт.

Осталось дождаться, когда уже kernel будет всего лишь ещё одним приложением под управлением systemd. Всё к тому катится.

Это была единственная игра, которую я тогда купил, посмотрев демку.

Если RAIDZ воспринимать как alias для RAIDZ1 — да, это 1-disk parity. А если как обобщение разновидностей RAIDZ, то от 1 до 3.

Сложновато ответить на вопрос “что лучше” без уточнения того, что мы подразумеваем под словом “лучше.” Я, например, считаю, что RAIDZ во всём лучше RAID5/6, кроме одного момента — RAM. На моём позапрошлом “тазике” (Thecus) даже с его убогими 256M вполне себе жил RAID5. Ни о какой ZFS с такой памятью даже и речи быть не может. Но при ценах на RAM это сложно считать хоть сколько-нибудь серьёзным недостатком :)

Никакая технология хранения данных (на одном хранилище) не позволит вам спать спокойно за их сохранность. Хочется таки спать спокойно — три копии на физически и географически разнесённых носителях.

В вашем случае я бы использовал два NAS с RAIDZ + LTO. ZFS предоставляет чертовски удобные инструменты для “синхронизировать и проверять” — checkpoints, snapshots, clones, bookmarks, zfs send/receive.

К тому же, фото/видео/музыка архивы выгодно отличаются тем, что на них редко (да никогда практически) что-то меняется, только добавляется.

Практика гласит, что ничего такого на практике не происходит.

Если вероятность какого-либо события равна 0.1, то это вовсе не означает, что в одном из десяти случаев это событие произойдёт. Вероятность означает, что может произойти, а не должно произойти. На практике легко проверить, подбрасывая монетку.

Information

Rating
5,438-th
Location
Россия
Registered
Activity