• Как перехватывать трафик сетевой карты?

    Rou1997
    @Rou1997
    "Трафик сетевой карты" - это не IP-пакеты и даже не Ethernet-кадры, а электрические импульсы в кабеле, или радиоволны! Между сетевой картой и Winsock (TCP) пролегает штук 5-10 слоев кода в ядре NT, это несколько системных драйверов, Pcap всего лишь еще один драйвер, он также загружается в ОЗУ в процесс System и в рамках этого процесса ставит "хуки" в один из ранее загруженных системных драйверов.
    Тем не менее, для HTTP даже такое решение как Pcap слишком низкоуровневое, как и сниффер Wireshark который на основан на Pcap. Смотрите лучше в сторону сниффера Fiddler и его библиотеки FiddlerCore, там просто локальный HTTP-прокси, который устанавливается в систему и отслеживает трафик, можете использовать эту библиотеку, там хотя бы C# а не C++, или сами такой прокси написать, не обязательно локальный.
    И в любом случае учтите что область мало проработана и нет гарантий что в интернете есть все необходимые примеры исходного кода и документация, поэтому надо мало того что уметь их искать и анализировать, может понадобится еще и анализ, реверс-инжиниринг самих снифферов - отладка, дизассемблирование, декомпиляция, опять же с Fiddler это намного проще поскольку .NET.
    Рассчитывать здесь на помощь на форуме, тем более бесплатную, это полнейший абсурд и наивность.
    Ответ написан
    Комментировать
  • Как классифицировать текст с помощью нейронной сети?

    Если знаний в компьютерной лингвистке чуть больше чем ноль, то задачу решить получится не скоро ...
    Почему-то поголовное большинство разработчиков тешутся надеждой, что нейронные сети магическим образом решат любую задачу в области искусственного интеллекта.

    А какими примерами обучать нейросеть? Ведь не голым текстом... Типа, говоришь нейросети: "глянь, тут человека упомянули". Так что-ли? Для компьютера текст - это лишь последовательность байтов, поэтому он не может понять что для нас-людей представляет интерес. Компьютеру нужно всё разжевать и объяснить на языке цифер.
    Ведь как носители языка понимают, что в тексте речь о людях? Есть набор запомненных слов (словарь), которые человек прочтя или услышав, сравнивает со своим словарным запасом и тогда решает, к какой категории относится слово в данном контексте.

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

    В качестве вводной части имеет смысл начать с лекции Яндекс - Малый ШАД - Лингвистика в поиске.pdf
    По практической части: Что такое Томита-парсер, как Яндекс с его помощью ...

    Возможно, задача решается проще и без нейросетей.
    Ответ написан
    Комментировать
  • Как классифицировать текст с помощью нейронной сети?

    Arseny_Info
    @Arseny_Info
    R&D engineer
    1) Почистить данные (убрать стоп-слова, спецсимволы, привести в нормальную форму и т.п.)
    2) Векторизовать данные (bag of words, tf-idf, n-grams... )
    3) Разделить выборку на train/test.
    4) Собственно, обучить классификатор (не начинайте с нейросетей, начните с чего-то более простого типа random forest).
    5) Сделать кросс-валидацию, ужаснуться от результата, начать чинить проблемы на каждом шаге.

    Очень базовый туториал scikit-learn.org/stable/tutorial/text_analytics/wo... Гораздо менее базово - nlp.stanford.edu/IR-book/.
    Ответ написан
    Комментировать
  • Как сделать поиск по ВСЕМ пользователям вконтакте через API, без привязки к owner_id?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Вы ищите функцию "скачать весь контент из ВК бесплатно, без регистрации и смс"
    Такой функции там нет.
    Ответ написан
    4 комментария
  • Что нужно Django для продакшена?

    sim3x
    @sim3x
    https://www.digitalocean.com/community/tutorials/h...

    только вместо
    sudo pip install uwsgi
    делай
    sudo apt-get install uwsgi-core uwsgi-plugin-python3
    Ответ написан
  • Правильно ли я сделал парсер?

    @deliro
    Нет, это не из-за GIL.
    Создавать количество тредов по количеству страниц неправильно. Создание треда - трудоёмкая задача для ОС.
    И правильно ли я вообще делаю?

    Не совсем правильно, правильнее использовать то, что уже есть.
    Если scrapy тебя не устраивает, ты можешь использовать ThreadPool'ы, вместо того, чтобы вручную управлять lowlevel api тредов. Примерно так:

    from concurrent.futures import ThreadPoolExecutor
    from requests import Session
    
    session = Session()
    
    urls = [
        'https://toster.ru/q/372757',
        'https://toster.ru/',
    ]
    
    with ThreadPoolExecutor(7) as pool:  # 7 - количество тредов
        for response in pool.map(session.get, urls):
            do_something_with_response(response)
    Ответ написан
    2 комментария
  • На каких ресурсах, сайтах можно узнать как обстоят дела в той или иной профессиональной области?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я могу ответить сразу за все сферы: все думают, что платят за то, что работаешь в IT, в итоге - всё IT начали "наводнять" неучи-PR-щики.
    А работодателям - это выгодно: они эмулируют конкуренцию и снижают ЗП всем подряд, включая нормальных знающих работников, ссылаясь на то, что мы ещё найдём тучу подобных тебе на твоё место и постепенно отсеивают незнающих, оставляя ЗП хороших знающих сотрудников на начальном уровне.
    В итоге: трудозатраты, образование и опыт претендентов стали абсолютно размазанными на IT-рынке труда, что способствует отсеву "чужих" людей из IT.
    Реальные сотрудники - превратились в скитальцев, которые не хотят сталкиваться с подобными вещами и которые ищут грамотных работодателей (готовых хорошо платить за работу и их опыт) и высококлассный коллектив, который был сформирован этим же работодателем для успешного ведения своего бизнеса.
    В любой структуре, в момент её расширения, появляются различные вакансии для новых сотрудников с разным опытом и знаниями.
    Но, в большей степени, ключевую роль играет необразованность и невладение предметной областью самих руководителей таких новых подразделений и невозможность грамотно оценить потенциал кандидата до приёма на работу для конкретных задач, поставленных этому подразделению.
    И как следствие - виноват всегда тот, кто не справился с задачей, а не тот, кто допустил это.
    Ответ написан
    1 комментарий
  • С каких пор появился фронтенд?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    По пунктам:
    Почему в университете стало популярней разрабатывать сайты, ежели учить C++ и писать "толстые" клиенты.
    Потому что скриптовые языки дают существенно бОльшую скорость разработки чем C++ что собственно является главным аргументом. Разработчики стоят дороже железа условно.
    С++ остается в каких-то узко-специфических задачах со сложной математикой где производительности скриптовых языков не хватает. Писать на C++ интерфейс не актуально года с 2000 пожалуй что.

    Когда произошла точка перелома, что "тонкие" клиенты теперь популярней и почему? Хотя ведь мобильные приложения, это ведь тоже "толстый" клиент

    И мобильное приложение, и фронт сайта - могут быть и тонким и толстым клиентом, зависит от конкретного проекта.
    Это всегда баланс между бизнес-хотелками и затратами.
    Толстый клиент - лучше отзывчивость интерфейса, можно вынести часть нагрузки на железо клиента, дороже поддерживать (дорогие ios/android/angular/... разработчики, специфические проблемы синхронизации данных).
    Тонкий клиент - все наоборот :)

    UPD Если трактовать вопрос в стиле "почему веб более популярен чем десктоп":
    1. Как показывает практика любой софт который физически крутится у пользователя можно взломать и получить бесплатно. Если софт не лежит на торентах - скорее всего он никому не нужен.
    2. Многие сервисы сейчас продаются по модели ежемесячной-ежегодной подписки - это даёт существенно лучшие экономические показатели чем продажа платных обновлений.
    3. Интернет становится все более доступным и по географии и по $, все более быстрым.

    Все это делает модель SAAS и её наследников весьма привлекательным.
    Я бы сказал так - сейчас нужны какие-то ОЧЕНЬ веские причины не использовать SAAS.
    Ответ написан
    13 комментариев
  • Почему модуль socket в python обрезает данные при приеме независимо от параметра в функции recv?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Просто вы неправильно эти данные принимаете. Если посмотреть описание функции recv, то она возвращает реально принятые данные, которые могут быть порезаны. В вашем случае нужно в цикле принимать данные, пока не будет достигнута нужная длина. А еще лучше, сделать заголовок, в котором будет храниться длина пакета, сначала принимаете заголовок, потом в цикле принимаете данные на нужную длину. Tcp гарантирует, что данные не перемешаются и будут приходить последовательно, но протокол не гарантирует, что данные будут приходить ровно теми же самыми кусками, которыми они были отправлены.
    Ответ написан
    Комментировать
  • Какая библиотека самая эффективная на данный момент в задачах парсинга XML?

    sim3x
    @sim3x
    lxml

    при чем там сокеты, "параллельность обработки" и др вещи совсем неясно

    Паука / скраппера можно писать на чем угодно - и ето не повлияет на скорость парсинга и построения дерева xml
    Ответ написан
    2 комментария
  • Чем можно выполнять проксирование sql запросов?

    sim3x
    @sim3x
    nginx умеет проксировать tcp
    в платной версии имеет баллансировку и перезапрос на другой бек
    Ответ написан
    Комментировать
  • Как построить наименьшую траекторию перемещения по клеткам, имея возможность переставлять препятствия?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Строим дерево ходов, строим целевую функцию, берем один из популярных алгоритмов оптимизации на графах (либо колония муравьев, либо имитация отжига), смешиваем, но не взбалтываем.
    Ответ написан
    Комментировать
  • Как создаётся такой эффект стекания мёда (см. внутри)?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Ответ написан
    Комментировать
  • Как научиться быстро читать?

    lukoie
    @lukoie
    поищите технику быстрого чтения и сканирования книг от Парабеллума и Мрочковского - у них есть беспатные материалы на эту тему
    они учат бизнесменов так читать, чтобы не тратить много времени
    вообще зайдите на юбой сайт со скадчинами, там есть много тренингов и курсов по быстрочтению - они разные есть.
    есть чувак типа бывший ФСБшник, который учит быстрочтению. если надо - вспомню имя напишу, тогда в комменте спросите.
    Ответ написан
    2 комментария
  • Как перенять объектно-ориентированное мышление?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Т.е. сложно понимаю, что "засунуть" в один объект, что в другой, что должно быть статическим методом, что приватным и тд.


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

    То есть по сути наше приложение - один объект. У него внутри вообще все. У этого объекта есть один метод - обработай запрос. Когда внешний мир его вызывает, меняются значения каких-то переменных, вызываются какие-то внутренние "приватные" для внешнего мира функции, и делается работа.

    Теперь задумаемся о декомпозиции всего этого хаоса. Мы находим какую-то задачу, которую выполняет наш код (например какую функцию вызвать для обработки каждого конкретного запроса) и выносим это в отдельный объект. Отправка email-ов - отдельный объект. Весь SQL зашиваем в отдельный объект. Соединение с базой - объект. Пользователи - объекты. Все - объекты.

    И главное, у каждого объекта есть своя область ответственности. UNIX way. Каждый объект делает что-то одно и делает это хорошо. Бывает так что ну... нужно сделать так что бы один объект делал две вещи. НЕ вопрос, мы можем его попросить сделать что-то сложное, а он будет как хороший менеджер тупо делегировать работу другим объектом. То есть он и сложную штуку сделает, и сам не будет знать как она делается.

    А все безхозные функции, которые не пренадлежат никаким объектам (например функции порождающие объекты) можно вынести в статические методы. Главное что бы статичесих переменных у нас небыло (ибо это те же глобальные переменные). И поменьше публичного ибо черт его знает что эти разработчики будут использовать. Причем "те разработчики" это вы завтра.

    Вообщем писав всё время на процедурке, сложно перейти на ооп.


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

    Вы можете начать погружаться в ООП с того, что разобраться "почему глобальные переменные это плохо", почему "состояние порождает сложность" и что такое эта "сложность" (многие почему-то думают что сложность выражается в написании кода а не в его чтении или поддержке), почему "изоляция" (и как следствие инкапсуляция) - это хорошо. Как это все соотносится с декомпозицией. Что такое "ответственность", что такое зависимости, связанности

    Подскажите, какой проект начать писать (гостевая, блог), или может начать изучать фреймворк.


    Фреймворки универсальны, а значит чистого ООП там быть не может. Во всяком случае нет ни одного фреймворка на котором стоит учиться ООП.

    Есть хорошие упражнения на развитие понимания объектно-ориентированного проектирования. Например вот: https://habrahabr.ru/post/206802/

    Сразу хочу отметить что это крайности. Упражнения же. Они должны ограничивать вас что бы заставлять думать и задавать правильные вопросы.

    Или может подскажите книгу/сайт где пошагово в ооп написан какой-то проект, чтобы быстрее пришло понимание.


    Так вы научитесь делать один конкретный проект а на втором вы уже проиграете. Так дела не делаются. Надо разобраться с причинами появления идеи ООП. Ну то есть что было до. Можно еще с функциональным программированием попробовать разобраться. В PHP оно слабо применимо, но основные идеи очень тесно переплетаются с ООП и познав немного функциональщины ваше ООП будет лучше. Да и если про ООП вы можете найти много булшита, про функциональщину врут мало.
    Ответ написан
    3 комментария
  • Для чего нужные побитовые операции в Python?

    @deliro
    Например, флаги. Юзер может:
    0b1  # Читать
    0b10  # Писать
    0b100  # Редактировать
    0b1000  # Удалять
    
    0b1010  # юзер может писать и удалять, но не может читать и редактировать

    Итого, все флаги можно запихнуть в инт, который можно запихнуть в 1 байт.
    Ответ написан
    5 комментариев
  • Сколько времени нужно закладывать в детальный технический аудит сайта?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Как и в случае с любой другой задачей в мире, если вы не знаете, сколько времени и сил на неё понадобится, это означает одно из двух:
    1. Задача слишком общая и её нужно дробить, оценивая подзадачи.
    2. Вы некомпетентны в данном вопросе и задачу нужно отдать тому, кто нужными знаниями обладает. Если у вас есть желание повысить свой уровень, то нужно стоять над душой у этого человека во время работы и задавать вопросы.

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

    От того, что вам напишут в ответах "от дня до года", вам легче не станет, а ничего кроме этого написать и невозможно, потому что в описанной вами задаче огромное количество подвижных частей и взаимозависимых переменных.
    Ответ написан
    5 комментариев
  • Подсчет уникальных значений с минимальной погрешностью?

    @nirvimel
    Все зависит от формата хранения/представления этих данных. Должен быть свой кастомный формат, компактный (чтобы сократить доступ к памяти) и удобный исключительно для быстрого сканирования (прохода по всем записям), и ни для чего другого. Я бы написал это под Cython или Numba с компактным представлением данных в Numpy. При таком большом количестве мелких записей и, в общем то, тривиальном алгоритме их обработки основным bottleneck в плане производительности становится не CPU, а доступ к RAM, поэтому от "хитрости" самого алгоритма подсчета (какие тут могут быть хитрости?) тут мало что зависит, зато компактность структуры данных (даже за счет не очень удобного доступа к ней) будет играть решающую роль.
    Ответ написан
    Комментировать
  • Как правильно продать брендовое доменное имя?

    @mletov
    Согласен в с выше высказавшимися: Заберут через суд и не поморщатся если надо будет.
    Достаточно вспомнить историю про google.ua

    Причем там ребята хотя бы элементарные меры предосторожности приняли: зарегистрировали фиктивную компанию с названием, которое было созвучно с названием домена. Впрочем, все равно не помогло.

    У вас даже этого не сделано.

    Продавать третьим лица - так себе вариант. Кто захочет купить домен, который в любой момент могут отобрать.

    Если уж решили киберсквотить - идите по по пути Лебедева, регистрируйте домены а ля pivo.ru
    www.artlebedev.ru/studio/domainsale
    Ответ написан
    Комментировать