Как стать автором
Обновить
2
0.3
andrey @kekoz

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

Отправить сообщение

8 лет назад поехал путешествовать по Европам, и по пути в Петербурге купил Waeco CDF-16. И ни разу с тех времён в нём не разочаровался. А сейчас взглянул на его цену, и порадовался ещё больше :)

Если на клетку с ослом повесить табличку «Слон», в клетке всё равно будет осёл.

Agile-команду нельзя создать. Agile-команда может сформироваться только сама.

Самое смешное в этой фотографии для меня то, что при всей её постановочности — люди, на серьёзных щах втыкающие в центральный пульт (рядом с которым в действительности если и сидели при штатной работе, то так, чтобы она была справа/слева под рукой), товарищи офицеры на не менее серьёзных щах втыкающие в скорее всего какой-то из талмудов от ЭВМ — это осциллограф! Вот он — совсем не постановка. Их реально приходилось практически всегда иметь рядом. Более того, зачастую — с подключенными к какой-нибудь“ноге” щупами.

Помню, мы две недели пытались отловить проблему в таком чудесатом дисплее — ВТА-2000. Всякий раз, когда он глючил, его выключали, вынимали подозреваемый ТЭЗ, устанавливали его на “расшивку”, подключали осциллограф на подозреваемые цепи, включали — он, собака, опять работал как ни в чём ни бывало. В конце концов так и пришлось оставить, категорически запретив увозить осциллограф, дабы поймать гада прямо в момент “совершения преступления.” Таки поймали, подтвердив до кучи известный уже тогда современно выражаясь мем про то, что советские микросхемы (а это была банальная К155ЛА3, 4×2И-НЕ) будут до упора бороться за свою жизнь в реанимации, то умерев, то вновь воскреснув. В отличие от иностранных, которые если подыхали, то сразу и навсегда

Я, конечно, не “в самом начале” начал, а всего лишь в 1978-м, но у нас программисты назывались алгоритмистами, и знание какого-либо языка программирования не было для них сколько-нибудь обязательным. Их деятельность, как легко догадаться, состояла в составлении алгоритмов решения той или иной задачи. И выдавали они их на довольно слабо формализованном языке, для чего лучше всего подошёл бы TeX, но он тогда только-только родился Д. Кнутом, и в СССР был совершенно неизвестен и недоступен. Потому их продукт был больше похож на то, что все делали в школе, расписывая пошагово решение примера по арифметике. И да, преимущественно — мужчины.

А вот переводом их алгоритмов на “понятный” для ЭВМ язык — в моём случае это был Algol-60 и ассемблер (АвтоКод) — занимались кодировщики. Они оформляли это всё на специальных бланках, которые затем передавались в отдел подготовки данных. И да, тоже в основном мужчины.

А вот в отделе подготовки данных уже преобладали женщины. Это было что-то типа работы машинистки — получить тот самый бланк от кодировщика, и скрупулёзно, буковка в буковку, набрать это на упомянутом в статье Консул-254, превратив тем самым код в дырки на перфокартах.

Колода карт отправлялась операторам ЭВМ — тоже в массе своей женщины — которые укладывали их в считыватели и нажимали кнопку. Результат — ошибки компиляции или результаты исполнения программы — печатались и попадали либо кодировщику (если ошибки), либо алгоритмисту (программисту).

С одним таким прямо-таки выдающимся программистом, который не знал ни одного языка программирования, мне довелось поработать почти до середины 90-х. Его программы — немалая доля во всей советской ПРО. Но он — повторюсь — не знал ни одного языка программирования.

тогда совет - не проверять указатель, если он формально может быть нулом - безусловно вредный.

Вопрос для уточнения позиции — могут ли указатели, передаваемые функциям из <string.h>, формально быть NULL?

Потому, что системный вызов write не имеет отношения к языку C. А “Hello world” от Кернигана и Ричи — она именно про язык, частью которого является и стандартная библиотека. Потому и printf.

Я искренне рад за ваше настоящее, в котором всё в ансиблях и даже паппетах, но поверьте — так не только далеко не везде, такое даже не везде можно прикрутить. Как по техническим причинам, так и административно-политическим.

Я работал несколько лет в проекте, где на четверых с половиной программистов было два технических писателя. Половина среди программистов — это один из технических писателей. Да, он участвовал и в разработке.

Первый писал документацию пользователя, и делать это хреново у него просто не было никакой возможности — принимали продукт такие матёрые монстры, что за любой непонятный момент или просто отсутствующий (потому, что “ну, всё же очевидно же!”) спустили бы с него семь шкур, после чего распяли бы и бросили на съедение крокодилам.

А второй, который “половина программиста”, был прежде всего этаким архивариусом — он подшивал в свои талмуды буквально всё, начиная с диаграмм, что мы рисовали на “дейликах”, заканчивая салфетками, на которых во время посиделок рисовалась внезапно пришедшая с очередным тостом идея. Его писательство было предназначено отчасти для самих нас (идея, пришедшая с тостом, могла с утра оказаться безвозвратно или до очередной попойки утерянной), но главным образом для новых программистов, вписывающихся в проект — именно с целью предельно сократить во времени пресловутый “онбординг.” Валерик, привет тебе, ты чертовски крут в этой роли!

Важно заметить — на наличии этих двух должностей жёстко настаивала прежде всего сама команда. И я вполне допускаю, что в большинстве проектов без технических писателей причина их отсутствия — в отсутствии такой вот жёсткой позиции самих разработчиков.

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

На картинке — “выхлоп” tcpdump -ni vmx0 udp port domain. Т.е. выделенное зелёным не является интерпретацией прикладного протокола DNS по-вашему?

А я RCS и сегодня использую, в основном для некоторых конфиг-файлов, Git в простейших, но при этом требующих контроля версий, ситуациях очень уж похож на пушку при охоте на воробьёв, рогатки достаточно :)

mov bl, [esi]: Эта инструкция загружает байт (8 бит), который хранится в регистре esi

Срочно исправьте, это серьёзная ошибка в описании инструкции.

Так lazy commits придуманы были для оптимизации работы системы в целом, а не отдельно взятого приложения. А для оптимизации отдельно взятого приложения придуманы были механизмы фиксации страниц в физической памяти (тот же mlock()). Эти две техники — естественные антагонисты. Первая позволяет программисту не париться, ценой вероятных (но не обязательных, зависит от загрузки системы) потерь времени на обработку page faults, а вторая заставляет париться ручным управлением в угоду производительности конкретного приложения.

Разумный баланс всегда где-то посередине и подразумевает отчётливое понимание этого конфликта, механизмов управления памятью в ОС, и трезвой оценки потребностей разрабатываемого приложения. Проблема как раз в том, что многим начинающим горе-оптимизаторам присуще считать, что именно их приложению требуется постоянная RAM-резидентность, а то, что профайлер покажет, что их оптимизации сэкономили аж целых 200μs при 15 минутах общего рантайма, они не увидят — профайлером пользоваться ещё не научились. Это как раз те случаи, которые Д. Кнут и назвал premature optimizations.

Диагноз “Out of Memory” не имеет отношения к Physical RAM.

Например, если администратор для конкретного юзера/процесса/группы установил лимит в 1GB RAM, то у ОС может быть свободным хоть терабайт физической памяти, но тот юзер/процесс/группа умрёт с диагностикой “Out of Memory.”

Таким образом, то самое “поднятие бабла” и есть самоцель, так же?

Заметьте, я не говорю о том, что разработчик должен сидеть с голой задницей. Срубить бабла с государства — это нормальное стремление огромного числа бизнесов. Я всего лишь о том, что не надо прикрывать задницу пафосными речами за свободный софт, open source, etc. И ещё я о том (в самом первом своём комменте), что Angie (и ещё тысячи “российских” продуктов из известного реестра т.н. “отечественного ПО”) вряд ли бы появился, кабы не принятый закон об импортозамещении (сослагательное наклонение призвано вполне недвусмысленно показать, что я этого не утверждаю, а лишь предполагаю/допускаю).

О, да тут всё куда печальнее, чем представлялось изначально...

Во-первых, ядро Mac OS называется XNU (а не BSD kernel), и архитектурно это Mach (очень далеко от monolitic BSD). Во-вторых, один из пунктов BSD-лицензии прямо говорит — не выдавайте это за своё. Apple подсистему BSD в Mac OS за свою и не выдаёт.

Астра: а что там такое под GNU, где они изменили исходники?

Прежде, чем мы перейдём к обсуждению множества разнообразных деклараций “Русбитеха” об адаптации “Астры” к разным железякам и требованиям, рекомендую хоть сколько-нибудь пристально ознакомиться с обязательствами, налагаемыми GNU GPL на пользователей продуктов под этой лицензией. Для справки: даже менять исходники не обязательно, достаточно просто их использовать, подписавшись тем самым под обязательствами раскрыть исходный код своего “детища” по первому же запросу потребителя.

БЭСМ-6 -- тупиковая машина, как и любая ЭВМ 1 и 2 поколений во всём мире, её всё равно пришлось бы выкинуть на свалку. И дело здесь не в элементной базе, а в архитектуре.

Довольно смелое утверждение :)

Во-первых, БЭСМ-6 лишь из-за элементной базы (транзисторная) может считаться ЭВМ 2-го поколения, а вот по архитектуре — это уже следующее поколение. В ней была реализована куча ништяков, без которых и сегодня не обходится практически ни одна приличная система — конвейерная обработка (предвыбоврка и одновременная выборка команд с операндами), кэш (сверхоперативная память), MMU с виртуальной памятью и защитой, режим супервизора (пресловутые “кольца защиты”), развитая система прерываний, etm.

Во-вторых, на свалку всё придётся выбросить рано или поздно.

И в-третьих, шутка “System/360 — самая успешная диверсия США против СССР” не такая уж и шутка получается, раз в результате нас в XXI веке хватает разве что на «Байкал» (и тот ARM).

А я, признаться, никаких особо положительных эмоций, вспоминая ЕС ЭВМ, не испытываю. Вероятно, по причине того, что старт мой состоялся на БЭСМ-6 (точнее, её военной “сестре” 5Э51), потом появились ЕС (и это было “не то”, несмотря на множественные плюсы, и к тому же часто простаивали по причине неисправностей), а потом я влюбился в М/6000 (HP) и СМ-4 (DEC).

Буду честен: появление Angie я с самого начала однозначно увязывал с желанием “поднять бабла” на импортозамещении.

И буду честен до конца: интервью не убедило меня в том, что я ошибся в первом предположении.

Для начала: вы себе плохо представляете, что такое XNU, Mac OS и BSD. Откройте хотя бы документацию разработчика Mac OS и почитайте там самое начало главы про BSD-подсистему.

И для продолжения: даже если бы всё обстояло так, как вы себе представляете, лицензия BSD это не запрещает.

А теперь попробуйте затребовать исходники изменений, внесённых в Astra (и которые они обязаны в соблюдение условий лицензии GNU предоставить).

Рискну предположить, что вы читали такую же фантазийную чушь, как и та, что я отметил в предыдущем комментарии. У программиста в СССР была такая же позиция “инженер”, как и у всех других инженеров. В “совке” не было “низкооплачиваемых инженеров”, мы все были простыми советскими нищебродами на одинаковых ±10₽ окладах :)

В “совке” мне не довелось столкнуться ни с одной женщиной на должности программиста, про которую я хотел бы сказать “Это — Программист!” И даже мой первый преподаватель программирования — женщина, была не из их числа. Она была средненьким таким инженером-математиком, которая просто знала Algol-60, и потому её отрядили преподавать, чтобы в НИИ не мешалась, там и так полно таких же посредственностей.

А женщин-программистов, про которых я подумал “Это — Программист!” я встретил только спустя годы после развала “совка”.Аж двух :)

И важная ремарка: выше речь идёт про встретил! Не про знал/читал, а про личное знакомство. Знал/читал конечно же существенно больше, но встретиться с ними не доводилось. Сейчас вот твиттер помогает лично общаться с такими, и их довольно много.

1
23 ...

Информация

В рейтинге
1 801-й
Откуда
Россия
Зарегистрирован
Активность