Search
Write a publication
Pull to refresh
-2
0.1
Send message

Создан первый «перцептивный» блокировщик рекламы, который не зависит от разметки страницы

Reading time3 min
Views27K

Как показывает практика, борьба блокировщиков рекламы с рекламой превращается в бесконечную гонку вооружений. Издатели выкатывают новые форматы рекламы, которая трудно отличима от пользовательского контента. А блокировщики рекламы быстро находят способы, как эти форматы определять — и блокировать. В свою очередь, издатели снова изменяют код, чтобы обходить фильтры. И так далее до бесконечности.

Разработчики первого перцептивного блокировщика рекламы считают, что эта игра в кошки-мышки не будет продолжаться вечно. Специалисты из Принстонского и Стэнфордского университетов предлагают радикально иной подход к блокировке баннеров — распознавать рекламу не по разметке HTML, а по визуальным маркерам рекламы. Так же, как это делают люди. Это сводит на нет попытки некоторых сайтов внедрить блокировку блокировщиков рекламы.
Читать дальше →

Алгоритм Джонкера-Волгенанта + t-SNE = супер-сила

Reading time9 min
Views32K
До:



После:



Заинтригованы? Но обо всем по порядку.

t-SNE


t-SNE — это очень популярный алгоритм, который позволяет снижать размерность ваших данных, чтобы их было проще визуализировать. Этот алгоритм может свернуть сотни измерений к всего двум, сохраняя при этом важные отношения между данными: чем ближе объекты располагаются в исходном пространстве, тем меньше расстояние между этими объектами в пространстве сокращенной размерности. t-SNE неплохо работает на маленьких и средних реальных наборах данных и не требует большого количества настроек гиперпараметров. Другими словами, если взять 100 000 точек и пропустить их через эту волшебный черный ящик, на выходе мы получим красивый график рассеяния.
Читать дальше →

Своя криптовалюта на ethereum

Reading time4 min
Views90K


Общая рыночная капитализация глобального рынка криптовалют за последний год выросла с $6 млрд (в январе 2016 года) до $28 млрд (на текущий момент). С начала 2017 года рынок криптовалют вырос примерно в полтора раза. На биржах торгуются уже больше сотни разных криптовалют. Крупные организации объединяются в консорциумы, чтобы выпускать свою валюту. Даже государства делают свои национальные криптовалюты. Технологии блокчейна дошли до такого уровня, что уже почти любой может запустить свою криптовалюту, чем мы в этой статье и займемся. Легче всего создать свои монеты на смарт контрактах на базе ethereum.

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

Как мы ускорили наш DNS стек в 3 раза

Reading time8 min
Views12K

Компании Cloudflare уже пошёл 6-й год и предоставление авторитативных DNS серверов было основной нашей инфраструктуры с самого начала. С тех пор мы выросли, став самым большим и быстрым поставщиком услуг DNS в Интернете, обслуживая около 100 000 сайтов из списка Alex top 1M sites, и более 6 миллионов DNS зон.


imageImg


На сегодняшний день наш сервис DNS отвечает около 1 миллиона запросов в секунду — не считая трафика во время атак — с помощью глобальной anycast сети. Разумеется, технологии, которые мы, будучи растущим стартапом, использовали для того, чтобы обслуживать сотни и тысячи зон несколько лет назад уже не справляются с миллионами, которые мы имеем сегодня. В прошлом году мы решили заменить два ключевых элемента в нашей DNS инфраструктуре: часть нашего DNS сервера, который отвечает на авторитативные запросы и систему, которая берёт пользовательские изменения и обновляет их на пограничных серверах по всему миру.

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

Введение в React и Redux для бекенд-разработчиков

Reading time9 min
Views59K


Если вы как я долгое время считали, что JavaScript – это такой «игрушечный» язык на котором пишут анимашки для менюшек и падающие снежинки на форумах под новый год, а потом очнулись в 2016 году с мыслями WTF: react, flux redux, webpack, babel,… не отчаивайтесь. Вы не одиноки. Материалов по современному фронтенду в сети много, даже слишком много. Под катом еще одно альтернативное мнение о том, каково это учить JavaScript в 2016 году.
Стань модным

Тест Lossless-оптимизаторов изображений (PNG и JPG)

Reading time3 min
Views21K
Для многих не секрет, что большинство изображений в форматах JPEG и PNG содержат избыточную информацию, которая может быть удалена без потери качества. Обычно это достигается за счет эвристических алгоритмов перебора различных параметров компрессии и выбора наименее затратного варианта. Применение оптимизаторов особенно важно на файлах, которые используются на посещаемых сайтах, для экономии дискового пространства, трафика и уменьшения времени загрузки страниц у пользователей. Программ такого типа довольно много и мы поставили себе цель найти какие же оптимизаторы сжимают лучше и работают быстро.

В тесте принимали участие следующие программы.

Для PNG:

1. Leanify 0.4.3 (x64)
2. pingo v0.79c
3. pinga v0.09
4. OptiPNG 0.7.6
5. pngout
6. PngOptimizer 2.5 (x64)
7. advpng aka AdvanceCOMP v1.23
8. ECT 0.6 (x64)
9. TruePNG 0.6.2.2
10. pngwolf-zopfli 1.1.1 (x64)

Для JPEG:

1. Leanify 0.4.3 (x64)
2. pingo v0.79c
3. ECT 0.6 (x64)
4. mozjpeg 3.2 (x64)
5. jhead 3.00
6. jpegoptim v1.4.4 (x64)
7. jpegtran
Читать дальше →

Проверяем честность игры в рулетку на смарт-контракте Ethereum

Reading time8 min
Views25K


Мало кто нынче не слышал о криптовалютах и, в частности, Bitcoin. В 2014-м году, на волне интереса к биткоину, появилась новая криптовалюта — Ethereum. Сегодня, в 2017-м, она является второй по капитализации после биткоина. Одним из важнейших её отличий от биткоина является использование тьюринг-полной виртуальной машины — EVM. Подробнее про эфир можно прочитать в его Yellow Paper.

Смарт-контракты Ethereum обычно пишут на языке Solidity. На Хабре уже были статьи про написание и тестирование смарт-контрактов, например 1, 2, 3. А про связь смарт-контракта с сайтом можно почитать, например, статью о создании простейшей голосовалки на смарт-контракте. В этой статье используется встроенный в кошелёк Mist броузер, но то же самое можно делать используя плагин к Chrome, например MetaMask. Именно так, через MetaMask, и работает игра, которую мы будем исследовать.
Читать дальше →

Красивые формы для приёма банковских карт с CardInfo.js

Reading time5 min
Views47K

UPD. CardInfo больше не работает. Используйте BinKing.


Гайд по использованию: https://habr.com/ru/post/527796/
Сайт сервиса: https://binkng.io

Всем кто верстал, верстает или будет верстать форму для приёма банковских карт дарю плагин CardInfo.js, с помощью которого можно сверстать вот такую форму:



Плагин по номеру карты определяет один из 49 российских банков (потом и прочие страны добавлю), выдаёт вам логотип банка, цвета для фона, ссылку на сайт банка, определяет тип карты, его логотип и прочее. С этими данными делаете что хотите, верстаете любую форму.


Поиграться с формой можно на демо странице. Код плагина и инструкции по установке на гитхабе.


Под катом:


  • Пара слов о плагине;
  • Про базу банков, и почему их 49, а не 50;
  • Про логотипы банков;
  • Про логотипы типов;
  • Несколько моих вопросов к читателям;
Читать дальше →

Влияние ambient-музыки на процесс написания кода

Reading time7 min
Views58K
В данной статье я хотел бы поговорить о той музыке, под которую мы пишем код. О музыке «для программистов». А точнее, про такой специфический жанр музыки, как эмбиент.



Человек работающий и музыка


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

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

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

OpenSSL, ssl_ciphers и nginx: прокачиваем на 100%

Reading time11 min
Views95K


Много где написано о том, как получить 100% и A+ по тесту от Qualys. При всём при том практически везде директивы ssl_ciphers и подобные даются как эдакие магические строки, которые нужно просто вставить, и надеяться, что автор не подводит вас под монастырь. Эта статья призвана исправить это недоразумение. По прочтению этой статьи директива ssl_ciphers потеряет для вас всякую магию, а ECDHE и AES будут как друзья да братья.


Также вы узнаете почему 100% по тестам — не всегда хорошо в реальности.

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

Делаем быстрый поиск по турам на основе ClickHouse

Reading time12 min
Views22K
В этой статье мы рассмотрим способы создания поиска по базе туров (тур из себя представляет набор из отеля и перелета) и рассмотрим две опции — ClickHouse и MySQL (два движка — InnoDB и MyISAM).

В чем сложность поиска по турам


Туроператоры (TezTour, TUI, Natalie Tours, etc) продают свои путевки неочевидным, на первый взгляд, способом:

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

После этого по таким комбинациям (количество которых может исчисляться сотнями миллионов и даже миллиардами) осуществляется поиск. Пример формы поиска можно увидеть у TezTour — пользователь может выбрать только один город вылета, тип размещения и страну, а остальные параметры пользователь может выбирать произвольные.

Несмотря на то, что общее количество туров (комбинаций) исчисляется сотнями миллионов, на каждый фиксированный набор параметров (город вылета, тип размещения, страна) приходятся, в худшем случае, десятки миллионов вариантов. Но даже по такому количеству туров не так просто осуществлять поиск, потому что нужно найти записи, которые удовлетворяют свободным критериям, которые задают пользователи, и сортировка может быть более-менее произвольной (как правило, сортировка делается по цене, но это не единственный возможный критерий). В этой статье мы рассмотрим упрощенную архитектуру реалтайм-поиска по турам на основе MySQL и ClickHouse, без учета стопов (сленговый термин, который означает, что по каким-то вариантам закончились номера или места в самолете, и такие туры нужно исключить из выдачи). Мы научимся делать поиск быстрым и уметь показывать результаты с сортировкой по любым полям.
Читать дальше →

Профилирование и оптимизация веб-приложений на Go

Reading time12 min
Views79K

enter image description here


Привет, меня зовут Павел Мурзаков, я – разработчик в команде Features в Badoo. Нам важно, чтобы наши сервисы потребляли как можно меньше ресурсов, поскольку каждый дополнительный сервер стоит денег. Поэтому мы часто профилируем и оптимизируем код. Часть наших демонов написана на Go, с оптимизацией кода на котором мне пришлось работать в последнее время. Благо в стандартной библиотеке Go есть множество готовых инструментов для этого.


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

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

Как велась работа над улучшением навигации в Uber

Reading time5 min
Views3.6K
Вы сидите в своей машине, слушая, как редкие капли дождя мерно барабанят по ее капоту. Вы только что закончили свою четвертую поездку за вечер и теперь решили передохнуть. Но долго это не продлится: вечерок выдался хлопотливый. И вот вы уже опять прнимаете заказ от пассажира неподалеку. Запускается навигатор, вы поправляете зеркала, начинаете движение и выезжаете на дорогу к новому месту назначения. Прокладывая путь сквозь поток машин, вы перестраиваетесь, зная, что скоро нужно будет повернуть налево. Еще несколько светофоров и поворотов – и вы прибываете в оживленную точку, где вас ждет пассажир, и ищете безопасное место для остановки. Человек из толпы на тратуаре машет и направляется к вам.



Сейчас вы узнаете, куда вам предстоит направиться дальше.

Одна из основных задач для команды, работающей с водителями Uber — снять напряжение с водителей, чтобы они могли сосредоточиться на поездке и сделать её спокойной и безопасной для для обеих сторон. Мы хотим быть уверены, что водители могут получать доступ к самым полезным функциям прямо из приложения. А одна из самых полезных функций – это навигационная система. Поэтому мы начали с простого вопроса:

Что требуется от навигации, когда вы едете с Uber?
Читать дальше →

Руководство начинающего программиста графических шейдеров

Reading time8 min
Views47K
Умение писать графические шейдеры открывает перед вами всю мощь современных GPU, которые сегодня уже содержат в себе тысячи ядер, способных выполнять ваш код быстро и параллельно. Программирование шейдеров требует несколько иного взгляда на некоторые вещи, но открывающийся потенциал стоит некоторых затрат времени на его изучение.

Практически каждая современная графическая сцена являет собой результат работы некоторого кода, написанного специально для GPU — от реалистичных эффектов освещения в новейших ААА-играх до 2D-эффектов и симуляции жидкости.

image
Сцена в Minecraft до и после применения нескольких шейдеров.

Цель этой инструкции


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

Роботакси Uber еще далеко до полностью автономной машины

Reading time4 min
Views6.5K


Сейчас сразу несколько компаний занимаются разработкой компьютерных систем управления автомобилями. Это Tesla, Mercedes, Audi, Volvo, Google и даже КАМАЗ. Не так давно решила создать собственный робомобиль и компания Uber. Сейчас проект по разработке роботизированных такси от Uber находится на ранней стадии развития, сделать предстоит еще очень много. Тем не менее, сама компания довольно радужно описывает свои новые системы.

Так ли все хорошо в реальности? Специалисты подразделения Uber, занимающегося созданием робомобилей, недавно подготовили отчет о проделанной работе. Сам отчет на днях попал в руки журналистов Recode, так что сейчас появилась возможность понять, развивается ли проект и если да, то насколько успешно.
Читать дальше →

Кейс Apple Music: план по захвату вселенной

Reading time5 min
Views13K
Иногда мы пишем о музыкальных компаниях, например, не так давно мы публиковали материал о SoundCloud и подборку интересных аудиостартапов. Сегодня мы решили поговорить о сервисе Apple Music. Он был запущен летом 2015 года и многие удивлялись выходу на уже сформировавшийся рынок потоковых музыкальных платформ.

С другой стороны, причины на это были весомые: скачивание платного контента, в том числе продажи iTunes, сократились еще в 2014 году (на 13%). В то же время рынок подписок уже тогда вырос на 54%. Поэтому, чтобы вернуть контроль над музыкальной индустрией, компания решила вступить в борьбу. Что из этого вышло, чем Apple Music отличается от конкурирующих сервисов и как исправляет свои недочеты, читайте в этой статье.

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

Intel Optane DC P4800X — первый в мире SSD с памятью 3D XPoint

Reading time1 min
Views26K

Официально объявлено о выпуске первого SSD, оснащенного чипами памяти 3D XPoint. Зачинатель серии P4800X имеет объем 375 Гб, выполнен в формате PCI Express накопителя. Позднее к этой модели присоединятся накопители большего объема, а также SSD с интерфейсом U.2.

Скоростные характеристики новой модели впечатляют: свыше 500 тысяч IOPS при чтении 4k блоками и столько же при записи, задержки при операциях не более 10 мкс. Заявленная выносливость составляет 30 перезаписей в день. Цена, как все понимают, тоже маленькой не получилась — 1520 долларов. Однако следует ожидать, что после отладки технологических процессов она будет уменьшена.

Теория относительности в картинках

Reading time6 min
Views372K
В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
Под катом много картинок (и ни одной формулы).
Читать дальше →

Портативный огород Click and Grow. Выращиваем зелень дома или в офисе круглый год

Reading time3 min
Views21K


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

Считается, что причиной этого может быть авитаминоз — нехватка необходимых для организма человека витаминов. И хотя некоторые ученые говорят о том, что авитаминоза нет, большинство специалистов уверены в обратном. Как бы там ни было, восполнить недостаток можно свежими овощами и фруктами, которых весной не так и много. Здесь может помочь собственный небольшой огород с парой грядок, засаженных зеленью. Но вот беда и огород есть не у всех, плюс многие люди не считают работу с землей таким уж увлекательным делом. В ситуации, когда хочется свеженьких овощей и фруктов, на помощь может прийти умный сад Click and Grow.

Квантовые шахматы

Reading time12 min
Views75K

Intro


Этот пост написан под впечатлением от вот этого отличного поста с Хабра, в котором автор наглядно, при помощи двумерных моделек, которые рисует его программа, объясняет как работает Специальная Теория Относительности.


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


Модель, которую я рассматриваю – отнюдь не нова. Более полугода назад Chris Cantwell разместил на YouTube анонс новой настольной игры: квантовых шахмат (многим, возможно, известно об этом из вот этого вирусного ролика).


Недавно игра вышла в Steam, она стоит 249 руб. Есть ещё другая реализация – бесплатное приложение для iOS (не знаю, есть ли оно в Google Play). Однако в процессе игр с друзьями я экспериментально выяснил, что она неправильная с точки зрения квантовой механики. Такую реализацию скорее можно назвать статистическими шахматами, а не квантовыми.


Поэтому я решил написать свою реализацию, с запутанностью и суперпозициями. В своей реализации я постарался исправить те недостатки, которые на мой взгляд присутствуют в версии на Steam (например, у меня пешки тоже могут ходить квантовыми ходами, как и все остальные фигуры). Про приложение для iOS и так всё понятно: любая реализация квантовых шахмат должна быть по-настоящему квантовой, т.е. не только быть вероятностной, но поддерживать такие эффекты квантовой механики как интерференция, запутанность, etc.

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

Information

Rating
5,714-th
Registered
Activity