Pull to refresh
0
Сергеев Сергей @asamatread⁠-⁠only

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

Send message

Улучшение кода без споров и цитирования известных практик

Level of difficultyEasy
Reading time16 min
Views10K

Не секрет, что при формировании новой команды руководители (Team Leader, Tech Leader) сталкиваются с проблемой формирования единого стиля написания программ, так как все члены команды новые, и у каждого из них свой подход к организации кода и выбору используемой практики. Как правило, в большинстве случаев это приводит к длинным диспутам на ревью, которые в итоге перетекают в различные толкования известных практик, таких как SOLID, KISS, DRY, и т.д. Принципы использования этих практик довольно размыты и, при должном упорстве, легко найти парадокс, когда одна из них противоречит другой. Например, рассмотрим Single Responsibility и DRY.

Одна из вариаций определения принципа единой ответственности (Single Responsibility - буква S из аббревиатуры SOLID) гласит, что каждый объект должен иметь одну ответственность, и эта ответственность должна быть полностью инкапсулирована в класс. Принцип DRY (Don’t repeat yourself) предлагает избегать дублирования в коде. Однако, если у нас в коде есть один набор данных (DTO), который может использоваться в разных слоях/сервисах/модулях, какому из этих принципов нам следовать? Безусловно, во многих книгах по программированию разбираются похожие ситуации, как правило, в них говорится, что если речь идет о разных объектах/функциях с одинаковым набором свойств и логики, но принадлежащим разным доменным областям, то дублированием это не является. Но как доказать что эти объекты ДОЛЖНЫ принадлежать разным доменным областям, и, главное, готов (и уверен ли в своих силах) руководитель доказывать это утверждение?

Читать далее
Total votes 27: ↑26 and ↓1+25
Comments17

Free2FA: Телеграм-бот для двухфакторной аутентификации

Level of difficultyMedium
Reading time4 min
Views11K

Free2FA - это бесплатное, Open Source решение для двухфакторной аутентификации с пуш-уведомлениями, основанное на FreeRADIUS, Telegram-боте и административной веб панели управления. Применялось с Cisco AnyConnect, подходит для любых систем авторизации с пользователями из Active Directory .

Читать далее
Total votes 14: ↑12 and ↓2+10
Comments17

Об одном способе веб-скрапинга сайтов, защищенных Cloudflare

Level of difficultyMedium
Reading time10 min
Views15K

Сразу оговорюсь, что описанное ниже носит исключительно информационно-образовательный характер, и не имеет целью нанесение какого-либо ущерба компаниям, использующим защиту из заголовка статьи. По этим же причинам фокусировка статьи именно на том, как получить заветный html «как из браузера» в автоматизированном режиме, и здесь не будет идти речь о каких-то массовых распараллеливаниях через proxy и VPN, подкладываниях отпечатков (finger prints) браузеров и т. д.

Узнать о способе обхода защиты Cloudflare
Total votes 28: ↑27 and ↓1+26
Comments31

Бесплатные курсы для изучения C++ в 2024 году

Level of difficultyEasy
Reading time6 min
Views40K


В 2024 году в сети доступно множество бесплатных ресурсов для изучения C++, которые предлагают высокое качество обучения. Поэтому нет необходимости платить за курсы, если вы можете получить все необходимые знания бесплатно.

Учить C++ в 2024 году по бесплатным курсам имеет несколько преимуществ. Вот несколько причин, почему это стоит делать:

1. Популярность языка: C++ является одним из самых популярных языков программирования, который широко используется в различных областях, включая разработку игр, системное программирование и мобильные приложения. Изучение C++ может открыть перед вами множество возможностей в карьере.

2. Высокая производительность: C++ известен своей высокой производительностью и эффективностью. Он позволяет разрабатывать быстрые и оптимизированные приложения, особенно в сферах, где требуется работа с большими объемами данных или высокая скорость выполнения.

3. Множество полезных библиотек: C++ предоставляет широкий набор инструментов и библиотек для разработки приложений.

4. Доступно множество полезных ресурсов: Язык C++ очень популярный, существует множество различных онлайн-ресурсов, форумов и сообществ, где можно получить помощь и поддержку от опытных разработчиков.

Читать
Total votes 37: ↑35 and ↓2+33
Comments18

Делаем аналог обучающей игрушки с карточками-словами

Level of difficultyEasy
Reading time8 min
Views1.7K
Попала ко мне в руки занятная вещица — устройство Talky от Lumicube. Это электронный блок, в который вставляют карточку и он озвучивает написанное на ней слово. Предполагается, что это «развивающая» игрушка — ребенок вставляет в него карточки и запоминает слова, как визуально, так и на слух, благо слова озвучены весьма неплохо.



Но триггернуло меня по другой причине — карточки содержат лишь двоичный код, сами звуки заранее записаны в устройство. В комплекте с Talky один набор карточек, остальные нужно приобретать отдельно, хотя они и так уже хранятся в памяти!

Мне это напомнило опцию у автомобиля Tesla Model S 70, покупая которую за 3250$ бортовая электроника просто разблокирует дополнительные 5 квтч емкости батареи. Когда техника уже физически(!) имеет встроенный потенциал, который нереализован только потому, что кто-то не заплатил, я считаю грехом. Это не только впустую расходуемые невозобновляемые ресурсы, потраченные на то, что не используется, но и разделение людей по уровню дохода, что негуманно. Поэтому я решил сделать свой аналог, с блекджеком и шл… [видеоверсия в конце]
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments7

Отопление в ИЖС с помощью сплит-кондиционера «на тепло». Так ли это выгодно на самом деле?

Reading time30 min
Views15K

Отопление тепловыми насосами

Продолжим обсуждение способов экономичного отопления в ИЖС без использования трубного газа.

Ранее были рассмотрены варианты отопления электричеством и отопления с применением СУГ.

Экономика загородного дома. Как утеплить дом и не разориться?

По желанию читателей решил рассмотреть и вариант отопления с помощью «кондиционеров на тепло».

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

Изначально предполагается использовать именно самую дешёвую версию сплит‑кондиционера, у которого компрессорно‑конденсаторный блок (далее ККБ) установлен на улице.

Идея сама по себе увлекательная, но содержит в себе ряд подводных камней, не очень афишируемых в рекламных проспектах.

Рассмотрением этих незаметных или преднамеренно скрываемых препятствий мы и займёмся в этой статье.

Читать далее
Total votes 53: ↑50 and ↓3+47
Comments139

Экономика загородного дома. Как утеплить дом и не разориться?

Reading time30 min
Views45K

Экономичное отопление. Как утеплить дом и не разориться?

Каждый городской житель мечтает о загородном доме.

Тишина, свежий воздух!

И тут же вы едете смотреть участок земли в превосходном живописном и экологичном месте.

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

И тут внезапно выясняется, что газа нет!

Что это означает?

Это означает, что у вас в наличии 15 кВт подключенного электричества на все хозяйственные нужды, включая отопление.

15кВт — много это или мало?

Ответ как обычно прячется в самом вопросе, а именно: Смотря для чего?

Ниже приведён проект реального одноэтажного дома. (см.рис.1–2)

Читать далее
Total votes 104: ↑82 and ↓22+60
Comments408

От логического элемента до телефона. Введение

Level of difficultyEasy
Reading time7 min
Views2.9K

Эта статья, является первой статьей из курса по созданию телефона на элементной базе, приближенной к той, что используется производителями сотовых телефонов.Вместе с читателями, я пройду по каждому этапу проектирования, прототипирования, отладки, а если повезет, то и подготовки к производству, настоящего сотового телефона.На каждом этапе выполненной работы, я постараюсь объяснить как это было сделано, на таком уровне, чтобы это смог понять толковый студент первого курса технического ВУЗа. Или заинтересованный школьник старших классов. Не пугайтесь того, что в следующих нескольких предложениях, Вы скорее всего ничего не поймете. Их поймут те, кто давно работает в области телекома как разработчики и производители оборудования, но к концу курса, Вы будете знать все о чем я написал ниже.Вы узнаете как работает транзистор, логический элемент, как устроена цифровая схемотехника, вместе в Вами мы спроектируем процессор и не один, Вы узнаете о процессах происходящих в радиотехнических системах и таких понятиях как интерференция или феддинг в канале связи, что такое КСВ, и где применяют «балуны», как устроены рекурсивные цифровые фильтры, зачем нужен алгоритм cordic, что такое децимация и зачем она нужна, узнаем что такое BaseBand и как он связан с прямым цифровым синтезом и причем тут комплексные числа. Узнаем что такое доплеровский сдвиг, познакомимся с элементами теории вероятностей, и узнаем зачем нам знать о распределении релея‑джинса. Мы самостоятельно соберем компилятор, который собирает код всего что выполняется у Вас на компьютере, и сделаем это ни один раз, а потом при помощи такого компилятора произведем сборку операционной системы. Нам предстоит познакомиться со стандартами, за которые отвечает группа 3GPP. Вы узнаете про сложные виды модуляций, и нарезку данных применяемую в сотовых сетях, а так же как она соотноситься со служебными каналами связи. Вы спокойно будете оперировать терминами Paging, Location Area Update, или каналами RRC, LLC, узнаете что такое BCCH/BCH, для чего нужны Measurenment Report‑ы, и при каких условиях производятся измерения в каналах связи. Узнаете что такое Handover. Возможно, доберемся и до PSC, но только в теории, т.к. это уже 3G или 4G. Нам предстоит разработать или заимствовать и проверить, десятки, а может быть сотни тысяч строк кода стека GSM. И, надеюсь, мы вместе дойдем до конца проекта и выпустим ASIC. Но сначала попробуем использовать схему состоящую из CPU, FPGA, и, вероятно AD9361, или чего‑то подобного.

Читать далее
Total votes 8: ↑6 and ↓2+4
Comments7

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

Level of difficultyEasy
Reading time26 min
Views169K

Всем доброго времени суток. Я давно обещала выложить сюда подробный гайд на тему того, как можно изучать Machine Learning самостоятельно, не тратя деньги на платные курсы, и, наконец, выполняю свое обещание. Надеюсь, этот гайд станет подсказкой, которая поможет найти правильное направление новичкам, которые хотят погрузиться в нашу область.

Читать далее
Total votes 159: ↑157 and ↓2+155
Comments49

Как работает компьютер: глубокое погружение (на примере Linux)

Level of difficultyHard
Reading time48 min
Views134K



Введение


Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины. Программы действительно выполняются прямо в центральном процессоре (central processing unit, CPU)? Я использовала системные вызовы (syscalls), но как они работают? Чем они являются на самом деле? Как несколько программ выполняются одновременно?


Наконец, я сломалась и начала это выяснять. Мне пришлось перелопатить тонны ресурсов разного качества и иногда противоречащих друг другу. Несколько недель исследований и почти 40 страниц заметок спустя я решила, что гораздо лучше понимаю, как работают компьютеры от запуска до выполнения программы. Я бы убила за статью, в которой объясняется все, что я узнала, поэтому я решила написать эту статью.


И, как говорится, ты по-настоящему знаешь что-то, только если можешь объяснить это другому.


Более удобный формат статьи.

Читать дальше →
Total votes 152: ↑152 and ↓0+152
Comments36

Инструкция: сделать доверенность заграницей для РФ и РБ

Reading time6 min
Views27K

В дополнение к вчерашней статье "Документы перед выездом из РФ".

Вводные: вы уезжаете из России или Беларуси, но там остаются дела.

Вывод: задерживаться только из-за этого не надо, дела можно делегировать с помощью доверенностей выданных зарубежем.

Читать далее
Total votes 27: ↑24 and ↓3+21
Comments11

GPT Chat для преподавателя английского

Level of difficultyEasy
Reading time8 min
Views20K

Какие я обнаружила сферы применения GPT чата в своей работе:

1. Работа с лексикой:
— подготовка списка слов (wordlist) по уровням языка на основе текста или видео;
подбор определений к словам на английском языке и примеров, либо переводов на русский язык (далее готовый список можно вставить, например, в Quizlet и получить готовые карточки), форматирование текста;
создание упражнения с пропущенными словами;
— генерирование текста на основе списка слов;
подбор синонимов и антонимов к словам из списка.

2. Работа с грамматикой:
генерирование примеров грамматической структуры;
создание заданий на раскрытие скобок;
создание серии упражнений.

3. Проверка домашних заданий и анализ письменных работ (например, эссе).

4. Генерирование вопросов для обсуждения.

5. Создание плана урока или серии уроков.

6. Генерирование картинок по теме для оформления материалов с помощью дружественной GPT чату нейросети DALL-E.

7. Поиск ответов на вопросы студентов и создание материалов для постов в соцсетях.

Читать далее
Total votes 13: ↑12 and ↓1+11
Comments11

К вопросу о математических способностях студентов или как учить переполненный мозг

Reading time23 min
Views228K

Я люблю давать простые задачки студентам на лекции. Во-первых, понятно, скольких мы потеряли, во-вторых, это переключение из режима потребления информации в режим выдачи результатов, в третьих — возможность проявить себя для шустрых. Сплошные плюсы!

Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.

Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все). 

Это было бы смешно, если бы от способности быстро в уме прикинуть результат не зависела способность быстрее создавать сложные алгоритмы. 

И хорошо видно, как эта способность в широких массах студентов заметно плавно падает. Причем не только в нашей стране. Придуман даже специальный термин: «цифровое слабоумие» ("digital dementia") — снижение когнитивных способностей, достаточно серьезное, чтобы повлиять на повседневную деятельность человека. 

Кому интересно как теряют мозг студенты масштабы бедствия и что с этим делать — добро пожаловать под кат!

Читать далее
Total votes 411: ↑395 and ↓16+379
Comments795

Не-пирамида Маслоу

Reading time34 min
Views16K

Недавние исследования нейробиологов в области толерантности человеческого организма к дофамину реабилитируют/легитимизируют представления Авраама Маслоу о мотивации человека. 

К моему разочарованию, русскоязычные научные публикации, науч. поп материалы и пособия по маркетингу трактуют работу Маслоу, искажая суть настолько, что порой противоречат оригиналу. 

Складывается впечатление, что оригинальную публикацию автора, как в поговорке, «не читал, но осуждаю». И действительно, я не смог найти полного перевода статьи. Что в соавторстве со своим студентом Афанасьевой Екатериной и спешим исправить. Ибо предстоит еще много работы по переоценке традиционных ценностей в современном обществе и приданию ей научного базиса.

По этой причине данная публикация почти дословный перевод, без сокращений, личностных трактовок и интерпретаций.

Читать далее
Total votes 30: ↑27 and ↓3+24
Comments53

Как разговаривать с потенциальным клиентом на фрилансе

Reading time13 min
Views4K

Это глава из «Книги нормального фрилансера», в которой я делюсь опытом проектировщика интерфейсов, работающего на себя.

Опоздай минут на десять, сядь в местечке пошумнее,
Закажи себе покушать, будет трудный разговор!
На повестке три вопроса: «Что за сроки у задачи?»,
«Как мне выполнить работу?» и «Какой у вас бюджет?»

Итак, потенциальный клиент подтвердил время встречи, предложенное в письме (или в коротком разговоре голосом), и фрилансер готовится провести первые переговоры…

Читать далее
Total votes 15: ↑14 and ↓1+13
Comments1

Голос атомных ядер: собираем магнитно-резонансный магнитометр

Reading time18 min
Views19K
image

Пора уже поближе познакомиться с квантовой физикой на практике! Сегодня я расскажу вам об истории открытия эффекта ядерного магнитного резонанса, но в отличие от классических учебников полных зубодробительного матана мы обратим наш разрушительный для когеренции взгляд на экспериментальную составляющую. С полученными знаниями вы сможете в духе старого доброго DIY собрать несложный прибор, который позволит вживую послушать сигналы ядер атомов водорода а также измерить величину магнитного поля нашей планеты.
Поехали!
Total votes 150: ↑150 and ↓0+150
Comments68

Документы перед выездом из РФ

Reading time10 min
Views62K

Всем привет!

Хочу рассказать о том какие документы желательно заранее подготовить перед выездом из РФ. Статья возможно уже не будет такой актуальной с учетом того, что кто-то либо уже уехал, либо находится на низком старте, но если вы пока находитесь в РФ - подготовьте хотя бы часть документов из списка.

Топ документов возглавляет генеральная доверенность. Очень настоятельно прошу ее сделать на вашего родственника или на человека, которому вы безоговорочно доверяете, но который на какое-то время точно останется в России. Можно сделать доверенность на нескольких людей. Цена вопроса - в районе 2,500 рублей за 1 доверенность. При этом, человек, на которого вы оформляете доверенность может не присутствовать, вам понадобится только копия его паспорта (страница с фото + прописка).

Доверенность можно оформить на любой срок, хоть на 50 лет, нотариус запишет срок, который вы назовете. Также доверенность можно сделать с возможностью ее передоверия другому человеку: например, я оформила доверенность на Васю Пупкина с правом передоверия, а Вася Пупкин передоверил ее Ивану Иванову. Мероприятие рискованное, но если вы доверяете человеку и понимаете, что возможно он тоже через какое-то время покинет РФ - такой вариант для вас подойдет.

Важный момент: генеральная доверенность - вещь серьезная, поэтому ее в любой момент можно и нужно отменить.

Что входит в такую доверенность (если кратко):

Читать далее
Total votes 68: ↑60 and ↓8+52
Comments147

Я провёл 400 собеседований за год. Мне есть что сказать

Reading time10 min
Views93K

Я немного преувеличил с количеством — часто я был «вторым пилотом» на собеседованиях. Но какой-то опыт проведения собеседований у меня всё- таки есть, ведь только за 3 месяца весны я провел 150 собесов. В статье я выделил некоторые важные моменты от которых зависит — скажу я кандидату «Да» или «Нет», и собрал очень субъективные рекомендации как проходить собесы. Но учитывая то, какое количество людей через меня прошло, статья будет полезна тем, кто только начал проводить собеседования, кому это только предстоит, и тем, у кого впереди поиск работы. 

Читать далее
Total votes 166: ↑84 and ↓82+2
Comments306

Как выбрать плату для Computer Vision в 2022

Reading time6 min
Views11K

Выбор платформы для работы с Computer Vision on the Edge  - непростая задача. На рынке десятки плат. И одна другой краше. Но на практике все оказывается не так хорошо.
Я попробовал сравнить дешевые платы которые есть на рынке. И сделал это не только в по скорости. Я попробовал сравнить платформы по “удобству” их использования. Насколько просто будет портировать сети, насколько хорошая поддержка. И насколько просто работать. И актуализировал это для 2022 года (один и тот же Coral из 2020 и из 2022 - две разные платы).

Читать далее
Total votes 26: ↑24 and ↓2+22
Comments12

Бум BIM: как изменилось строительство

Reading time15 min
Views17K

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

Но на самом деле цифровизация добралась и сюда. В этом лонгриде я расскажу, как сквозь века менялась сфера строительства, а потом познакомлю вас с мистером BIM, который сыграл не последнюю роль в этом деле. Так что откидывайте спинку кресла, сдвигайте рабочие дедлайны и заваривайте чего-нибудь покрепче — будет интересно.

Читать далее
Total votes 5: ↑3 and ↓2+1
Comments23

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity