Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Как стать домашним админом и не свести семью с ума
Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

nirvimel

  • 937
    вклад
  • 24
    вопроса
  • 769
    ответов
  • 42%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Почему кооперативная многозадачность имеет меньше проблем с разделением ресурсов чем вытесняющая?

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

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

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

    nirvimel @nirvimel
    Извините, но вы опоздали со своей идеей лет на несколько в рунете и лет на ...дцать в остальном интернете.
    Этот рынок давно поделен, и за забором рынка уже выстроилась длинная очередь тех, кто опоздал к дележке.
    Хотите стать в хвост этой очереди?

    Что касается зависимости трафика от количества страниц (речь, так понимаю, про органический трафик): Любая страница приносит хоть каплю органического трафика только если находится на первой странице выдачи хоть по каком-нибудь ключу. Если контент не-уник, то в выдаче вы будите стоять НИЖЕ всех тех, у кого присутствует тот же контент, то есть на 100500 странице, если речь идет о кино-контенте.
    Ответ написан более трёх лет назад
    3 комментария
    Нравится 3 комментария
  • Почему диск С заполняется сам по себе?

    nirvimel @nirvimel
    Инструмент для определения чем занят диск?
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Какую структуру файлов и папок выбрать, если файлов очень много?

    nirvimel @nirvimel
    Когда счет файлов доходит до миллионов в одном каталоге, то вопрос уже не только в производительности, тут можно столкнуться с гораздо более серьезными проблемами: см. Как лучше организовать электронную библиотеку?
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Как отыскать адрес памяти по строке?

    nirvimel @nirvimel
    Адрес отыскать вполне реально (например, через упомянутый ArtMoney). Вот только адрес этот будет меняться как минимум при каждом запуске программы, а как максимум непрерывно каждые N миллисекунд в процессе ее работы (переменные на стеке в часто вызываемой функции). Поэтому само по себе значение адреса ничего не даст. Его придется заново искать вручную постоянно. Или писать патчер (но это длинная история).
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 2 комментария
  • Где можно найти БОЛЬШУЮ карту интернет-ресурсов сортированную по посещаемости? Как вообще правильно сёрфить интернеты?

    nirvimel @nirvimel
    По любой хоть немного релевантной картинке можно провести Search by Image. Это дает, во-первых, неплохой (иногда) ключевик для дальнейших поисков по нему. Во-вторых - море форумов, где эта картинка постилась (скорее всего в окружении релевантных же).
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Имеет ли юридическую силу запрет на парсинг сайта?

    nirvimel @nirvimel
    Любые дополнительные юридические ограничения (сверх того, что требует государственное законодательство) можно навязать пользователю лишь одним способом - путем ДОБРОВОЛЬНОГО (с обеих сторон) заключения договора. Это обычно реализуется в виде пользовательского соглашения при регистрации на сайте. При этом одна сторона (сайт) обязуется предоставить какие-то услуги (например, доступ к некоторой информации), в то время как другая сторона (пользователь) добровольно принимает на себя какие-то ограничения (например, не пользоваться никакими автоматизированными средствами для извлечения, предоставляемой ему, информации). Это соглашения вступает в юридическую силу с момента нажатия на кнопку "Принимаю условия" (см. акцепт).
    Поскольку с анонимом в принципе невозможно заключить никакой договор (очевидно), то на, не прошедшего регистрацию пользователя, невозможно возложить никакие ограничения (сверх существующих в законе).

    Но все вышеописанное касается только СПОСОБА, которым пользователь взаимодействует с сайтом (автоматизированный/ручной/ножной/и.т.д.). Что касается самого контента, который пользователь потребляет, то на него распространяется все нормы авторского права (независимо от способа, которым он получен). Поскольку авторское право (как государственный закон и международное соглашение) распространяется на всех без исключения (в том числе и на анонимов), то не требуется заключать с пользователем никакого договора (и заставлять проходить регистрацию). Достаточно упомянуть (желательно на видном местом) запрет на использование данного контента в любых целях, кроме личного ознакомления. Это допустимо на основании того, что владелец исключительных прав на контент может определять любые ограничения на его использование. Что это дает: контент, собранный автоматизированными средствами, в дальнейшем не может быть использован никак без нарушения закона о защите авторских прав (это серьезнее, чем нарушение пользовательского соглашения). Это полный юридический тупик для того, кто захочет заняться парсингом (пусть даже само по себе это будет законно).
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 20 2 комментария
  • Зачем нужны шаблоны, если есть макросы?

    nirvimel @nirvimel
    1. Статическая типизация (если для вас это не сильный аргумент, то вам, наверное, больше подойдет что-то вроде Python).
    2. Более адекватные сообщения об ошибках компиляции при круто накрученной логике на макросах/шаблонах.
    3. https://msdn.microsoft.com/en-us/library/z3f89ch8(...
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Книги по программированию в Linux?

    nirvimel @nirvimel
    cat.gif

    cat.gif

    cat.gif

    220px-The_Art_of_Unix_Programming.jpg

    51CZBW4FJvL._SX258_BO1,204,203,200_.jpg

    41%2BwYcGLXsL._SX258_BO1,204,203,200_.jp

    51lJzicCLwL._SX373_BO1,204,203,200_.jpg
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 17 1 комментарий
  • Настройка socks5 прокси для обхода блокировок?

    nirvimel @nirvimel
    Похоже, у вас утечка DNS, а провайдер блокирует kinozal по домену, а rutracker только по ip.
    Это решается правильной настройкой браузера:
    В Firefox нужно задать network.proxy.socks_remote_dns=true и network.dns.disablePrefetch=false в about:config.
    В Chrome нужно отключить "Predict network actions to improve page load performance".
    И обратите внимание, что тип прокси указан именно SOCKS5. Через SOCKS4 браузер будет спокойно подключаться к SOCKS5 серверу, но DNS может потечь в обход (в зависимости от поддержки SOCKS4a).

    И учитывайте, что прямой SOCKS к удаленному серверу - это полностью открытый и прозрачный канал, то есть провайдер видит (даже если не блокирует) весь ваш HTTP трафик на 100%, а из HTTPS знает, по крайней мере, имена доменов (и скоро начнет хранить у себя все это). Поэтому я рекомендую пользоваться именно SSH, который предоставляет защищенный туннель.
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 2 комментария
  • Как отредактировать файл, находящийся внутри образа VirtualBox?

    nirvimel @nirvimel
    Под Linux vmdk-образ монтируется через guestmount или vdfuse.
    Под Windows есть ImDisk, не считая штатного vmware-mount.exe из VMWare.
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 2 1 комментарий
  • Есть библиотека/плагин с таким функционалом?

    nirvimel @nirvimel
    Какой Angular? Какой JQuery?
    Поворот, увеличение/уменьшение и обрезка делаются на чистом CSS вообще безо всяких скриптов.
    Ответ написан более трёх лет назад
    3 комментария
    Нравится 1 3 комментария
  • Алгоритм многопоточности?

    nirvimel @nirvimel
    Не надо создавать отдельный поток для каждого файла. Создайте два пула потоков.

    Пул №1 (вычислительный): количество потоков равно количеству ядер CPU. Во входную очередь сыплются блоки данных, для которых потоки пула рассчитывают хеши.

    Пул №2 (синхронное чтение с диска): количество потоков равно количеству ядер, помноженному на некоторую константу (в исходниках разных библиотек я видел значения от 2 до 10). Во входную очередь сыплются имена файлов, которые потоки пула открывают, читают и засылают прочитанные блоки во входную очередь пула №1.
    Примечание: расход памяти регулируется ограничением максимальной длинны входной очереди пула № 1. Практически получается, что пул №1 ограничивает нагрузку на пул №2, который в норме недонагружен.

    Отдельный поток, который совершает обход дерева каталогов и засылает найденные имена файлов во входную очередь пула №2. Длину этой очереди, тоже можно ограничить, но не так жестко (я бы задал размер в несколько сотен).

    P.S.: Все очереди с ограничением длины должны быть, конечно же, с блокировками (не lock-free), так как через них происходит регулировка нагрузки (иначе все потоки нагрузятся на 100%).
    Размер блоков данных, поступающих на вход пула №1 не надо делать слишком маленьким (я бы задал 64 килобайта, например).
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 2 Комментировать
  • Пара вопросов по фронт-дэву в Firefox?

    nirvimel @nirvimel
    1. Moskus уже дал ответ. Я добавлю еще одну вещь, полезную для натяжки сеток.
    2. Во-первых, есть встроенный механизм Responsive Design Mode. Во-вторых, есть расширения (1) (2) (3) для старых лис или для тех, кто не ищет простых путей.
    3. Дев версия имеет значительные отличия для разработчиков расширений самой лисы. С точки зрения web-разработки эти отличия не играют почти никакой роли.
    Ответ написан более трёх лет назад
    2 комментария
    Нравится 1 2 комментария
  • Какую книгу по С++ прочесть для новичка?

    nirvimel @nirvimel
    Здесь вся основная литература по C++ структурирована по уровням.
    Ответ написан более трёх лет назад
    Нравится 2
  • Требуется помощь с методами обработки сетевых соединений?

    nirvimel @nirvimel
    select(wikipedia), poll - это функции API в Unix системах (входят в стандарт POSIX), которые позволяют организовать в одном потоке ожидание завершения множества операций ввода/вывода, то есть выполнять асинхронный ввод/вывод.
    epoll(wikipedia) - это более современный вариант pool в Linux.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
  • Как сделать удобнее ввод кода?

    nirvimel @nirvimel
    Против буквы О существуют Base58.
    По-другому длинные числа можно представить в виде последовательности простых русских английских слов при помощи BIP39.
    В принципе можно переделать это и под русский язык, но придется серьезно поработать над словарем.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 1 Комментировать
  • Как сменить ip на заданный статический?

    nirvimel @nirvimel
    Это просто, достаточно сменить адрес проживания на нужный город и подключить себе интернет по новому месту жительства.

    Если чуть умерить аппетиты и поставить задачу несколько по-другому, то вместо "смены" IP можно пропускать свой трафик через другой узел для создания видимости нахождения в другом городе. Для этого потребуется приобрести VPN в этом городе любым способом.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится 9 Комментировать
  • С чего стоит начать изучение специальности "информационная безопасность"?

    nirvimel @nirvimel
    1. Как начать познание информационной безопасности?
    2. С чего начать изучение информационной безопасности?
    3. Какие есть ресурсы для изучения сферы «информационная безопасность»?
    4. Фундаментальная литература по ИБ на русском?
    5. Книги и ресурсы по информационной безопасности
    6. Что изучать специалисту по информационной безопасности?
    7. Что нужно знать, чтобы стать хакером?
    8. ...
    9. Как найти все вышеперечисленные ссылки?
    Ответ написан более трёх лет назад
    1 комментарий
    Нравится 3 1 комментарий
  • ПО на нескольких языках программирования?

    nirvimel @nirvimel
    Отвесу одним словом: микросервисы.
    Ответ написан более трёх лет назад
    Комментировать
    Нравится Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • Следующие →
Самые активные сегодня
  • Василий Банников
    • 17 ответов
    • 0 вопросов
  • saboteur_kiev
    Saboteur
    • 11 ответов
    • 0 вопросов
  • CityCat4
    CityCat4
    • 10 ответов
    • 0 вопросов
  • rPman
    • 9 ответов
    • 0 вопросов
  • opium
    Пума Тайланд
    • 8 ответов
    • 0 вопросов
  • Dr. Bacon
    • 8 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации