Задать вопрос
  • Почему питон не дает зашифровать переменную?

    @nirvimel
    string.digits содержит символы 0, 1, 8, 9 недопустимые в кодировке Base32.
    С 0, 1 можно побороться с помощью передачи True третьим аргументом в base64.b32decode (но частоты символов на выходе станут неравномерно распределенными при равномерном распределении рандома на входе).
    Но 8, 9 все равно мешают. Проще задать вручную набор из оставшихся шести цифр.
    Ответ написан
    Комментировать
  • Насколько легко трудоустроиться программисту в 40+, 50+ итд лет?

    @nirvimel
    Подчинённый перед лицом начальствующим должен иметь вид лихой и придурковатый! Дабы не смущать начальство разумением своим.

    Петр I Великий

    Это объясняет все парадоксы СНГ-шного рынка труда, неизвестные в остальном мире.
    Как 20-летний новоиспеченный манагер будет строить 50-летнего сотрудника, который старше его отца?
    А как без построений обеспечить дисциплину в коллективе и правильныйЪ уклад отношений с подчиненными?
    Ответ написан
    14 комментариев
  • Использование "липовых" персональных данных, наказуемо?

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

    Теперь о том, что они реально могут сделать:
    Во-первых, аннулировать ваш аккаунт вместе со всеми средствами, которые там зависли. И вы не сможете с них ничего взыскать, если даже найдутся живые свидетели, которые лично видели как вы выполняли работу, за которую они обещали (по соглашению (нарушенному)) выплачивать деньги.
    Во-вторых, они могут отказать вам в регистрации нового аккаунта на свои уже реальные данные, если они каким-то образом смогут вычислить, что вы - тот самый нарушитель соглашения.
    В-третьих, (чисто гипотетически) они могут попробовать взыскать с вас материальный ущерб, причерченный их компании вашими действиями. Но по таким искам бремя доказательства лежит полностью на стороне истца (а мы-то знаем, что доказывать там реально нечего), поэтому в жизни этим никто никогда не занимается.
    В-четверных, они могут передать органам или выбросить в паблик любую информацию, полученную от вас за все время вашего с ними сотрудничества, начиная от тех самых ваших ложных персональных данных и заканчивая всеми IP, с которых вы к ним заходили. Конфиденциальность всех этих данных держится на том самом пользовательском соглашении, которое вы нарушили. Но, с другой стороны, тут они могут нарваться на иск с вашей стороны о возмещении морального и/или материального ущерба, если вам удастся как-то доказать связь этого ущерба с их действиями. (Но я уже ушел в гипотетические рассуждения).

    Короче... 98% они просто зажмут бабки и на этом история закончится.
    Ответ написан
    Комментировать
  • Что нужно использовать в качестве прокси?

    @nirvimel
    Какие-то разновидности прокси?

    1. Чистый Squid - ТруЪ вариант.
    2. Squid + Webmin - Для тех, кто не осилил вариант (1).
    3. Squid + Snapt (или другие проприетарные GUI на него) - Для тех, кто не осилил вариант (1) и у кого чешутся бюджеты раскошелиться на гламурный интерфейс.
    ...
    127. Альтернативные поделки (типа TrafficInspector) с закрытым кодом, созданные по ТЗ, списанном (частично) с Squid + ipfilter + GUI.

    И всегда ли прокси софтовый?

    Прокси сервер - это и есть ПО. Вопрос только в том на каком железе оно работает. Тут есть варианты:
    1. На дорогом маршрутизаторе (дешевый не потянет). - Затратно, но Ъ админы брызгают кипятком от этого.
    2. На отдельной старой машине, превращенной из десктопа в маршрутизатор. - Дешево и даже годно, но некрасиво и шумно.
    3. На отдельной железке, одноплатнике за 40$ - 80$ (типа материнки под неттоп), даже необязательно x86 совместимом. - ИМХО, самый адекватный вариант.
    4. На одной из рабочих машин. - Типичный вариант в конторах с жлобом-директором.
    Ответ написан
    Комментировать
  • Как отключить передачу Battery Status API?

    @nirvimel
    Под Firefox есть великолепный аддон Random Agent Spoofer, который кроме сабжа перекрывает еще множество других каналов утечки информации. Не обращайте внимания на название, оно просто историческое, на сегодня это целый комбайн, который решает почти все проблемы, которые разработчики браузеров и интернет-стандартов "подарили" юзерам.

    Под Chrome, к сожалению, аналогов не существует (поправьте, если ошибаюсь).

    UPD: На вкладке Options -> В группе Standart Options -> Пункт Disable battery API.
    Ответ написан
    1 комментарий
  • Как автоматизировать ввод пароля при создании ssh подключения?

    @nirvimel
    Это называется авторизация по ключу.
    Ответ написан
    Комментировать
  • Какие типы файлов нужно, а какие не нужно сжимать с помощью DEFLATE при отдаче сервером?

    @nirvimel
    Список MIME-types, подлежащих сжатию:
    application/atom+xml
    application/javascript
    application/json
    application/ld+json
    application/manifest+json
    application/rss+xml
    application/vnd.geo+json
    application/vnd.ms-fontobject
    application/x-font-ttf
    application/x-web-app-manifest+json
    application/xhtml+xml
    application/xml
    font/opentype
    image/bmp
    image/svg+xml
    image/x-icon
    text/css
    text/plain
    text/vcard
    text/vnd.rim.location.xloc
    text/vtt
    text/x-component
    text/x-cross-domain-policy
    text/html
    text/cache-manifest

    Источник: server-configs-nginx
    Ответ написан
    Комментировать
  • Какой VPS хостинг выбрать?

    @nirvimel
    OVH практически не имеет аналогов, сравнимых по соотношению цена/качество.
    Везде где заявляются подобные характеристики при такой низкой цене, там аккуратно замаскированы подводные камни.

    Если так не хватает дискового пространства, можно в качестве внешнего хранилища прикупить VPS с низкими характеристиками, но с большим диском и низким пингом до OVH.

    RUVDS

    Пусть их сервера будут стоять в Зимбабве, пока их "голова" находится в юрисдикции RU, работая с ними вы несете все риски локации RU в дополнение ко всем рискам локации Зимбабве.
    Ответ написан
    Комментировать
  • Как отловить нажатие "крестика" при выполнении программы в консольном режиме?

    @nirvimel
    Под Windows это делается через SetConsoleCtrlHandler, например так.
    Кроссплатформенно это делается через atexit.

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

    @nirvimel
    Прорисовка курсора мыши в Windows выполняется из ядра. Никакой процесс в юзерспейс не может воздействовать на это. Даже, если запустить одновременно двадцать процессов, каждый из которых способен нагрузить CPU на 100%, то мышь все равно будет резво бегать по экрану и щелкать по не реагирующим ни на что окнам.
    Такое атипичное торможение курсора возможно из-за:
    1. Проблемы с железом. Например с HDD (про то, что нужно смотреть SMART уже упомянули выше).
    2. Экстремальный перегрев CPU. Например, при снятии кулера на ходу по-горячему, камень от Intel не сгорит сразу, но система начнет работать рывками (1% в работе, 99% ожидание рассеивания тепла), выглядит это именно так - прыжки мыши, заикания звука. Совет: проверить температуру, проверить наличие термопасты (не высохла ли).
    3. Проблемы с драйверами. Теоретически любой модуль, загруженный в пространство ядра, может вызывать такое поведение, но практически, чтобы создать такой драйвер, нужно быть ну очень криворуким кодером и наплевать на все, что написано в DDK по поводу обработки прерываний и DPC. Исключение - драйвера к видеокартам, такое ощущение, что разработчики отдают их на аутсорс индусам, а документацию к железу передают им на китайском.
    Ответ написан
    Комментировать
  • Стоит ли регистрировать домен название которого совпадает с названием фильма?

    @nirvimel
    Название любого художественного произведения (фильма, песни, картины, книги, и.т.д.) может быть авторским или заимствованным. Если название состоит из одного слова и это слово - имя нарицательное, то название является заимствованным. Если название представляет собой устойчивое словосочетание, распространённый ревой оборот или ранее уже было использовано в качестве названия другого произведения, то это тоже заимствование. Во всех остальных случаях название считается авторским.

    Например:
    Красавица и чудовище - заимствованное (название старой сказки).
    Русалочка - заимствованное (название старой сказки).
    Терминатор - заимствованное (в английском языке имя нарицательное).
    Трансформеры - заимствованное (в английском языке имя нарицательное).

    Зверополис - авторское (слово ранее не встречалось).
    Игра престолов - авторское (словосочетание, ранее нераспространенное).

    Авторские названия принадлежат владельцам прав, для использования в любой коммерческой деятельности необходимо разрешение владельцев (в этом плане очень характерна недавняя история про "Зима близко").
    Заимствованные названия не могут принадлежать ни авторам, ни владельцам прав на произведения, поэтому могут использоваться свободно (как и до выхода соответствующих произведений).
    Ответ написан
    Комментировать
  • Как шифровать отдельные папки и файлы в Linux?

    @nirvimel
    Ответ написан
    Комментировать
  • Почему принято использовать тире для разделения слов?

    @nirvimel
    Почему принято использовать тире для разделения слов?

    Потому что в естественном языке составные слова по правилам грамматики пишутся через тире дефис.

    Почему не используют нижнее подчеркивание?

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

    А зачем вообще в те времена убирали пробелы с названий песен? Замена кириллицы на латиницу еще понятна, но убирание пробелов зачем?

    Пробел не входит в число символов, допустимых в коротких именах файлов в DOS. Если в VFAT задать файлу имя с пробелами, то во всем софте под DOS это имя будет отображаться очень некрасиво (юникод (кириллица, например) там выглядит еще страшнее). А если этот файл под DOS еще раз переименовать, то такое обрезанное имя останется и в VFAT. Поэтому замена на латиницу без убирания пробелов не имеет смысла.
    Ответ написан
    1 комментарий
  • Как правильно обновить Debian 8 до 9?

    @nirvimel
    1. Существуют два типа именования дистрибутивов в sources.list:
      а) по именам: stretch, jessie, wheezy; б) по статусам: sid, testing, stable, oldstable;
      Если прописано имя, то смена статусов версий не будет влиять никак, система будет только стареть. Если прописан статус, то при смене статусов (принятие новой версии) произойдет прыжок на новую версию, после чего система будет стареть до нового прыжка на новую версию.
    2. Что лучше - это индивидуально. Кто боится потерять какие-то свои настройки, тот предпочитает обновление. Кто боится затянуть в новую систему свои кривые настройки, тому лучше ставить с чистого листа.
    3. Она уже в full freeze с начала февраля. Обычно с момента заморозки до релиза проходит чуть больше, чем полгода.
    Ответ написан
    Комментировать
  • Чем пожертвовать, DRY или самодокументируемым кодом?

    @nirvimel
    Для этого во все времена применялись комментарии. До тех пор, пока однажды кто-то создал секту самодокументаторов, которые поклоняются богу самодокументируемости и приносят ему в жертву все, вплоть до основополагающих принципов программирования (DRY).
    $x = is_array($map) && isset($map[$param]) /* is map have passed param */
    $y = explode('-', $defaults) /* get defaults int range */

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

    @nirvimel
    Смотря какая цель преследуется:
    1. Не дать воспользоваться вашим кодом для создания другого аналогичного продукта.
    2. Скрыть какую-то маленькую "изюминку", которую можно использовать для читерства, если раскопать ее в коде.

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