• Подкаст: Build 2020 глазами инсайдера — ИИ, суперкомпьютеры, нейросети и Linux на Windows
    0
    В тексте повсюду есть ошибка: не OpenIA, а OpenAI, от аббр. AI.
  • Я мечтал вырваться из Узбекистана и стать крутым разрабом. Больше не хочу — но разработка не отпускает
    0
    Тоже хотел сказать, что важно заниматься чем-то вне работы и лучше в оффлайне, но меня опередили – редко захожу на Хабр :D
    Можно заметить, что многие очень успешные люди в своих книгах пишут о важности разнообразия и сбалансированности разных сфер жизни. Думаю, потому что это реально полезно для саморазвития и просто психики – ведь если у тебя вся жизнь состоит из одной работы, то когда там фейл, ты себя будешь так разбито чувствовать. А если ты ещё спортом занимаешься и каждую неделю пробегаешь марафон, то наоборот, тебя это не раздавит, всё будешь чувствовать, что тебе всё по плечу.
    У меня, например, куча разных дел и хобби – друзья, медитации, тренировки, handmade, писательство, самообразование (математика, иностранные языки, история, философия, психология, медицина), опенсорс и пет-проекты (веб-разработка, геймдев, 3Д моделирование, обработка звука) и помимо основной работы участвую в стартапах. В итоге регулярно что-то наскучивает, а что-то наоборот, хочется вернуться; есть чувство насыщенности жизни и ощущение постоянного саморазвития, построения своей судьбы.
  • Визуализация генеративных алгоритмов: гифа, деревья, повторяющиеся и дифференциальные линии (на Python)
    +4
    Здорово! Вспомнил своё увлечение процедурной графикой в школьные годы, уже почти лет 8 прошло, а порой смотрю на галерею своего цифрового художника-абстракциониста:

    Картинки
    image
    image
    image

    Больше примеров + описание + ГитХаб можно найти здесь :) Позже пробовал переписать на шейдеры, добавить анимацию и генерацию gif'ок, было тоже красиво, но довести до ума не хватило мотивации ;D
  • Тёмная тема vs Светлая тема: что лучше?
    +1
    Присоединяюсь по всем пунктам, но особенно по второму. Никогда не разделял хайпа на тёмные темы, у меня после них ещё и блики на сетчатке остаются; хотя возможно я просто слишком работаю Но вот после светлых такого нет.
  • Коммитите в опенсорсе, работая разработчиком? Разбираемся с правами (привет, nginx)
    0
    Наше государство (да и не только наше) пока однозначно не решило, как относиться к генерируемым кодам

    Такой вопрос – а ведь всяческая трансляция из TypeScript в JavaScript или компиляция Си/Джавы в ASM/бинайрный/байт-код или просто разворачивание макросов/шаблонов в Плюсах и многое подобное по сути есть не что иное как автоматизированная генерация нового кода, порой с кучей сложных манипуляций по части оптимизации (которые исходник программист зачастую не смог бы сделать сам). Получается, результаты постобработки моих трудов имеют непонятные права (и возможно являются общественным достоянием)? Есть ли здесь какие-либо регламенты или неформальные договорённости, хотя бы где-то в мире? Задаюсь этим вопросом уже который год после прохождения курса по интеллектуальному праву, надеюсь, кто-то даст толковый ответ (:
  • Как разрушалась личность блестящего молодого программиста
    +2
    А сколько ещё подобных случаев в мире случается?? У людей, которые возможно не имеют таких заботливых друзей и родных? У людей, которые не владеют долей в одной из крупнейших компаний? У людей, которые со временем перестают быть нормальными, соображающими людьми, и никто, ничто им не помогает…
    Светлое и безбедное будущее, наступай поскорее.
  • Как я создал, а затем развалил свою компанию
    0
    Если интересно посмотреть на несколько лет развития стартапа с нуля программистами, которые ничего не смыслят в бизнесе, и косячат при каждой возможности, то да Персонажи отличные, сценарий продуманный, качество съёмки классное.
  • Как я создал, а затем развалил свою компанию
    +1
    А мне показалось чем-то похожим на сериал «Кремниевая Долина»
  • Общая теория и археология виртуализации x86
    +3
    Очень интересная статья для начинающих в этой теме, благодарю!
  • Каково это, когда 75% ваших сотрудников — аутисты
    0
    Далеко не только проблемы с концентрацией, чаще такие люди не понимают эмоции и просто мотивы, намерения других людей, из-за чего не знают, что и когда говорить. Также нередко у таких людей встречаются другие психические отклонения, сильно мешающие социальным контактам. Однако часто у них встречаются и удивительные интеллектуальные способности. Вообще, они все очень разные, со своими особенностями. Если интересно, посмотрите «Человек дождя» – это и фильм известный, и пример аутизма весьма хороший.
  • Шпаргалка по аббревиатурам C++ и не только. Часть 1: C++
    0
    Тривиальные вещи тоже можно не пропускать – это было бы полезно и начинающим прогерам, и любопытствующим из совсем других стеков технологий вроде меня (:
  • Визуализация больших графов для самых маленьких
    0
    Спасибо, очень классный обзор! В одном проекте много работаю с графами, написал визуализацию с переводом в dot GraphViz, но возможно понадобится что-то помощнее. Жаль только что нет информации по совместимости существующих программ с разными ОС, что весьма актуально.
  • Исследование: снизить производительность Tor можно всего за $17 тысяч в месяц
    +4
    Судя по количеству статей, автор ну очень спешит, чтобы делиться с нами актуальными новостями :) Думаю, можно простить – все мы иногда косячим, тут хотя бы терпимо
  • Исследование: снизить производительность Tor можно всего за $17 тысяч в месяц
    +4
    Видимо, это был перевод в спешке. В исходной PDF'ке говорится про увеличение медианного времени загрузки на 120%:
    increases the median client download time by 120% at an estimated cost of $6.3K/mo
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Не совсем уместный сарказм :) Посмотрите другие ветки комментов, там это уже обсуждали, что алгоритм успешно справляется с большой частью примеров по данной задаче, а если в условие задачи добавить пару слов о допустимой точности, то он станет полностью уместен. То есть как бы да, решение не совсем по задаче, с другой стороны, это решение не какой-нибудь другой задачи, а весьма близкой и в ряде случаев пересекающейся с этой. Признаю, что я не подумал изначально о таком нюансе т.к привык к практической деятельности, а в ней не часто стоит вопрос абсолютной точности и допустимо рассматривать варианты решения с небольшим проигрышем в точности, но выигрышем по времени.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    +1
    Нет, за O(n^2) вполне можно решить если заменить «нужно проверять все остальные точки. Т.е., О(N^3)» на хеш-таблицу и грамотную работу с ней (что составляет O(1)). Посмотрите этот коммент, также этот алгоритм конечно же есть в самом коде, а его замеры в таблице сравнения.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Понял, Вы имели в виду прямоугольник, который будет построен из точек, а не способ обнаружения самих точек (который всё же полоска бесконечной длины).

    Да, всё верно! Может так быть, что на одном шаге полоска на линию из точек ещё не полностью наложится, а на следующем уже пройдёт мимо. Я тоже о таком думал, и была идея реализовать переменный шаг или ещё лучше «отпрыгивание» назад с бинарным поиском между последними двумя вариантами (в моём воображении это очень похоже на градиентный спуск, но с полным проходом, т.к параметр всего один, вращение). В таком случае сложность по времени вырастет (прогнозирую что-то вроде O(n*log(n), а то и квадрат), но и точность станет гораздо больше. Конечно, для рабочей версии этой фичи нужно ещё много продумать – реализовать «умный» выбор, когда производить такой поиск, а когда идти дальше. В общем, это в принципе реализуемо, но нужды пока нет :)
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    –1
    Прикол ещё в том, что автору этот кусок кода тоже не нужен! :D Он реально не решает никакой практически полезной задачи и не факт, что будет. Но и эзотерические языки программирования не особо большую практическую ценность несут, они интересны в плане нестандартных идеи. Так и здесь, считайте, что я поделился не алгоритмом, а идеей, как к нему дошёл и реализовал нестандартный способ – приводить наклоненные линии в вертикальные с тривиальным решением.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Ну, в конкретной задаче подразумевается нахождение точного ответа.

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

    В каких, например?

    Честно говоря, я очень глубоко интересовался темой и не знаю, где вообще применяется поиск мак.числа точек на прямой :D Но в математике и алгоритмах временами бывают идеи без очевидного в начале применения, можно считать, что это одно из них. Хотя думаю, что можно легко приспособить этот алгоритм для распознания прямых линий на изображении, но в этой теме решений и без того достаточно.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    "… в прямоугольнике.." – нет, именно на полоске, у которой задаётся толщина, длина же бесконечная, как и у линии. Кажется Вы не очень поняли алгоритм :) После поворота у точек используется лишь одна координата, поэтому длины здесь в принципе нет.

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

    Аргументы против Вы уже привели, я с ними согласен, но не настолько, чтобы игнорировать аргументы «за». В таких случаях я предпочитаю считать, что конкретное решение может быть уместно в каком-то классе задач. Можно аргументировать и дальше, но вряд ли это будет более плодотворно :)
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Вы не так поняли задачу :) Не даётся какая-то конкретная прямая линия, нужно найти максимальное число точек находящихся на любой возможной прямой линии, то есть, попарной комбинации всех точек, поэтому точное решение есть лишь за O(n^2). Я сейчас добавил ссылки с детальным описанием задачи в начало статьи, можете там посмотреть.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Предложенный алгоритм о том, что есть случаи, с которыми он успешно справляется, а то и лучше классического метода. Да, он не даёт абсолютной точности, но её не дают и многие другие используемые в промышленности алгоритмы – всё зависит от условий конкретной задачи.

    Расчёт координат в алгоритме происходит в числах с плавающей запятой, в таких случаях применяют сравнение с погрешностью (то есть, не «x == y», a «y-c < x < y+c»), нечто подобное используется и здесь. Поэтому, как я писал в статье, полезно считать, что алгоритм находит максимальное число точек лежащих на полоске, а не на абсолютно тонкой линии. И ширина этих полосок, как и количество вращений, которыми они «накидываются», задаются теми двумя константами. Поэтому любой угол линии может попасть в эти полосы и успешно обработаться. Но опять же, здесь преимущество в не точности, а в скорости, что может быть полезным в каких-то задачах.

    Указанный процент ошибок определялся по случайно сгенерированным набором данных, код генерации которых также есть на ГитХабе.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Обратного я не утверждал, моя реализация брут-форса как раз работает без ошибок обрабатывая вместо дробных чисел пары целых. Хотя тема статьи всё же о другом… (:
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Да, вкратце именно так. Только вычисления в целых числах не позволят нормально рассчитать параметры уравнения, поэтому смещение и особенно наклон надо считать немного запутанным образом.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Я же на ГитХабе всё выложил :) Вкратце сейчас объясню.

    Основная задача – представлять отрезки так, чтобы отличать отрезки на параллельных линиях, но объединять отрезки на одной линии. То есть, надо написать функцию вычисления наклона (get_slope), которая двум отрезкам выдаст одинаковое значение, если они параллельны, а в противном случае разные. И функцию расчёта смещения (get_shift), что даст одинаковое значение для отрезков на одной прямой и разные для параллельных. А дальше просто двойной цикл по всем точкам (т.е, линиям) с записью результатов в словарь вида {наклон: {сдвиг: количество}}. Ну пара мелочей для предотвращения повторений и т.п.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Интересно, спасибо. Действительно похожая тема! Хотя детали реализации и назначение совсем другие.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    +1
    Действительно получилось добавить то преобразование и довести время полного перебора до O(n^2)! Замеры добавил в Гугл-таблицу. Теперь мой алгоритм проявляет преимущество на более крупных числах, но это в принципе лишь вопрос используемых констант и нужной точности.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Верно подмечено! У моего алгоритма действительно есть трудности с маленькими наклонами из-за чего на случайных сэмплах используется ROT_COUNT около 2000, хотя для простых примеров хватает значений < 50. И если использовать этот алгоритм в продакшне, то без предобработки не обойтись, чтобы масштабировать всю картину согласно распределению точек. И конечно надо быть готовым к неточностям, дробные числа всё же :) Наверное правильнее сказать, что алгоритм ищет максимальное число точек, лежащих на полоске с шириной равной 1 / MULT_COEF.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    0
    Примерно такого комментария я и ждал! Если делать точно, то алгоритма быстрее чем O(n^2) действительно не получится – я исследовал тему и где-то нашёл англоязычную статью, которая сводит эту задачу к какой-то более фундаментальной математической задаче о поиске коллинеарных векторов, которая не решается за лучшее время. В итоге, у моего «вращательного» алгоритма есть как недостатки, так и достоинства, которые возможно найдут своё применение :)

    Сейчас попробовал аппроксимировать зависимость времени выполнения моего брутфорса, действительно не O(n^2), а что-то ближе к 3! Спасибо за наблюдение :) Очевидно дело в этой строке, которая циклом обходит параллельные векторы. Думаю, что легко можно заменить на работу с ассоциативным массивом (оптимистичный O(1), то есть), надо лишь придумать небольшое преобразование (что есть O(n)), которое приведёт параллельные векторы к одному числу. Сделаю в ближайшее свободное время.
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    +1
    Верно! Поэтому мне кажется, что мой алгоритм имеет право на жизнь, с учётом его достоинств и недостатков :)
  • ARA: алгоритм для нахождения максимального числа точек на прямой линии
    +1
    Так это и не нужно :) Вы кажется неправильно поняли: алгоритм не ищет линии, проходящие через центр, а просто линии, становящиеся при вращении горизонтальными, параллельными оси X (на гифке это вроде видно). Поэтому используется словарь, хранящий множество параллельных линий при каждом вращении (который является хеш-таблицей, поэтому я считал его за О(1)).
    Но вообще, я думал о возможной реализации сдвига (например, к среднему всех точек), просто пока всё и без него хорошо работает.
  • «ОНА»: как мы придумали образы искусственного интеллекта
    0
    Сколько гипотез! А я как-то читал (вроде из официального источника), что это отсылка к самому первому чат-боту в мире: программа психотерапевт Элиза (1966).
  • Срочный переезд с Amazon Web Services — истории двух клиентов
    +1
    Нет же, дадут им подсеть, а РКН её заблокирует – вот и все дела.
    То есть мы можем либо выделить «хулиганам» подсеть, блокировка которой не коснётся остальных клиентов, либо попросить их прекратить деятельность по пункту о помехах другим клиентам публичного облака.
  • Cжатие и улучшение рукописных конспектов
    0
    Классная работа! Но вот в некоторых случаях мелькают точки с просвечивающей страницы, которые оказались слишком яркими. По моему скромному мнению, такое следует заменять на цвет фона по правилу «если вокруг большинство точек фоновые».

    А также огорчает, что в примере с жёлтой бумагой сетка убрана не полностью – от качественного инструмента ожидаешь универсальности, например, чтобы можно было поставить флаг «сохранить сетку» / «удалить сетку», но никак не что-то среднее. Наверное, такие детали изображения лучше отлавливать специальным алгоритмом поиска линий…
  • Дорога на войну: ИИ игр серии Total War
    0
    Не согласен, ИИ в стратегиях серии WH40k DoW (именно стратегиях, как Dark Crusade и Soulstorm, а не тактиках Dow II и III) далеко не идеальный, но подобных ухищрений в нём почти нет; самый сильный бот побеждает за счёт грамотного распределения ресурсов при должной сноровке его легко обойти. Там можно отключить туман войны и убедиться в этом самостоятельно. Упрощения для ИИ применяются такие: 1) если игрок на карте где-то прячет останки своих войск, то часто ИИ «знает», где его искать; 2) на «безумном» уровне сложности по сравнению с тяжёлым ИИ имеет чуть больший прирост ресурсов, но на то и соответствующее название. Есть ещё очень крупные моды (Apocalypse и Titanium Wars), которые помимо нового значительного развития войск добавляют более качественный ИИ.

    Конечно, ИИ в DoW не имеет разнообразных сложных тактик, но всё же интересный и не хуже чем у многих других RTS.
  • WSTester – JS библиотека для тестирования веб-сервисов с ВебСокетами
    0
    Честно говоря, я видел несколько подобных вещей с отсылками к Node.js и Socket.io, но я ими не пользуюсь, поэтому не вникал. Вообще, комментарий выше тоже указывает на то, что я скорее плохо искал, не углубляясь в тематику, крупные технологии для тестирования.

    Мне просто был нужен инструмент достаточно универсальный, и в то же время простой, без лишних зависимостей. Именно такого я не нашёл, потому и начал разработку.
  • Руководство к созданию собственного когортного отчёта по возвратности
    0
    Благодарю за приятный комментарий :)
  • Руководство к созданию собственного когортного отчёта по возвратности
    0
    Спасибо, учту.
  • Динамическая таблица поверх Google Maps
    0
    Потому что:
    1) тепловая карта кластеризует точечные данные, а здесь нужен был вывод уже частично сгруппированных данных по районам;
    2) она строится только по одному параметру, слишком мало информативности; а в GMapsTable можно обрабатывать и отображать любое их число.
  • Динамическая таблица поверх Google Maps
    0
    Классная вещь! Но как и в комментарии выше, это не совсем то, что мне было надо. Цель моей библиотеки не в кластеризации данных, а в их детализированном отображении (cама же кластеризация происходит на сервере с БД). Поэтому заказы здесь должны отображаться не как независимые маркеры, а в виде таблицы с разной детализацией и с выводом в ячейках нескольких параметров.