Если меня на собеседовании спросят что такое ООП, то может получиться как в анекдоте " завыл, бился головой о стену, в общем ушёл от ответа". Любое простое определение ООП не полно, любое полное слишком сложно. Это показывает что ООП само в своих основах очень сложно, а на поверхности лишь видимая часть айсберга. Итак, пробуем дать краткое и герметичное определение, последовательно вводя минимум определений, чтобы были видны цели а не догма. Герметичное значит ясное и самодостаточное, не опирающееся (явно или неявно) на другие нетривиальные понятия. Всё по взрослому. Мне понадобилось много итераций. И на глубине я увидел чудовищ. Я конечно знал их и раньше, но думал что я просто дурак и не понимаю как просто с ними работать. Нырнул глубже и... они не пропали! Для любой сложной ООП системы они останутся с тобой.
ФП в отличие от него имеет крутую ступеньку входа но дальше сложность не растёт.
Habr, что это за поле «Целевая аудитория»?
Статья предназначена для яйцеголовых преподавателей разработки программного обеспечения, которые должны дать отеческое наставление юным программистам, выбирающим свой путь.
Читать далееТак получилось, что загруженный в меня годами разработки опыт привел к нигилизму и отрицанию общемировых ценностей. Например, я ненавижу демократию, самое первое запротоколированное проявление которой привело к решению распять нахрен одного там назаретянина (но сейчас не об этом). Я отрицаю пользу IDE, необходимость развития языков программирования, целесообразность существования паттернов и еще много достижений цивилизации по остаточному принципу.
Зато я являюсь ярым сторонником велосипедостроения. В подавляющем большинстве ситуаций лучше спроектировать и реализовать свой велосипед с перламутровыми пуговицами, чем пытаться приварить оные к выкидышу китайского велосипедопрома. Почему-то среди моих коллег принято относиться к собственным реализациям чего угодно — пренебрежительнее, чем к невнятной библиотеке версии 0.0.1, написанной албанским стажером три года назад по пьяни.
Если разработчик уровня выше стажера считает, что какой-то хрен из интернета уж точно напишет случайный кусок кода лучше него — это не программист, это самозванец, его надо гнать из команды с волчьим билетом.
Изобретайте колёса и стройте велосипеды!Я с женой перебрались в Тбилиси ещё в 2018 году и прожили там почти шесть лет. За это время мы влюбилась в эту страну и взяли квартиру в ипотеку рядом с озером. В итоге, застройщик заблокировал нас после оплаты, мы дополнительно потратили 5 млн ₽ на ремонт, а в квартире мы прожили всего полгода.
В статье расскажу, как мы получили ипотеку без официальной работы, как нам чуть не продали дом, который мы бы никогда не оформили и сколько стоит жить в Грузии семье из трех человек.
Пока мы жили в Грузии, мы не вели статью расходов. Поэтому цены в статье приблизительные.
Читать далееTL;DR: KIP‑1150 (Diskless Topics) предлагает Kafka писать сообщения сразу в облачное хранилище (S3 и аналоги), минуя диски брокеров. Это сильно экономит деньги и упрощает масштабирование в облаке, но увеличивает задержки и делает Kafka зависимой от облачных сервисов. Отлично для дешёвых, «толстых» потоков логов, но плохо подходит для real‑time систем с миллисекундными требованиями.
Читать далееДавненько я ничего не публиковал на Хабре — пора это исправлять.
В этот раз хочу поделиться темой, которая кажется простой, но на деле вызывает интерес у многих разработчиков и системных администраторов: как создать свою легковесную систему планирования задач на Python. Что-то вроде мини-аналога cron, но под свои задачи и со своими фишками.
Ведь часто бывает так: хочется, чтобы какие-то проверки или скрипты запускались в определённое время — например, в обеденный перерыв у сотрудников можно поставить автоматическую проверку всех машин на наличие вредоносного ПО. Или наоборот — распределить рутинные проверки так, чтобы они не мешали основной работе.
Читать далееСегодня поговорим о том, как внедрить метрики в формате OpenTelemetry в PHP монолит, построенный на фреймворке Yii2.
Спойлер: как оказалось, на этой задаче можно пару раз разочароваться в бытии разработчика сломать голову на способе сбора, отправке, промежуточных звеньях и сломанных гистограммах.
Читать далееПривет Habr, всем максимально доброго дня!!!
После первой статьи прошло... чуть больше времени, чем рассчитывал, и вот решил продолжить тему медленных протоколов: сегодня LACP. Хотел рассмотреть его подробно, но получилось как-то уж совсем подробно, так что, как это говорилось в далеком 2005м, извените за многабукаф.
С самого начала, давайте вспомним самую важную картинку из прошлой статьи, а точнее - схему работы агрегированного канала.
Читать далееМеня давно интересовала тема апскейла изображений, отдельно - апскейла старых видео. Одно из первых решений, которое попалось в руки несколько лет назад - waifu2x (https://github.com/nagadomi/waifu2x). Но эта нейронка больше подходила для апскейла аниме (насколько я помню на них она и тренировалась). То есть, waifu2x подходила для довольно простых изображений без избытка деталей и сложности текстур.
Затем я поизучал ESRGAN (https://github.com/xinntao/ESRGAN) и Real-ESRGAN (https://github.com/xinntao/Real-ESRGAN). Довольно неплохие модельки, вполне годятся для апскейла изображений, но очень часто заметна синтетичность, особенно в сложных сценах, например когда на изображении есть деревья. Я даже попробовал дотренировать Real-ESRGAN, к слову это делать не сложно, на их гитхабе есть скрипты и инструкции (https://github.com/xinntao/Real-ESRGAN/blob/master/docs/Training.md), но пока дособирал свой датасет для тренировки на глаза попалась другая модель - SwinIR (https://github.com/JingyunLiang/SwinIR), потестировав которую понял - она покрывает мои текущие потребности, если не полностью, то по меньшей мере процентов на 80%. А потребности были - заапскейлить несколько старых фильмов, и чтобы после апскейла фильм смотрелся как фильм, а не как пластилиновый театр. В целом все получилось. Именно об этом это статья.
Апскейлить будем фильм "Пираты Силиконовой долины" (1999г, США). Он повествует о появлении домашнего ПК и становлении компаний Apple и Microsoft. Довольно интересный фильм с бунтарским духом той эпохи. Главные герои - молодые Стив Джобс, Стив Возняк, Билл Гейтс и другие участники "революции домашних ПК". Кстати, апскейлить фильм будем конечно же на домашнем ПК.
Читать дальше →Привет, Хабрчане! Если вы увлекаетесь электроникой и у вас под рукой есть «малинка», в этой подборке можно найти вдохновение для экспериментов — вот и еще одна идея, чем развлекать себя на майских. Я собрал пять интересных, на мой взгляд, DIY-проектов. Забегая наперед, скажу, что здесь старый магнитофон становится музыкальным центром, карманный мини-ПК работает на паре Pico, а кибердек в стиле 80-х соседствует с лабораторией для обучения и радиостанцией в корпусе размером с ладонь. Каждый гаджет — не просто игрушка, а реальный инструмент для учебы, экспериментов и работы. Погнали!
Читать далееСуществует огромный пласт литературы, призванный помочь начинающим инвесторам разобраться в себе и фондовом рынке. В каких-то книгах акцент делается на экономическую составляющую, анализ историй успеха и торговые стратегии – сюда можно отнести «Принципы» Рэя Далио, «Разумного инвестора» Бенджамина Грэма, биографии и автобиографии Уоррена Баффетта и т.д.
В других же работах в центре внимания оказываются закономерности психики, помогающие или мешающие торговать на бирже. Как правило, эти особенности являются предметом интереса поведенческой экономики – одной из ключевых дисциплин, разбираться в которой необходимо каждому, кто хочет преуспеть на фондовом рынке. Десятилетия научных изысканий создали базис для публицистической литературы, где трейдерам даются практические советы как «разогнать» или, наоборот, обуздать собственный мозг, чтобы сорвать банк. «Под капотом» таких трудов – выкладки из теории игр, соцопросы и эксперименты с функциональной МРТ, выявляющие зоны коры, ответственные за экономические решения. Ярчайший пример – абсолютный бестселлер «Думай медленно… решай быстро» такого титана, как Даниэль Канеман. Также многие десятилетиями открывают для себя что-то новое в работах такого гуру, как Нассим Талеб. А кто-то-то – штудирует трактат «Больше, чем вы знаете» эксперта в сфере поведенческих финансов Майкла Мобуссина.
Мы же сегодня мы расскажем об одном из ярчайших представителей такой литературы – книге Бретта Стинбарджера, одного из пионеров исследования поведения инвесторов с позиций бихевиоризма. Его работа «Самоучитель трейдера» является практическим руководством по саморазвитию для трейдеров, построенным на ряде психотехник, которые мы и разберем.
Читать далееТы в курсе про секретную секту старых джунов в ИТ?
Это особая каста разработчиков, застрявших в профессиональном чистилище. Они уже давно не новички, и внешне — почти сеньоры, но что-то не так. Самое любопытное — многие из них даже не подозревают, что попали в эту ловушку.
Представь: человек годами пишет код, участвует в проектах, но развитие будто поставлено на паузу. Узнаёшь себя или кого-то из коллег? Возможно, ты прямо сейчас работаешь с таким человеком. А может, сам уже несколько лет чувствуешь, что карьера топчется на месте, несмотря на внушительное резюме.
В мире кода есть понятие code smells — признаки плохого кода. Сегодня я расскажу о junior smells — характерных признаках «старого джуна». У каждого из них есть яркие черты, по которым их легко распознать. И, что самое важное, — для каждого из этих признаков я подготовил конкретное решение, которое поможет перейти на следующий уровень.
Семь ключевых признаков, по которым можно безошибочно определить, кто действительно вырос, а кто лишь притворяется.
Читать далееХочу рассказать о своём проекте - Single Sign-On плагин для Sonatype Nexus Repository. Плагин реализует аутентификацию через SSO и пользовательские токены для Nexus редакции "Community Edition". Если вам интересна эта тема, то добро пожаловать под кат.
Читать далееРынок фриланса в России стремительно растёт. По данным Forbes, к концу 2023 года число фрилансеров достигало уже около 19 миллионов человек – за год прирост составил около 5 млн. PwC прогнозирует, что доля проектных работников в компаниях скоро вырастет до 20%, а объём рынка фриланса может перевалить за $100 млрд. При этом заказчики всё чаще объединяют исполнителей в группы («суперкоманды») и ищут многофункциональных специалистов. На таком фоне зарубежные платформы (Upwork, Fiverr и др.) стали менее доступными для россиян, а спрос на местные биржи вырос. Однако устоявшиеся площадки FL.ru и Kwork не успевают адаптироваться под новые реалии: старый интерфейс, жёсткая монетизация и хромающая модерация приводят к тому, что фрилансеры уходят на новые площадки.
Читать далееВ мире IT разработки программного обеспечения и управления проектами термин «эстимейт» или «оценка» означает наше лучшее “предсказание” о том, что и за какое время можно сделать. Это не точное предсказание, а скорее ориентир, который помогает принимать решения и планировать работу на проекте.
Но в каких ситуациях оценки действительно имеют значение?
Давайте подробнее разберемся…
По мотивам недавних постов, затрагивавших тему графики в Linux — как оно вообще там сделано, и как работает, не углубляясь особо в детали.
Здесь не будет технических подробностей и нюансов настройки — так, чисто обзорно сверху по кочкам.
Зачем? Затем, что, как я вижу, сейчас не все пользователи Linux представляют, что именно скрывается за словами «графическая среда», и чем Gnome отличается от Wayland.
Читать далееВ первой части мы:
• посмотрим, как работать с памятью и регистрами 8086
• узнаем, как написать простую программу на ассемблере прямо в отладчике
• изучим работу механизма прерываний и сделаем демонстрационный пример
Статья рассчитана на тех, кто имеет начальный опыт программирования, но хочет понять основы низкоуровневого программирования и многозадачности.
Примеры в бинарном виде доступны по ссылке
Читать далееМайнинг на Antminer Hydro требует не только эффективного охлаждения, но и точного контроля параметров работы. Одним из ключевых инструментов для оптимизации производительности является прошивка , которая позволяет не только собирать детальную статистику, но и гибко настраивать режимы разгона. В этой статье мы подробно разберём, как работает прошивка, какие преимущества она даёт и почему важно соблюдать баланс между хешрейтом и энергоэффективностью.
Читать далее