Search
Write a publication
Pull to refresh
9
0
Майк Либер @mikelieber

C# разработчик

Send message

Swagger и полиморфные контракты в .NET 7

Level of difficultyMedium
Reading time14 min
Views13K

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

В этой статье мы рассмотрим развитие сериализации платформы (System.Text.Json) вместе с возможностями, которые она открывает.
Читать дальше →

Девять советов молодому тимлиду

Level of difficultyEasy
Reading time7 min
Views13K

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

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

Я много размышлял на эту тему и вывел несколько принципов, которых советую придерживаться начинающим ИТ-руководителям и тем, кто хочет ими стать. Часть моих тезисов вдохновлена книгой “90 THINGS YOU NEED TO KNOW IF YOU WANT TO become the CTO”, изданная CTO Academy. 

Читать далее

Как разработать канбан-доску на Django, DRF и Alpine.js

Level of difficultyEasy
Reading time8 min
Views13K

Для структурирования и мониторинга рабочих процессов используют канбан-доски — например, Jira и Trello. Они особенно полезны, когда задачи состоят из множества этапов — согласования, выполнения, ревью и продакшена.

В статье рассказываем, как разработать собственную канбан-доску и развернуть ее на облачном сервере. Подробности под катом.
Читать дальше →

Исторические исходные коды, с которыми должен быть знаком каждый разработчик

Level of difficultyEasy
Reading time6 min
Views27K

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

Читать далее

Сканер установленных перехватчиков в памяти процесса

Reading time98 min
Views11K


В статье будет рассмотрен один из методов поиска изменений в памяти процесса, на основе построения полной карты уязвимых к перехвату адресов. Рассмотрена работа со списками загрузчика, ручным разбором таблиц импорта/отложенного импорта/экспорта/TLS загруженных файлов, c обработкой форварда функций и ApiSet редиректов.
Будет показана методика доступа в 64 битное адресное пространство чужого процесса из 32 битного кода через статически сформированный ассемблерный шлюз, так и подход с применением автоматически генерируемого гейта.
Будет дано много комментариев «почему» применяется тот или иной подход, а также описание различных проблемных ситуаций, основанных в том числе как на собственном опыте, так и на разборе кода системного загрузчика, поэтому будет интересна и подготовленным специалистам.
Читать дальше →

Как мне удалось найти работу через восемь месяцев после первого Hello, world

Reading time7 min
Views8.9K

Привет! Меня зовут Арсен Григорян, я студент курса «Python-разработчик» в Яндекс Практикуме. В апреле 2022 года я решил заняться программированием — прямо как хотел в юности, а в декабре получил своё первое предложение о работе. Звучит как лёгкая история успеха, но на деле этому предшествовали сотни откликов в пустоту и больше тысячи часов учёбы.

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

Читать далее

Учимся правильно спать

Level of difficultyEasy
Reading time4 min
Views9.1K

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

приглашаю к прочтению.

Самый научный гайд по сну

Level of difficultyEasy
Reading time12 min
Views172K

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

В процессе написания статьи я просмотрел все самые популярные видео, прочитал самые популярные статьи, изучил несколько десятков исследований (а может и больше сотни) и составил самую эффективную схему по улучшению сна. Так же я выяснил, что некоторые популярные тезисы оказались мифами.

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

Читать далее

Сможет ли Event Sourcing перерасти базы данных?

Level of difficultyMedium
Reading time8 min
Views9.4K

Event sourcing — не новый термин. Если вы работаете с технологиями, то должны были с ним сталкиваться. Это мощный инструмент, используемый многими крупными организациями в качестве архитектуры баз данных. Он имеет возможность масштабирования и отвечает потребностям современной отрасли обработки данных.

В этой статье мы глубже рассмотрим ES и расскажем о причинах его популярности. Также мы поразмыслим над популярным вопросом: перерастёт ли event sourcing базы данных?
Читать дальше →

Озон и мошенники

Reading time6 min
Views76K

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

Обо всем по порядку. Ситуация классическая — мне нужны были наушники AirPods, которые я пошел выбирать на Озон, т.к. последнее время часто там что‑нибудь покупаю. При первом же поиске обнаруживаю, что разброс предложений по цене слишком неприличный — от 3000р. до 23 000р. Ну не могут же AirPods Pro 2 стоит 3000р.? Не могут. А сколько могут? Ну беру золотую середину и начинаю искать адекватное предложение от известного магазина с хорошим рейтингом и положительными отзывами на товар. Нахожу предложение от Технопарк за 11 700р. с припиской, что скидка 43%. Чего это они столько скинули? Да бог их знает, им виднее. Это ж Технопарк — крупная сеть, подделку уж точно продавать не будут. «Лох классический», скажете вы, и наверное доля правды в этом есть. Но и на старуху бывает проруха. Мошенники бы не ели свой хлеб, если бы периодически каждый из нас не оказывался в ситуации, когда его бдительность притупляется.

В общем я зашел в карточку товара, там было довольно много отзывов, все положительные, везде написано, что наушники оригинальные и т. п. У самого продавца была пометка Premium, рейтинг 5 звезд и вроде бы все достаточно убедительно. Заказываю!

Через несколько дней заказ доставлен курьером на дом. В этот же вечер садимся с женой и проверяем, что там нам пришло. Серийный номер на коробке и на самих наушниках прошел проверку на сайте Apple. Сами наушники распознаны айфоном и ничего вроде бы не вызывает подозрений — ни качество изготовления, ни упаковка. Ну разве что почему‑то прозрачной пленки не было.

Читать далее

Сказ о том как pet-project превратился в небольшой пассивный доход (часть 1)

Level of difficultyEasy
Reading time5 min
Views43K

Я backend разработчик с опытом около 3-х лет, пишу в основном на Golang. Проработал в нескольких крупных российских компаниях. Сейчас я параллельно со своей работой пытаюсь сделать удобный, дешевый VPN сервис с высокой пропускной способностью. В этой статье я хочу просто рассказать про жизненный цикл своего проекта. Возможно кому-то будет просто интересно почитать, а кто-то может почерпнуть что-то новое для себя.

Читать далее

“Честный кейс от выпускника бизнес-инкубатора”

Level of difficultyEasy
Reading time4 min
Views4.3K

В 2018 году мне довелось оказаться в проекте, который запускал молодой предприниматель и выпускник какой-то модной на тот момент “бизнес-юности”.

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

Читать далее

Лучшая задача по программированию для собеседования

Reading time7 min
Views70K

Готовиться к собеседованию можно по-разному: смотреть ролики на YouTube, читать документацию, положиться на судьбу и тд. В большинстве случаев кандидатам предложат решить одну или несколько задач. В этой статье вас ждет подробный разбор реальной задачки, рекомендации к ее решению и объяснение ожиданий интервьюера от кандидатов.

Читать далее

Компилятор с полностью гомоморфным шифрованием от Google

Reading time19 min
Views7.8K

Ещё в мае 2022 года я переориентировал пару команд в Google на разработку полностью гомоморфного шифрования (вот объявление об этом в рассылке). С тех пор я участвовал в работе над многими проектами в этой области, в частности, руководил поддержкой на github.com/google/fully-homomorphic-encryption – это опенсорсный ПГШ-компилятор для C++. В этой статье даётся вводная информация о том, как при помощи этого инструмента компилировать программы с расчётом на ПГШ. Также пробежимся по тому, из чего этот компилятор состоит.

Читать далее

Структуры данных: связный список

Level of difficultyMedium
Reading time4 min
Views39K

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

Связный список

Деконструкция OCP

Level of difficultyEasy
Reading time6 min
Views4.1K

Здравствуйте, меня зовут Дмитрий Карловский. А вы на канале Core Dump, где мы берём различные темы из компьютерной науки и без лишней зауми раскладываем их по полочкам.

В далёком 1988 году Бертран Мейер сформулировал свой принцип написания кода долгоживущих проектов под названием «Принцип открытости/закрытости» или OCP.

Вкратце, он звучит так: «программные сущности должны быть открыты для расширения, но закрыты для изменения». И, как любой короткий принцип, он требует десятки статей для толкования. Но к чёрту всю воду, включаем нашу соковыжималку!

Что, опять?

Методы обфускации трафика. Гомоморфное шифрование

Reading time3 min
Views7.4K

Схема гомоморфного шифрования (HE)

В последнее время на Хабре всё чаще поднимается тема обфускации/маскировки трафика. Для этих целей разработаны различные инструменты и методы, такие как Pluggable Transports и Project V. Но особый интерес привлекают схемы с использованием FHE (полностью гомоморфного шифрования), поскольку это самый передовой рубеж развития криптографической науки.

Если в двух словах, FHE позволяют производить вычисления над зашифрованными данными без их расшифровки. Это открывает совершенно новые возможности. Например, можно обрабатывать на сервере конфиденциальные данные пользователей без их раскрытия серверу.
Читать дальше →

20 уроков, которые я вынес из 20 лет работы программистом

Level of difficultyEasy
Reading time9 min
Views118K
Вы приступаете к чтению статьи с высокой концентрацией советов. Учиться у предшественников – хороший способ добиться успеха, но здесь мы часто забываем о важной оговорке. Практически любой совет работает только в определенном контексте, но дается обычно без каких-либо указаний на него.

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

Без понимания контекста советы теряют смысл или, хуже того, приносят вред. Если бы люди из примеров выше последовали своим собственным советам в начале пути, то, вероятно, пожалели бы этом. Этой ловушки сложно избежать. Мы представляем собой кульминацию своего опыта, но при этом смотрим на него через призму настоящего.
Читать дальше →

Переделка ККМ Атол в термопринтер

Level of difficultyMedium
Reading time6 min
Views8.1K

 

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

— корпус есть отличный;

— уже встроена клавиатура и не просто, а более‑менее надежная;

— есть светодиодные индикаторы и динамик (пищалка);

— корпус штатно крепится к стене;

— все собрано красиво и на вид надежно.

Внутри есть платка с AVR микроконтроллером, разъемом внутрисхемного программирования. Что осталось:

— вывести наружу com порт для подключения к серверу;

— приделать реле для включения пускателя солярия;

— подключить блок питания;

— и главное — написать саму прошивку.

Читать далее

Information

Rating
Does not participate
Location
Анталия, Анталья, Турция
Registered
Activity

Specialization

Backend Developer
Senior
From 8,000 €
C#
SQL
Git
Linux
Docker
PostgreSQL
MySQL
OOP
Design patterns
.NET