Search
Write a publication
Pull to refresh
0
0
Send message

Must-read книги за 2014 год по ИБ и программированию

Reading time7 min
Views111K
Пока вся страна готовится к новому экономическому кризису, судорожно скупая всевозможные товары, продукты и недвижимость, мы предлагаем всем заняться саморазвитием, вложиться в себя. Ведь гречка с макаронами скоро будут съедены, но зато на новые харчи можно будет заработать, вложив время в самообразование. Сами понимаете, в непростые времена выгодно быть универсальным, неприхотливым и не болеющим. О последних двух качествах, возможно, поговорим отдельно, а сейчас обсудим ассортимент наиболее интересной литературы по информационной безопасности и программированию, опубликованной в 2014 году.

Безопасность


Тактика хакера: практическое руководство по тестированию на проникновение (The Hacker Playbook: Practical Guide To Penetration Testing)




Книга написана в стиле планирования футбольной игры. Здесь подробно и пошагово разобраны проблемы и трудности, с которыми сталкиваются специалисты по безопасности, тестируя системы защиты. В частности, рассматриваются атаки на различные типы сетей, обход антивирусов и взлом систем безопасности. Автор книги — Питер Ким, специалист по IT-безопасности с многолетним опытом, CEO компании Secure Planet.
Читать дальше →

Бесплатная книга «Game Programming Patterns» от программиста Electronic Arts Боба Найстрома

Reading time1 min
Views85K
Боб Найстром, программист, проработавший восемь лет в компании Electronic Arts, закончил работу над книгой «Game Programming Patterns». Она доступна бесплатно на сайте gameprogrammingpatterns.com. Писать книгу Боб Найстром начал четыре года назад. Большинство книг, посвящённых программированию игр, говорит он во введении, либо подробно раскрывают какой-то из аспектов создания игры — физический движок, графику, искусственный интеллект, либо описывают процесс создания игры в определённом жанре от начала до конца. Ему очень не хватало книги, рассказывающей о решении типовых задач, возникающих перед программистом, книги достаточно универсальной, не привязанной к жанрам или конкретным подсистемам игр. И поэтому он решил написать такую книгу сам.
Читать дальше →

Интеграция Fail2ban с CSF для противодействия DDoS на nginx

Reading time12 min
Views34K
Набор скриптов ConfigServer Security & Firewall (CSF) изначально обладает достаточно богатыми возможностями по организации защиты сервера хостинга Web с помощью фильтра пакетов iptables. В частности с его помощью можно противостоять затоплению атакуемого хоста пакетами TCP SYN, UDP и ICMP слабой и средней силы. Дополняет CSF встроенный Login Failure Daemon (lfd), который осуществляет мониторинг журналов на предмет наличия многочисленных неудачных попыток авторизации в различных сетевых сервисах с целью подбора пароля. Такие попытки блокируются путем внесения адреса IP злоумышленника в черный список CSF.
Читать дальше →

Создаем трекер эмоционального стресса

Reading time9 min
Views15K
Добрый день, уважаемые хабровчане!

image

В этом посте кратко опишу разработку нашей команды — трекер эмоционального стресса Emvio. Сейчас есть первые прототипы, и мы были бы очень благодарны за любую обратную связь по функциям и потребительским качествам будущего продукта.

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

Собираем плохие данные — 2. 1.5 года спустя, про то как не надо публиковать открытые данные

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

Полтора года назад я приводил массу примеров неверного толкования открытых данных. В заметке «Собираем плохие данные» есть несколько примеров, когда за машиночитаемые открытые данные выдавали разделы на сайтах или PDF документы.

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

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

58 признаков хорошего интерфейса

Reading time16 min
Views382K
У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.

1 Один столбец вместо нескольких


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

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

BudgetApps — Первый Всероссийский конкурс по открытым финансовым данным

Reading time4 min
Views9.6K
Друзья, под закат уходящего 2014 года и начала 2015 есть отличная новость для всех кто любит работать с открытыми данными, участвовать в конкурсах для разработчиков.

А также, я уверен, что есть и те кто любит историю и исторические данные.

С 23 декабря Минфин России с нашей помощью Информационной культуры открывает конкурс приложений BudgetApps http://budgetapps.ru/contest на открытых данных которые Минфин России публиковал последние несколько лет.



Данные самые разные. Это данные о бюджетах, данные об аудиторских организациях, государственном долге, государственных резервах и многое другое.

Ну и, так оказалось, что меня зовут Иван Бегтин и я член жюри этого конкурса.

Все они есть по ссылке на сайте Минфина — http://minfin.ru/ru/opendata/
И много бюджетных данных есть на Едином портале бюджетной системы — http://budget.gov.ru/data/opendata там есть структура бюджета в CSV формате, сами данные, справочники и многое и многое другое. А также данные по всем официальным учреждениям вот тут http://bus.gov.ru/public/opendata.html. На этот ресурс обратите особое внимание. Там опубликованы индикаторы, бюджеты, уставы и многое другое по каждой государственной организации и муниципальном учреждении в России. Если Вы задумаете любой региональный проект, то эти данные будут просто бесценны.

Это не значит, что нельзя использовать какие-либо другие данные, безусловно можно и нужно, однако поскольку это конкурс Минфина России, то конечно ожидается что другие данные будут использоваться вместе с этими.

Я лично считаю, что не стоит ограничиваться только теми данными которые уже переведены в машиночитаемый вид. Есть также данные которые можно превратить в открытые данные самостоятельно.
Многие умеют писать парсеры, но для тех кто этого не делал раньше, хорошее подпорье может быть ScraperWiki (https://scraperwiki.com/) чтобы собрать информацию со страниц, а также разные библиотеки для разбора Excel файлов, извлечение таблиц из PDF документов — с помощью pdftables.com или сервисов Abbyy или их Abbyy Finereader.

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

Исторические бюджеты

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

Физические и функциональные объекты (Продолжение)

Reading time9 min
Views23K
Есть три способа описания процесса:







Чем они отличаются?

Описание сущего


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



Природа пространства-времени


Начнем с того, что воспринимаемый нами мир – это четырехмерное пространство-время. Но не то пространство-время, которое используют математики в своих рассуждениях. Скорее это то пространство, которое используют физики. Разница в том, что в физическом мире нет точек. Есть объекты, которые с точки зрения наблюдателя можно считать точечными. Но при ближайшем рассмотрении эти точки могут рассматриваться как бесконечные пространства. Мы часто не различаем воспринимаемый нами мир и математическую абстракцию, созданную для описания этого восприятия. В абстракции, созданной для описания воспринимаемого мира, есть понятие точка. В реальном мире нет точек. В этом огромная разница между моделируемым миром и его моделью. В неразличении этих двух сущностей кроется причина части холиваров, возникших на основе предыдущей статьи. Например, мы не способны воспринять срез пространственно-временного континуума поперек временной оси, как нам предлагает поступить ИСО 15926, для определения понятия событие. Поэтому далее я продолжу рассуждения, не отвлекаясь на такие понятия как точки, срезы пространственно-временного континуума и прочие абстрактные объекты. Мы будем работать только с реально воспринимаемыми нами объектами 4-Д пространства-времени.
Читать дальше →

10 новогодних вопросов для создателя стартапа

Reading time1 min
Views8.9K
1. Как мне сформулировать суть моего стартапа в одно предложение?
2. Как мне сделать, чтобы о моем стартапе узнал хоть один человек?
3. Как мне сделать, чтобы о моем стартапе узнали 100 человек?
4. Как мне сделать, чтобы хоть один клиент согласился мне заплатить?
5. Как добиться того, чтобы он заплатил на самом деле?
6. Как добиться того, чтобы мне заплатили 10 клиентов?
7. Как мне найти людей в команду, благодаря которым мне заплатит 100 клиентов?
8. Как вырасти до 1000 клиентов?
9. Как добиться положительной unit-экономики?
10. Зачем я читаю очередной дурацкий список, а не занимаюсь задачей из п.1?

Примечания.
11. До п.4 можно обойтись без сайта.
12. Никакой из этапов не должен занимать больше 30 дней.
13. Занимаясь очередным пунктом, не нужно тратить ни минуты времени ни на один последующий.
14. За новогодние каникулы можно дойти до п.5.
15. Тем более что алкоголь вполне сочетается с п.п. 1-3.

С Новым годом!

Налоги в США. Часть 1. Введение, income tax, федеральный налог, налог штата, Social Security taxes

Reading time7 min
Views222K

Введение


Последние месяцы на Хабре мне часто попадаются обсуждения налогов в США. Как правило, это происходит в топиках, где обсуждение по какой-то причине скатилось к вечным темам «у нас все плохо — у них хорошо», «у нас хорошо — у них все плохо», «пора валить отсюда», «Да в США такие налоги, что непонятно, как бедные люди вообще там выживают» и т.п.

В очередной раз наткнувшись на такое обсуждение, я спросил тут же в комментарии и даже задал соответствующий хабравопрос — народ, а может вместо того, чтобы беспорядочно спорить о налогах в США в куче разных топиков, давайте я напишу отдельный подробный пост на эту тему, и там и будем спорить? За этот комментарий и хабравопрос я получил изрядно кармы и хабрасилы, и, собственно, на этом можно было бы и остановиться ибо цель достигнута, муа-ха-ха. Однако, меня уже начинают спрашивать некоторые люди, где же обещанная статья, и судя по всему, отвертеться от написания поста мне не удастся…

Обсуждающие налоги в таких топиках делятся, как правило, на три заметные группы:

  • Те, кто о налогах в США знает мало, но хотел бы узнать побольше из первых рук, а так же задать в одном месте все интересующие вопросы и получить ответы всего за 0.99$ за один ответ!
  • Те, кто реально разбирается в предмете (в 90% случаев это люди, работающие и живущие в США). В обсуждениях участвуют обычно короткими репликами, так как вопрос сложный и расписывать все в деталях каждый раз лень и вообще дело неблагодарное.
  • Те, кто о налогах в США знает из разных сомнительных источников, вроде блогпостов диванных аналитиков, но мнение имеет.

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

В первой части я напишу про налоги вообще, про федеральный налог и налог штатов и как они вычисляются и про Social Security / Medicare tax.

Во второй части (coming soon) — про годовой цикл налогообложения и различные формы — W-2, W-4, 1040NZ и прочее и прочее.

В третьей части (coming soon) — про процесс подачи Tax Return, про сайты которые помогают заполнять здоровенные формы, про применение налоговых вычетов, и, ГЛАВНОЕ о налогах в США — если есть основания, как можно получить обратно существенную часть удержанных с вас налогов. Поэтому, читая этот пост, держите в голове — большинство людей платит существенно меньшие налоги, чем те, которые я тут вычисляю для примера без учета возможных вычетов.

Поехали.
Читать дальше →

Payler. Подводим итоги 2014!

Reading time3 min
Views6.5K
image

Дорогие друзья,
Мы работали днем и ночью, находили вдохновение в каждом моменте времени, писали код со скоростью Шумахера на трассе Формулы-1, проделали мощнейшую работу и достигли огромных результатов. Год выдался насыщенным и пролетел стремительно. Настало время подвести его итоги.

Начало
После периода безудержного кодинга, длившегося почти год, финальным шагом на пути к запуску Payler стало прохождение аудита PCI DSS. Мы официально запустились 1 мая – в праздник весны и труда – и начинали как платежный шлюз, предоставляющий только услуги интернет-эквайринга. Однако мы быстро поняли, что рынок требует свежих идей и новых инструментов.

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

Несколько интересных особенностей MySQL

Reading time8 min
Views63K
В не очень далеком прошлом мне пришлось покопаться немного в исходном коде MySQL, и разобраться в некоторых аспектах его работы. В ходе работы лопаткой, и эксперимeнтов, я наткнулся на несколько очень интересных особенностей, часть из которых просто забавна, а в случае некоторых бывает очень интересно понять, чем руководствовался программист, который принимал решение сделать именно так.

Начнем с такого интересного типа, как ENUM.

mysql> CREATE TABLE enums(a ENUM('c', 'a', 'b'), b INT, KEY(a));
Query OK, 0 rows affected (0.36 sec)

mysql> INSERT INTO enums VALUES('a', 1), ('b', 1), ('c', 1);
Query OK, 3 rows affected (0.05 sec)
Records: 3  Duplicates: 0  Warnings: 0


Итак, у нас есть таблица, в ней есть два столбца. У первого, a, тип ENUM, у второго, b, INT. В таблице три строки, у всех трех значение b равно 1. Интересно, чему равны минимальный и максимальный элементы в столбце a?

mysql> SELECT MIN(a), MAX(a) FROM enums;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| c      | b      |
+--------+--------+
1 row in set (0.00 sec)


Кажется странным, было бы разумно, если бы самым маленьким был 'a', а самым большим — 'c'.
А что если выбрать минимум и максимум только среди тех строк, где b = 1? То есть, среди всех строк?

mysql> SELECT MIN(a), MAX(a) FROM enums WHERE b = 1;
+--------+--------+
| MIN(a) | MAX(a) |
+--------+--------+
| a      | c      |
+--------+--------+
1 row in set (0.00 sec)


Вот так мы заставили MySQL поменять свое мнение о том, как сравнивать поля в ENUM, просто добавив предикат.
Разгадка такого поведения заключается в том, что в первом случае MySQL использует индекс, а во втором нет. Это, конечно, не объясняет, почему MySQL сравнивает ENUMы по разному для сортировки в индексе, и при обычном сравнении.

Второй пример проще и лаконичнее:

mysql> (SELECT * FROM moo LIMIT 1) LIMIT 2;
+------+
| a    |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)


Когда я показал этот запрос своему коллеге, который занимается разработкой парсера SQL, его вопрос был не «почему этот запрос возвращает две строки», а «как надо написать SQL парсер так, чтобы такой запрос был валидным, без того, чтобы написать правило, специально разрешающее такой запрос».

Интересно, что далеко не любой SELECT в скобках сработает, в частности, UNION в скобках — это синтаксическая ошибка:

mysql> (SELECT * FROM moo UNION ALL SELECT * FROM hru) LIMIT 2;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNION ALL SELECT * FROM hru) LIMIT 2' at line 1


Еще несколько интересных примеров под катом
Читать дальше →

Ускоряем Nginx за 5 минут

Reading time5 min
Views298K
image
Попытайтесь повторить это сами

Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.

Минутка банальности.

yum -y install nginx

На всякий пожарный, создадим бэкап исходного конфига.

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf

А теперь можно и похимичить!
Бдыжь-бдыжь

PayPal: Система Адаптивных платежей API

Reading time6 min
Views14K
Система Адаптивных платежей API позволяет вам отправлять деньги различными способами: от простых до сложных. Например, вы можете создать небольшое приложение для отправки денег в соцсетях или стабильную платежную систему.

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

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

Путь разработчика: истории о моих фееричных провалах, часть 2

Reading time6 min
Views35K
Всем привет, с вами снова Delfuego FM, и я наконец-таки созрел, чтобы выложить вторую часть статьи! Вследствие неоднозначной реакции на первую часть, была предпринята попытка выложить вторую на geek times, и… она успешно провалилась. Поэтому придётся совершить небольшой хабрасуицид и выложить её прямо тут! Итак, поехали!..

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

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


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

Простой firewall средствами puppet

Reading time4 min
Views6.5K
Обзор и основы установки и настройки puppet уже публиковались Часть 1 и Часть 2 поэтому я не буду на этом останавливаться а сразу перейду к настройке фаервола.

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

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

Почему нужно 1000 раз подумать, прежде чем использовать noSQL

Reading time6 min
Views80K
Зачем я пишу эту статью? Во-первых я хотел бы внести свой вклад в понимание людьми сути nosql и того, почему выбирать такой тип хранилища нужно осознанно. Во-вторых, я буду рад встретить единомышленников, противников и, возможно, подискутировать. А если Вам понравилась эта статья, то буду рад услышать вопросы, которые можно раскрыть более подробно в новых статьях:)

Несмотря на то, что nosql решений сейчас тьма, люди неохотно переходят на новые типы хранилищ. Правильно ли это? На мой взгляд – да. И я постараюсь сказать почему, на примере разных nosql хранилищ, которые встретились на моём профессиональном пути.
Читать дальше →

Inversion of Control: Методы реализации с примерами на PHP

Reading time8 min
Views52K
О боже, ещё один пост о Inversion of Control


Каждый более-менее опытный программист встречал в своей практике словосочетание Инверсия управления (Inversion of Control). Но зачастую не все до конца понимают, что оно значит, не говоря уже о том, как правильно это реализовать. Надеюсь, пост будет полезен тем, кто начинает знакомится с инверсией управления и несколько запутался.

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

Как мы измеряем скорость загрузки Яндекс.Почты

Reading time7 min
Views26K
Если ваш сайт медленно грузится, вы рискуете тем, что люди не оценят ни то, какой он красивый, ни то, какой он удобный. Никому не понравится, когда все тормозит. Мы регулярно добавляем в Яндекс.Почту новую функциональность, иногда — исправляем ошибки, а это значит, у нас постоянно появляются новый код и новая логика. Все это напрямую влияет на скорость работы интерфейса.



Яндекс.Почту каждый день открывают миллионы человек из разных точек земного шара. И ни у кого она не должна тормозить, поэтому без различных измерений наша работа не обходится. В этом посте мы с alexeimoisseev и kurau решили рассказать о том, какие метрики у нас есть и какие задачи они решают. Возможно, это пригодится и вам.
Читать дальше →

CDN для статики и измерения: как Яндекс.Почта стала быстрее в регионах

Reading time5 min
Views26K
Скорость работы веб-интерфейса — очень важная вещь, и мы в Яндексе особенно хорошо понимаем это. От ощущения лёгкости и того, с какой скоростью у пользователя загрузятся важные ему элементы, может зависеть и то, каким сервисом он в итоге будет пользоваться.

Мы в Яндекс.Почте много работаем над ускорением клиентской части. Только на Хабре мы рассказывали о том, как оптимизируем верстку, отказались от XSL и перешли на новый шаблонизатор.

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



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

Information

Rating
Does not participate
Registered
Activity