Как стать автором
Обновить
3
0

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

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

Для тех, кто познаёт ушами: подкасты для разработчиков

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


Кто сказал, что разработчики могут учиться новому только через книги, видео и анализ чужого кода? Ведь у нас и другие каналы получения информации из окружающего мира. Конечно, речь не о том, чтобы попробовать знания на вкус, пощупать их или понюхать. А вот послушать — самое оно. Мы собрали для вас коллекцию действующих русскоязычных подкастов для разработчиков. Хороший способ дать глазам отдых или занять себя в пробках.
Читать дальше →
Всего голосов 83: ↑80 и ↓3+77
Комментарии57

Математическая модель игры Доббль

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

Уровни сложности чтения


  • Я слишком молод, чтобы думать


    • Введение и правила игры
    • Как они это делают?
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности

  • Сделай мне умно


    • Введение и правила игры
    • Как они это делают?
    • При чём тут карточки?
    • Проективные плоскости малых порядков
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности

  • Кошмар


    • Введение и правила игры
    • Как они это делают?
    • Конечная геометрия для грудничков
    • При чём тут карточки?
    • Проективные плоскости малых порядков
    • Как построить проективную плоскость?
    • Матрица инцидентности для игры Доббль
    • Каких двух карточек не хватает в комплекте игры?
    • Почему в игре на 2 карточки меньше максимально возможного количества?
    • Благодарности


Введение и правила игры


Несколько лет назад я купил игру Доббль (Dobble, оригинальное название “Spot It!”). Это очень простая, быстрая и весёлая игра, которую я считаю одной из лучших настольных игр вообще.

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

Что не так с обучением с подкреплением (Reinforcement Learning)?

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


Еще в начале 2018 года вышла статья Deep Reinforcement Learning Doesn't Work Yet ("Обучение с подкреплением пока не работает"). Основная претензия которой сводилась к тому, что современные алгоритмы обучения с подкреплением требуют для решения задачи примерно столько же времени, как и обычный случайный поиск.


Изменилось ли что-то с того времени? Нет.


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

Читать дальше →
Всего голосов 75: ↑72 и ↓3+69
Комментарии46

Аппликативные парсеры на Haskell

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


Мотивация


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


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


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


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

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

35% аудитории рунета вообще не используют компьютер для интернета

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

Пользование только мобильным интернетом. Источник: Омнибус ГФК-Русь, вся Россия, население 16+

По статистике GfK, в 2018 году резко увеличилась доля россиян, которые выходят в интернет только с мобильных устройств и вообще не пользуются для этого персональными компьютерами. За год «чисто мобильная» аудитория выросла с 18% до 35%.

Среди самых молодых пользователей у 41% компьютеры отсутствуют или не используются для интернета. Ситуация не слишком отличается для людей средних лет: 30%. Такими темпами смартфоны скоро могут стать основным устройством для выхода в интернет. Некоторые эксперты говорят, что это уже произошло.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии89

Всегда ли нужны Docker, микросервисы и реактивное программирование?

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


Автор: Денис Цыплаков, Solution Architect, DataArt

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

Если вы не делаете что-то принципиально новое, например, первый в мире интернет-поисковик или искусственный интеллект для управления запуском ядерных ракет, создать дизайн хорошей системы довольно просто. Достаточно учесть все требования, посмотреть на дизайн похожих систем и сделать примерно так же, не совершив при этом грубых ошибок. Звучит как чрезмерное упрощение вопроса, но давайте вспомним, что на дворе 2019 год, и «типовые рецепты» дизайна систем есть практически для всего. Бизнес может подкидывать сложные технические задачи — скажем, обработать миллион разнородных PDF-файлов и вынуть из них таблицы с данными о расходах — но вот архитектура систем редко отличается большой оригинальностью. Главное тут — не ошибиться с определением того, какую именно систему мы строим, и не промахнуться с выбором технологий.

В последнем пункте регулярно возникают типичные ошибки, о некоторых из них я расскажу в статье.
Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии104

Как «пробить» человека в Интернет: используем операторы Google и логику

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

В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


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


Читать дальше →
Всего голосов 122: ↑105 и ↓17+88
Комментарии108

[The Old New Thing] Могу ли я использовать свой стек как угодно?

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

В Windows стек растет от больших адресов к меньшим. Иногда это определяется архитектурно, а иногда это просто принятое соглашение. Значение указателя стека (регистр процессора), является указателем на значение в верхней части стека. А значения, расположенные глубже по стеку, соответственно, находятся по большим адресам. Но что происходит с данными, которые расположены по адресам, меньшим, чем указатель стека?



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

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

Бот, играющий в Castlevania

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

Что это


CastlevaniaBot — это плагин для эмулятора NES Nintaco, который играет в Castlevania. Если запустить его на экране заставки, то плагин пройдёт всю игру от начала до конца. Или же можно запустить его в любом месте игры, чтобы он прошёл её часть.


В этой статье я расскажу, как создал бота, способного пройти Castlevania, и как вы можете создать нечто подобное для любой игры на NES.
Всего голосов 33: ↑32 и ↓1+31
Комментарии7

«Ты крутой разраб, иди и попроси больше денег» — расскажем менеджерам, как устроен мир

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


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


Знаете что? Пусть катятся к черту.

Читать дальше →
Всего голосов 256: ↑215 и ↓41+174
Комментарии986

0xc00007b или установка драйверов из-под программы

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

Вступление


Доброго времени суток. Знакомо ли вам исключение 0xc00007b? С момента перевода движка X-Ray под x64 приходило очень много репортов о проблеме 0cx00007b. В 90% случаев, это была проблема с отсутствием 64 битного драйвера OpenAL.

Читать дальше →
Всего голосов 25: ↑20 и ↓5+15
Комментарии19

GPU консоли Nintendo DS и его интересные особенности

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

Я хотел бы рассказать вам о работе GPU консоли Nintendo DS, об его отличиях от современных GPU, а также выразить своё мнение о том, почему использование Vulkan вместо OpenGL в эмуляторах не принесёт никаких преимуществ.

Я не особо знаю Vulkan, но из прочитанного мне понятно, что Vulkan отличается от OpenGL тем, что работает на более низком уровне, позволяя программистам управлять памятью GPU и подобными вещами. Это может пригодиться для эмуляции более современных консолей, в которых используются проприетарные графические API, обеспечивающие уровни контроля, недоступные в OpenGL.
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии2

Титаны от математики схлестнулись над эпичным доказательством abc-гипотезы

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

Два математика утверждают, что нашли дыру в самом сердце доказательства, вот уже шесть лет сотрясающего математическое сообщество




В отчёте, опубликованном в сентябре 2018 в интернете, Петер Шольце из Боннского университета и Якоб Стикс из Университета имени Гёте во Франкфурте описали то, что Стикс называет «серьёзным и невосполнимым разрывом» в огромной серии объёмных работ Синъити Мотидзуки, знаменитого гениального математика из Киотского университета. Опубликованные в интернете в 2012 году работы Мотидзуки якобы доказывают abc-гипотезу, одну из наиболее далеко идущих задач в теории чисел.
Читать дальше →
Всего голосов 65: ↑62 и ↓3+59
Комментарии97

Как два программиста хлеб пекли

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


Я работаю программистом уже много лет, на протяжении которых, как это ни странно, я всё время что-то программирую. И вот какую интересную вещь я заметил: в коде, написанном мной месяц назад, всегда хочется что-то чуть-чуть поправить. В код полугодичной давности хочется поменять очень многое, а код, написанный два-три года назад, превращает меня в эмо: хочется заплакать и умереть. В этой статье я опишу два подхода. Благодаря первому архитектура программы получается запутанной, а сопровождение — неоправданно дорогим, а второй — это принцип KISS.

Итак, представим себе, что есть два программиста. Один из них умный, прочёл кучу статей на Хабре, знает каталог GoF наизусть, а Фаулера — в лицо. Другой же делает всё просто. Первого будут звать, например, Борис Н., а второго — Маркус П. Само собой, имена вымышленные, и все совпадения с реальными людьми и программистами случайны.

Итак, к ним обоим приходит проектный менеджер (если в вашей вселенной PM не ходит сам к программистам, назовите его как-то иначе, например BA или lead, сути это не изменит) и говорит:
— Ребята, нам нужно, чтобы делался хлеб.

Именно так, «делался», без уточнения способа производства.

Как же поступят наши программисты?
Читать дальше →
Всего голосов 380: ↑348 и ↓32+316
Комментарии328

AI, практический курс. Обзор нейронных сетей для классификации изображений

Время на прочтение8 мин
Количество просмотров29K
В данной статье приводится доступный теоретический обзор сверточных нейронных сетей (Convolutional Neural Network, CNN) и разъясняется их применение к задаче классификации изображений.


Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии3

Процессор

Время на прочтение8 мин
Количество просмотров151K
Сколько я себя помню, всегда мечтала сделать процессор. Наконец, вчера я его сделала. Не бог весть что: 8 бит, RISC, текущая рабочая частота — 4 кГц, но он работает. Пока что в программе моделирования логических цепей, но все мы знаем: «сегодня — на модели, завтра — на деле!».

Под катом несколько анимаций, краткое введение в двоичную логику для самых маленьких, короткий рассказ про основные микросхемы логики процессора и, собственно, схема.
Читать дальше →
Всего голосов 361: ↑347 и ↓14+333
Комментарии66

Операционные системы с нуля; уровень 2 (старшая половина)

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

Пришло время написать файловую систему. Файловая система сама себя не напишет. В этой половинке лабы мы таки реализуем файловую систему FAT32, прикрутим к ней драйвер SD-карты и чуть-чуть повзаимодействуем с ней через нашу интерактивную оболочку.


Нулевая лаба


Первая лаба: младшая половина и старшая половина


Младшая часть. Продолжение под катом.

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

Довольно автоматизации ― пора нарисовать сову на PowerShell и научить консоль говорить

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


Сегодня звездный час PowerShell: время странных скриптов и созданных при помощи «Мощной Оболочки» игр. Если серьезная рутина вам надоела и хочется посмотреть на иные таланты PowerShell ― приглашаю под кат.

и да начнется веселье!
Всего голосов 18: ↑17 и ↓1+16
Комментарии7

Окна на чистом WinAPI. Или просто о сложном

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

Казалось бы, что WinAPI уходит в прошлое. Давно уже существует огромное количество кросс-платформенных фреймфорков, Windows не только на десктопах, да и сами Microsoft в свой магазин не жалуют приложения, которые используют этого монстра. Помимо этого статей о том, как создать окошки на WinAPI, не только здесь, но и по всему интернету, исчисляется тысячами по уровню от дошколят и выше. Весь этот процесс разобран уже даже не по атомам, а по субатомным частицам. Что может быть проще и понятнее? А тут я еще…

Но не все так просто, как кажется.
Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии94

Минимальный multiboot загрузчик

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

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


Я попытался объяснить всё в деталях и оставить код максимально простым, насколько это возможно. Если у вас возникли вопросы, предложения или какие-либо проблемы, пожалуйста, оставьте комментарий или создайте таску на GitHub. Исходный код доступен в репозитории.


Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии15

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность