Pull to refresh
308
0

Пользователь

Send message
Бросаться из крайности в крайность, игнорируя перевод, тоже плохо. Я вот выучил один язык (не английский, но не суть важно) без знания перевода. И теперь, когда знакомые или друзья просят меня перевести им что-то, я впадаю в ступор. Найти аналог слова одного языка в другом, поверьте, нереально сложно. Вам приходится заново проделывать весь тот титанический труд, который пришлось когда-то проделать составителям словарей. Так что сейчас только карточками и занимаюсь. Заодно расширяю свой словарный запас на родном языке :-) Долгих лет и здоровья авторам Anki.
Еще вопрос в том, какое оптимальное количество агентов и где нужно разместить в Сети чтобы вычислить всех ботов?
Вопрос как правильно построить антибот-сеть и сколько минимально агентов нужно разместить и где чтобы вычислить всех ботов?
Первое правило инженера — если долго не можешь решить задачу, остановись и подумай: а ту ли проблему я вообще решаю? Одно дело, когда на ваш сервер идет DDoS-атака, другое дело, когда вас мирно сканируют какие-то школьники. Делают они это, скорее всего, через купленные шеллы либо из облаков типа AWS. Пытаясь вычислить «их всех», вы рано или поздно забаните свой сервер от всего Интернета, как это недавно уже попытался сделать Роскомнадзор. Запросы, конечно, прекратятся, не спорю, но тогда и от перхоти можно избавиться гильотиной.

Я уже ниже ответил, что теоретически все возможно, но есть реальность -ограничения ресурсов сервера и толщины канала в Сеть.
HEAD-запрос занимает, грубо, байт 100 (хотя обычно меньше). Докиньте 20 байтов TCP, 20 байтов IP, 24 байта Ethernet, итого 164. Возьмем сервер с каналом 10 Гб/с, что равно 10737418240 Бт/с, и поделим на размер одного пакета: 10737418240 / 164 = 65472062. Даже если предположить, что все 232 IP-адресов используются в Интернет (что неправда), то получим 232 / 65472062 + 1 = 66 с или чуть больше минуты. Таким же образом можете посчитать необходимое количество памяти. Число выйдет довольно большое, но для современного сервера абсолютно реальное. Учитывая, что, как вы сказали,
А теория она и есть теория — нужна конечно, но на практике все немного иначе всегда.
можете домножить мои числа на 1000, все-равно выйдет меньше суток.
Вы мешаете все в кучу. Ждать окончания TCP-соединения, как отметил sumanai, ботам не нужно — пускай оно длится хоть 10 минут, хоть час. Теоретически, вы можете запросить все 4 млрд адресов одновременно, и тогда время сканирования будет определяться самым медленным ответом, а не их суммой. Если вам кажется это не очевидным, то следует начать с изучения того, как работает пакетная передача данных вообще и TCP/IP в частности.

Бот в Интернете не один. На примере McARIS74 представьте, что он не единственный хулиган на свете. Кроме него есть еще как минимум volnov, у которого под подушкой припрятаны свои списки номеров, старательно выписанные им в блокнотик. Пока первый звонит по своим 20, второй звонит по своим. А если учесть, что таких негодяев в мире много, кто-нибудь из них, да и позвонит на ваш домашний номер.
Там что, в БЭ всех покупателей за дебилов что ли считают? Строчный отладчик в 2018г?
Зря вы так, хороший отладчик. А если командная строка не нравится, то к нему есть куча графических интерфейсов на любой вкус и цвет. В том же Eclipse что-то было.
В этом году iCTPEJlOK тыкал по спискам тех, кто не отметил. Так что можно предположить, что и в прошлых годах был бы такой же % получивших, просто пнуть было некому.
так вот, можно взять один аст, и засунуть прямо в него какие-то маркеры, пустые ноды, итп. Но это будет равносильно как если бы ты перемешал HTML+CSS в одном файле
Еще раз, зачем вы мешаете в кучу интерфейс и реализацию? Есть, например, интерфейс AST-узла. Через него нельзя получить никакие маркеры. А есть реализация. В ней может находиться все, что душе разработчика угодно. Могу вам назло FTP-сервер туда засунуть.

На вашем примере HTML+CSS разделение происходит только на уровне некого интерфейса между веб-разработчиком и веб-браузером. Загляните, например, в исходники WebKit — там у DOM-узла (читайте AST-узла) в реализации не то что стили, там даже рендерер свой имеется.
Сейчас у меня нет времени, но давайте на следующих выходных я напишу статью с примером парсера простых математических выражений типа 1 + (2* 1). Пробелы при этом, естественно, будут сохраняться. От парсера какой-нибудь Java этот пример практически ничем не отличается. Чтобы вы не пропустили публикацию, отправлю вам ссылку в личку.
Это решается по-разному в зависимости от других задач приложения. В случае с простым текстовым редактором у вас уже есть некий буфер с оригинальным текстом, который вы выводите на экран. Соответственно, в AST-узлах могут быть проставлены ссылки (в Java — целочисленное смещение относительно начала буфера) на соответствующие им куски кода. Если редактор офигеть какой навороченный (не уверен, относятся ли сюда Eclipse и IDEA, это больше ко всяким Word'ам), то там набираемый текст может храниться в несколько более странном виде, например, rope (как это перевести на русский? :-) Тогда лучше хранить куски текста «вокруг» AST-узлов (которые очень хорошо сжимаются). Почему это не сделано в упомянутых вами программах — не знаю, лентяи, наверное. Я лично реализовывал подобное для одного небольшого конфигурационного языка с Си-подобным синтаксисом (пользователь должен иметь возможность изменить настройки как руками, так и через GUI, и чтобы при этом файл все еще был пригоден для ручного редактирования). Задача, действительно, не очень распространенная (в силу лени других разработчиков), но и не «капец какая сложная», если разработчик имеет привычку думать самостоятельно, а не сдаваться, не найдя готового решения в Интернете. Возможно, мое решение не самое лучшее (потому при случае интересуюсь, как это делают другие), но более детальное описание чем то, что размещено выше, дать не могу, чтобы не деанонимизироваться.

Off topic
Прощу прощения, все никак не удается вспомнить — мы разве с вами знакомы? Почему вы все время обращаетесь ко мне на «ты»?
Интересно, если это «капец какая сложная», то какой эпитет вы подберете для по-настоящему сложных задач? :-)

А AST ничего о сырце до лексера не знает.
Правильнее сказать, интерфейс AST-узлов не знает ничего об исходной структуре. Но это не мешает нам придумать для него любую реализацию — может, у вас синтаксическое дерево вообще в виде записей в SQL-таблице хранится? Тогда очевидно, что реализация узла должна знать, как минимум, первичный ключ записи в таблице.
Не самая простая, возможно. Но и далеко не самая сложная относительно других задач приложения. Просто разработчикам на результат совершенно «по барабану».
В любом случае неприятно, когда все форматирование идет «коту под хвост». Если я поменял в редакторе цвет квадратика с синего на красный, то только blue на red в строго определенном месте он должен заменить. А не выворачивать все шиворот-навыворот.
Я так понимаю, Dr_XaoS под рефакторингом имел ввиду не расстановку пробелов по собственным правилам, а примерно то же, что я описал ниже. Например, есть задача сменить название класса Foo на Bar. Тогда ожидается, что будут заменены только эти 3 символа, а не «покорежен» (как вы нам обещаете в заголовке) весь файл.
Кстати, а зачем тебе сохранять пробелы?
Чтобы получать минимальные диффы при коммите. В частности, страшно раздражают графические редакторы, которые из-за одной незначительной правки корежат весь файл (например, SVG). После нескольких десятков изменений уже практически невозможно отследить кто, когда и что менял.
Самый важный вопрос. Умеет ли это сохранять «незначимые символы», а проще говоря пробелы?
Если они сами при этом не отправят подарок, то да. Иначе — it depends…

А Дед Мороз всегда может написать в личку мне или iCTPEJlOK.
Я уже намекал автору об этом выше (и судя по тому, что поток комментариев резко прекратился, можно предположить, что посыл был услышан). Но конкретно по скобкам — это сейчас один из самых распространенных стилей среди молодежи (что соответствует представленной нам легенде о студенте). А вот некоторые его пунктуационные ошибки весьма и весьма непопулярны… ;-)
имел место быть экспорт hg -> git
А что мешало им перенести в git даты коммитов?

Information

Rating
Does not participate
Registered
Activity