Архив за 01 декабря 2017 - 7

Как часто приходится работать с XML PHP-разработчикам? Не так часто, на самом деле. Обычно потребность возникает при интеграции со сторонним сервисом, т.к. BetaPRO, OnTime или CDEK. И вот тут обычно возникает такая ситуация, когда ваш код становится похожим на

$date = '2016-09-25T12:45:10';
$account = 'f62dcb094cc91617def72d9c260b4483';
$secure = '81ad561784277fa864bf644d755fb164';
$count = 1;
$copy = 4;
$dispatchNumber = '1033229706';
$orderDate = '2016-09-25T12:45:10';

$request = <<<XML
<?xml version="1.0" encoding="UTF-8"?> 
<OrdersPrint Date="{$date}" Account="{$account}" Secure="{$secure}" OrderCount="{$count}" CopyCount="{$copy}">
    <Order DispathNumber="{$orderNumber}" Date="{$orderDate}"/>
</OrdersPrint>
XML;

и это еще не все! Нужно позаботится о том, чтобы значения атрибутов и содержимое заключенное в теги не содержало спецсимволов присущие XML. Если для конкретно этого запроса можно быть уверенным, что ничего из спецсимволов сюда не попадет, то контролировать каждый запрос вовсе бы не хотелось. Поэтому через "фильтр" пропускается все. Отсюда следует, что нужно еще "загнаться" с htmlspecialchars или с CDATA, или с XMLWriter, и знать, как это применить и не раз еще "свернуть себе кровь". Как вы видите, времени стоит "убить" достаточно, а результат-то хочется уже сейчас. Эх… А как хотелось бы, чтобы XML можно было бы создавать так же быстро, как JSON: отдал массив, а тебе XML-строку, и никаких заморочек. Опечалившись сложившейся ситуацией я в далеком 2015ом году я решил сделать такой конструктор.

Вашему вниманию представляю xml-constructor для PHP начиная с версии 5.4 и до 7.2 на момент публикации данной статьи.

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

Всем хорошей пятницы!

Если в вас жив дух студента (или дух скряги), вы хотите поэкспериментировать или вам просто интересно как обойти ограничения, то я расскажу как это сделать. Идея зажглась в голове словно лампочка, когда я читал описание новых тарифных планов. А зажглась она в момент, когда я прочел, что оператор предоставляет безлимитный трафик к той или иной соцсети за сумму от до 10 до 30 рублей в месяц. Как использовать эти опции для безлимитного серфинга? Читайте под катом!
Читать полностью »

Наука превратила кальмаров из чудовищ, о которых рассказывают сказки, в чудо

Я не чудовище - 1
Хроматофоры на коже взрослого кальмара, подкрашенные антителами. Радиальные линии — мускулы, остальные соединительные линии, скорее всего, являются нервами. Всё, что видно на фото, в реальности имеет размер в полтора мм

Головоногие занимают почётное место в культурных мифах. Их длинные щупальца, крупные, немигающие глаза, и просто огромный размер гигантского кальмара пугали нас по меньшей мере со Средних веков, когда рассказы пугали торговцев чудовищами, ждавшими их в тёмных морях, готовыми сожрать целые суда с командами.

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

Рисователь биомов: наполняем содержанием огромный мир - 1

Как преобразовать карту высот с верхней картинки в лес с нижней?

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

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

Если посмотреть на типичную игру с открытым миром, то можно увидеть в действии принцип Парето — 20% контента составляют основной путь игрока, а 80% — это фон. Основной путь игрока должен отличаться высоким качеством и художественным содержанием, потому что игроки проведут на нём бо́льшую часть времени. Фоны, в том числе обширные леса или пустыни вокруг главных городов, не требуют такого внимания к деталям. Эти 80% представляют собой отличную цель для умных инструментов размещения содержимого, которые слегка жертвуют качеством и художественным оформлением в пользу скорости и простоты создания контента.
Читать полностью »

Хотя недавно была выпущена Java 9 с новой модульной системой, многие еще продолжают пользоваться привычной восьмой версией, с лямбдами. В течение полугода я плотно работал с ней и всеми ее нововведениями. Если с новыми методами коллекций и Optional все понятно, то с лямбдами не все так очевидно. В частности, как они реализованы и как влияют на производительность. И главное — чем они отличаются от старых добрых анонимных классов.

Лямбда-потрошитель - 1Читать полностью »

Первый законопроект о регулировании криптовалюты и токенов поступил в Госдуму. Его разработчики — АНО «Право роботов», компании «Воронков Венчурс» и Heads Consulting — предлагают создать государственную криптовалютную биржу, сделав ее основной валютой крипторубль.

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

«Ростех» и Национальная компьютерная корпорация создают систему для хранения данных (СХД) для исполнения «закона Яровой», пишет РБК со ссылкой на гендиректора компании-производителя систем оперативно-разыскных мероприятий «Норси-Транс» Сергея Овчинникова. По словам издания, госкорпорация рассчитывала стать единственным оператором хранилища данныхЧитать полностью »

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

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

Телефонный номер я указал только в разделе помощи японской версии сайта, потому что сам живу в Японии и это японский номер. Может в будущем попробую указать телефон и в англоязычной версии, если он заработает с каким-нибудь международным телефонным сервисом вроде Skype.
Читать полностью »

Разбор квеста Digital Security ICO - 1

Перед ежегодной конференцией ZeroNights 2017, помимо Hackquest 2017, мы решили организовать еще один конкурс, а именно — провести свое ICO (Initial coin offering). Но только не такое, как все привыкли видеть, а для хакеров. А как мы могли понять, что они хакеры? Они должны были взломать ICO! За подробностями прошу под кат.

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

Компания Samsung получила во Всемирной организации интеллектуальной собственности (World International Property Office) патент на мобильное устройство, экран которого имеет сильные изгибы по бокам.

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


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