Как стать автором
Обновить
41
0
Джа Иваныч @hmpd

Переводчик времени

Отправить сообщение

Пять декораторов Python, которые могут сократить код в два раза

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров21K

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

Читать далее
Всего голосов 35: ↑31 и ↓4+30
Комментарии10

Github pages для pet проектов

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров21K

Как можно использовать github pages для своих fullstack pet проектов с бэкендом на статических файлах)

Читать далее
Всего голосов 13: ↑11 и ↓2+11
Комментарии6

Три способа отладки T-SQL кода

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров9.6K

Написание нового кода = ошибки. С этим всё просто.

Избавится от ошибок – вот это сложная задача.

Программисты привыкли, что в их средствах разработки есть встроенные инструменты, показывающие, какая строка кода сейчас работает, отображают текущее содержимое переменных, выводят сообщения о процессе выполнения и т.д. Какое-то время в SQL Server Management Studio тоже был отладчик кода, но, начиная с версии SSMS v18, он был удален. Хотя даже когда отладчик был, я не фанател от него: SQL Server буквально мог прекратить обработку других запросов, пока выполнял ваш запрос. Это была катастрофа, особенно когда ваш запрос блокировал других пользователей, и всё это происходило на рабочей базе.

Мне бы хотелось, чтобы у нас был простой способ отладки T-SQL на рабочей базе без блокировок, но отладка T-SQL отличается от отладки в C#. Так что если ваш T-SQL код делает не то, что вы ожидали, вот несколько хороших способов для его отладки.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии16

Письмо, которое я не смогу отправить себе в прошлое

Время на прочтение9 мин
Количество просмотров13K

Не смотри на меня. Я (не)много седой, с морщинами и уже не влезу в тот коричневый костюм, который был на тебе в 2005 году. Да-да, в ту ночь, когда ты верстал студенческую газету на казённом Ровере в крякнутом Паблишере. Надеюсь, пространственно-временной континуум всё же искривится в нужную ленту, ты прочтёшь это письмо и мы сможем что-то изменить. Ладно, я не дурак и знаю, что нет. Но всё же — я обращаюсь к 20-летнему тебе, потому что поговорить честно с самим собой — уже половина дела на пути к чему-то хорошему. Хорошего в нашем 2023 не хватает.

Читать далее
Всего голосов 40: ↑35 и ↓5+45
Комментарии46

Полная история создания легенды компьютерных игр. Elite (1984). Часть 1

Время на прочтение22 мин
Количество просмотров20K

За основу я взял оригинальный текст книги «The Backroom Boys: The Secret Return of the British Boffin» (автор Francis Spufford), о которой узнал случайно. «Backroom Boys» – в Британии индустриальной эпохи так называли гениальных инженеров, которые трудились в «продуваемых насквозь зданиях на задворках фабрик», и изобрели технологии будущего.

Одна из глав посвящена созданию Elite по воспоминаниям авторов – Дэвида Брабена и Йена Белла.

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

С моей стороны получился несколько вольный перевод, заранее прошу прощения за неточности. Буду благодарен за комментарии и правки. Для поклонников «Элиты» я размещу ссылку на сайт Йена Белла, где есть авторские материалы, исходники, порты для разных ПК, новелла «Тёмное колесо» Холдстока, и даже рок-опера по мотивам «Элиты», созданная братом Йена.

Погнали!
Всего голосов 52: ↑51 и ↓1+58
Комментарии30

Микросервисы — не способ масштабироваться

Время на прочтение4 мин
Количество просмотров12K

В большом количестве статей, источников микросервисы, помимо всего прочего, представляются как способ построить масштабируемое решение. Рассмотрим на примерах, почему это не так. А так же попытаемся внести свою лепту в извечный вопрос: "Что лучше: монолит или микросервис?"

Читать далее
Всего голосов 25: ↑10 и ↓150
Комментарии54

Вы НЕ сошли с ума (о режиме сна в Windows)

Время на прочтение8 мин
Количество просмотров134K

Вы сталкивались с тем, что ноутбук случайно включается, хотя вы уверены, что отправляли его в сон?

Бывало, что батарея оказывалась пустой, хотя вы точно-точно помните, как убирали в сумку заряженный на 100% ноутбук?

Тогда вам сюда:

Мне сюда
Всего голосов 214: ↑204 и ↓10+238
Комментарии508

Что будет, если от разработчиков не отстать: умирающая команда

Время на прочтение11 мин
Количество просмотров61K
Мне досталась команда, которая болела. Все понимали, что происходит, никому не нравилось, что творится в команде, и традиционно менеджеры такие команды сильно режут. Но здесь были шансы вылечить и без ампутаций.


Источник

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

Вроде бы когда-то это был настроенный конвейер, но теперь его куски — как будто в разных зданиях. Особо не заботятся о том, что было «до» и что будет «после». А если всё падает, то люди поднимают руки: «Я не виноват. Я не знаю, как поднять».

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

Почему процессы разваливались? На первый взгляд, потому, что была куча ненужных совещаний и встреч с теми, кого разработчики вообще не должны были видеть. Плюс местами странноватые KPI. Как это ни странно, но если психологически давить на разработчика пару лет, то ничем хорошим это не закончится. Руководство подразделения дало мне карт-бланш на исправления, и я начал разбираться, что же случилось.
Читать дальше →
Всего голосов 171: ↑167 и ↓4+205
Комментарии74

Пайтон Джуньор Плюс, или путеводитель начинающего Python-программиста

Время на прочтение8 мин
Количество просмотров25K

image


Добрый день! Меня зовут Михаил Емельянов, по профессии я программист программ, а этот небольшой путеводитель по возможностям языка Python меня сподвиг написать довольно существенный, на мой взгляд, разрыв между декларируемыми объемами всевозможных курсов программирования и требованиями реальных, даже достаточно скромнооплачиваеых вакансий, а также некоторая обобщенность существующих Python-путеводителей, найденных на просторах Сети.


Особенно выбивают из равновесия советы изучить, скажем, «Алгоритмы и структуры данных» или «SQL». Да зубы можно сточить, изучая эти темы, и даже будучи седовласым старцем, постоянно открывать для себя что-то новое, не выходя за рамки тематики «Алгоритмов»!


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

Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии9

Привет Emotet! Исследуем вредоносный документ Excel

Время на прочтение4 мин
Количество просмотров8.1K

Исследуем вредоносный документ с вновь набирающим популярность трояном Emotet.

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

Статья выходит довольно обширная, в связи с этим будет состоять из двух частей, т.к. здесь я постараюсь доступно изложить исследование вредоносного документа формата Excel (такие документы сегодня используются в фишинговых кампаниях по всему миру для заражения трояном Emotet), а после исследования вредоносного документа решим задание от cyberdefenders.org, в котором нам предложат поковырять дамп оперативной памяти, с уже зараженного хоста, давайте приступать.

Читать далее
Всего голосов 19: ↑18 и ↓1+18
Комментарии15

Небанальные правила чистого Python. Часть 1

Время на прочтение6 мин
Количество просмотров20K

Большинство питонистов не раз слышали о таких правилах как «функции должны быть глаголами» или «не наследуйтесь явно от object в Python 3». В этой статье рассмотрим не такие банальные, но полезные правила чистого кода в Python.

Читать далее
Всего голосов 40: ↑38 и ↓2+45
Комментарии49

Исчерпывающее руководство по множествам в Python

Время на прочтение10 мин
Количество просмотров67K

Класс set (множество) — это одна из ключевых структур данных в Python. Она представляет собой неупорядоченную коллекцию уникальных элементов. Класс set, в некоторой степени, соответствует математическому множеству. Многие широко используемые математические операции, применимые к множествам, существуют и в Python. Часто вычисления, производимые над множествами, оказываются гораздо быстрее, чем альтернативные операции со списками. В результате, для того чтобы писать эффективный код, Python-программисту просто необходимо уметь пользоваться множествами. В этой статье я расскажу об особенностях работы с классом set в Python.

Читать далее
Всего голосов 16: ↑15 и ↓1+24
Комментарии9

Согласованное хеширование: не самые очевидные вещи

Время на прочтение13 мин
Количество просмотров7K
image

Классический алгоритм согласованного хеширования решает проблемы, присущие алгоритму модульного хеширования, где хеш-функция (позиция ключа K) привязана к числу элементов хранилища – и, соответственно, при масштабировании как вверх, так и вниз, требуется перераспределение всех этих ключей.

# модульное хеширование
hash = key % N of nodes


В свою очередь, при согласованном хешировании хеширующая функция не зависит от количества узлов хранения. Поэтому можно динамически секционировать данные по мере добавления или удаления узлов, тем самым масштабируясь поступательно.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+20
Комментарии2

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Время на прочтение44 мин
Количество просмотров219K


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Всего голосов 80: ↑76 и ↓4+72
Комментарии270

Создание и запуск веб-приложения в ASP.NET Core

Время на прочтение30 мин
Количество просмотров14K


Эта статья является продолжением двух предыдущих занудных статей под общим заголовком "О классах Program и Startup — инициализация ASP.NET приложения": "Program и IHostBuilder"[1] и "IWebHostBuilder и Startup"[2] — в которых подробно написано о том, что происходит в процессе инициализации приложения ASP.NET, сделанного по шаблону Generic Host. В тех двух статьях я рассказывал, как производится настройка и выполняется создание объектов конфигурации (она доступна через интерфейс IConfiguration), контейнера сервисов (он же DI-контейнер, его интерфейс — IServiceProvider) и размещения (интерфейс IHost). А в этой статье я собираюсь подробно рассказать, что происходит сразу после того, как приложение запускается на выполнение в объекте размещения.
Написав третью статью на примерно одну и ту же тему, я подумал, что и первые две, и эта должны стать частью одной серии, которую я для себя озаглавил "Под капотом" (см. КДПВ)


Предупреждение: статья занудная

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


TLDR, она же аннотация
  1. Запуск приложения, состоящего из размещенных (фоновых) сервисов в Generic Host (конструктор класса Internal.Host и его метод StartAsync).
  2. Запуск размещенного сервиса веб-приложения (Конструктор класса GenericWebHostedService и его метод StartAsync)
  3. Создание конвейера компонентов-обработчиков запроса(middleware). Класс ApplicationBuilder.
  4. Заключение

Но если вам все ещё интересно (или не интересно, но читать все равно зачем-то надо) — добро пожаловать под кат (и не говорите, что я вас не предупреждал, что легкого чтения не будет).

Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии4

Record vs struct — когда кто кого

Время на прочтение13 мин
Количество просмотров27K

В .Net, помимо типов class и struct, с недавних пор есть еще и типы record и record struct. Появление двух новых типов могло внести запутанность по поводу того, в чем их сходства и различия, и в каких случаях стоит их применять. В этой статье мы разберем, в каких ситуациях использовать class, record, struct, и какие преимущества даёт тот или иной тип в различных ситуациях. В конце мы приведем шпаргалку, которая поможет быстро определиться, какой из видов типов лучше подходит в том или ином случае.

Читать далее
Всего голосов 19: ↑18 и ↓1+20
Комментарии8

Обкафкился по полной: 3 фейла с Apache Kafka

Время на прочтение6 мин
Количество просмотров22K

Недавно мы проводили вебинар «Обкафкился по полной. Фейлы с Apache Kafka». На нём спикер Всеволод Севостьянов, Engineering Manager в HelloFresh, поделился фейлами из личной практики, а ещё рассказал, как мастерски ходить по тонкому льду Kafka и прокачать свой бэкенд. Для тех, кто пропустил или предпочитает читать, а не смотреть, подготовили текстовый вариант.

Читать далее
Всего голосов 28: ↑26 и ↓2+27
Комментарии27

Как правильно отвечать на вопрос “Какие у вас зарплатные ожидания?” на рынке США

Время на прочтение6 мин
Количество просмотров67K

На первом интервью чаще всего рекрутер может задать вопрос о зарплатных ожиданиях кандидата — “What Are Your Salary Expectations?”. Я принимаю участие в найме продукт-менеджеров, дизайнеров и инженеров и хочу поделиться с вами своим опытом как правильно отвечать на этот вопрос применительно к рынку США.

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

Читать далее
Всего голосов 76: ↑65 и ↓11+74
Комментарии161

Toyota: 81 514 нарушений в коде

Время на прочтение5 мин
Количество просмотров103K


Люди: — Эй, Тойота, мы тут посчитали, у вас из-за корявой электроники и софта 89 человек погибло с 2000 по 2010.
Тойота: — Да они сами виноваты, путают педали.
Люди: — Хьюстон, у нас проблемы.
NASA: — Ща разберемся, нам надо 10 месяцев и 3 миллиона долларов.
Люди: — На.
Тойота: — 3 миллиона мало, вот вам еще сверху кэшем.
(прошло 10 месяцев)
NASA: — Эй, Тойота, мы у вас пару ошибок в коде нашли, а точнее 7134 нарушения стандартов MISRA, рекурсию, функцию на 740 строк и 9000 глобальных переменных.
Тойота: — А у нас свои стандарты. А вы ваще на Луну летали?
NASA (публично): — Тойота ни в чем не виновата.
(Акции Тойота подскочили на 4,6%)
Люди: — Ну ё-моё.
(спустя 3 года)
Два американских тестировщика (у которых дедушки погибли в Перл-Харбор): — Нет багов? А если найдем?
Всего голосов 131: ↑123 и ↓8+115
Комментарии268

Технотекст-2021: есть победители

Время на прочтение3 мин
Количество просмотров6.4K

Привет, Хабр! 9 месяцев, 600 заявок, 570 принятых заявок, 1,5 месяца работы жюри, 15 профессионалов в жюри в соответствие с номинациями и 0,5 потерянного протокола — так выглядит конкурс технических статей на Хабре «Технотекст-2021». Вчера мы подвели итоги на онлайн-встрече, поговорили с некоторыми членами жюри и даже рассказали несколько баек. Сегодня мы публикуем список победителей, полный разбор будет чуть позже. Поздравляем, вы лучшие из лучших (а худших на конкурсе не было)!

Читать далее
Всего голосов 40: ↑38 и ↓2+70
Комментарии13
1
23 ...

Информация

В рейтинге
4 169-й
Откуда
Уагадугу, Буркина Фасо, Буркина Фасо
Дата рождения
Зарегистрирован
Активность