Валидация больших XML-файлов

По специфике моей текущей работы нам приходится работать с большими XML-файлами, как в сторону выгрузки наших данных сторонним сервисам, так и наоборот, импорт данных из сторонних сервисов. Размеры файлов весьма большие, вплоть до 500 Мб. Соотв-но в один прекрасный момент наша выгрузка сломалась, и весь ответ от стороннего сервиса заключался в том, что мы присылаем им «invalid xml». Как следствие, встал вопрос: как понять, в чем невалидность нашего XML.

Онлайн валидаторы XML не принимают настолько большие файлы, поэтому пришлось искать локальное решение. И на помощь пришел Sublime. Есть плагин к нему под названием Exalt, который на лету валидирует XML, и либо в строке статуса выдаст Valid markup, либо напишет, в какой строчке возникла проблема при парсинге.

В нашем случае оказалось, что при генерации XML в некоторых узлах были незаэкранированные «<» и «>» 🙂

Блог теперь работает на SSL

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

Подключение пакета к своему проекту из локальной директории

В данной статье на английском языке рассказывается, как можно подключать (require) к своему проекту пакеты, расположенные локально. Это может потребоваться разработчикам пакетов в процессе тестирования.

Грязный хакинг: вскрываем приватные внутренности объектов без рефлексии

Как известно, в (наверное) любом ООП-языке поддерживаются области видимости переменных и методов класса (public, protected, private). И, разумеется, получить доступ напрямую к protected и тем более private извне не получится в штатном режиме.

Но, как говорится, если нельзя, но очень хочется, то можно. Можно к ним получить доступ. И есть тут «два путя»: первый широко известен, и называется он Reflection, его я описывать не буду. А вот второй мне открылся совершенно внезапно, когда я читал официальную документацию по замыканиям.

Читать далее «Грязный хакинг: вскрываем приватные внутренности объектов без рефлексии»