(изменено ) | 349424@habrahabr

H LightShot встроил майнера в сайт

На сайт популярного сервиса Lightshot встроили майнер: https://coinhive.com/.

Скриншот кода майнера и загрузки CP


Судя по кешу Google майнер встроили сегодня. — кеш Google от 18 февраля 2018

На момент написания статьи отправил письмо на support@skillbrains.com.

Для защиты от майнеров на сайте можно использовать AdGuard Антибаннер или другие средства.

В прошлых статьях мы рассмотрели механизм индексирования PostgreSQL и интерфейс методов доступа, а также хеш-индексы, B-деревья, GiST, SP-GiST, GIN, RUM и BRIN. Нам осталось посмотреть на индексы Блума.

Bloom


Общая идея


Классический фильтр Блума — структура данных, позволяющая быстро проверить принадлежность элемента множеству. Фильтр очень компактен, но допускает ложные срабатывания: он имеет право ошибиться и счесть элемент принадлежащим множеству (false positive), но не имеет права сказать, что элемента нет в множестве, если на самом деле он там присутствует (false negative).

Фильтр представляет собой битовый массив (называемый также сигнатурой) длиной m бит, изначально заполненный нулями. Выбираются k различных хеш-функций, которые отображают любой элемент множества в k битов сигнатуры. Чтобы добавить элемент в множество, нужно установить в сигнатуре каждый из этих битов в единицу. Следовательно, если все соответствующие элементу биты установлены в единицу — элемент может присутствовать в множестве; если хотя бы один бит равен нулю — элемент точно отсутствует.

В случае индекса СУБД мы фактически имеем N отдельных фильтров, построенных для каждой индексной строки. Как правило, в индекс включаются несколько полей; значения этих полей и составляют множество элементов для каждой из строк.

Благодаря выбору размера сигнатуры m, можно находить компромисс между объемом индекса и вероятностью ложного срабатывания. Область применения Блум-индекса — большие, достаточно «широкие» таблицы, запросы к которым могут использовать фильтрацию по любым из полей. Этот метод доступа, как и BRIN, можно рассматривать как ускоритель последовательного сканирования: все найденные индексом совпадения необходимо перепроверять по таблице, но есть шанс вовсе не рассматривать значительную часть строк.

Состоялся релиз первой бета-версии Авалонии.


Avalonia — кроссплатформенный .NET UI-тулкит, вдохновлённый технологиями WPF, с полной поддержкой .NET Core 2.0, XAML, дата-биндиногов, lookless-контролов и многого другого, поставляемый под лицензией MIT. Avalonia позволяет вам писать на C# приложения под Windows, Linux и Mac OS X, возможность запуска на iOS и Android находится в экспериментальном состоянии.



В настоящий момент проект подошёл к рубежу, когда мы со спокойной совестью можем сказать, что это уже Бета-версия, тулкит не разваливается в руках, имеет приличный базовый набор контролов (см. видео), на нём создано два достаточно больших приложения с открытым исходным кодом: AvalonStudio — кроссплатформенная IDE для разработки на C# и C++ и Core2D — редактор 2D-схем и диаграмм.


«It seemed that when people entered the computer center they left their ethics at the door»
Donn Parker, «Rules of Ethics in Information Processing», 1968


«Кажется, что, когда люди вошли в компьютерный центр, они оставили свою этику у двери»
Донн Паркер, «Правила этики в обработке информации», 1968

Слабости есть во всем: в наших телах перед вирусами и течением времени, в нашей памяти и разуме. Программное обеспечение, создаваемое нами тоже несовершенно.

В данном материале попробую рассмотреть вопрос этики поиска и исследования уязвимостей.
Часто, когда я посещаю конференции или нетворкинг-ивенты, я удивляюсь, как много людей работают на периферии технической индустрии. Гуру социальных сетей, SEO «ниндзя», блоггеры и тому подобные. Это тусовка промоутеров технического сообщества.

«Проруби свой путь к успеху», «познакомься с нужными людьми», «станьте суперзвездой бизнеса». Они нашли свою «серебряную пулю». Они могут похвастаться пассивным доходом от веб-бизнеса, всё время путешествуя по миру, в то время как остальные смертные рабствуют на своих рабочих местах по 9 часов 5 дней в неделю.


В мире, где мы ищем серебряные пули, эти люди, похоже, собрали арсенал из них. Более того, они нашли аудиторию, которая готова массово покупать их «серебряные пули».
(изменено ) | 349420@habrahabr

H CleanTalk, запуск WordPress Security

Занимаясь развитием Anti-Spam сервиса, мы достаточно часто сталкиваемся и с другими вопросами касающимися безопасности веб сайтов. Самыми распространенными были вопросы насчет брутфорс атак. Кроме проблем с подбором паролей к аккаунту администратора, зачастую брутфорс атаки вызывают высокую нагрузку на сервер, и пользователи получают уведомление от хостинга о превышении допустимых значений нагрузки на процессор.

Мы подумали, если к нам поступают такие запросы, то почему бы нам их не решить? Так как задачи относятся к функциям безопасности, то решение о запуске отдельного сервиса security было очевидно.
В Контуре работают 100 тестировщиков. В конце прошлого года они придумали «Календарь тестировщика» — цикл из 12 ежемесячных статей с практиками, секретами и лайфхаками о тестировании.

Первая статья была опубликована в январе на сайте «Сообщества тестировщиков Екатеринбурга». Мы переносим её на Хабр, чтобы её прочло больше тестировщиков. Следующая статья — за февраль — выйдет завтра, а её анонс будет в телеграм-канале.

Открывает цикл Максим Захаров, руководитель всех тестировщиков Контура и один из тестировщиков Ритейла. Он расскажет, почему копятся баги, как разобрать бэклог и уничтожить 80 багов с помощью пиццы :)

Бэклог — журнал оставшейся работы, которую необходимо выполнить команде. Термин пришел из семейства методологий Agile, в частности из Scrum, где он является одним из основных артефактов — источником пользовательских историй.




Я работаю тестировщиком в офисе примерно по 8 часов, изредка работаю в выходные. Есть большие цели на полгода и небольшие проекты на несколько недель или месяцев. Есть и обязательная рутина. Работы всегда с избытком, то есть нет объективной возможности сделать всю. Через год я не хочу увидеть, что делаю те же задачи и решаю те же проблемы. Я не Дорофеев и не Архангельский, рецепта счастья в статье не будет, но можно смело рассчитывать на пару неплохих советов и приемов.


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

Добрый день!

Мы должны сообщить, что сегодня мы подверглись спам атаке на наш сервис. Спамеры использовали емейлы вида xxxx@cleantalk.org для рассылки спам комментариев/регистраций/подписок. На данный момент, атакой затронуто около 4000 веб сайтов. Это уже не первая такая атака на наш сервис, буквально пару недель назад мы столкнулись еще и с DDoS атакой, которую мы довольно успешно блокировали.
Эта статья для вас, если вы:
— выбираете базу данных для нового проекта и изучаете информацию про разные варианты;
— считаете, что текущая база данных не устраивает вас по каким то параметрам и вы хотите ее сменить, но у вас нет хорошего специалиста;
— просто хотите почитать в одной статье про несколько баз данных и когда можно их использовать.

Моя статья не для вас, если вы:
— хорошо умеете готовить свою любимую БД, оптимизировать индексы, настраивать и всякое такое;
— имеете в штате хорошего специалист, который сможет аргументировано выбрать нужный вашему проекту вариант. специалист должен быть действительно хорошим, а не «экспертом на диване»;
— обслуживаете проект с так называемым «big data», то есть у вас огромные базы, десятки или сотни серверов в кластере и всякое такое — ну у вас как бы должен быть в штате один или несколько специалистов.

О чем пойдет речь в статье?
Я разберу в своей статьи некоторые типичные и не очень варианты выбора баз данных, а если быть более точным — подходы к выбору. Когда следует остановится на том, что используют большинство, а когда можно и задуматься над новым и неизведанным. Я опишу СУБД MySQL, PostgreSQL, MongoDB, Redis, CouchDB/PouchDB и упомяну о Aerospike с Tarantool, парочку других — но в некоторых моментах конкретный выбор не настолько принципиален. Надо понимать, что лучше изначально правильно спроектировать структуру данных, чем выбрать СУБД, а потом уже пытаться придумывать, что в ней собственно хранить.
Итак, начнем.
(изменено ) | 349416@habrahabr

H Пропорциональный тайм-менеджмент



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

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

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

Давайте познакомимся с Rust, поработав над маленьким проектом! Мы покажем основные концепты Rust на реальном примере. Вы узнаете о let, match, методах, ассоциированных функциях, подключении сторонних библиотек и много о чем другом. Мы реализуем классическую задачу: игра “угадай-ка”.

(изменено ) | 349384@habrahabr

H Самый медленный способ ускорить программу на Go Перевод

Есть что-то прекрасное в программировании на ассемблере. Оно может быть очень медленным и полным ошибок, по сравнению с программированием на языке, таким как Go, но иногда — это хорошая идея или, по крайней мере, очень весёлое занятие.


Зачем тратить время на программирование на ассемблере, когда есть отличные языки программирования высокого уровня? Даже с сегодняшними компиляторами все ещё есть несколько случаев, когда захотите написать код на ассемблере. Таковыми являются криптография, оптимизация производительности или доступ к вещам, которые обычно недоступны в языке. Самое интересное, конечно же, оптимизация производительности.


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

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

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



Заодно у меня получилось рассмотреть основные функции и методы Apache Spark, так что данную статью можно рассматривать еще и как небольшой туториал по спарку.

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



Мы продолжаем цикл из 18 статей на основе его лекций:

Тренинг FastTrack. «Сетевые основы». «Понимание модели OSI». Часть первая. Эдди Мартин. Декабрь, 2012

Тренинг FastTrack. «Сетевые основы». «Понимание модели OSI». Часть вторая. Эдди Мартин. Декабрь, 2012

Тренинг FastTrack. «Сетевые основы». «Понимание архитектуры Cisco». Эдди Мартин. Декабрь, 2012

Тренинг FastTrack. «Сетевые основы». «Основы коммутации или свитчей». Часть первая. Эдди Мартин. Декабрь, 2012

И вот четвёртая из них.

В данном руководстве рассматривается подключение SIP GSM шлюзов Yeastar NeoGate TG100 / TG200 / TG400 / TG800 к IP-АТС 3CX.

Шлюзы Yeastar Neogate могут подключаться к SIP-серверу как клиент, т.е. регистрироваться на сервере, но также имеют встроенный SIP-сервер регистрации. Таким образом, система 3CX может регистрироваться на шлюзе, как на SIP-операторе. Для этого в 3CX создается обычный SIP-транк. Именно такой способ используется в данном руководстве.
(изменено ) | 349392@habrahabr

H Sublime Text 3 жив. (Настройка и работа) Из песочницы

Sublime Text 3 — кроссплатформенный текстовый редактор.

Краткий гайд для начинающих работать в sublime и в сфере вёрстки. Тут собрано всё самое необходимое и важное. (По ссылкам найдёте больше, если это нужно)

Будем рассматривать его для Вёрстки на Pug / Less, где нам не нужен огромный функционал отладки. Поэтому именно этот редактор (по моему мнению) побеждает своих конкурентов как в скорости работы так и в функционале.



1. Установка программы и контроль за дополнениями (Package Control)


  1. Устанавливаем Sublime Text 3. Тут всё просто — качаем и запускаем.
  2. Теперь нужно открыть возможность добавления пакетов. Она по умолчанию закрыта поэтому: Открываем консоль ctrl+`(ё), или идём в меню (View > Show Console). Вставляем туда код взятый с официального сайта (import urllib.request,os,ha...).
    Как подсказали друзья в комментариях — теперь этот пункт можно пропустить.
  3. Теперь нажимаем ctrl/⌘+shift+p или в меню (Tool > Command Palette).
  4. Тут мы можем Скачивать, устанавливать, удалять, просматривать дополнения и т.д.
Весной прошлого года в Google заметили, что компания Symantec предоставила возможность выдавать сертификаты минимум четырем организациями, однако не смогла обеспечить необходимый уровень наблюдения за их деятельностью и соблюдением стандартов обслуживания. В результате компания Google инициировала «процедуру прекращения доверия» к Symantec-сертификатам.

Чтобы исправить возникшую проблему, в Symantec решили продать технологию и PKI компании DigiCert. В конце октября 2017 года сделка была закрыта. Под катом рассказываем о подробностях «прекращения доверия» к сертификатам Symantec и последствиях для пользователей.

Имеется несколько базовых рекламных инструментов, которые стимулируют возврат пользователей и повторные покупки. Основные из них — ремаркетинг и аудиторные закупки.