Pull to refresh
46
Karma
0
Rating
Владислав Раструсный @FractalizeR

CTO

Коротко об архитектуре компонента Symfony Config

PHP *Symfony *
Tutorial


Компонент Symfony 2 Config предназначен для работы с конфигурационными файлами и предоставляет следующие возможности:

  • Поддержка древовидной структуры конфигурации
  • Абстракция составных частей конфигурации, из которых производится ее загрузка (ресурсы, загрузчики ресурсов и т.д.)
  • Поддержка произвольного количества составных частей конфигурации и некоторых правил по сборке и объединению
  • Кеширование прочитанной конфигурации и автоматическая ее пересборка при изменении одного из исходных файлов
  • Валидация конфигурации по различным правилам и подробная информация об ошибках парсинга

Официальная документация по этому компоненту содержит подробную информацию по его использованию. А мы давайте посмотрим на то, как устроен этот компонент внутри.
Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Views 7.5K
Comments 6

RefluxJS — альтернативный взгляд на Flux архитектуру от Facebook

Website development *JavaScript *HTML *ReactJS *
Translation
От переводчика: посмотрев на ReactJS и вдохновившись его простотой, начал искать библиотеку, которая бы обеспечивала такой же простой обмен данными внутри моего приложения. Наткнулся на Flux, увидел примеры кода и пошел искать альтернативу. Набрел на RefluxJS, немедленно полюбил и пошел переводить официальную доку. Она написана как раз в стиле статьи, поэтому в первую очередь решил поделиться ей с Хабрасообществом. Перевод несколько вольный. Кое-где, если мне казалось, что что-то нуждается в дополнительном пояснении или примере, я не стеснялся.

В переводе ниже в качестве перевода для термина Action из Reflux иногда используется термин «событие», а иногда — термин «экшен», в зависимости от контекста. Более удачного перевода мне подобрать не удалось. Если у вас есть варианты, жду предложений в комментариях.

Обзор


image image image image image

RefluxJS — простая библиотека, обеспечивающая в вашем приложении однонаправленный поток данных, использующая концепцию Flux от Facebook.
Читать дальше →
Total votes 31: ↑27 and ↓4 +23
Views 29K
Comments 29

Использование Java смарт-карт для защиты ПО. Глава 5. Безопасность

Information Security *Cryptography *Java *
image

В данном цикле статей пойдет речь об использовании Java смарт-карт (более дешевых аналогов электронных ключей) для защиты программного обеспечения. Цикл разбит на несколько глав.

Для прочтения и осознания информации из статей вам понадобятся следующие навыки:
  • Основы разработки ПО для Windows (достаточно умения программировать в любой визуальной среде, такой как Delphi или Visual Basic)
  • Базовые знания из области криптографии (что такое шифр, симметричный, ассиметричный алгоритм, вектор инициализации, CBC и т.д. Рекомендую к обязательному прочтению Прикладную Криптографию Брюса Шнайера).
  • Базовые навыки программирования на любом языке, хотя бы отдаленно напоминающем Java по синтаксису (Java, C++, C#, PHP и т.д.)

Цель цикла — познакомить читателя с Ява-картами (литературы на русском языке по их использованию крайне мало). Цикл не претендует на статус «Руководства по разработке защиты ПО на основе Ява-карт» или на звание «Справочника по Ява-картам».

Состав цикла:



Читать дальше →
Total votes 23: ↑13 and ↓10 +3
Views 4.6K
Comments 10

Использование Java смарт-карт для защиты ПО. Глава 4. Пишем первый апплет

Information Security *Cryptography *Java *
image

1. Введение


В данном цикле статей пойдет речь об использовании Java смарт-карт (более дешевых аналогов электронных ключей) для защиты программного обеспечения. Цикл разбит на несколько глав.

Для прочтения и осознания информации из статей вам понадобятся следующие навыки:
  • Основы разработки ПО для Windows (достаточно умения программировать в любой визуальной среде, такой как Delphi или Visual Basic)
  • Базовые знания из области криптографии (что такое шифр, симметричный, ассиметричный алгоритм, вектор инициализации, CBC и т.д. Рекомендую к обязательному прочтению Прикладную Криптографию Брюса Шнайера).
  • Базовые навыки программирования на любом языке, хотя бы отдаленно напоминающем Java по синтаксису (Java, C++, C#, PHP и т.д.)

Цель цикла — познакомить читателя с Ява-картами (литературы на русском языке по их использованию крайне мало). Цикл не претендует на статус «Руководства по разработке защиты ПО на основе Ява-карт» или на звание «Справочника по Ява-картам».

Состав цикла:



Читать дальше →
Total votes 24: ↑13 and ↓11 +2
Views 8K
Comments 18

Использование Java смарт-карт для защиты ПО. Глава 3. Установка и настройка IDE

Information Security *Cryptography *Java *
image

В данном цикле статей пойдет речь об использовании Java смарт-карт (более дешевых аналогов электронных ключей) для защиты программного обеспечения. Цикл разбит на несколько глав.

Для прочтения и осознания информации из статей вам понадобятся следующие навыки:
  • Основы разработки ПО для Windows (достаточно умения программировать в любой визуальной среде, такой как Delphi или Visual Basic)
  • Базовые знания из области криптографии (что такое шифр, симметричный, ассиметричный алгоритм, вектор инициализации, CBC и т.д. Рекомендую к обязательному прочтению Прикладную Криптографию Брюса Шнайера).
  • Базовые навыки программирования на любом языке, хотя бы отдаленно напоминающем Java по синтаксису (Java, C++, C#, PHP и т.д.)

Цель цикла — познакомить читателя с Ява-картами (литературы на русском языке по их использованию крайне мало). Цикл не претендует на статус «Руководства по разработке защиты ПО на основе Ява-карт» или на звание «Справочника по Ява-картам».

Состав цикла:



Читать дальше →
Total votes 23: ↑13 and ↓10 +3
Views 7.1K
Comments 1

Использование Java смарт-карт для защиты ПО. Глава 2. Java смарт-карта с точки зрения разработчика апплетов

Information Security *Cryptography *Java *
image

В данном цикле статей пойдет речь об использовании Java смарт-карт (более дешевых аналогов электронных ключей) для защиты программного обеспечения. Цикл разбит на несколько глав.

Для прочтения и осознания информации из статей вам понадобятся следующие навыки:
  • Основы разработки ПО для Windows (достаточно умения программировать в любой визуальной среде, такой как Delphi или Visual Basic)
  • Базовые знания из области криптографии (что такое шифр, симметричный, ассиметричный алгоритм, вектор инициализации, CBC и т.д. Рекомендую к обязательному прочтению Прикладную Криптографию Брюса Шнайера).
  • Базовые навыки программирования на любом языке, хотя бы отдаленно напоминающем Java по синтаксису (Java, C++, C#, PHP и т.д.)

Цель цикла — познакомить читателя с Ява-картами (литературы на русском языке по их использованию крайне мало). Цикл не претендует на статус «Руководства по разработке защиты ПО на основе Ява-карт» или на звание «Справочника по Ява-картам».

Состав цикла:



Читать дальше →
Total votes 24: ↑14 and ↓10 +4
Views 5.8K
Comments 0

Использование Java смарт-карт для защиты ПО. Глава 1. Общие сведения

Information Security *Cryptography *Java *
image

1. Введение


В данном цикле статей пойдет речь об использовании Java смарт-карт (более дешевых аналогов электронных ключей) для защиты программного обеспечения. Цикл разбит на несколько глав.

Для прочтения и осознания информации из статей вам понадобятся следующие навыки:
  • Основы разработки ПО для Windows (достаточно умения программировать в любой визуальной среде, такой как Delphi или Visual Basic)
  • Базовые знания из области криптографии (что такое шифр, симметричный, ассиметричный алгоритм, вектор инициализации, CBC и т.д. Рекомендую к обязательному прочтению Прикладную Криптографию Брюса Шнайера).
  • Базовые навыки программирования на любом языке, хотя бы отдаленно напоминающем Java по синтаксису (Java, C++, C#, PHP и т.д.)

Цель цикла — познакомить читателя с Ява-картами (литературы на русском языке по их использованию крайне мало). Цикл не претендует на статус «Руководства по разработке защиты ПО на основе Ява-карт» или на звание «Справочника по Ява-картам».

Состав цикла:



Читать дальше →
Total votes 29: ↑16 and ↓13 +3
Views 15K
Comments 10

CoreOS — Linux для минималистичных кластеров. Коротко

High performance *
Tutorial

Что такое CoreOS?



CoreOS — это операционная система на базе Linux для построения легко и гибко масштабируемых кластеров. CoreOS — минималистичный дистрибутив. Установочный ISO образ объемом всего в 136Мб, а в памяти на конечной машине после установки и запуска она займет всего 114Мб. CoreOS основан на ChromeOS, который в свою очередь базируется на Gentoo.

Фактически, CoreOS можно условно можно разделить на следующие части:

  • Systemd — управляет локальными службами на машинах кластера
  • Docker — обеспечивает изоляцию служб, но его использование, в принципе, не обязательно
  • Etcd — распределенно хранит конфигурацию кластера
  • Fleet — обеспечивает распределенное управление службами («надстройка» над systemd)


CoreOS умеет запускать службы systemd на нужных машинах кластера, следить за их состоянием, хранить их конфигурацию.

Читать дальше →
Rating 0
Views 34K
Comments 2

Morphia — легкий ORM для MongoDB, управляемый аннотациями

Java *
Читая ежедневную порцию постов из своей подборки Google Reader наткнулся на пост про ORM для MongoDB с манящим названием «Morphia». Ниже вы найдете компоновку материалов из его документации, претендующую на звание «очень краткий обзор».

  1. Morphia очень просто использовать. Это легкий и быстрый фреймворк
  2. Поддерживает как аннотированные POJO объекты, так и DAO подход
  3. Вся конфигурация задается аннотациями, XML файлы не используются
  4. Поддерживается интерфейс расширений (в настоящий момент во фреймворк встроены валидация (jsr330) и поддержка SLF4J для протоколирования
  5. Отлично работает с Google Guice, Spring и другими DI фреймворками
  6. Содержит большое количество точек расширения
  7. Поддерживает GWT

Читать дальше →
Total votes 32: ↑31 and ↓1 +30
Views 16K
Comments 51

DropBox предоставит расшифрованные копии ваших файлов правительству по запросу

Information Security *
Мы все знаем, как Dropbox заявляет о своей безопасности:

  • All transmission of file data occurs over an encrypted channel (SSL).
  • All files stored on Dropbox servers are encrypted (AES-256)
  • Dropbox employees aren't able to access user files, and when troubleshooting an account they only have access to file metadata (filenames, file sizes, etc., not the file contents)



Однако, гарантирует ли это на самом деле безопасность наших данных?

Читать дальше →
Total votes 89: ↑66 and ↓23 +43
Views 6.6K
Comments 123

Jooq — «LINQ» для Java, типобезопасный построитель SQL запросов в Java коде

Java *
Недавно, в поисках золотой середины между JDBC и ORM, я натолкнулся на интересную open source библиотеку (лицензия Apache Software License), с помощью которой можно строить SQL прямо в Java-коде достаточно удобно и безопасно. Библиотека называется Jooq. Jooq включает в себя генератор кода, который парсит структуру вашей базы данных и создает необходимые Java-классы. На деле получается примерно такой код:

Integer taskId = sqlFactory.select(ID).from(TASK).where(STATUS.equal(TaskStatus.QUEUED)).
    orderBy(LAST_UPDATED).limit(1).fetchOne(ID);


Как видите, конструирование запроса и его выполнение для простых типов занимает одну строку. Немного о jooq:

Читать дальше →
Total votes 44: ↑36 and ↓8 +28
Views 24K
Comments 39

Примеси VS делегирование: преимущества и недостатки при реализации «плагинов»

Website development *
В данной статье я предлагаю вам свой взгляд на выбор использования примесей или делегирования в проектах для добавления в класс нового функционала.

Начальные условия такие: мы рассматриваем примеси, имеющие свое состояние и имеющие доступ ко всем членам класса-агрегатора. Все публичные члены класса примеси становятся частью агрегатора. Мы оставляем за кадром вопрос быстродействия. Вопрос исследуем на примере добавления нового функционала в модель выдуманного ORM.

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

Читать дальше →
Total votes 35: ↑25 and ↓10 +15
Views 2.3K
Comments 32

ООП практикум в PHP5: Анализ ошибок, преимуществ и недостатков двух различных реализаций примесей в PHP

PHP *
После выхода моей статьи о примесях мы продолжали дискуссии и в комментариях к статье и в личных сообщениях. Сегодня увидел в моем блоге комментарий от читателя, который попросил объяснить, в чем я вижу преимущество своей реализации перед реализацией Леонида Шлейхера.

Я собирался было ответить в комментарии к посту своем же сайте, но неожиданно оказалось, что вопрос довольно интересен. Вернее, не сам вопрос, а анализ, который я провел, подготавливая ответ.
Читать дальше →
Total votes 41: ↑30 and ↓11 +19
Views 2.2K
Comments 68

Коротко об истории объектно-ориентированного программирования

Programming *ООP *
Эта статья была написана под влиянием впечатлений, полученных автором в ходе одной дискуссии на Хабре, и представляет небольшую серию переводов материалов из свободных источников об истории объектно-ориентированного программирования, основным из которых является Википедия, плюс абсолютно предвзятые выводы автора из прочитанного материала.

Если вам интересно узнать, какой язык в действительности был первым ООП-языком на свете, могут ли Java и C# называться чистыми ООП-языками, а также проникнуться некоторыми другими деталями, приглашаю вас под кат…

Читать дальше →
Total votes 69: ↑57 and ↓12 +45
Views 26K
Comments 172

Автоинкрементные первичные ключи (суррогатные ключи) = зло?

SQL *
В этой статье я приведу взгляд (отрицательный по большей части) Джоша Беркуса, CEO компании PostgreSQL Experts Inc. на использование суррогатных ключей для таблиц базы данных, тех самых INT NOT NULL AUTO_INCREMENT PRIMARY KEY, к которым мы привыкли. Фактически, это будет вольный, сильно сокращенный перевод его статьи на ittoolbox.

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

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

Если вы опытный DBA, наверное, вам стоит пройти мимо, чтобы не расстраиваться.

Но обо всем по порядку. Сначала ОЧЕНЬ сокращенный перевод:
Читать дальше →
Total votes 104: ↑80 and ↓24 +56
Views 25K
Comments 204

ООП Практикум PHP5: эмуляция примесей (mixin) в языке

PHP *
Как-то вечером для реализации моделей поведения в ORM в моем велосипеде фреймворке мне понадобилось что-то, ведущее себя как примесь (mixin) в Ruby или как метод расширения (extension method) в C# (или как трейт / графт в будущих версиях PHP) Я решил для интереса посмотреть, как у меня получится реализовать примеси на PHP. Если вы не знаете, что такое примесь, не беда, сейчас все расскажу.

Приглашаю последовать за мной в рассуждениях о реализации примесей на PHP и программировании небольшой библиотеки, позволяющей их реализовать. Статья ориентирована на PHP разработчиков начинающего и среднего уровня (главное, чтобы вы хорошо ориентировались в ООП). В процессе я также сделаю небольшую ошибку, касающуюся тонкостей работы PHP 5.3 с классами, через какое-то время на нее укажу и предложу исправить. А также предоставлю свое решение для вашей критики. Приятного чтения.

Читать дальше →
Total votes 86: ↑73 and ↓13 +60
Views 4.8K
Comments 113

Защита Win32 и .NET приложений: обзор протектора Themida (X-Protector)

Information Security *
Этот обзор посвящен Themida (в прошлом X-Protector), одному из самых мощных и надежных протекторов Win32 приложений. Поскольку Themida совсем недавно понадобилась мне для одного из моих приложений, я решил написать по ней небольшой обзор. Заодно попросил автора ответить на некоторые интересующие меня вопросы. Думаю, ответы будут вам тоже интересны. Результаты этого небольшого интервью ищите в конце статьи.

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



Читать дальше →
Total votes 56: ↑40 and ↓16 +24
Views 50K
Comments 119
1

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Chief Technology Officer (CTO)