Search
Write a publication
Pull to refresh
27
0.1
Григорьев Андрей @Pochemuk

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

Send message

Составляем DNS-запрос вручную

Reading time7 min
Views56K
Об авторе. Джеймс Рутли — бэкенд-разработчик в компании Monzo.

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

Мы узнаем, как:

  • Написать запросы DNS в двоичном формате
  • Отправить сообщение в теле датаграммы UDP с помощью Python
  • Прочитать ответ от DNS-сервера

Писать в двоичном формате кажется сложным, но в реальности я обнаружил, что это вполне доступно. Документация DNS хорошо написана и понятна, а писать мы будем маленькое сообщение — всего 29 байт.
Читать дальше →

Как я преодолевал предел 4Гб на Windows XP 32бит

Reading time4 min
Views346K
Сразу оговорюсь, «преодолевал» в названии отражает только тот факт, что теперь моя XP видит всю память, установленную на системной плате. Не я придумал способ, я просто им воспользовался и теперь хочу поделиться.
Вопрос о четырёх гигабайтах памяти в Windows XP (здесь, и далее 32 бит) поднимался на просторах Интернет неоднократно. И так же неоднократно делался вывод, что более четырёх увидеть в принципе невозможно, а так как оборудование тоже требует адресного пространства, то и того меньше. Обычно 3.25 Гб, или около того. Очень подробно и убедительно история вопроса освещена здесь: Четыре гигабайта памяти — недостижимая цель?

Меня этот вопрос тоже волновал. Хотя, казалось бы, можно поставить 64 битную систему, или даже Windows Server (как известно он даже в 32-битной версии видит всю память), но я хотел пользоваться Windows XP. Два раза за последние 3 года я переходил на Windows 7, в первый раз на 64-битную, второй раз на 32-х битную, но в итоге оба раза вернулся назад на XP, которая живёт у меня без переустановки с 2007 года.
Последний раз я отказался от семёрки в пользу старушки буквально две недели назад. Притом, надо отметить, что семёрка была хоть и 32-х битная, но в ней была разблокирована возможность видеть всю доступную память. Способ разблокировки доступен в Интернет. И теперь мне с новой силой захотелось решить этот вопрос и в XP.
Читать дальше →

Квантизация изображений

Reading time5 min
Views24K
Квантизация — уменьшение цветов изображения (wiki). Конечно, сейчас мало кому это необходимо, но задача сама по себе интересная.


Квантизированная Лена привлекает внимание

Например, старый добрый формат GIF использует палитру, максимум на 256 цветов. Если вы захотите сохранить серию своих селфи как gif-анимацию (кому бы это надо было), то первое, что вам, а точнее программе, которую вы будете для этого использовать, надо будет сделать – создать палитру. Можно использовать статическую палитру, например web-safe colors, алгоритм квантизации получиться очень простым и быстрым, но результат будет «не очень». Можно создать оптимальную палитру на основе цветов изображения, что даст результат наиболее визуально похожий на оригинал.

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

Далее вас ждёт скучное и непонятное повествование о методе медианного сечения, алгоритму рассеивания ошибок (шума квантизации) по Флойду-Стейнбергу (и не только), особенностях цветового восприятия человеческого глаза, а так же немного говнокода.
Читать дальше →

Руководители, хватит сбрасывать пользовательские пароли раз в месяц

Reading time7 min
Views37K

День смены паролей, офис в городе Энске, реконструкция, цвет

Если эта статья не проделала брешь в пространственно-временном континууме, то на дворе 2018 год, а в большинстве крупных организаций до сих пор меняют пароли каждые 30-90 дней. Тема того, что принудительная постоянная смена паролей лишь снижает секьюрность, но никак ее не повышает, поднималась на Хабре уже много раз (1, 2, 3), но в них, обычно, обсуждались частные случаи, а в комментариях пользователи активно делились опытом, как они защищают свои собственные учетные записи.

То что связка условного KeePass+токен, присыпанная двухфакторной аутентификацией намного надежнее, чем условная смена паролей раз в 30-90 дней, понятно и без объяснений. Но как метко заметил один из комментаторов в прошлых публикациях, зачастую инициатива на подобные «эффективные» меры исходит с самого верха организации, а спорить с генеральным директором без достойных аргументов себе дороже. Поэтому я решил попробовать доступно разложить, откуда растут ноги столь распространенной и одновременно неэффективной практики, какие им существуют альтернативы и с чем они сопряжены. Возможно, после прочтения этой статьи некоторыми руководителями, работать в отдельных компаниях станет немного лучше.
Читать дальше →

Вычисляем по IP: как бороться со спамом в социальной сети

Reading time19 min
Views41K
Спам в социальных сетях и мессенджерах — это боль. Боль и для честных пользователей, и для разработчиков. Как с ней борются в Badoo, рассказал Михаил Овчинников на Highload++, далее текстовая версия этого доклада.


О спикере: Михаил Овчинников работает в Badoo и последние пять лет занимается антиспамом.

В Badoo зарегистрировано 390 миллионов пользователей (данные на октябрь 2017). Если сравнивать размер аудитории сервиса с населением России, то можно сказать, что в нашей стране по статистике каждых 100 млн человек охраняет 500 тысяч полицейских, а в Badoo каждые 100 млн пользователей защищает от спама всего один сотрудник Антиспама. Но даже такое небольшое количество программистов способно защитить пользователей от разных неприятностей в интернете.

DNS Tunneling via iodine: сыр действительно бесплатный

Reading time3 min
Views26K
Есть:
— отключенный за неуплату интернет (adsl, lan, etc)
или
— нешифрованная wi-fi сеть c закрытым интернетом, но работающим dns
или
— очень строгий firewall с открытым dns

Хочется:
полноценный интернет, пусть даже очень медленно
Как?

Самодельный тестовый стенд для материнских плат

Reading time5 min
Views42K
Думаю, что рано или поздно всем, кто регулярно ковыряется с компьютерным железом приходит мысль как-то оптимизировать рабочее место — надоедает каждый раз раскладываться на столе, потом прибираться. Плюс иногда возня с материнкой может идти несколько дней, а за это время может понадобиться что-то ещё на столе поделать, ещё что-то запустить и т.п. А если там разложена материнка, да ещё какие-то тесты идут, то двигать её может быть нежелательно. Так что классическая «коробка для материнки» перестаёт устраивать. Ко мне такое пришло скорее поздно, чем рано, но это лучше, чем никогда :)


Читать дальше →

Теория игр: принятие решений с примерами на Kotlin

Reading time18 min
Views42K
Теория игр — математическая дисциплина, рассматривающая моделирование действий игроков, которые имеют цель, заключающуюся в выбор оптимальных стратегий поведения в условиях конфликта. На Хабре эта тема уже освещалась, но сегодня мы поговорим о некоторых ее аспектах подробнее и рассмотрим примеры на Kotlin.
Читать дальше →

Yet Another Rating System

Reading time8 min
Views24K
Итак, тема рейтинговых систем продолжает будоражить умы хабрапользователей. Появляются всё новые и новые схемы, формулы, тесты. И каждый раз всё сводится к одному и тому же вопросу: как совместить среднюю оценку пользователей с нашей уверенностью в этой оценке. Например, если один фильм получил 80 положительных и 20 отрицательных голосов, а другой — 9 положительных и 1 отрицательный, то какой из фильмов лучше? Не претендуя на создание новой универсальной рейтинговой системы, я всё же предложу один из возможных подходов к решению именно этого вопроса.
Читать дальше →

Задача о многоруком бандите — сравниваем эпсилон-жадную стратегию и Томпсоновское сэмплирование

Reading time12 min
Views22K
Привет, Хабр! Представляю вашему вниманию перевд статьи Solving multiarmed bandits: A comparison of epsilon-greedy and Thompson sampling.

Задача о многоруком бандите


Задача о многоруком бандите – одна из самых основных задач в науке о решениях. А именно, это задача об оптимальном распределении ресурсов в уcловиях неопределенности. Само название «многорукий бандит» пошло от старых игровых автоматов, которыми управляли при помощи ручек. Эти автоматы получили прозвище «бандиты», потому что после общения с ними люди обычно чувствовали себя ограбленными. А теперь представьте, что таких машин несколько и шанс выиграть у разных машин разный. Раз уж мы взялись играть с этими машинами, мы хотим определить, у какой этот шанс выше и использовать (exploit) эту машину чаще, чем другие.


Проблема в следующем: как нам эффективнее всего понять, какая машина подходит лучше всего, и при этом перепробовать много возможностей в реальном времени? Это не какая-то теоретическая проблема, это проблема, с которой бизнес сталкивается все время. Например, у компании есть несколько вариантов сообщений, которые надо показывать пользователям (в число сообщений, например, входят и реклама, сайты, изображения) так, чтобы выбранные сообщения максимизировали некое бизнес-задание (конверсию, кликабельность и пр.)


Читать дальше →

DNSCrypt 2.0 и блокировка рекламы

Reading time2 min
Views53K
В этой статье хотелось бы рассмотреть нововведения Dnscrypt, на конкретном примере, который наверняка окажется для кого-то полезным.

Для тех, кто не знает, Dnscrypt — это уникальный протокол шифрования DNS-трафика. Он даёт возможность защитить DNS-коммуникации от перехватов и подмены, и к примеру, обойти блокировки реализуемые на уровне DNS-запросов.

Из основных возможностей новой версии, прежде всего, хочется отметить возможность коммуникации с сервером по протоколу TCP, что делает такой канал более стабильным и менее заметным.

В этой статье, воспользуемся этим преимуществом и для разнообразия/пользы ограничим доступ к рекламным доменам.
Читать дальше →

Новые возможности Хабра: как отписаться от пользователей и рекламных блогов

Reading time2 min
Views14K
Многие на Хабре спрашивают, как отфильтровать посты отдельных авторов и корпоративных блогов. Совсем недавно эта возможность появилась – правда, для этого необходима последняя версия блокировщика Adblock.


Для тех, кому не хочется читать дальше, просто приведу код фильтра Adblock для отписки от постов одного из авторов.

geektimes.ru#?#li:-abp-has(a.user-info[href*="username"])

Правда, работает это не во всех браузерах, и не во всех случаях. Для тех, кому интересно, как и когда это работает, прошу под кат.
Читать дальше →

TSP problem. Mixed algorithm

Reading time13 min
Views12K
Всем доброго времени суток. В прошлых статьях мы сравнивали два эвристических алгоритма оптимизации на симметричной задаче коммивояжера таких как: ACS (ant colony system — муравьиный алгоритм) и SA (simulating annealing — алгоритм имитации отжига). Как мы убедились у каждого свои плюсы и минусы.


Читать дальше →

Решение задачи коммивояжера с помощью метода ветвей и границ

Reading time3 min
Views99K
Здравствуй, Хабр! Реализовывая различные алгоритмы для нахождения гамильтонова цикла с наименьшей стоимостью, я наткнулся на публикацию, предлагающую свой вариант. Попробовав в деле, я получил неправильный ответ:



Дальнейшие поиски в Интернете не принесли ожидаемого результата: либо сложное для не-математиков теоретическое описание, либо понятное, но с ошибками.

Под катом вас будет ждать исправленный алгоритм и онлайн-калькулятор.
Читать дальше →

Поиск гамильтонова цикла в большом графе (задача коммивояжера).Часть 1

Reading time4 min
Views80K

1. Постановка задачи


Полный взвешенный граф из 500 вершин задан матрицей смежности.
Необходимо найти гамильтонов цикл в этом графе как можно меньшей суммарной стоимости.
Читать дальше →

Перенос базы данных в более старую версию MS SQL Server

Reading time5 min
Views40K


У вас есть база данных MS SQL Server, которую нужно перенести на другой физический комп. Вы уже сделали бэкап и радостно приступаете к восстановлению. Но тут обнаруживается, что на том компе, куда нужно перенести базу, установлена более старая версия MS SQL Server. Stack Overflow уверяет вас, что всё плохо. Но так ли это на самом деле?
Читать дальше →

PowerShell и Group Policy Preferences, когда счет принтеров на сотни

Reading time22 min
Views12K


Много копий сломано вокруг управления сетевыми принтерами на пользовательских компьютерах. В основном администраторы разбились на два лагеря: подключение логон-скриптами (bat/vbs) и управление через GPP. У обоих подходов есть свои плюсы: скрипты быстрее обрабатываются, а GPP гибче и применяется чаще, чем пользователи перезагружают компьютеры. Но когда принтеров больше сотни и разбросаны они в нескольких десятках офисов и городов, сложности будут в обоих случаях.

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

В общем, мы с коллегами для себя выбрали GPP, в первую очередь для того, чтобы кто-то кроме ведущих администраторов мог разобраться в действующем конфиге, просто посмотрев отчет GPMC. Однако, кто скажет, что его штатный интерфейс удобен для управления 100+ устройствами — пусть первый бросит в меня камень. Кроме того, при вводе в эксплуатацию очередной партии нужно проделать много рутины по настройке сетевого сканирования и добавлению на сервер печати.

А всё, что делается больше одного раза, можно автоматизировать!

Что мы сегодня будем делать?

  • вести учет всех сетевых принтеров;
  • автоматизировать добавление принтеров в GPP (PS/XML);
  • автоматизировать добавление принтеров на принт-сервер, причем на кластерный (BAT/VBS)!

Итак, начнем.
Читать дальше →

Вычисление определённых интегралов: базовые алгоритмы

Reading time13 min
Views102K

image
В этой публикации описаны простейшие методы вычисления интегралов функций от одной переменной на отрезке, также называемые квадратурными формулами. Обычно эти методы реализованы в стандартных математических библиотеках, таких как GNU Scientific Library для C, SciPy для Python и других. Публикация имеет целью продемонстрировать, как эти методы работают "под капотом", и обратить внимание на некоторые вопросы точности и производительности алгоритмов. Также хотелось бы отметить связь квадратурных формул и методов численного интегрирования обыкновенных дифференциальных уравнений, о которых хочу написать ещё одну публикацию.

Читать дальше →

Как самостоятельно проверить, можно ли запатентовать свой продукт и провести патентный поиск

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

Как самостоятельно провести патентный поиск

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

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

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

Итак, для начала нужно понять, что можно и чего нельзя «запатентовать», в принципе. В России выдают патенты на изобретение, полезную модель и промышленный образец, который защищает только внешний вид изделия.
Читать дальше →

Information

Rating
5,383-rd
Location
Коломна, Москва и Московская обл., Россия
Date of birth
Registered
Activity