Архив за 19 сентября 2016 - 6

НАСА объясняет, что положение «знаков зодиака» давно изменилось. Паника в женских журналах - 1

Ещё никогда простое научное сообщение на образовательном портале NASA SpacePlace не вызывало такой бурной реакции в женских журналах. А ведь учёные всего лишь напомнили, что положение созвездий относительно эклиптики Солнца постоянно меняется из-за прецессии.
Читать полностью »

Когда в нашей компании LTD BeGet встала задача прозрачной фильтрации атак на 4 уровне модели OSI, мы написали свое решение Syncookied. Данным решением мы бы хотели поделиться с Internet сообществом, так как на текущий момент аналогов ему мы не нашли (или мы о них не знаем). Есть платные решения на подобии Arbor, F5, SRX, но стоят они совершенно других денег и в них используются другие технологии защиты.

Почему для разработки мы выбрали язык Rust и фреймворк NetMap, с какими сложностями мы столкнулись в процессе — будет рассказано в этой статье.

» GitHub
» GitHub модуль ядра
» Страница проекта

Syncookied — OpenSource ddos protection system - 1
Читать полностью »

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

Читать полностью »

Тестирование производительности баз данных при помощи tSQLt и SQLQueryStress - 1 Надеюсь не будет откровением, если я скажу, что тестирование отыгрывает важную роль при разработке любого программного продукта. Чем качественнее тестирование, тем лучше в итоге должен выйти конечный продукт.

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

В итоге работа с базой может стать узким местом в производительности нашего приложения.

Чтобы избавить себя от подобного рода проблем, я предлагаю рассмотреть различные аспекты тестирования баз данных. К которым можно отнести нагрузочное тестирование и проверку производительности SQL Server в целом при помощи юнит-тестов.
Читать полностью »

Как-то раз мне на глаза попалась статья о том, что самой дорогой ошибкой в дизайне языков программирования было решение определять окончание строки в C по NULL-байту. Один из вариантов перевода этой статьи на Хабре: habrahabr.ru/post/126566 (хотя я, по-моему, читал другой). Эта статья меня немного удивила. Во-первых, как-будто в те времена экономии каждого бита памяти можно было шикануть и выделить ещё 2-4 байта в каждой строке на хранение её размера. Во-вторых, никаких особо катастрофических последствий это решения для программиста не несёт. Ошибок, которые можно по этому поводу совершить я могу придумать целых две: неверно выделить память для строки (забыть место под NULL) и неверно записать строку (забыть NULL). О первой ошибке уже предупреждают компиляторы, избежать второй помогает использование библиотечных функций. Всей-то беды.

О фундаментальных ошибках в дизайне языков программирования - 1Значительно большей проблемой времён дизайна языка С (и затем С++) мне кажется другое — оператор for. При всей его кажущейся безвредности — это просто кладезь потенциальных ошибок и проблем.

Давайте вспомним классическое его применение:
for (int i = 0; i < vec.size(); i++)
{...}

Что же здесь может пойти не так?
Читать полностью »

Главные характеристики качественного кода - 1

Как часто вы поражаетесь, читая чужой код, и думаете «господи, ну и каша...». Скорее всего, достаточно часто. И можете ли вы быть уверенным, что никто не думал также когда читал ваш код? Другими словами, насколько вы уверены в чистоте своего кода? Можно быть уверенным только если полностью понимаешь, что значит чистый код.

Сложно дать точное определение чистому коду, и, скорее всего, сколько программистов — столько определений. Однако, некоторые принципы достаточно универсальны. Я собрал девять самых релевантных и описал ниже.

1.Плохой код делает слишком много, чистый код сфокусирован

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

Но я бы не ограничивал определение классами. В свой последней статье Ральф Вестфал (Ralf Westphal) представил более широкое определение принципа единственной обязанности:

Функциональная единица на определенном уровне абстракции должна отвечать за один аспект требований системы. Аспект требований это признак или свойство требования, которое может изменяться независимо от других аспектов.
Читать полностью »

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

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

$jNumber = _do(function() {
    $number  = yield literal('-')->orElse( literal('+') )->orElse( just('') );
    $number .= yield takeOf('[0-9]')->onlyIf( notEmpty() );
    if ( yield literal('.')->orElse( just(false) ) ) {
        $number .= '.'. yield takeOf('[0-9]');
    }
    return +$number;
});

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

Читать полностью »

На прошлой неделе стало известно, что немецкая компания Eyeo, владелец крупнейшего в мире блокировщика рекламы Adblock Plus, запускает собственную сеть. Привлечением рекламодателей будет заниматься Google через свою рекламную сеть, также в управлении рекламными компаниями будет помогать компания AppNexus, Читать полностью »

Сегодня в продажу поступил смартфон Doogee F7 Pro, который доступен в черном и белом вариантах исполнения корпуса по цене 250 долларов.

Смартфон Doogee F7 Pro с Helip X20 и 4 ГБ ОЗУ поступил в продажу по цене $250

Смартфон получил большой дисплей диагональю 5,7 дюйма с разрешением 1920 х 1080 пикселей, десятиядерную однокристальную систему Helio X20, 4 ГБ оперативной и 32 ГБ энергонезависимой памяти.

Читать полностью »

Конференция DevFest – это глобальное событие, проводимое по всему миру сообществами Google Developers Group (GDG) при поддержке компании Google. В рамках данного события происходит представление и обсуждение последних технологий и разработок Google. Это мероприятие будет интересно разработчикам, IT-специалистам, студентам IT-специальностей и всем, кто не равнодушен к современным технологиям.
image

В этом году в России пройдет рекордное количество конференций DevFest – целых 10! Поэтому вам будет легко найти DevFest, проходящий в вашем городе или недалеко от него.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js