abracadabra: Как работает Shazam?
Способность вашего телефона определять любую песню, которую он слушает - это чистая технологическая магия. В этой статье я покажу вам, как это делает одно из самых популярных приложений - Shazam. Основатели Shazam выпустили в 2003 году документ, в котором описали принцип работы, а я работал над реализацией этого документа в алгоритме abracadabra.
Там, где документ не объясняет что-то, я восполняю пробелы тем, как сама abracadabra подходит к этому. Я также включил ссылки на соответствующую часть кодовой базы abracadabra в соответствующие разделы, чтобы вы могли следить за развитием событий на Python, если вам так больше нравится.
Со времени написания этой статьи современное состояние дел изменилось, и Shazam, вероятно, усовершенствовал свой алгоритм. Однако основные принципы работы систем идентификации звука не изменились, и точность, которую можно получить с помощью оригинального метода Shazam, впечатляет.
Статья: https://www.cameronmacleod.com/blog/how-does-shazam-work
Способность вашего телефона определять любую песню, которую он слушает - это чистая технологическая магия. В этой статье я покажу вам, как это делает одно из самых популярных приложений - Shazam. Основатели Shazam выпустили в 2003 году документ, в котором описали принцип работы, а я работал над реализацией этого документа в алгоритме abracadabra.
Там, где документ не объясняет что-то, я восполняю пробелы тем, как сама abracadabra подходит к этому. Я также включил ссылки на соответствующую часть кодовой базы abracadabra в соответствующие разделы, чтобы вы могли следить за развитием событий на Python, если вам так больше нравится.
Со времени написания этой статьи современное состояние дел изменилось, и Shazam, вероятно, усовершенствовал свой алгоритм. Однако основные принципы работы систем идентификации звука не изменились, и точность, которую можно получить с помощью оригинального метода Shazam, впечатляет.
Статья: https://www.cameronmacleod.com/blog/how-does-shazam-work
Игра - Симулятор ядерного реактора
Три ручки для управления ядерным реактором!
Сайт: https://dalton-nrs.manchester.ac.uk/
Три ручки для управления ядерным реактором!
Сайт: https://dalton-nrs.manchester.ac.uk/
Не являются ли ваши "лучшие практики" просто догмами?
Если вы не понимаете, почему используется та или иная практика, вы рискуете пойти по пути "hype-driven development".
Статья: https://shiftmag.dev/software-engineering-best-practices-dogmas-1681/
Если вы не понимаете, почему используется та или иная практика, вы рискуете пойти по пути "hype-driven development".
Статья: https://shiftmag.dev/software-engineering-best-practices-dogmas-1681/
ShiftMag
Are your engineering “best practices” just developer dogmas?
If you don't understand why a particular practice is used, you risk going down the lane of "hype-driven development".
Марсоход и моя ошибка на 500 миллионов долларов
Возможно, я только что превратил в кучу мусора оборудование на 500 миллионов долларов. А до запуска марсохода оставалось всего две недели, на восстановление после крупной проблемы времени не было. Я сразу же понял, что в этот синодический цикл, возможно, на Марс удастся запустить только один марсоход. А в моих руках находилось всё ещё тёплое оружие, потенциально убившее марсоход.
Статья: https://habr.com/ru/companies/ruvds/articles/778818/
Возможно, я только что превратил в кучу мусора оборудование на 500 миллионов долларов. А до запуска марсохода оставалось всего две недели, на восстановление после крупной проблемы времени не было. Я сразу же понял, что в этот синодический цикл, возможно, на Марс удастся запустить только один марсоход. А в моих руках находилось всё ещё тёплое оружие, потенциально убившее марсоход.
Статья: https://habr.com/ru/companies/ruvds/articles/778818/
Ваш процесс пул-реквестов замедляет работу всех участников
Как разработчики, мы стремимся писать чистый, модульный код, который легко поддерживать.
Однако из-за необходимости быстро выпускать новые функции и сложности современных приложений, чтобы воплотить это в жизнь, приходится много работать. Любая значимая инженерная задача может легко привести к большим, запутанным пул-реквестам, которые становятся узкими местами в процессе разработки.
В этом руководстве мы рассмотрим, как рабочий процесс стекирования может помочь вам преодолеть эти проблемы и быстрее создавать лучший код. Независимо от того, являетесь ли вы новичком в стекинге или хотите оптимизировать существующий процесс, эта статья может упростить сотрудничество, ускорить циклы рецензирования кода и способствовать распространению лучших практик в вашей команде.
Статья: https://graphite.dev/blog/your-github-pr-workflow-is-slow
Как разработчики, мы стремимся писать чистый, модульный код, который легко поддерживать.
Однако из-за необходимости быстро выпускать новые функции и сложности современных приложений, чтобы воплотить это в жизнь, приходится много работать. Любая значимая инженерная задача может легко привести к большим, запутанным пул-реквестам, которые становятся узкими местами в процессе разработки.
В этом руководстве мы рассмотрим, как рабочий процесс стекирования может помочь вам преодолеть эти проблемы и быстрее создавать лучший код. Независимо от того, являетесь ли вы новичком в стекинге или хотите оптимизировать существующий процесс, эта статья может упростить сотрудничество, ускорить циклы рецензирования кода и способствовать распространению лучших практик в вашей команде.
Статья: https://graphite.dev/blog/your-github-pr-workflow-is-slow
SuperDuperDB - это фреймворк с открытым исходным кодом для интеграции искусственного интеллекта непосредственно с существующими базами данных, включая потоковый вывод, масштабируемое обучение моделей и векторный поиск. SuperDuperDB - это не база данных. Она превращает вашу любимую базу данных в среду разработки и развертывания ИИ; считайте, что
SuperDuperDB на GitHub: https://github.com/SuperDuperDB/superduperdb
db = superduper(db)
. SuperDuperDB устраняет сложные конвейеры MLOps, специализированные векторные базы данных, необходимость миграции и дублирования данных, интегрируя ИИ в источник данных, прямо поверх существующей инфраструктуры. SuperDuperDB на GitHub: https://github.com/SuperDuperDB/superduperdb
👍1
Создание дизайн-системы, которая дышит, вместе с Headspace
Прошли те времена, когда медитация была доступна только энтузиастам "Ешь, молись, люби", которые бросали технологии и брали пятилетний отпуск, чтобы заниматься медитацией в отдаленном уголке мира. С Headspace медитация и поддержка психического здоровья стали доступны каждому, и как рынок не показывает признаков замедления, так и Headspace. Figma позволяет Headspace идти в ногу с этим ростом благодаря системе дизайна, оптимизированной для масштабирования.
Блог Figma: https://www.figma.com/blog/building-a-design-system-that-breathes-with-headspace/
Прошли те времена, когда медитация была доступна только энтузиастам "Ешь, молись, люби", которые бросали технологии и брали пятилетний отпуск, чтобы заниматься медитацией в отдаленном уголке мира. С Headspace медитация и поддержка психического здоровья стали доступны каждому, и как рынок не показывает признаков замедления, так и Headspace. Figma позволяет Headspace идти в ногу с этим ростом благодаря системе дизайна, оптимизированной для масштабирования.
Блог Figma: https://www.figma.com/blog/building-a-design-system-that-breathes-with-headspace/
Исключительная обработка исключений
Это очередной пост из серии "Здоровье кода" - небольшой пример того, как надо обрабатывать исключения.
Сниппет: https://testing.googleblog.com/2023/12/exceptional-exception-handling.html
Это очередной пост из серии "Здоровье кода" - небольшой пример того, как надо обрабатывать исключения.
Сниппет: https://testing.googleblog.com/2023/12/exceptional-exception-handling.html
Google Testing Blog
Exceptional Exception Handling
This is another post in our Code Health series. A version of this post originally appeared in Google bathrooms worldwide as a Google Tes...
🤡1
Глубокое обучение: основы и концепции
Эта книга предлагает исчерпывающее объяснение главных идей, лежащих в основе глубокого обучения. Она предназначена как для новичков в машинном обучении, так и для тех, кто уже имеет опыт работы в этой области. Охватывая ключевые понятия, относящиеся к современным архитектурам и методам, эта необходимая книга закладывает прочный фундамент для возможной специализации в будущем. Область глубокого обучения переживает стремительную эволюцию, поэтому в этой книге основное внимание уделяется идеям, которые, вероятно, выдержат испытание временем.
Сайт: https://www.bishopbook.com/
Эта книга предлагает исчерпывающее объяснение главных идей, лежащих в основе глубокого обучения. Она предназначена как для новичков в машинном обучении, так и для тех, кто уже имеет опыт работы в этой области. Охватывая ключевые понятия, относящиеся к современным архитектурам и методам, эта необходимая книга закладывает прочный фундамент для возможной специализации в будущем. Область глубокого обучения переживает стремительную эволюцию, поэтому в этой книге основное внимание уделяется идеям, которые, вероятно, выдержат испытание временем.
Сайт: https://www.bishopbook.com/
Создание веб-игры на C
Как насчет того, чтобы научиться писать игры на C и издавать их на WebAssmebly?
Статья: https://anguscheng.com/post/2023-12-12-wasm-game-in-c-raylib/
Как насчет того, чтобы научиться писать игры на C и издавать их на WebAssmebly?
Статья: https://anguscheng.com/post/2023-12-12-wasm-game-in-c-raylib/
Навигационные паттерны в мобильных приложениях. Как сделать правильный выбор?
Навигация - это сердце любого мобильного приложения. Успех приложения может зависеть от того, насколько интуитивно понятна, эффективна и удобна его навигация. Дизайнеру крайне важно понимать, как навигация может функционировать в каждом приложении, чтобы принимать наиболее подходящие решения для конкретной ситуации. В этой статье мы рассмотрим наиболее распространенные методы навигации на рынке по состоянию на конец 2023 года.
Статья: https://uxdesign.cc/navigation-patterns-in-mobile-applications-how-to-make-the-right-choice-fa3c228e5097
Навигация - это сердце любого мобильного приложения. Успех приложения может зависеть от того, насколько интуитивно понятна, эффективна и удобна его навигация. Дизайнеру крайне важно понимать, как навигация может функционировать в каждом приложении, чтобы принимать наиболее подходящие решения для конкретной ситуации. В этой статье мы рассмотрим наиболее распространенные методы навигации на рынке по состоянию на конец 2023 года.
Статья: https://uxdesign.cc/navigation-patterns-in-mobile-applications-how-to-make-the-right-choice-fa3c228e5097
❤1🤔1
Современные шаблоны навигации для iOS
Еще про навигацию - на этой странице собраны все привычные навигационные шаблоны для структурирования iOS-приложений. Считайте, что это неофициальная бонусная глава к Руководству по человеческому интерфейсу Apple, написанная человеком, который очень заботится о хорошо продуманных пользовательских интерфейсах.
Навигация: https://frankrausch.com/ios-navigation
Еще про навигацию - на этой странице собраны все привычные навигационные шаблоны для структурирования iOS-приложений. Считайте, что это неофициальная бонусная глава к Руководству по человеческому интерфейсу Apple, написанная человеком, который очень заботится о хорошо продуманных пользовательских интерфейсах.
Навигация: https://frankrausch.com/ios-navigation
Важность владения кодом
«Ты пишешь это - ты владеешь этим». Это философия отдела разработки программного обеспечения, в котором я когда-то работал. Это отличная философия, обеспечивающая ответственность за любой написанный код.
Но это легче сказать, чем сделать.
Владение кодом может и звучит просто, но код легко может быть оставлен без присмотра с течением времени. Последствия этого огромны. Код превратится в спагетти, его будет невозможно поддерживать и вскоре он станет устаревшим куском $#!+ и никто не сможет понять, как он работает.
Статья: https://apptractor.ru/develop/vazhnost-vladeniya-kodom.html
«Ты пишешь это - ты владеешь этим». Это философия отдела разработки программного обеспечения, в котором я когда-то работал. Это отличная философия, обеспечивающая ответственность за любой написанный код.
Но это легче сказать, чем сделать.
Владение кодом может и звучит просто, но код легко может быть оставлен без присмотра с течением времени. Последствия этого огромны. Код превратится в спагетти, его будет невозможно поддерживать и вскоре он станет устаревшим куском $#!+ и никто не сможет понять, как он работает.
Статья: https://apptractor.ru/develop/vazhnost-vladeniya-kodom.html