В этом посте мы разработаем алгоритм, позволяющий вычислять пересечение выпуклых полигонов. Так же на ряду с проверкой точки на принадлежность полигону мы рассмотрим метод пересечения выровненных по осям прямоугольников и функцию пересечения отрезков.
Разработка
Мега-Учебник Flask Глава 7: Обработка ошибок (издание 2024)
Это седьмая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как выполнять обработку ошибок в приложении Flask.
Как обойти лимит Telegram API для групп свыше 10,000 участников
Здравствуйте! Если вы когда-либо пытались извлечь данные пользователей из крупных телеграм-групп и каналов, вы наверняка знаете о технических сложностях, которые могут возникнуть. В рамках нашего проекта — платформы для спикеров и коучей — мы столкнулись с необходимостью эффективно продвигать курсы, используя рекламу в других группах и каналах. Однако далеко не каждый готов предоставить доступ к своему каналу или группе, особенно если предлагаемые темы курсов перекликаются с их собственными.
Для решения этой задачи наша маркетинговая команда разработала трехуровневую партнёрскую программу. Суть программы заключается в том, что владельцы групп, согласные на сотрудничество, получают уникальный идентификатор в нашей системе. Под этим ID регистрируются все новые пользователи, которые, в случае покупки курсов, генерируют вознаграждение для владельца группы.
Эта инициатива казалась нам многообещающей, однако в процессе реализации мы столкнулись с серьёзным ограничением. При попытке загрузить список пользователей из группы на 13,000 человек, система смогла обработать только 10,000. Это ограничение API Telegram значительно усложнило выполнение задуманного плана, требуя от нас дополнительных технических решений.
Главные отличия PCA от UMAP и t-SNE
Здесь будет рассказано о главных отличиях самого старого и базового алгоритма снижения размерности - PCA от его популярных современных коллег - UMAP и t-SNE. Предполагается, что читатель уже предварительно что-то слышал про эти алгоритмы, поэтому подробного объяснения каждого из них в отдельности приведено не будет. Вместо этого будут объяснены самые важные для практики свойства этих алгоритмов и то, на какие связанные с ними подводные камни можно налететь при неосторожности. Все особенности будут описаны на примерах, с минимумом теории; те пытливые умы, что почувствуют в процессе чтения жажду математической строгости, смогут удовлетворить её в литературе, ссылки на которую будут даны по ходу дела и в конце статьи.
Истории
Лазеры, сервопривод, WiFi MESH-сети и сноуборд
Первое мое воспоминание про горные лыжи было примерно в 5 летнем возрасте. Я лечу вниз по горке, а ко мне неумолимо приближается бетонный забор. Несмотря на эту неприятность, я все равно освоил горные лыжи, благо жили мы недалеко от гор. Правда после поступления в Москве в институт временно пришлось забыть об этом. Но оказалось, что и в Москве тоже есть горки и я решил уже попробовать более модное увлечение - сноуборд. И первые самостоятельно заработанные 300$ были потрачены на покупку самого дешевого комплекта. Ближе к окончанию института я уже уверенно катался, так что даже попробовал поучаствовать в реальных соревнованиях. В результате у меня теперь есть даже FIS код и суммарно 7,3 балла, набранные в сезоне 2002-2003 годов, когда я сумел три раза доехать до финиша без падений и гордо занять последние места в результирующих списках. Это была вершина моей спортивной карьеры, после чего я решил дальше сосредоточиться на профессии, полученной в институте - электронике. А сноуборд и горные лыжи окончательно перевести в разряд хобби.
Что нужно знать, чтобы успешно пройти System Design Interview
Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.
С учетом стремительного прогресса в области технологий и возрастающей сложности программных приложений, овладение принципами системного проектирования становится критически важным для разработчиков, стремящихся создавать эффективные системы. Не имеет значения новичок вы или опытный специалист: освоение этих принципов позволит вам разрабатывать надежные и масштабируемые программные системы, отвечающие требованиям современных приложений.
Далее мы рассмотрим каждый из принципов более детально, чтобы понять их суть и способы применения в разработке приложений.
Zigbee датчик мониторинга углекислого газа EFEKTA Pixel Open Air
Как Алексей Пажитнов сделал сиквел Тетриса и забыл про него
Тетрис — одна из самых (если не самая!) известных видеоигр, чьё имя известно даже людям, бесконечно далёким от этой индустрии. Когда в 1989 году «Тетрис» вышел на Nintendo Game Boy, он стал мировым хитом, продавшись миллионами копий и зарекомендовав себя как самая любимая в мире видеоигра-головоломка.
Для старинной видеоигры, которая начиналась как любительский проект компьютерного разработчика из СССР, влияние «Тетриса» по-прежнему сильно, доказательством чему служит огромная база игроков, по сей день пытающихся полностью пройти игру. Его успех также породил желание создать продолжение. Появились побочные продукты: такие как Hatris, Welltris и Wordtris, а также итеративные продолжения, такие как Tetris 2, Tetris DS и Tetris Effect. Но у игры могло бы быть ещё одно продолжение, которое так и не вышло. Сам создатель Тетриса, Алексей Пажитнов, придумал другую, более интеллектуальную версию игры.
На Game Developers Conference (GDC) 2024 Алексей Пажитнов рассказал о своих первоначальных планах по выпуску продолжения «Тетриса» и о том, почему мы только сейчас слышим об этом публично. Это запланированное продолжение, получившее название Tetris Reversed, было призвано изменить способ игры в тетрис. Но сиквел игры уже более десяти лет находится на стадии прототипа.
Библиотека GopherJS в Golang
GopherJS позволяет переводить Go-код в JavaScript — он предоставляет полноценную совместимость с большинством пакетов стандартной библиотеки Go. Также Gopher поддерживает горутины и каналы!
В статье в общих деталях рассмотрим эту замечательную библиотеку.
Standard Time как его видит IBM
Более 6-ти лет занимаюсь разработкой под IBM i (бывшая AS/400). В основном, конечно, это работа с БД и разная бизнес-логика, но иногда приходится и что-то низкоуровневое писать.
Не так давно занимался разработкой удобного и простого в использовании API для работы с User Queue (есть на АС-ке такой системный объект - очередь *USRQ). И в заголовке извлекаемого из очереди сообщения есть такой параметр - message enqueue time (время размещения сообщения в очереди). Который описан как _MI_Time. Которое, в свою очередь, определено как
Создание простой Roblox игры без особого знания Lua
Если вы когда-либо мечтали создать свою собственную игру в Roblox, но не знаете с чего начать, то эта статья для вас. В этом руководстве я покажу вам, как создать игру в Roblox без базового знания программирования.
Прежде чем мы начнем, вам нужно зарегистрироваться на сайте roblox.com и загрузить Roblox Studio - инструмент, который позволяет создавать игры на платформе Roblox. После установки запустите программу и выберите пустой шаблон для создания новой игры.
Воплощаю мечту, создавая собственную игру
Статья про разработку компьютерной игры в одиночку на игровом движке UE5. Цель статьи это найти как моральную поддержку, так и критику в свой адрес. Ведь когда разрабатываешь в одиночку и от 6 - 12 часов в день, смотришь на свой проект и перестаешь адекватно оценивать происходящее и все перемешивается в одну сплошную массу кода и картинок.
Библиотека dplyr в R
Библиотека dplyr в R позволяет манипулировать данными, проводить фильтрацию, выборку, сортировку, группировку данных и многое другое.
В этой статье как раз и рассмотрим эту библиотеку.
Ближайшие события
Перевод Spring Boot приложения с HTTP на HTTPS без ругани браузера
Актуальный способ перевода вашего Spring Boot приложения с HTTP на HTTPS.
Текущие способы и гайды в интернете на эту тему мне не понравились, поэтому написал свой.
Мощные GPU в Китае: полное самообеспечение к 2027 году. Реально ли?
Правительство Пекина планирует предоставить субсидии компаниям, которые покупают чипы внутренних производителей с целью «ускорения поставки управляемых интеллектуальных вычислительных ресурсов».
Особенное внимание уделяется процессорам GPU, на производство и продажу которых негативное влияние оказал экспортный контроль со стороны США. Кроме того, Китай продолжает продвигать инициативы в области искусственного интеллекта. Субсидии будут выделяться компаниям, которые готовы покупать графические процессоры у отечественных производителей. И не стоит забывать о нескольких триллионах долларов, которые выделяются в течение последних лет самим производителям. Подробности — под катом.
Что учесть если используешь SignalR и захочешь масштабировать .Net-приложение?
Все мы любим «магию», которую дает нам такой инструмент как SignalR и с удовольствием внедряем это в проекты.
Конечно, кто откажется от динамики, мгновенного отклика на действия и мигающих иконочек с подписью «что же делает система в данный момент и не стоит ли перезагрузить страницу чтобы клацнуть ее еще раз?» ?
Однако и тут есть пара подводных камней, с которым я с командой столкнулся на продакшне...
Какие должны быть пароли в 2024 году?
Часто встречаются в интернете таблицы времени подбора паролей от компании Hive Systems, которые публикуются без дополнительных данных о методе их формирования. Соответственно сразу в комментариях появляются много "критиков", которые спешат поделиться своим мнением о бесполезности этих таблиц. Так возникла идея перевести и опубликовать основные тезисы авторов исследования.
С 2020 года компания Hive Systems проводила исследования, чтобы разработать и представить таблицу паролей.
В 2020 году была впервые опубликована таблица паролей, основанная на данных с сайта www.howsecureismypassword.net (сейчас им управляют сотрудники security.org) и собранная Майком Хэлси, Microsoft MVP. В этой таблице рассматривалась относительная стойкость хешированного пароля к попыткам взлома в зависимости от длины пароля, его сложности, алгоритма хеширования, который использует жертва, и оборудования, которое использует злоумышленник.
В 2022 году компания углубилась в изучение данных и используемого оборудования, чтобы составить более точную картину. Данные в этой таблице основаны на том, сколько времени потребуется обычному хакеру, чтобы взломать хеш пароля с помощью настольного компьютера с топовой видеокартой, а затем сколько времени потребуется организованному преступному хакеру, который использует ресурсы облачных вычислений. Были рассмотрены такие известные провайдеры, как Amazon AWS и Microsoft Azure, а также растущие некорпоративные варианты, где можно арендовать компьютер человека по цене за час.
Ехал handler через handler, или почему всё тормозит
Прошло уже 10 лет с моего предыдущего разбора, не побоюсь этого слова, говнософта, как появилась очередная проблема, с которой мне захотелось разобраться и устранить её.
Rust 1.78.0: Диагностические атрибуты, проверка предусловий unsafe и детерминированное повторное выравнивание
Команда Rust рада сообщить о новой версии языка — 1.78.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup
, то для обновления до версии 1.78.0 вам достаточно выполнить команду:
$ rustup update stable
Если у вас ещё не установлен rustup
, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.
Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta
) или nightly (rustup default nightly
). Пожалуйста, сообщайте обо всех встреченных вами ошибках.
Bodyfuck – как писать программы без клавиатуры и c пользой для здоровья
Brainfuck — это один из эзотерических языков программирования, который имеет всего восемь команд, каждая из которых записывается одним символом.
А Bodyfuck — это жестовый интерпретатор Brainfuck, который позволяет писать код программы, используя различные движения тела без использования клавиатуры.
Смотрите, не перепутайте! :-)
Хабы
Вклад авторов
alizar 91737.8marks 24166.6ru_vds 19991.9alexzfort 14179.0XaocCPS 10986.2pronskiy 10649.4m1rko 10382.0ptsecurity 9595.7Andrey2008 9549.2Jeditobe 9387.6