import hashlib
def get_md5_hash(str):
return hashlib.md5(str.encode()).hexdigest()
s1 = input()
s2 = input()
if s1 != s2:
h1 = get_md5_hash(s1)
h2 = get_md5_hash(s2)
if h1 == h2:
print(1)
else:
print(0)
Сегодня у нас python. Давайте подумаем над выводом программы 👇
Подсказка, если не знакомы с python:
👍2
Может ли программа выше при корректной работе вывести на экран "1"?
Anonymous Quiz
62%
Может
38%
Не может
Баг в операционной
В 2020-2021 годах я участвовал в испытаниях софта по диагностике аномалий сердечного ритма. Испытания проводились во время реальных операций на сердце.
На пациента крепилось 200+ датчиков, с которых в наш софт передавалась электрокардиограмма (ЭКГ). Софт в режиме реального времени решал обратную задачу и восстанавливал картину возмущений на сердце. Это должно было в моменте помочь кардиохирургу уточнить план работ.
Процесс испытаний был довольно утомительный. Пот стекал градом из-за увесистого свинцового халата с тяжелым ошейником, прикрывающими щитовидку. Операционная практически все время находилась под рентгеновским излучением. Дело в том, что манипуляции проводились на закрытом сердце, а рентген нужен был, чтобы хирург мог видеть "сквозь" грудную клетку.
Но ближе к делу. Точнее, к багу. На одном из испытаний проверялось автоотключение датчиков с плохим сигналом. И в самом начале операции я понял, что эта штука не работает. Датчики перманентно выдают шумы, на которые система реагирует и блокирует свою работу. Пациент дышит, команда что-то двигает - помехи идут постоянно. Ок, фиксирую несоответствие и отключаю эту систему, чтобы продолжить план испытаний. Но не тут то было. Она не отключается!
С этого момента я напрочь забыл про операцию. В самом начале испытаний мы остановились и не могли продолжить. Перезагружаю все подряд, чищу все, что можно - не помогает. Стейкхолдер начинает нервничать: организовать испытания сложно и дорого, вот так сливаться нельзя.
Я вышел из операционной, достал ноутбук и быстро нашел в коде проблему. Глупая, элементарная ошибка, которую я сам занес и ни разу не проверил... Собрать новый дистрибутив не получалось. Чего-то не хватало, уже не помню. Оставался вариант подключиться к офису и собрать там. Но в операционной не было связи. Вынес планшет в "предбанник", раздал интернет, подключился, исправил и собрал комплект. До начала второй операции успел все выкачать и развернуть на рабочей станции... Выдохнул.
В тот день план испытаний был выполнен. Счастливая случайность: буквально накануне я приобрел сим-карту с безлимитным интернетом. На всякий случай, который оказался не всяким, а решающим.
Какой вывод? Ко всем натурным испытаниям нужно готовиться, проигрывать их заранее. Ирония в том, что до операции все было пройдено и отрепетировано несколько раз. Просто был не учтен один конкретный случай, который выстрелил и сразил наповал.
Мало найти очевидное. Научиться бы видеть невероятное.
—
Читать еще:
- О рентгеновских лучах
- Протезирование сердечных клапанов: взгляд из 1985 года
В 2020-2021 годах я участвовал в испытаниях софта по диагностике аномалий сердечного ритма. Испытания проводились во время реальных операций на сердце.
На пациента крепилось 200+ датчиков, с которых в наш софт передавалась электрокардиограмма (ЭКГ). Софт в режиме реального времени решал обратную задачу и восстанавливал картину возмущений на сердце. Это должно было в моменте помочь кардиохирургу уточнить план работ.
Процесс испытаний был довольно утомительный. Пот стекал градом из-за увесистого свинцового халата с тяжелым ошейником, прикрывающими щитовидку. Операционная практически все время находилась под рентгеновским излучением. Дело в том, что манипуляции проводились на закрытом сердце, а рентген нужен был, чтобы хирург мог видеть "сквозь" грудную клетку.
Но ближе к делу. Точнее, к багу. На одном из испытаний проверялось автоотключение датчиков с плохим сигналом. И в самом начале операции я понял, что эта штука не работает. Датчики перманентно выдают шумы, на которые система реагирует и блокирует свою работу. Пациент дышит, команда что-то двигает - помехи идут постоянно. Ок, фиксирую несоответствие и отключаю эту систему, чтобы продолжить план испытаний. Но не тут то было. Она не отключается!
С этого момента я напрочь забыл про операцию. В самом начале испытаний мы остановились и не могли продолжить. Перезагружаю все подряд, чищу все, что можно - не помогает. Стейкхолдер начинает нервничать: организовать испытания сложно и дорого, вот так сливаться нельзя.
Я вышел из операционной, достал ноутбук и быстро нашел в коде проблему. Глупая, элементарная ошибка, которую я сам занес и ни разу не проверил... Собрать новый дистрибутив не получалось. Чего-то не хватало, уже не помню. Оставался вариант подключиться к офису и собрать там. Но в операционной не было связи. Вынес планшет в "предбанник", раздал интернет, подключился, исправил и собрал комплект. До начала второй операции успел все выкачать и развернуть на рабочей станции... Выдохнул.
В тот день план испытаний был выполнен. Счастливая случайность: буквально накануне я приобрел сим-карту с безлимитным интернетом. На всякий случай, который оказался не всяким, а решающим.
Какой вывод? Ко всем натурным испытаниям нужно готовиться, проигрывать их заранее. Ирония в том, что до операции все было пройдено и отрепетировано несколько раз. Просто был не учтен один конкретный случай, который выстрелил и сразил наповал.
Мало найти очевидное. Научиться бы видеть невероятное.
—
Читать еще:
- О рентгеновских лучах
- Протезирование сердечных клапанов: взгляд из 1985 года
🤯4👍3
🙏4❤2🙉2
Объект или предмет исследования
Пишу статью по научной части и снова работаю с понятиями объекта и предмета исследования, которые всегда путал.
Нет, ну реально, "объект" и "предмет" звучат как одно и то же. Я же вижу на столе "объект", но его же могу назвать "предметом".
Позже, изучая статьи по писательству, я выделил ключевую мысль: важно ограничивать тезисы, которые мы хотим донести до читателя. Не стоит распыляться, иначе читатель увязнет в тексте и ничего не поймет.
Как раз на этом моменте и всплыли те самые "объект" и "предмет". Оказывается, они задают рамки. Это, собственно, видно из определений.
Объект исследования - это широкая область, процесс или явление, которое изучается в работе.
Предмет исследования - это его конкретная, узкая часть, аспект, свойства, которые непосредственно рассматриваются и анализируются.
То есть объект шире предмета, а предмет - это часть объекта исследования.
Например:
- Объект исследования: Разработка приложения заказа еды.
- Предмет исследования: Алгоритм рекомендации блюд на основе истории заказов.
Понятно, что в исследованиях нам всегда хочется рассказать обо всем интересном. Но только встав в определенные рамки, получится донести мысль качественно.
Сохраняйте, кому предстоит защита работы в ВУЗе)
—
А вы как, работали уже с этими понятиями?
👍 - Ага
😁 - Неа
🤔 - Видимо, предстоит
#Словарь
Пишу статью по научной части и снова работаю с понятиями объекта и предмета исследования, которые всегда путал.
Нет, ну реально, "объект" и "предмет" звучат как одно и то же. Я же вижу на столе "объект", но его же могу назвать "предметом".
Позже, изучая статьи по писательству, я выделил ключевую мысль: важно ограничивать тезисы, которые мы хотим донести до читателя. Не стоит распыляться, иначе читатель увязнет в тексте и ничего не поймет.
Как раз на этом моменте и всплыли те самые "объект" и "предмет". Оказывается, они задают рамки. Это, собственно, видно из определений.
Объект исследования - это широкая область, процесс или явление, которое изучается в работе.
Предмет исследования - это его конкретная, узкая часть, аспект, свойства, которые непосредственно рассматриваются и анализируются.
То есть объект шире предмета, а предмет - это часть объекта исследования.
Например:
- Объект исследования: Разработка приложения заказа еды.
- Предмет исследования: Алгоритм рекомендации блюд на основе истории заказов.
Понятно, что в исследованиях нам всегда хочется рассказать обо всем интересном. Но только встав в определенные рамки, получится донести мысль качественно.
Сохраняйте, кому предстоит защита работы в ВУЗе)
—
А вы как, работали уже с этими понятиями?
👍 - Ага
😁 - Неа
🤔 - Видимо, предстоит
#Словарь
👍5😁3🤔1
#include <iostream>
int main() {
uint8_t a = 255;
uint8_t b = 1;
uint8_t c = a + b;
std::cout << int(c);
return 0;
}
Подсказка для незнакомых с C++:
Выше дан код C++. Какой вывод будет у программы?
Anonymous Quiz
53%
0
17%
256
10%
Неизвестно. Неопределенное поведение
20%
Никакой. Программа упадет
This media is not supported in your browser
VIEW IN TELEGRAM
Принять или толстый
Да-да. Имейте в виду, если используете автоматический перевод страниц 😁
Не понятно, почему он так переводит. По коду HTML там ничего подозрительного. Видимо, он просто обзывается)
—
Кстати, это была 9 часть рубрики "Путаница в интерфейсах".
Читать еще:
- Когда фильтры - так себе фильтры
- Переключатель в Яндекс Книгах
Да-да. Имейте в виду, если используете автоматический перевод страниц 😁
Не понятно, почему он так переводит. По коду HTML там ничего подозрительного. Видимо, он просто обзывается)
—
Кстати, это была 9 часть рубрики "Путаница в интерфейсах".
Читать еще:
- Когда фильтры - так себе фильтры
- Переключатель в Яндекс Книгах
😁4👍1👏1
Выше дан код C++. Какой вывод будет у программы?
Anonymous Quiz
36%
0
32%
128
12%
-128
20%
Неизвестно. Зависит от реализации
Какие файлы нельзя коммитить в Git
В новой статье рассмотрим 3 главных последствия бесконтрольной загрузки проектов на GitHub:
- Неадекватный рост размера репозитория
- Конфликты совместной разработки
- Разглашение секретов
Эта проблема свойственна начинающим разработчикам и проявляется часто. С опытом это проходит, но зачем ждать)
👉 Читать статью
В новой статье рассмотрим 3 главных последствия бесконтрольной загрузки проектов на GitHub:
- Неадекватный рост размера репозитория
- Конфликты совместной разработки
- Разглашение секретов
Эта проблема свойственна начинающим разработчикам и проявляется часто. С опытом это проходит, но зачем ждать)
👉 Читать статью
👍4😁1
Помню, Стив Макконнелл писал, что максимальное комфортное количество аргументов функции равно 7. Ну, плюс-минус 2. Если их будет больше, то работать с функцией станет совсем сложно.
Вообще мнения колеблются от 3 до 7 аргументов. Но мысль одна: много аргументов - плохо.
Тем не менее 👇
Вообще мнения колеблются от 3 до 7 аргументов. Но мысль одна: много аргументов - плохо.
Тем не менее 👇
Какое максимальное количество аргументов функции допустимо в C++?
Anonymous Quiz
0%
15
4%
127
22%
255
74%
Неизвестно. Зависит от реализации
2 минуты осталось или 2 минуты прошло?
Рубрика "Путаница в интерфейсах". Часть 10.
На картинке - виджет фокусировки в Windows. Это стандартное приложение, которое отключает все уведомления на заданное время, помогая сфокусироваться на работе.
Сейчас циферблат виджета показывает 2 минуты. Как вы понимаете эти 2 минуты? Как "2 минуты осталось" или как "2 минуты прошло"?
Я был абсолютно уверен, что 2 минуты прошло и еще 8 осталось.
Но не было бы этой рубрики. На самом деле все наоборот)
С какой-то стати обратный отсчет времени на циферблате начинается с положения 3-х часов. Не с 12-ти, как я подумал изначально.
Я понятия не имею, почему так сделано.
Создается ощущение, что внутри это просто обратный отсчет по тригонометрической окружности от 2π до 0. Кто-то поленился сделать сдвиг на π/2 и поднять начало отсчета наверх? Или тут есть неведомый мне смысл?
Если кто-то знает, напишите)
—
А вы запутались или я один такой?
👍 - Запутался
😁 - Один такой
Рубрика "Путаница в интерфейсах". Часть 10.
На картинке - виджет фокусировки в Windows. Это стандартное приложение, которое отключает все уведомления на заданное время, помогая сфокусироваться на работе.
Сейчас циферблат виджета показывает 2 минуты. Как вы понимаете эти 2 минуты? Как "2 минуты осталось" или как "2 минуты прошло"?
Я был абсолютно уверен, что 2 минуты прошло и еще 8 осталось.
Но не было бы этой рубрики. На самом деле все наоборот)
С какой-то стати обратный отсчет времени на циферблате начинается с положения 3-х часов. Не с 12-ти, как я подумал изначально.
Я понятия не имею, почему так сделано.
Создается ощущение, что внутри это просто обратный отсчет по тригонометрической окружности от 2π до 0. Кто-то поленился сделать сдвиг на π/2 и поднять начало отсчета наверх? Или тут есть неведомый мне смысл?
Если кто-то знает, напишите)
—
А вы запутались или я один такой?
👍 - Запутался
😁 - Один такой
👍9😁2
#include <iostream>
int main() {
const char a = '7';
const char b = '0';
const int c = a - b;
std::cout << c;
return 0;
}
Выше дан код C++. Какой вывод будет у программы?
Anonymous Quiz
43%
7
13%
0
22%
Неизвестно. Неопределенное поведение
22%
Никакой. Ошибка компиляции
Doc As Code: диаграммы PlantUML в Doxygen
ИИ заставляет по-другому смотреть на разработку. Привычные подходы оказываются так себе.
В этом плане ведение документации зацепило знатно. Документация оказалась нужна как никогда) Причем не детальная, а, наоборот, - высокоуровневая. Детали ИИ и сам неплохо соображает по коду. Но вот концепт, архитектуру, идею ему выделить сложно.
И все бы хорошо, документации у нас есть немножко) Но вот схемы и диаграммы... Они в картинках. В целом ИИ умеет в картинки, но делает это плохо и не точно.
Как раз в этот момент я вспомнил про текстовые нотации диаграмм, про PlantUML в частности. Точнее я их и не забывал, но пользовался редко. А тут оказалось, что ИИ отлично понимает, генерирует и редактирует такие диаграммы.
Получив какой-то опыт на нескольких задачах, я доработал свои соображения по принципу Doc As Code для C++ проектов. Если раньше там использовался только Doxygen и Markdown, то теперь добавляется PlantUML. Код, документация и диаграммы полностью состоят из текста и в полном объеме обрабатываются ИИ.
👉 Смотрите в новой статье, что получилось, и пишите, что думаете по этому поводу. Ощущаете необходимость в хорошей документации или с ИИ можно работать и без нее?
—
Читать еще:
- Прошлая статья по Doc As Code для C++
- Зачем нужны UML диаграммы?
ИИ заставляет по-другому смотреть на разработку. Привычные подходы оказываются так себе.
В этом плане ведение документации зацепило знатно. Документация оказалась нужна как никогда) Причем не детальная, а, наоборот, - высокоуровневая. Детали ИИ и сам неплохо соображает по коду. Но вот концепт, архитектуру, идею ему выделить сложно.
И все бы хорошо, документации у нас есть немножко) Но вот схемы и диаграммы... Они в картинках. В целом ИИ умеет в картинки, но делает это плохо и не точно.
Как раз в этот момент я вспомнил про текстовые нотации диаграмм, про PlantUML в частности. Точнее я их и не забывал, но пользовался редко. А тут оказалось, что ИИ отлично понимает, генерирует и редактирует такие диаграммы.
Получив какой-то опыт на нескольких задачах, я доработал свои соображения по принципу Doc As Code для C++ проектов. Если раньше там использовался только Doxygen и Markdown, то теперь добавляется PlantUML. Код, документация и диаграммы полностью состоят из текста и в полном объеме обрабатываются ИИ.
👉 Смотрите в новой статье, что получилось, и пишите, что думаете по этому поводу. Ощущаете необходимость в хорошей документации или с ИИ можно работать и без нее?
—
Читать еще:
- Прошлая статья по Doc As Code для C++
- Зачем нужны UML диаграммы?
👍5
Снова и снова сводит олдскулы на курсе по обратной разработке)
ASM, DOS, BIOS, MBR...
Когда-то давно все это было на слуху. Примерно тогда, когда "переустановить винду" было чем-то само собой разумеющимся. Постоянно что-то слетало, что-то не работало... Приходилось ковыряться.
А сейчас все как-то надежнее что ли стало. Пару лет назад я менял ноутбук просто потому, что он устарел) Но за все время его использования я ни разу не менял ОС. Может, просто повезло. Может, лень возиться. Не знаю...
Но к чему это я. А вы помните, что такое MBR? 😁👇
ASM, DOS, BIOS, MBR...
Когда-то давно все это было на слуху. Примерно тогда, когда "переустановить винду" было чем-то само собой разумеющимся. Постоянно что-то слетало, что-то не работало... Приходилось ковыряться.
А сейчас все как-то надежнее что ли стало. Пару лет назад я менял ноутбук просто потому, что он устарел) Но за все время его использования я ни разу не менял ОС. Может, просто повезло. Может, лень возиться. Не знаю...
Но к чему это я. А вы помните, что такое MBR? 😁👇
🥰2