Для меня одна из загадок мироздания - это что делают железячники в темах про SOLID
Читают, изучают практики, применяемые в смежной для них области и немного делятся своим опытом.
Разве вам не интересно было бы узнать, как на уровне схемотехники работает контроллер памяти или MAC-ядро Ethernet? И почему там в первую очередь идет борьба за мегагерцы и попытки выжать каждый такт, чтобы железо работало на все 100 процентов?
Думаю, что программистам было бы крайне непросто работать и писать код, если бы после обращения к RAM ответ от неё приходил бы только через секунду, но зато всё по солиду было бы сделано)
Я не знаю, что там у всяких питонистов или железячников
За всех железячников сказать не могу, только про себя и свой опыт могу. На первом месте чаще всего быстродействие, то есть необходимость выполнения требований по частотам. Толку нет от красивого кода, если он разводится максимум на 50 МГц, а в требованиях - 150 МГц. Второе место - это экономия блочной памяти. Её обычно не так много и бездумно транжирить ёё не стоит. Ну а SOLID? Нет у нас никакого солида. И ООП у нас тоже нет)
Так ведь взаимодействие операционки с железом - это одна из основных вещей. А это часть уже 30 лет без изменений выходит. Что тогда они меняют в Винде от версии к версии? Цвет теней и форму окошек?
Почему у меня вообще такой вопрос возник. Пытался установить Стимовский клиент на Семерке - не дает. Ставится только на Десятку. Но если подумать, то этому клиенту кроме сети ничего и не нужно. А работа с сетью не менялась уже лет двадцать как. В чем подвох то?
Интересно, если посмотреть диспетчер устройств в Win2000. То как мне помнится, он ничем принципиально не отличается от современных в Win10/11. Или какие-то принципиальные отличия всё же есть?
но танчики - и любая другая онлайн игра, которую нельзя в любую секунду поставить на паузу - зашквар конечно. Мог бы просто кино смотреть, например, или книжку читать. А играть - так в пасьянс или шахматы, которые не "выключают" из реальности.
Так ведь всё автоматизировано. Когда реактор вышел и стоит на мощности, то оператор не нужен. Если отключится автомат или возникнет ПЗ/АЗ, то звонок будет громко-громко звенеть. Оператор услышит. А когда всё хорошо, то пусть он сидит где-нить в углу и не лезет куда не надо)
Странное решение - на важном объекте оператор смотрит не на панель управления, а пялится в танчики.Чтобы не было скучно - существуют регламенты обхода/осмотра и пр., в машзале скучать особо некогда.
Когда реактор на мощности, то в реакторный зал лучше не заходить. Гамма и тепловые нейтроны не очень полезны для здоровья)
На самом деле там чуть хитрее всё. Система делится условно на две части: управления/защиты, и информационную. Датчик относился к информационной. То есть если он сбойнул, то работать можно - некритичный отказ это. Просто информации о положении рабочего органа нет, что в ручном режиме неудобно.
Проектирование там вообще очень грамотное. ТЗ на сотни страниц - это только на систему управления и защиты (СУЗ). Очень много всего предусмотрено.
p.s. Мне кажется, именно на том реакторы был забавный случай. Когда в какой-то момент вся информационная система из-за сбоя в базе данных отключилась. Все мониторы погасли. И у персонала не было почти никакой информации о реакторе. Но при этом система управления и защиты продолжала нормально работать, без каких-либо сбоев.
Что, как и когда - это конечно же всё описано. В РФ существуют "Правила ядерной безопасности" (ПБЯ). Это официальный документ, отступать от него нельзя (на самом деле можно, но нужны обоснования и подписи ответственных лиц).
Но жизнь то гораздо интересный и многогранней, чем какие-то документы...
Была реальная история на исследовательском реакторе в одной дружественной стране. Сам лично не видел, но участников знаю. По какой-то причине вышел из строя датчик положения одного из компенсирующих стержней (КС). Датчик заменили. Но чтобы новый датчик стал показывать правильное положение, его нужно было 'обучить'. Для этого необходимо прогнать соответствующий КС по всей его рабочей длине - от верхнего концевика до нижнего и обратно. Но реактор был на мощности. А перемещение КС - приводит к изменению реактивности и уменьшению или увеличению мощности реактора (а еще и периода). Для парирования этого изменения нужно одновременно перемещать другой компенсирующий стержень в противоположную сторону. Само-собой, на работающем реакторе никакими правилами такое не разрешается.
Но глушить реактор нельзя. Там утвержденный высоким начальством план работ, сроки, контракты и тому подобное. И вот, один из грамотных инженеров решился на такую операцию. Гонял одновременно два стержня - один вверх, второй вниз. Там еще есть так называемый стержень - авторегулятор. Так от этих действий он летал как сумасшедший! Пытался автоматически мощность регулировать, но не мог, не предназначен он для такого безобразия) И еще нельзя было допустить, чтобы этот авторегулятор сел на нижний концевик. На том реакторе это АЗ. Несколько раз срабатывала предупредительная сигнализация. Но в итоге всё нормально, датчик обучили, АЗ не словили, контракты выполнили
Само собой. Только это должно быть нарушением служебной инструкции по ТБ, после которого его уволят, посадят и расстреляют выставят миллионный штраф.
Человеческий фактор, от него никуда не деться. Кстати, сам наблюдал такую вещь: пульт управления реактором, у оператора стоит отдельный компьютер с выход в интернет и танками. Сделано это для того, чтобы он от скуки не полез реактором управлять. Пусть лучше в танки играет)
А можно поподробней? Как это сделать легально?
Сымитировать датчики? Конечно можно, на испытаниях так и делается. Например для температуры, вместо сигнала от датчика подается ток от тестового источника. А для аппаратуры контроля мощности подаются импульсы от тестового генератора
p.s. Более того, в методике испытаний описывается что и как нужно имитировать, и какие сигналы в каком порядке подавать.
Я бы сказал, что это тоже несовершенство конструкции. Защитные системы в таких делах должны быть неотключаемыми.
В общем-то так и стараются делать. Вводят различный контроль исправности, тестовые сигналы, контроль обрыва, мажоритарное голосование. Но если человек захочет отключить защиту, то он это сделает. В этом плане, слабое место - это связь первичного датчика с контролирующей аппаратурой. Всегда можно как-нибудь этот датчик сымитировать, 'сказать' аппаратуре, что всё в норме.
Этот путь - согласно ГК РФ. В статье 859 прописано что как и в какие сроки. То есть это наши действия строго согласно закону. Тбанк, как и любой другой банк, обязан соблюдать ГК РФ.
Возможно, есть вариант перевести деньги не по закрытию счета, а письмом в банк с платежным поручением. Но это надо смотреть законодательную и нормативную базу. Мне было в тот момент лень. Выбрал самый простой для меня вариант решения проблемы заблокированной карты.
Есть один быстрый и эффективный способ разблокировать карту Тбанка. Для тех кто живет в Москве. Не нужно тратить время на общение с техподдержкой, никаких курьеров и видео звонков. Пишется заявление на закрытие счета, примерно в таком виде:
Заявление о расторжении договора банковского счета
1. Я, ФИО, на основании пункта 1 статьи 859 Гражданского Кодекса Российской Федерации (ГК РФ) требую от Акционерного Общества "ТБанк" расторгнуть договор банковского счета.
Номер расторгаемого договора банковского счета: №______ .
Номер счета в Акционерном Обществе "ТБанк": №______ .
2. Согласно пункту 5 статьи 859 ГК РФ, остаток денежных средств находящихся на счете №_______ , прошу перечислить по указанным реквизитам:
<Указываете реквизиты>
С этим заявлением идете в офис Тбанка, который на Дмитровке (хотя, офисом назвать этот закуток 5 на 5 метров очень сложно). Один экземпляр сотруднику банка, второй - себе. На втором экземпляре - печать, дата, должность и подпись сотрудника.
На следующий день карта разблокируется. Проверено.
Тем кто не в Москве - сложнее. Можно отправить заявления заказным письмом. Но будет дольше.
P.S. В шапке заявления надо указать свои паспортные данные, адрес и контактный телефон, дабы соблюсти все формальности.
Для тех, кто особо дискретную логику не застал: 74HC595 — микросхема сдвигового регистра. Статей о принципах его работы можно найти много в интернете, но по сути это просто последовательно соединённые CT-триггеры:
Каждый раз, когда тактовый сигнал переходит в состояние лог. 1, седьмой триггер «забирает» бит, который был в шестом. Шестой забирает оный же у пятого, и так далее. Бит же со входа микросхемы «сохраняется» в нулевом триггере.
Вот эти места нужно уточнить. В даташите на 74HC595 описаны классические D-триггеры, работающие по фронту тактового сигнала. Не по уровню. Это принципиальная разница. Для тактового сигнала важен не сам логический уровень, а переход от логического нуля к логической единице.
А вот к выходам Q каждого триггера в параллель как раз подключена защелка (точнее защелка и вход D следующего триггера), с выхода которой можно брать сигнал. Там еще дополнительно есть общий вход разрешения для выходов защелок.
В общем, устройство микросхемы лучше всегда смотреть в даташите. Доверять сторонним сайтам не стоит
Я больше как железячник, могу не до конца понимать особенности разработки софта. Вопросы я задал, потому как мне не ясно отличие Продакт Овнера от Проджект Менеджера. В моей области это всегда один человек - Руководитель проекта. Зачастую, он же и Главный конструктор. Почему при разработке софта это разные люди? Какой в этом смысл?
Если обобщить, то на проекте есть технический руководитель - тот кто отвечает за техническую часть проекта. Есть административный руководитель - тот кто отвечает за выделение материальных ресурсов. То есть например, если не работает железо - спрашивают с технического руководителя. Если не были закуплены комплектующие - спрашивают с административного.
Владелец продукта несёт ответственность за достижение максимальной ценности продукта как результата работы команды. И добивается он этого при помощи Scrum — фреймворка гибкой разработки программного обеспечения.
Вот по этому пункту несколько вопросов возникло.
1.Кто определяет достижение ценности?
2. По каким критериям определяется, что достигнутая ценность максимальна?
3. И в чем заключается ответственность - материальная, административная или какая-то другая?
С IcarusVerilog никогда не работал, про него ничего сказать не могу. Но вот про GtkWave, моё личное мнение, по сравнению с ModelSim, GtkWave - это студенческая поделка. Когда с ним работаю - плююсь.
Моделсим конечно тоже не идеален - бывают вылеты, вкладка Memory глючная (про неё планирую в следующей статье). Но Моделсим поддерживает Verilog и VHDL, и имеет огромный функционал. Также у него есть и бесплатные версии. Раньше у Альтеры точно можно было скачать с сайта Modelsim Altera-edition.
Есть еще и старший брат - QuestaSim. Я с ней работал немного, но все скрипты из Моделсима в Квесте у меня запускались.
Читают, изучают практики, применяемые в смежной для них области и немного делятся своим опытом.
Разве вам не интересно было бы узнать, как на уровне схемотехники работает контроллер памяти или MAC-ядро Ethernet? И почему там в первую очередь идет борьба за мегагерцы и попытки выжать каждый такт, чтобы железо работало на все 100 процентов?
Думаю, что программистам было бы крайне непросто работать и писать код, если бы после обращения к RAM ответ от неё приходил бы только через секунду, но зато всё по солиду было бы сделано)
За всех железячников сказать не могу, только про себя и свой опыт могу. На первом месте чаще всего быстродействие, то есть необходимость выполнения требований по частотам. Толку нет от красивого кода, если он разводится максимум на 50 МГц, а в требованиях - 150 МГц. Второе место - это экономия блочной памяти. Её обычно не так много и бездумно транжирить ёё не стоит. Ну а SOLID? Нет у нас никакого солида. И ООП у нас тоже нет)
Так ведь взаимодействие операционки с железом - это одна из основных вещей. А это часть уже 30 лет без изменений выходит. Что тогда они меняют в Винде от версии к версии? Цвет теней и форму окошек?
Почему у меня вообще такой вопрос возник. Пытался установить Стимовский клиент на Семерке - не дает. Ставится только на Десятку. Но если подумать, то этому клиенту кроме сети ничего и не нужно. А работа с сетью не менялась уже лет двадцать как. В чем подвох то?
И вот еще ради интереса - настройки сети для Win7 и Win10:
Здесь вообще никакой разницы, что в Семерке, что в Десятке. Даже расположение кнопок одинаковое. Только окошки закруглены по-разному.
И у меня возникло такое ощущение, что со времен Win2000, принцип работы с сетью вообще не менялся. Может быть даже и код не переписывался.
Диспетчер устройств в Win7 и Win10:
Мне кажется, что каких-то принципиальных изменений нет
Интересно, если посмотреть диспетчер устройств в Win2000. То как мне помнится, он ничем принципиально не отличается от современных в Win10/11. Или какие-то принципиальные отличия всё же есть?
Так ведь всё автоматизировано. Когда реактор вышел и стоит на мощности, то оператор не нужен. Если отключится автомат или возникнет ПЗ/АЗ, то звонок будет громко-громко звенеть. Оператор услышит. А когда всё хорошо, то пусть он сидит где-нить в углу и не лезет куда не надо)
Когда реактор на мощности, то в реакторный зал лучше не заходить. Гамма и тепловые нейтроны не очень полезны для здоровья)
На самом деле там чуть хитрее всё. Система делится условно на две части: управления/защиты, и информационную. Датчик относился к информационной. То есть если он сбойнул, то работать можно - некритичный отказ это. Просто информации о положении рабочего органа нет, что в ручном режиме неудобно.
Проектирование там вообще очень грамотное. ТЗ на сотни страниц - это только на систему управления и защиты (СУЗ). Очень много всего предусмотрено.
p.s. Мне кажется, именно на том реакторы был забавный случай. Когда в какой-то момент вся информационная система из-за сбоя в базе данных отключилась. Все мониторы погасли. И у персонала не было почти никакой информации о реакторе. Но при этом система управления и защиты продолжала нормально работать, без каких-либо сбоев.
Что, как и когда - это конечно же всё описано. В РФ существуют "Правила ядерной безопасности" (ПБЯ). Это официальный документ, отступать от него нельзя (на самом деле можно, но нужны обоснования и подписи ответственных лиц).
Но жизнь то гораздо интересный и многогранней, чем какие-то документы...
Была реальная история на исследовательском реакторе в одной дружественной стране. Сам лично не видел, но участников знаю. По какой-то причине вышел из строя датчик положения одного из компенсирующих стержней (КС). Датчик заменили. Но чтобы новый датчик стал показывать правильное положение, его нужно было 'обучить'. Для этого необходимо прогнать соответствующий КС по всей его рабочей длине - от верхнего концевика до нижнего и обратно. Но реактор был на мощности. А перемещение КС - приводит к изменению реактивности и уменьшению или увеличению мощности реактора (а еще и периода). Для парирования этого изменения нужно одновременно перемещать другой компенсирующий стержень в противоположную сторону. Само-собой, на работающем реакторе никакими правилами такое не разрешается.
Но глушить реактор нельзя. Там утвержденный высоким начальством план работ, сроки, контракты и тому подобное. И вот, один из грамотных инженеров решился на такую операцию. Гонял одновременно два стержня - один вверх, второй вниз. Там еще есть так называемый стержень - авторегулятор. Так от этих действий он летал как сумасшедший! Пытался автоматически мощность регулировать, но не мог, не предназначен он для такого безобразия) И еще нельзя было допустить, чтобы этот авторегулятор сел на нижний концевик. На том реакторе это АЗ. Несколько раз срабатывала предупредительная сигнализация. Но в итоге всё нормально, датчик обучили, АЗ не словили, контракты выполнили
:)
Человеческий фактор, от него никуда не деться. Кстати, сам наблюдал такую вещь: пульт управления реактором, у оператора стоит отдельный компьютер с выход в интернет и танками. Сделано это для того, чтобы он от скуки не полез реактором управлять. Пусть лучше в танки играет)
Сымитировать датчики? Конечно можно, на испытаниях так и делается. Например для температуры, вместо сигнала от датчика подается ток от тестового источника. А для аппаратуры контроля мощности подаются импульсы от тестового генератора
p.s. Более того, в методике испытаний описывается что и как нужно имитировать, и какие сигналы в каком порядке подавать.
В общем-то так и стараются делать. Вводят различный контроль исправности, тестовые сигналы, контроль обрыва, мажоритарное голосование. Но если человек захочет отключить защиту, то он это сделает. В этом плане, слабое место - это связь первичного датчика с контролирующей аппаратурой. Всегда можно как-нибудь этот датчик сымитировать, 'сказать' аппаратуре, что всё в норме.
Этот путь - согласно ГК РФ. В статье 859 прописано что как и в какие сроки. То есть это наши действия строго согласно закону. Тбанк, как и любой другой банк, обязан соблюдать ГК РФ.
Возможно, есть вариант перевести деньги не по закрытию счета, а письмом в банк с платежным поручением. Но это надо смотреть законодательную и нормативную базу. Мне было в тот момент лень. Выбрал самый простой для меня вариант решения проблемы заблокированной карты.
Есть один быстрый и эффективный способ разблокировать карту Тбанка. Для тех кто живет в Москве. Не нужно тратить время на общение с техподдержкой, никаких курьеров и видео звонков. Пишется заявление на закрытие счета, примерно в таком виде:
С этим заявлением идете в офис Тбанка, который на Дмитровке (хотя, офисом назвать этот закуток 5 на 5 метров очень сложно). Один экземпляр сотруднику банка, второй - себе. На втором экземпляре - печать, дата, должность и подпись сотрудника.
На следующий день карта разблокируется. Проверено.
Тем кто не в Москве - сложнее. Можно отправить заявления заказным письмом. Но будет дольше.
P.S. В шапке заявления надо указать свои паспортные данные, адрес и контактный телефон, дабы соблюсти все формальности.
Вот эти места нужно уточнить. В даташите на 74HC595 описаны классические D-триггеры, работающие по фронту тактового сигнала. Не по уровню. Это принципиальная разница. Для тактового сигнала важен не сам логический уровень, а переход от логического нуля к логической единице.
А вот к выходам Q каждого триггера в параллель как раз подключена защелка (точнее защелка и вход D следующего триггера), с выхода которой можно брать сигнал. Там еще дополнительно есть общий вход разрешения для выходов защелок.
В общем, устройство микросхемы лучше всегда смотреть в даташите. Доверять сторонним сайтам не стоит
Я больше как железячник, могу не до конца понимать особенности разработки софта. Вопросы я задал, потому как мне не ясно отличие Продакт Овнера от Проджект Менеджера. В моей области это всегда один человек - Руководитель проекта. Зачастую, он же и Главный конструктор. Почему при разработке софта это разные люди? Какой в этом смысл?
Если обобщить, то на проекте есть технический руководитель - тот кто отвечает за техническую часть проекта. Есть административный руководитель - тот кто отвечает за выделение материальных ресурсов. То есть например, если не работает железо - спрашивают с технического руководителя. Если не были закуплены комплектующие - спрашивают с административного.
Зачем еще кто-то нужен?
Вот по этому пункту несколько вопросов возникло.
1.Кто определяет достижение ценности?
2. По каким критериям определяется, что достигнутая ценность максимальна?
3. И в чем заключается ответственность - материальная, административная или какая-то другая?
Холивар разводить не будем, у каждого свой опыт. Но вот по мне, работу с GtkWave можно описать так:
За неимением горничной - имеют дворника)
ModelSim содержит значительно больший и гораздо более удобный функционал, работать с ним приятней, имхо.
С IcarusVerilog никогда не работал, про него ничего сказать не могу. Но вот про GtkWave, моё личное мнение, по сравнению с ModelSim, GtkWave - это студенческая поделка. Когда с ним работаю - плююсь.
Моделсим конечно тоже не идеален - бывают вылеты, вкладка Memory глючная (про неё планирую в следующей статье). Но Моделсим поддерживает Verilog и VHDL, и имеет огромный функционал. Также у него есть и бесплатные версии. Раньше у Альтеры точно можно было скачать с сайта Modelsim Altera-edition.
Есть еще и старший брат - QuestaSim. Я с ней работал немного, но все скрипты из Моделсима в Квесте у меня запускались.