• На чем основан принцип обучаемости нейронных сетей?

    @nirvimel
    Нейронная сеть (как природная, так и искусственная) по сути своей представят функцию (да, Y=F(X) только очень сложную), выходом Y которой является некоторое поведение субъекта (или программы), а входом X служит некоторая императивная информация (от органов чувств, например). Суть обучения в поиске оптимального значения F(X), при котором достигается наилучшая приспособленность субъекта/программы к поставленной задаче (для живых существ задача - выживание). Обучение происходит путем мелких итеративных шагов от менее оптимальных вариантов функции F к более оптимальным (а не перебором всех возможных вариантов). Подавая на вход F различные значения X, учитель (или естественный отбор) "поощряет" варианты, при которых F дает на выходе более точные значения Y (лучше соответствующие поставленной задаче) и "наказывает" за худшие (относительно предыдущих достижений) варианты. "Поощрение" и "наказание" происходит путем (нерезкого) усиления/ослабления тех нейронных связей, которые были более других задействованы в ходе последней итерации, то есть внесли в успех/неудачу наибольший вклад. Таким образом в ходе мелких последовательных итераций "интеллект" (возможно даже без кавычек) нейронной сети постепенно затачивается под решаемую задачу (простой перебор не дал бы таких результатов и за 100500 лет).
    Ответ написан
    3 комментария
  • Нужно ли уведомлять об использовании куки?

    @nirvimel
    Это законодательство ЕС. Нигде в мире больше нет таких требований. Если взглянуть в топ-100 Alexa, то можно заметить, что больше половины из топа просто игнорируют это. Не забивают на это только крупные компании, которые делают бизнес в ЕС (в том числе).
    Ответ написан
    Комментировать
  • Можно ли подгрузить информацию о сотовых вышках в телефон?

    @nirvimel
    Сергей: MakarkinPRO: Вы неправильно понимаете триангуляцию. Триангуляцию (для определения соты в которой находится абонент) выполняет сеть благодаря тому, что ей известны точные расстояния от нескольких собственных баз до абонента. Расстояния вычисляются по пингу (за минусом продолжительности приема и передачи пакета базой и оконечным устройством) деленному на скорость света. Эта информация становится доступна сети в ходе инициализации соединения. Протокол инициализации требует чтобы абонент отвечал на специальные пинг-пакеты мгновенно (можно, конечно, хакнуть прошивку, но это ничего не даст, так как таким образом можно только "увеличивать" расстояния, но не уменьшать, следовательно из своей соты в другую соту выпрыгнуть невозможно). Для базы не существует такого протокола, по которому она должна отвечать на пинги мгновенно (для GSM он просто ненужен). Следовательно абонент не имеет возможности узнать расстояния до баз. А уровень сигнала не имеет к расстоянию вообще никакого отношения. Во-первых, редко расположенные базы в сельской местности имеют уровни в сотни (!) раз выше, чем, например, база на крыше жилого дома. Во-вторых, благодаря геометрии направленных антенн даже на ровной местности уровень сигнала нелинейно завит от (квадрата) расстояния. Про то, что при наличии препятствий/отражений искать зависимость расстояния от уровня не имеет смысла вообще, я даже не говорю.

    P.S.: Извините, это больше относится к обсуждению, которое развернулось в комментах, чем к самому вопросу. Но, возможно, это пригодится тем, кто будет пытается своими силами/средствами триангулировать аппарат в сотовой сети.
    Ответ написан
    1 комментарий
  • Почему на некоторых сайтах оплата мгновенная, а вывод нет?

    @nirvimel
    Это смотря на что выводить:
    • Для криптовалюты задержки транзакций определяются только техническими ораничениями (подтверждения включения транзакции с следующий блок от других пиров), поэтому что ввод, что вывод идут практически с одной скоростью.
    • Для электронных денег все зависит от законодательства страны, в чьей юрисдикции находится эмитент. Для брорьбы с отмыванием многие регуляторы специально усложняют вывод из электронных денег в реальные или перевод в чужую юрисдикцию.
    • Visa/Mastercard (также как и, завязанный на них, PayPal) - полнейшее дно! Само существование такого понятия как chargeback вносит неустранимый архитектурный изъян во всю систему, благодаря которому ни одна "завершенная" транзакция не может считаться окончательно завершенной на протяжении всего периода доступности chargeback (30 дней). Эта схема не помогает ни продавцам (для них это - настоящий ад), ни покупателям (вы сами как-нибудь попробуйте совершить chargeback, получите столько проблем, что пожалеете что просто не забыли о потерянной сумме), ни банкам (как взыскивать chargeback, когда средства уже сняты? морозить на весь период? В полном объеме никто не морозит, а значит все несут риски). Эту схему придумали, похоже, специально для торможения вывода (и всей электронной коммерции) доблестные борцы с отмыванием.
    Ответ написан
    3 комментария
  • Как правильно параллельно обрабатывать файлы на c++?

    @nirvimel
    Завести vector<thread>.
    Сначала в цикле породить все потоки и сохранить в вектор.
    Потом другим циклом пройтись по всем и сделать join каждому.

    P.S.: В реальном коде с точки зрения производительности лучше проверять is_regular_file тоже внутри потока. И нет смысла в цикле читать из файла все строки ради значения последней (может лучше было бы - первой) строки. Что если попадется многогигабайтный файл?
    Ответ написан
    7 комментариев
  • Python. Есть список баров с координатами нужно найти самый близкий ко мне бар. Как это можно сделать, мои координаты заданы, их находить не нужно?

    @nirvimel
    Можно тупо брать евклидово расстояние между 2D-координатами (как будто они находятся на плоскости). Это будет неплохо работать в пределах небольших площадей (единицы-десятки километров). Думаю, ошибка меньше одного метра (GPS дает большую погрешность) не будет играть роли при выборе объекта за несколько километров от себя.
    Ответ написан
    Комментировать
  • Как определить скорость автомобиля который тебя обогнал?

    @nirvimel
    1. Выбрать из всего видео два кадра между которыми замеряется скорость, автомобиль на этих кадрах должен находиться как можно ближе (чтобы легче замерить расстояние до него), но между сами кадрами расстояние должно быть побольше (чтобы снизить погрешность измерения).
    2. Определить расстояние до автомобиля на каждом из двух кадров (без этого никак, увы). Для этого можно фотографировать похожий по габаритам автомобиль с того же ракурса, пока его положение на снимке в точности не совпадет с положением измеряемого автомобиля в кадре с регистратора, потом точно замерить расстояние до какой-нибудь точки (ближнего колеса, например).
    3. Определить угол под которым автомобиль находится к вашей оси движения и центру кадра регистратора (надеюсь, они совпадают) в каждом кадре. Для этого также как и в (2) можно двигать и фотографировать похожий по габаритам автомобиль.
    4. Зная расстояние и угол на двух различных кадрах, строится треугольник и находится его неизвестная сторона (если известны две других стороны и углы к ним).
    5. Зная частоту кадров, рассчитывается время между двумя кадрами (желательно чтобы было побольше, но не так, чтобы на втором кадре автомобиль был уже слишком далеко).
    6. Расстояние делится на время, получается скорость. Это скорость обгона, абсолютную скорость можно получить прибавив скорость собственную.
    Ответ написан
    Комментировать
  • Как вывести матрицу в окно??

    @nirvimel
    1. Открыть окно.
    2. Проглотить красную таблетку.

    cc99eec3e5ce44629de4954611c0d29e.jpg
    Ответ написан
    1 комментарий
  • Как поубивать потоки которые я сам же и насоздавал?

    @nirvimel
    В цикле проверяется флаг (условие выхода), изначально заданный в False, но сбрасываемый в True обработчиком команды /kill. Удобно использовать dict для соотнесения отдельным потокам флагов выхода.
    Ответ написан
  • Какой программой можно создать бота для браузерной онлайн игры?

    @nirvimel
    Боты (как и любой программный код) пишут не программой, а руками. Если бы программы могли писать программы, то программисты были бы уже не нужны (люди вообще станут не нужны, когда Матрица научится совершенствовать сама себя).

    Есть только одна программа, без которой (почти) невозможно написание кода, это - текстовый редактор, который присутствует в любой операционной системе для ПК.
    Ответ написан
    5 комментариев
  • Как получить низкоуровневое имя файла?

    @nirvimel
    Если файла не существует, то и не существует однозначно соответствующего ему внутреннего имени (FinalPath). В вашем примере как раз хорошо проиллюстрирован этот случай с COM1 и COM4, которым сопоставлены совершенно разные устройства. Какому устройству будет сопоставлено имя COM2 зависит от самих устройств (в том числе еще не подключенных на данный момент) и иногда даже от порядка их подключения.

    Это в общем случае... Но в частном случае может подойти такое решение: получить внутреннее имя (FinalPath) для каталога, в котором должен находиться несуществующий файл и через разделитель дописать к нему имя этого файла.
    Ответ написан
    Комментировать
  • Возможен ли malware в ELF и вообще в linux?

    @nirvimel
    Ни формат ELF, ни ядро Linux сами по себе никак не препятствуют запуску любой малвари.
    А вот строгое разграничения доступа в многопользовательской системе (не только Linux) - препятствует.
    То есть, одна простая команда, запущенная из-под root, может полностью уничтожить установленную операционную систему вместе с содержимым всех дисков. Вот только ни один грамотный Linux-юзер (кроме камикадзе) никогда не запустит всякую малварь под рутом и ни когда не оставит root незапароленным.
    Ответ написан
    Комментировать
  • Как считать сериализованные объекты из в файла в ArrayList из этих самых объектов?

    @nirvimel
    Читать объекты в бесконечном цикле до тех пор, пока не вылетит EOFException.
    Ответ написан
    Комментировать
  • Сервер для сети чатов (как Slack, например)?

    @nirvimel
    Архитектура высоких нагрузок - недавно мелькала на Тостере эта ссылка.
    Ответ написан
    Комментировать
  • Неоплачиваемая стажировка, без знаний. Реально ли?

    @nirvimel
    Эникей -> Заправка принтеров -> Установка Windows -> 1С.
    В былые времена 95% админов начинали с этого и проходили этот путь.

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

    @nirvimel
    Во-первых: ваш участок имеет форму выпуклого четырехугольника, не называйте его прямоугольником.
    Во-вторых: есть три варианта:
    1. Можно однозначно определить одну сторону произвольного выпуклого четырехугольника, зная три другие стороны, площадь и два противолежащих угла (любую из двух пар):
      e4ebdbea0c808d8fa4dd6e53556219a1655abb52
      где p — полупериметр и 3351298cdc880a6b74862b03f7a08ed7a8fd83b6
    2. Можно однозначно определить одну сторону произвольного выпуклого четырехугольника, зная три другие стороны, площадь и обе диагонали:
      33792982dd20b232484bf3c8dd8eb45b31241648
      где p — полупериметр, e и f -диагонали.
    3. Невозможно однозначно определить одну сторону произвольного выпуклого четырехугольника, зная только три другие стороны и площадь. То есть существует бесконечное множество значений длины искомой стороны, удовлетворяющих заданным условиям.


    Короче: Меряйте или диагонали, или углы (любую пару противоположных углов).
    Ответ написан
    1 комментарий
  • На каком языке лучше сделать работу с табличными данными?

    @nirvimel
    Если бы присутствовали жесткие условия типа того, что объем данных 10 гигабайт и надо уложиться в 10 секунд обработки, тогда выбор рабочего инструмента сужался бы. А так, в том виде, в котором задача поставлена, она решается на любом языке программирования общего назначения (а, возможно, даже удастся обойтись вообще без программирования, например в Excel).
    Ответ написан
    3 комментария
  • Должен ли back-end разработчик уметь верстать?

    @nirvimel
    А еще вы должны подметать и мыть пол на своем рабочем месте, если вы живете один, работаете дома и в одиночку беретесь решать все проблемы заказчика от удаленной настройки его операционки и браузера до смены цветовой палитры (уже запущенного!) сайта под цвет ногтей его подруги.

    Если же вы являетесь редким специалистом в своем узком секторе рынка труда, то спрос на вас со стороны работодателей/заказчиков будет стабильно высоким, вы сами сможете диктовать им свои условия (в рамках разумного), и ни одному менеджеру/директору в здравом уме не придет в голову тратить время такого специалиста (а значит - свои деньги) на то, что способен сделать любой из миллиона индусов.
    Ответ написан
    Комментировать
  • Каков набор утилит для компьютерной помощи?

    @nirvimel
    В изолированной системе энтропия не уменьшается - закон физики.
    Засранная система не станет чистой - закон Microsoft.

    Самый быстрый и правильный вариант:
    0. Забыть про всякие чистильщики, настройщики и прочую легальную вирусню, которую некоторые еще ставят себе добровольно.
    1. Сгрести все ценное на внешний диск (если под это не отведен специальный раздел, т.е. хард нарезан цельным куском).
    2. Отформатировать хард (заодно правильно нарезать, чтобы под ОС шел ОТДЕЛЬНЫЙ раздел).
    3. Поставить чистую ОС.
    4. Вернуть все ценности на место (неактуально, при наличии отдельных разделов под это и под ОС).
    5. Убрать админские права с юзера и запаролить админа - защита от 90% вирусни.
    6. Настроить инкрементальный бекап всего юзерского профиля - защита от оставшихся 10% вирусни.
    7. Поставить (анти)вирус, чтобы комп стал тормозить как раньше.
    Ответ написан
    6 комментариев