Pull to refresh
1
0
Send message

Если Seagate запылился…

Reading time4 min
Views176K
После прочтения статьи «Статистика Backblaze: какой HDD самый лучший» стало понятно, что Seagate Barracuda (ST3000DM001) лидер по числу отказов. Два диска именно этой модели на файловом сервере менее чем за полтора года вышли из строя практически одновременно.

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


Читать дальше →
Total votes 131: ↑130 and ↓1+129
Comments95

Доказательство некорректности алгоритма сортировки Android, Java и Python

Reading time13 min
Views76K
Тим Петерс разработал гибридный алгоритм сортировки Timsort в 2002 году. Алгоритм представляет собой искусную комбинацию идей сортировки слиянием и сортировки вставками и заточен на эффективную работу с реальными данными. Впервые Timsort был разработан для Python, но затем Джошуа Блох (создатель коллекций Java, именно он, кстати, отметил, что большинство алгоритмов двоичного поиска содержит ошибку) портировал его на Java (методы java.util.Collections.sort и java.util.Arrays.sort). Сегодня Timsort является стандартным алгоритмом сортировки в Android SDK, Oracle JDK и OpenJDK. Учитывая популярность этих платформ, можно сделать вывод, что счёт компьютеров, облачных сервисов и мобильных устройств, использующих Timsort для сортировки, идёт на миллиарды.

Но вернёмся в 2015-й год. После того как мы успешно верифицировали Java-реализации сортировки подсчётом и поразрядной сортировки (J. Autom. Reasoning 53(2), 129-139) нашим инструментом формальной верификации под названием KeY, мы искали новый объект для изучения. Timsort казался подходящей кандидатурой, потому что он довольно сложный и широко используется. К сожалению, мы не смогли доказать его корректность. Причина этого при детальном рассмотрении оказалась проста: в реализации Timsort есть баг. Наши теоретические исследования указали нам, где искать ошибку (любопытно, что ошибка была уже в питоновской реализации). В данной статье рассказывается, как мы этого добились.

Статья с более полным анализом, а также несколько тестовых программ доступны на нашем сайте.
Читать дальше →
Total votes 136: ↑134 and ↓2+132
Comments26

Браузеры от российских ИТ-компаний: попытка непредвзятого обзора

Reading time10 min
Views151K
Как заставить человека использовать именно свои сервисы: поиск, карты, почту?.. Все мы знаем, большинство людей никогда не меняют настройки программ по умолчанию — не могут или не хотят заморачиваться и браузер не исключение, поэтому установить свой поиск приоритетным (с ведома пользователя или без него) зачастую означает получить в свои дьявольские сети еще одну ничего не подозревающую душу. А если установить пользователю браузер, который уже правильно сконфигурирован, то… мечта прямо! С появлением открытого проекта Chromium мечты многих поставщиков веб-сервисов стали реальностью, и его сборки стали появляться, как грибы после дождя.

Я никогда не использовал ни одну сборку Хромиум кроме собственно Хрома и новой Оперы, но недавно разобрало любопытство: а что же там можно наделать и стоит ли обращать на это внимание или это просто продолжение славного дела Дениса Попова? Сказано-сделано, я порылся в Сети и выбрал участников для обзора. Рассматривал я только российские сборки и только от крупных поставщиков веб-сервисов, потому что в противном случае, мне не хватило бы на мой обзор и жизни.

Интересно? Тогда начнем.

Под катом много скриншотов, общий объем ~3 мб.
Читать дальше →
Total votes 70: ↑62 and ↓8+54
Comments114

Сказки антивирусного леса

Reading time12 min
Views201K
«Платить или не платить за антивирус?» По мнению некоторых, именно такой вопрос встает перед миллионами пользователей. Вот, например, в статье Владимира Безмалого в 12 номере журнала «Мир ПК» за 2014-й год этой теме посвящено целое «исследование». Результаты его сомнений не оставляют: «скупой платит дважды». Однако аргументы в этой статье настолько спорные, что я не могу не высказаться на эту тему. Ведь мы с вами живем в то время, когда многие манипулируют информацией, чтобы заработать больше денег. О том, насколько эффективна эта система, можно судить по тому факту, что «Антивирус Бабушкина» закупило несколько государственных организаций. Это, конечно, крайний случай, но он показывает, что когда хвалят платные продукты, стоит задуматься, насколько бескорыстны эти похвалы.
Читать дальше →
Total votes 59: ↑48 and ↓11+37
Comments201

Верстка email рассылок от А до Я для чайников

Reading time9 min
Views409K
Уже 3 с лишним года занимаюсь дизайном и версткой почтовых рассылок, которые ориентированы на англоязычных пользователей. За время работы перелопатили огромную кучу информации, перепробовали много вариантов верстки, набили достаточное количество шишек. Были найдены и исправлены типичные баги, которые в той или иной мере повторялись во всех почтовых клиентах. Также нашлись проблемы с некоторыми CSS свойствами — различные почтовые клиенты интерпретировали их по разному. Каждое письмо тестировалось на самых популярных почтовых клиентах: Gmail, Outlook, Yahoo, Android, iOS, MozillaThunderbird, Microsoft Outlook, The Bat. Рассылки ходят на сотни миллионов пользователей и приносят очень хорошие результаты. Итак, приступим к изучению.
Читать дальше →
Total votes 66: ↑62 and ↓4+58
Comments36

Полноценный веб-сайт на C++ и немного диванной аналитики

Reading time20 min
Views130K
Но зачем?
Тут должна быть картинка про троллейбус

Невежливо отвечать вопросом на вопрос, но: а почему бы и нет? Просто потому, что можно.
Ладно, я пошутил. Чтобы пояснить причину, хотелось бы кратко описать историю моего знакомства с веб-разработкой. Но, дабы не нарушать последовательность повествования, я решил поместить ее в конце. В общем, с причинами мы еще разберемся.

Думаю, многим знакома такая разновидность веб-форумов, как имиджборды. Да-да, вы правильно поняли — именно на примере имиджборды я расскажу об опыте создания сайта на C++. Что же сподвигло меня заняться столь сомнительной пользы проектом? Левая пятка. В этом случае действительно никаких особых причин не было. Просто проснулся однажды утром и понял — хочу. Но это все лирика.

На Хабре хватает статей о веб-сайтах на C++: например, с использованием FastCGI или CppCMS. Но все это — HelloWorld'ы и туториалы. Я же вам расскажу о полноценном (пусть и не идеальном с точки зрения архитектуры и чистоты кода) проекте, постараюсь осветить различные тонкости.
Перейдем же к делу
Total votes 51: ↑45 and ↓6+39
Comments85

Web-приложение на C/C++ с помощью FastCGI — это просто

Reading time20 min
Views115K
Добрый день.
В этой статье я бы хотел рассказать про протокол FastCGI и способы работы с ним. Не смотря на то, что сам протокол и его реализация появились ещё в 1996 году, подробных руководств по этому протоколу просто нет — разработчики так и не написали справки к собственной библиотеке. Зато года два назад, когда я только начал пользоваться этим протоколом, часто встречались фразы типа «я не совсем понимаю, как пользоваться этой библиотекой». Именно этот недостаток я и хочу исправить — написать подробное руководство по использованию данного протокола в многопоточной программе и рекомендации по выбору различных параметров, которым могли бы воспользоваться все желающие.
Читать дальше →
Total votes 102: ↑97 and ↓5+92
Comments104

Tarantool 1.6 от первого лица

Reading time3 min
Views53K
Привет. Это пост о новой версии Тарантула «от автора». Интернет занятно устроен: если поискать про Тарантул, то найдётся статья от 2011 года, о версии 1.3. И ещё какой-то перфоратор, кажется. На форумах-бордах вообще стоит густой туман. Тарантул «ну это как Редис, только»…

Или ещё, недавно сделал для себя открытие, на Тостере кто-то написал «София — это такое append-only хранилище по типу Тарантула». С такими постами я скоро стану фанатом сайта «сделано у нас», автомата Калашникова и Саяно-Шушенской ГЭС. Правда, мне сложно понять, почему мы восхищаемся западными инструментами, при этом представления не имеем о своих. Итак, Tarantool 1.6. В чём фишка?
Читать дальше →
Total votes 96: ↑92 and ↓4+88
Comments43

FREAK — TLS Downgrade атака на Android и iOS

Reading time2 min
Views12K
UPD: уязвимы также Internet Explorer, Chrome на Mac OS и Android, Safari на Mac OS и iOS, Blackberry Browser и Opera на Mac OS и Linux

В реализации TLS в OpenSSL и Apple TLS/SSL, исследователями из INRIA, IMDEA и Microsoft была обнаружена уязвимость, которой они дали название FREAK (Factoring attack on RSA-EXPORT Keys). Уязвимость заключается в недостаточной проверке при выполнении TLS Handshake на стороне клиента, что приводит к возможности понизить шифрование во время выполнения атаки «человек посередине» до использования 512-битных ключей RSA, которые могут быть подобраны злоумышленником в течение нескольких часов.

EXPORT Ciphersuites

Примерно в середине 20 века, в США ввели закон об ограничении экспорта стойких шифров за пределы страны. Разрешалось экспортировать только специально ослабленные версии шифров, например, с ключами 40 или 56 бит для симметричного и 512 бит для асимметричного шифрования. Серьезные ограничения действовали до конца 1992 года, а к началу 2000 большинство ограничений были сняты, хотя некоторые сохраняются и по сей день.
Современные стандарты TLS все еще позволяют использовать такие нестойкие типы шифрования, и некоторые веб-серверы (26.3% всего интернета по статистике zmap) до сих пор позволяют их использовать для установки TLS-соединения.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments6

Проверка проекта LibreOffice

Reading time27 min
Views42K
Предлагаем читателю очередную статью о проверке известного open-source проекта. В этот раз мы проверили проект LibreOffice, представляющий собой офисный пакет. В его разработке принимает участие более чем 480 программистов. Код оказался весьма качественным и регулярно проверяемым статическим анализатором Coverity. Но, как и в любом другом большом проекте, были найдены новые ошибки и недочеты, о которых мы и расскажем в статье. Для разнообразия, в этот раз нас будут сопровождать не единороги, а коровы.
Читать дальше →
Total votes 93: ↑86 and ↓7+79
Comments34

Отзыв команды PVS-Studio о конференции C++ Russia, 2015

Reading time3 min
Views13K

Два с половиной часа в поезде – прекрасное время для того, чтобы написать благодарность организатору конференции Сергею Платонову (@sermp) и его команде за то, что наконец-то в России появилась конференция про C++! Заслуги Сергея поистине впечатляют, учитывая то, что он не обладал бюджетами Microsoft и Intel. Однако оказалось, что главное не бюджет, а желание и энтузиазм. Поэтому собранные Сергеем докладчики были выше всяческих похвал, иностранные гости – крайне общительны и любезны. А на стендах JetBrains, IncrediBuild, Kaspersky и PVS-Studio собрались не говорящие головы, а профессионалы, с которыми интересно было общаться и гостям, и соседям по стенду. Наши личные впечатления – под катом.

Читать дальше →
Total votes 34: ↑28 and ↓6+22
Comments12

Сайт с нуля на полном стеке БЭМ-технологий. Методология Яндекса

Reading time29 min
Views107K
На прошлой неделе BBC рассказала, что для новой версии главной страницы использовала методологию БЭМ, созданную в Яндексе. По такому случаю мы решили поднять материалы мастер-класса «Разрабатываем сайт с нуля на полном стеке БЭМ-технологий» и рассказать вам, как начать использовать полный стек БЭМ-технологий в своих проектах.

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



В статье мы расскажем, в чём преимущество вёрстки независимыми блоками и что такое уровни переопределения, познакомимся с готовыми библиотеками блоков и инструментами для автоматизации сборки. Покажем, как разные инструменты — например, autoprefixer, css-препроцессор Stylus или модульная система YModules — упрощают жизнь разработчика и создают по-настоящему удобную платформу, если встроить их в процесс разработки по БЭМ.

На живом примере мы объясним, в чём польза декларативного подхода, когда одни и те же идеи можно использовать как для CSS, так и для JavaScript. Отдельно остановимся на декларативных шаблонах BEMHTML и BEMTREE, которые позволяют преобразовывать данные в БЭМ-дерево, описанное в формате BEMJSON и, затем в HTML. Рассмотрим в деталях, как написать серверную часть приложения по БЭМ-методологии.
Читать дальше →
Total votes 96: ↑79 and ↓17+62
Comments37

Wi-Fi бывает хороший, а бывает обычный. Практика применения Ruckus в офисе

Reading time4 min
Views26K

Home vs Professional

Хорошо известны решения производителя WiFi оборудования RuckusWireless для высокопроизводительных сетей с поддержкой роуминга и нагрузкой более 100 клиентов на точку доступа. На сайте производителя можно увидеть примеры реализации подобных сетей из сотен и даже тысяч точек доступа. Но имеет ли смысл использовать оборудование Ruckus (от $500 за точку в ценах MSRP) в сетях, состоящих из нескольких точек доступа или в таких задачах можно использовать более простые решения? Сегодня мы хотим привести небольшой пример, показывающий различие систем операторского класса и менее дорогих, так скажем, бытовых решений.

Читать дальше →
Total votes 21: ↑11 and ↓10+1
Comments37

Выпущен Visual Studio 2015 CTP6

Reading time6 min
Views51K
Соблюдая уже сложившийся ритм выпуска обновлений, команда разработки рада представить шестой предварительный релиз Visual Studio 2015 CTP 6. В дополнение к этому мы так же подготовили обновление Team Foundation Server 2015 CTP. Оба обновления вы можете загрузить уже сейчас. Если у вас нет возможности ставить предварительные версии продуктов, но вы хотели бы ознакомиться с новинками, мы так же подготовили готовые виртуальные машины в облаке Azure. Подробно о новинках, которые вошли в эти предварительные релизы вы можете ознакомиться из публикаций Team Foundation Server 2015 CTP Release Notes и Visual Studio 2015 CTP 6 Release Notes.
Читать дальше →
Total votes 36: ↑31 and ↓5+26
Comments19

Компилятор Go переписан на Go

Reading time2 min
Views44K
Вот такими словами начинается комментарий к свежему коммиту в master-ветку Go:
This change deletes the C implementations of the Go compiler and assembler from the master branch.
(«Эти изменения удаляют C-реализацию компилятора и ассемблера Go из главной ветки»)

Эти слова — труд почти года работы команды Go по переписыванию компилятора с C на Go. Это был на 90% автоматический процесс. Теперь Go компилирует сам себя.

Зачем это было нужно и чуть больше подробностей под катом.


Картинка: Твиттер Russ Cox
Читать дальше →
Total votes 78: ↑69 and ↓9+60
Comments112

Какие баги нашёл LibreOffce в PVS-Studio?

Reading time3 min
Views16K


Обычно мы проверяем с помощью PVS-Studio какой-нибудь проект. В этот раз вышло по-другому. Мы проверили PVS-Studio с помощью LibreOffice. А потом все-таки смогли и наоборот проверить.

Введение


Статьи о проверках проектов вызывают самую разную реакцию у читателей: от «Сколько уже можно это рекламировать?» до «Огромное спасибо! PVS-Studio — действительно отличный инструмент.» Справедливости ради хочется сказать, что в проверке проекта не учувствуют специалисты по рекламе, прикладывают усилия только разработчики PVS-Studio и переводчик. Вклад анализатора в open-source, безусловно присутствует не малый. Разработчики не всегда заинтересованы в обратной связи, но письмо о проверке получают и найденные ошибки исправляют. На примере проекта LibreOffice, статья о котором тоже скоро будет доступна, хочу рассказать о влиянии проверок проектов на сам анализатор и о проделанной работе.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments8

Пишем бота для MMORPG с ассемблером и дренейками. Часть 1

Reading time4 min
Views36K
Привет, %username%! Итак, продолжим написание нашего бота. Сегодня мы внедрим наш код в игровой процесс (не без помощи ассемблера), а позже позаботимся и о том, что бы его было не так просто найти, ведь наказывают не за то что жульничаешь, а за то что попался. И если быть до конца честным то даже не совсем в сам процесс игры будем его внедрять, да и 1 раз только за весь жизненный цикл.

Но обо всем по порядку, так что жду Вас под катом!

Приподнять завесу тайны
Total votes 43: ↑32 and ↓11+21
Comments9

Назад, к технологиям верхнего палеолита, от любимых всеми REST, STATEless, CRUD, CGI, FastСGI и MVC

Reading time7 min
Views69K
«Только со смертью догмы начинается наука.»
// Галилео Галилей


«Я начал завидовать рабам. Они всё знают заранее. У них твёрдые убеждения.»
// х/ф Марка Захарова «Убить дракона» по мотивам пьесы Евгения Шварца


Уже пару лет и дня не проходит, чтобы я не услышал (или не прочитал) от людей, начинающих новые проекты, фразу типа «Возьмем серверный движок для REST API и MVC, и погнали». Сначала я думал, что у этих слов есть один источник, может книжку какую завезли во все магазины или где-то в топе поисковиков лежит статья, зомбирующая разработчиков. Если же выяснять у них, что они понимают под REST и MVC, то можно повредиться умом. Ну с MVC уже все ясно, об этом я уже давно писал, ничего не изменилось, только усугубилось, стоит набрать в Google Images «mvc» и мы увидим страшное, стрелочки в любые стороны. Ну а про REST отвечают следующее: ну как же, нам нужно из браузерного GUI и мобильного приложения вызывать серверные методы, например: setUserCity(userId, cityId) или calculateMatrix(data) или startVideoConverter(options, source, destination) а потом мы столкнемся с большой нагрузкой и архитектура REST все решит. Дальше я задаю вопросы, от которых глаза округляются уже у тех, кто недавно еще горел праведной верой, рвался в бой и точно знал, что к чему в этом мире. Теперь можно перейти к рассмотрению терминологической катастрофы, в эпицентре которой мы с вами пребываем.
Читать дальше →
Total votes 121: ↑98 and ↓23+75
Comments160

NAS + SoftetherVPN = универсальный VPN сервер

Reading time4 min
Views68K
Думаю не ошибусь, если предположу, что у любого пользователя периодически возникает необходимость получить доступ к какому-либо сетевому ресурсу (IP-камере, сетевому накопителю, компьютеру, холодильнику и т.п.) внутри домашней или офисной сети через Интернет. Ну и само собой этот доступ должен быть:
А) универсальный, т. е. с любого компьютера или гаджета;
Б) защищенный от несанкционированного доступа нежелательных лиц.

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

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


Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments19

Information

Rating
Does not participate
Registered
Activity