Pull to refresh
391
103
Send message

Книга «Продвинутые алгоритмы и структуры данных»

Reading time7 min
Views31K
image Привет, Хаброжители!

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

Вы постоянно сталкиваетесь с бесчисленными проблемами программирования, которые поначалу кажутся запутанными, трудными или нерешаемыми. Не отчаивайтесь! Многие из “новых” проблем уже имеют проверенные временем решения. Эффективные подходы к решению широкого спектра сложных задач кодирования легко адаптировать и применять в собственных приложениях, а при необходимости создавать собственные структуры данных под конкретную задачу. Сбалансированное сочетание классических, продвинутых и новых алгоритмов обновит ваш инструментарий программирования, добавив в него новые перспективы и практические методы.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments3

Книга «Гейм-дизайн: как создаются игры»

Reading time9 min
Views12K
image Привет, Хаброжители!

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

Книга затрагивает теорию гейм-дизайна, практические особенности реализации игр в различных жанрах, их внутренние механизмы и самые успешные проекты в конкурентном игровом мире. Майкл Киллик, получивший премию BAFTA за наставничество молодых дизайнеров видеоигр, познакомит вас с техническими аспектами разработки игр и поделится приемами, которые помогут сделать первые шаги на пути создания собственных проектов. Вы поймете особенности игровой индустрии и будете разбираться во всех этапах создания игрового продукта, от идеи до разработки и выпуска игры.
Читать дальше →
Total votes 11: ↑8 and ↓3+5
Comments8

Использование фреймворков модульного тестирования для выявления уязвимостей

Reading time6 min
Views1.8K
image

Формулировка проблемы


Поиск уязвимостей — сложный процесс, а еще сложнее пользоваться уязвимостями на нескольких целях в разных конфигурациях. Именно по этой причине существует множество фреймворков, таких как Metasploit, и различных сканеров уязвимостей, таких как nuclei. Так много фреймворков и инструментов, но эксплойты по-прежнему осуществляются при помощи простых скриптов, написанных на различных языках, таких как Python и Go. Почему так? Всё дело в гибкости.

Написание собственных скриптов — лучший выбор, и в наши дни исследователи безопасности с удовольствием пишут код на Python и Go. Однако есть несколько проблем с простыми скриптами. Например, когда у вас есть сотни скриптов, и вам нужно найти один конкретный скрипт для эксплуатации одной части, основанной на обнаружении. Для этого я видел, как исследователи безопасности писали свои собственные инструменты с простыми функциями, такими как обнаружение и методы эксплуатации, а затем запускали код в нескольких потоках. Думаю, вы уже пытались это сделать. Может быть, у вас уже есть такая конфигурация или вы используете Nuclei для достижения той же цели. Это просто, и работа действительно выполняется, но есть ли способ получше? Да, есть. Модульное тестирование.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

Книга «System Design. Машинное обучение. Подготовка к сложному интервью»

Reading time10 min
Views11K
image Привет, Хаброжители!

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

Также она поможет всем, кто интересуется проектированием систем МО, будь то новички или опытные инженеры.

Что внутри?
  • О чем на самом деле спрашивают на собеседовании по System Design в МО и почему (инсайдерская информация!).
  • 7 основных шагов для решения любой задачи МО, предлагаемой на собеседовании.
  • 10 вопросов из реальных собеседований по System Design в МО с подробным разбором ответов.
  • 211 диаграмм, которые наглядно объясняют, как работают различные системы.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments7

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

Reading time7 min
Views7.7K
Шпаргалка для ответа на любой вопрос о проектировании систем машинного обучения на вашем следующем собеседовании.

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

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

image
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments0

Книга «Новые финансы: блокчейн, DeFi, Web3 и криптовалюты»

Reading time17 min
Views2.6K
imageПривет, Хаброжители! В современном мире, где криптовалюты и блокчейн-технологии стремительно набирают обороты и вытесняют традиционные валюты, для каждого финансово успешного человека становится критически важным уверенное понимание данных тем. Автор щедро делится своими уникальными знаниями и опытом. Он открывает читателю всю глубину мира децентрализованных финансов, предлагая теоретические основы и практические инструменты, которые помогут читателю не только быть в тренде, но и защитить и преумножить свои цифровые инвестиции.
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments2

Python без типов: таким он когда-то был

Reading time5 min
Views8.9K
О типизации в Python сказано уже очень много. Если вам выпало сомнительное удовольствие поработать со мной, то вы, вероятно, в курсе, насколько скептически я отношусь к типизации в Python. Причины тому – сложность синтаксиса, mypy еле ползает, реализация языка в принципе переусложнена, а взаимодействовать с ним зачастую неудобно. Сегодня я не буду упирать на эти детали, а хочу пригласить вас в небольшое путешествие в прошлое и рассказать, каковы были мои первые впечатления от работы с Python. Почему? Потому что я думаю, что существует фундаментальный и глубокий конфликт между формообразующей философией Python и концепцией типизации. Причём, этот конфликт не нов.
Читать дальше →
Total votes 13: ↑10 and ↓3+7
Comments14

Книга «Канбан Метод. Базовая практика»

Reading time10 min
Views7.8K
image Привет, Хаброжители!

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

  • его изобрели на Тойоте;
  • в нем есть доски и стикеры;
  • там ограничивают количество незавершенной работы.
Книга покажет вам, что современный канбан не имеет никакого отношения к Тойоте, и это скорее инструмент управления изменениями, и там далеко не про доски и стикеры, а про работу с рисками, статистикой и про управление работой.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments4

Кастомизация бессерверных функций без применения промежуточного ПО

Reading time10 min
Views991
Когда пишешь код для серверного API, часто требуется проделывать схожие шаги: аутентифицировать пользователей, уточнять их роли и выставленные флаги функций, т.д. В большинстве фреймворков для бэкенда безупречно организовано взаимодействие с обработчиками запросов. Часто такой софт называют «промежуточное ПО» (middleware), поскольку он находится между кодом приложений и кодом системы. В этой статье я аргументирую, почему стоит обходиться как можно меньшим объёмом промежуточного ПО, и рассказываю, как при этом не сойти с ума.

Зачем он нам вообще может понадобиться?


На первом этапе работы можно заметить, что каждая функция у вас начинается с множества повторяющихся строк, например:
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments0

Книга «Roblox: играй, программируй и создавай свои миры. 2-е изд»

Reading time1 min
Views3.1K
image Что такое Roblox? Это красочная компьютерная платформа для создания и публикации своих игр. Мир Roblox изо дня в день становится все популярней, и ты можешь стать его частью! Если ты мечтаешь стать геймдизайнером и создать свою игру, но не знаешь, с чего начать, эта книга поможет тебе!
— Не требуется предварительных знаний — ты можешь начать делать игру сразу!
— Мир Roblox интуитивно понятен и очень нравится детям и взрослым.
— В книге даны очень подробные пошаговые инструкции по установке и работе с Roblox.
— Есть введение в программирование и язык Lua.
— Наглядные инструкции по созданию игровых объектов (каждое действие иллюстрируется скриншотом).
— Интересные задания для самостоятельной работы.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments4

Фильтр Блума для эффективной синхронизации хеш-графов

Reading time8 min
Views3.4K
В одном из совместных исследований нам с Хайди требовалось решить такую задачу. Допустим, нам требуется синхронизировать между двумя узлами хеш-граф, например, как в репозитории Git. В Git каждый коммит идентифицируется через соответствующий ему хеш, причём, в коммит могут включаться хеши коммитов-предшественников (то есть, конкретный коммит может содержать более одного хеша, если он получен слиянием). Мы хотели получить минимальное множество таких коммитов, которыми должны обменяться два узла, чтобы их графы получились одинаковыми.

Вы могли бы спросить: «а разве эта задача ещё не решена»? Git приходится выполнять такую операцию всякий раз, когда вы направляете ему команду git pull или git push! Да, так и есть, и некоторые случаи довольно просты, но другие гораздо сложнее. Более того, тот алгоритм, что используется в Git, не слишком хорошо документирован – в общем, мы полагали, что у нас может получиться лучше.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments0

Детализированные стратегии кэширования динамических запросов

Reading time7 min
Views4K
Сегодня я хотел бы поговорить о стратегиях кэширования для совокупных запросов к часто обновляемым данным, основанным на времени. На предыдущем месте работы я провел немало «мозговых циклов» и с удовольствием поделюсь некоторыми своими находками.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments2

Увлекательный лексический анализ языка Rust

Reading time7 min
Views6.4K

Давайте поговорим о лексическом анализе. Сначала я собирался назвать этот пост «Реализуем токенайзер», но ветер переменился, времена изменились… и, чтобы не утонуть в потоке комментариев вида «фыр, а где мой BPE-токенизатор LLama, который вы мне обещали», ограничимся пока лексическим анализом.

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

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

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

Довольно слов, приступим.

Читать далее
Total votes 18: ↑16 and ↓2+14
Comments6

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

Level of difficultyMedium
Reading time7 min
Views7.4K
Когда я только начинал изучать компиляторы, я не понимал одного важного момента: Разработка языка программирования и написание компилятора — это два почти совершенно разных навыка. Конечно, между ними есть некоторое пересечение, но меньшее, чем может показаться на первый взгляд!

Я думаю, что это важно знать, потому что обе эти задачи очень сложны! Легче овладеть этими навыками, если решать их по очереди. Ваше первое решение сложной задачи, скорее всего, будет… ну, не таким хорошим, как десятое! Однако довольно часто разработчики создают игрушечный язык, когда пишут свой первый компилятор, а это значит, что они совершают ошибки и учатся сразу на двух сложных проблемах. Хуже того, эти две проблемы взаимосвязаны: Ошибка в одной из них усложняет жизнь в другой. Кроме того, как мы увидим, хотя компиляторы и сложны на первых порах, они, по сути, являются решенной проблемой, в то время как разработка языка программирования — это, скажем так, область продолжающихся исследований.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments5

Книга «C++ для начинающих. 2-е изд."

Level of difficultyMedium
Reading time10 min
Views11K
image Привет, Хаброжители!

Книга Герберта Шилдта начиная с таких базовых понятий языка, как типы данных, массивы, строки, указатели и функции, книга охватывает также важнейшие элементы объектно-ориентированного программирования — классы и объекты, наследование, виртуальные функции, потоки ввода-вывода, исключения и шаблоны. Каждый раздел сопровождается простыми и наглядными примерами, позволяющими получить практические навыки программирования. Книга предназначена для приступающих к изучению языка С++ — одного из самых универсальных и распространенных на сегодня языков программирования.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments6

Как я пишу на C по состоянию на конец 2023 года

Level of difficultyMedium
Reading time9 min
Views27K
Этот год выдался переломным для моих навыков по программированию на C. Можно сказать, что я пережил слом парадигмы, что побудило меня пересмотреть привычки и весь стиль программирования. Это была крупнейшая метаморфоза моего личного профессионального стиля за долгие годы, так что я решил написать этот пост в качестве «мгновенного снимка» моих нынешних суждений и профессионального существования. Эти перемены во многом пошли на пользу моей продуктивности и организованности, поэтому, при всей субъективности того, что я скажу, в посте наверняка будут описаны и вполне объективные вещи. Я не утверждаю, что на С нужно писать именно так, как рассказано ниже, а я сам, выступая контрибьютором некоторого проекта, придерживаюсь того стиля, который там заведен. Но описанные ниже приёмы, как оказалось, очень пригодились мне при работе.
Читать дальше →
Total votes 49: ↑37 and ↓12+25
Comments91

Книга «BPF: профессиональная оценка производительности»

Reading time19 min
Views2.3K
image Привет, Хаброжители!

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

Брендан Грегг — эксперт и пионер проекта BPF — представляет более 150 готовых инструментов анализа и отладки, рекомендации по их применению, а также пошаговые инструкции по разработке ваших собственных инструментов. Вы узнаете, как анализировать процессоры, память, дисковый ввод/вывод, файловую систему, сети, языки программирования, приложения, контейнеры, гипервизоры, безопасность и ядро. Вы сможете выработать глубокое понимание того, как улучшить буквально любую Linux-систему или приложение.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments1

Книга «Настоящий CTO: думай как технический директор»

Reading time20 min
Views5.5K
image Привет, Хаброжители!

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

Книга на примерах из реальной практики показывает, как преуспеть в быстро меняющейся роли технического директора. Прочитав ее, вы научитесь создавать успешные технологические платформы и формировать эффективные команды, грамотно выбирать и внедрять программные продукты, проводить собеседования и перформанс ревью в беспристрастной манере, а также сможете по праву занять место за столом топ-менеджмента. Вы оцените деловые советы, идеи и истории из практики от наставника CTO Алана Уильямсона.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments7

Information

Rating
Does not participate
Works in
Registered
Activity