Pull to refresh
59
0.3
Alexander @speshuric

Пользователь

Send message

Наверное можно было. Но это же надо было их искать.

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

В 2001-м году я менял в одном офисе коаксиал на utp 100 Мбит. Это был совсем небольшой офис, свитч был то ли 8, то ли 16 дырок. После замены осталась кучка коаксиала и платы. Руководитель офиса спросил, что можно сделать с этим, думая, что может куда-то продать. Пришлось его расстроить, сказав, что максимум на что это годится - отдать детям, соединить компы в соседних квартирах, чтобы в квейк по сети играть, а через годик-другой выкинуть окончательно.

Так я как раз про то, что нет таких максималистских по-детски правил, что "всегда синтетика" или "естественный ключ есть? а если найду?". Более того, догматичность тоже не догма: иногда отход от догм позволяет увидеть крутое решение, иногда приводит к винегрету решений.

Как-то бессмысленно дискутировать с переводом, но таки напишу. Синтетические ключи - неплохой (часто лучший) выбор для сущностей, т.е. строк, в БД обладающих идентичностью. 2 человека - как ни меняй их имена, пол, дату рождения и паспорт всё равно остаются двумя разными людьми. Используйте синтетический ключ.
Если же запись таблицы не является сущностью или её сущность полностью описывается естественным ключом, то синтетический ключ только поломает всё.
Примеры, когда сущность полностью описывается ключом: таблица недействительных паспортов, таблица праздничных дней (часто любой календарь).
Примеры, когда запись таблицы не является сущностью: отношения многие ко многим (там просто составной ключ родительских таблиц какие бы они ни были).

Плюс есть гора особых случаев. Не всё сводится к классическим справочникам и OLTP. Есть и time-series и OLAP, и куча того, что вообще отвратительно в таблицы ложится.

Смотрите. Рассмотрим простой-простой "uFP8" тип беззнаковый и 8-битный. 4 бита на порядок, 4 на экспоненту. Забудем о NaN, Inf и нормализацию и уникальность нуля. Будем считать, что экспонента всегда положительная. Будем считать, что старший бит мантиссы соответствует 1*2^exp, где exp это порядок. Упрощений много, но на самом деле они почти не влияют на конечную картину. Т.е. у нас есть 0 (0000-0000, где первые 4 бита порядок, потом мантисса) и числа от 1/8 (0000-0001) до 15*2^15=491520 (1111-1111).
При этом из-за отсутствия нормализации некоторые числа имеют несколько представлений. Например, 4 может быть представлено как 0010-1000 или как 0011-0100 или как 0100-0010 или как 0101-0001.
Теперь будем раскладывать наше uFP8 число, например 1280 (1010-1010) на 4-битные непересекающиеся компоненты:

Для примера, самое маленькое число:
 0000-0001     xxxxxxxxxxxxxxx0001 - это 1/8, на местах x неявные нулевые биты
Самое большое число:
 1111-1111     1111xxxxxxxxxxxxxxx - это 15*2^15=491520, на местах x неявные нулевые биты

Наше число:
 1010-1010     xxxxx1010xxxxxxxxxx

порядок       мантисса
 0000                         0000
 0100                     0000
 1000                 1000
 1100             0010
10000         x000                 - тут на месте x всегда неявный 0

Таким образом мы каждое наше исходное число можем разложить в 4 числа по 4 бита и одно по 3, т.е. в 19 бит.
Технически (для управления переполнениями при сложении), наверное чуть удобнее раскладывать в 4 пятибитовых числа и 1 четырёхбитовое - 24 бита суммарно. Но это непринципиально. Ну и да, раскладка сожрёт несколько тактов.
Аналогично, но с учетом других размеров, знака, NaN, Inf и нормализации можно раскладывать и FP32/FP64.

Другой способ заключается в хранении большого буфера целых чисел...
Этот способ требует времени 𝑂(𝑛), но использует большой, хотя и константный объём памяти (≈≈ 1 КБ в случае f32, ≈≈ 16 КБ в случае f64).

Это неправильная оценка. В f32 8 бит экспонента (порядок) и 23 мантисса. Итого достаточно 279 бит. Не то чтобы много, но никаких килобайт не надо. Это 9 32-битных чисел, 5 64-битных или 3 128-битных xmm регистра. В f64 11 бит порядок и 52 мантисса. 66 32-битных, 33 64-битных, 17 128-битных чисел.Опять же - ужас, но не ужас-ужас.
Другой вопрос, что по ним распихивать слагаемые неудобно (навскидку - 5-10 тактов запросто уйдёт).

А есть замер?

Виктимблейминг в современном обществе не одобряется и считается практически неприличным, и не должен проявляться ни в отношениях в быту, ни в воспитании детей, ни в руководстве коллективом. Можно было придумать более удачные примеры с взятием ответственности, но то что у вас есть именно этот пример - это может быть одним из "красных флажков" (не единственным) для того, кто знакомится с вашим "контрактом".
По ситуации:

  • 200 метров это очень странная дистанция для примера. Это 2 футбольных поля в длину, ГУМ на красной площади 250 метров в длину. Вечером в темноте "почти без фонарей" на этом расстоянии я не знаю что можно достоверно разглядеть.

  • Антагонистов вашей истории корректнее называть не "пацанчики", а "преступники". Причём скорее всего они по сценарию совершают тяжкое преступление (грабёж или разбой группой лиц).

  • Мой жизненный опыт мне также подсказывает, что подобные ограбления слабо зависят от освещённости, нередко происходят буквально в 20-30 метрах от других людей, и что в реальной ситуации нормальный неподготовленный человек не успевает уйти от тех, кто целенаправленно готов пойти на тяжкое преступление.

Еще к собеседованиям я бы добавил, что надо учитывать при выборе не только компанию, но и конкретную команду. В любой компании, где больше 50-100 разработчиков скорее всего есть сильно разные команды. С разным стеком, разным руководителем, разной культурой и традициями. Особенно это касается больших компаний - там отзывы сотрудников о работодателе могут быть противоположными и при этом объективными.

Скриптом на VBS, который не хотел уходить на пенсию :)

Одновременно с выпуском Intel Xeon Athlon

Часто пользуюсь посмотреть простые случаи и в качестве демо. В сложных всё равно лучше локально разгребать, но для простых - отлично подходит.

Или поглотят как Mono

И обязательно Tear Tier - "мы не хотели, но оно появилось и есть" :)

Да просто в статье всё верно написано, но есть разделы "Что делать с ...", А, собственно, какой смысл делать, если блокировки не должно было быть в принципе. Только поэтому и прокомментировал.

Теперь пора спуститься ещё глубже в пользовательской области. COM, ActiveX — не бросает ли вас в дрожь при упоминании этих сущностей?

Да ладно, они же такие милые и уютные IUnknown и IDispatch, компилятор MIDL, OLE,

Стоит сказать, что первым делом имеет смысл проверить, использует ли 1С RCSI. Сейчас в 2024 году уже осталось очень мало систем, где не включен RCSI, но всё же.

Интересно читать такую статью в блоге провайдера хостинга.

Если он в отдельной песочнице, то пусть в своей песочнице переделывает секции хоть каждый день :) Другое дело, что именно эта оптимизация будет уж совсем бесполезна и ничего он не наоптимизирует, но именно это и вызывает удивление в статье.

1
23 ...

Information

Rating
2,017-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity