Страницы

Monday 5 June 2017

Zend Framework 2 Controller Tests optimization

Hi all!

You probably know about Controller tests described in Zend Framework (ZF) manual.

There is a known problem with memory usage in Zend\Test\PHPUnit\Controller\AbstractHttpControllerTestCase. It is allocated about 10 Mb for each test in PHP 5.6 or 6 Mb in PHP 7.1.

Upgrading to the last PHP version is the first step of optimization. In that case you will save 40% of memory. Also this upgrade is required for the next optimization step.

Monday 11 November 2013

Получение разрешения на работу (РНР) в Москве для граждан Украины


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

Sunday 5 June 2011

Ссылки в PHP и foreach

Перевод записи из блога Johannes Schlüter http://schlueters.de/blog/archives/141-References-and-foreach.html

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

Какой результат выполнения этого кода:
<?php
$a = array('a', 'b', 'c', 'd');

foreach ($a as &$v) { }
foreach ($a as $v) { }

print_r($a);
?>
Мы дважды проводим итерацию по массиву, ничего не делая. Так что в результате никаких изменений не должно быть. Правильно? - Неправильно! Актуальный результат выглядит следующим образом:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => c
)

Для понимания, почему это происходит давайте вернемся на шаг назад и посмотрим на то, как реализованы переменные в PHP и что такое ссылки:

Wednesday 1 June 2011

LG Optimus One (LG P500) - опыт использования

Перед этим

Начну немного из далека. Предшественником оптимуса был LG G1800. Это замечательный телефон, который был со мной лет пять или шесть (да и сейчас остается, просто в ящике лежит). За все время не было никаких проблем и поломок, вообще. Даже множественные падения на асфальт (когда он не просто падал плашмя, а отбивался как мячик несколько раз и вылетала батарея и я думал "теперь уж точно п****ц"), оставили на нём только небольшие царапины. На данный момент он в отличном состоянии и батарея держит заряд как новая, очень долго, 5-10 дней (немного раздражало когда он несколько дней мог издавать периодический звуковой сигнал, сообщая о низком заряде). Ещё интересный момент, у него адская вибрация, знакомые даже подшучивали, что ношу в кармане вибратор. В общем, тогда я приобрел за небольшую сумму качественный продукт, который оставил исключительно положительные эмоции.

Фото LG G1800 для разбавки текста



Пришло время

Если честно, LG G1800 меня полностью устраивал во всем, но я все чаще начал задумываться о том, что ходить с таким телефоном как-то не комильфо. И вот, после нового года, я серьезно задумался о покупке смартфона на базе ОС Android. Поскольку я во флагмане не нуждаюсь, да и лишних денег на понты нет, выбрал бюджетный сегмент. Немного изучив представленные на рынке смартфоны выбор пал на LG Optimus One (LG P500).

Фото LG Optimus One для разбавки текста


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

Tuesday 31 May 2011

Руководство по Image_3D: Суммарно, Скачать, Ресурсы, Об авторе (части 10, 11, 12, 13 из 13)

Перевод заключительных четырех частей руководства по PEAR пакету Image_3D, оригиналы
http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/section10.html
http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/downloads.html
http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/resources.html
http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/authors.html

Суммарно

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

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

Monday 30 May 2011

Руководство по Image_3D: Возвращение к практическим примерам (часть 9 из 13)

Перевод девятой части руководства по PEAR пакету Image_3D, оригинал http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/section9.html

Возвращение к практическим примерам

Пока, примеры которые вы видели демонстрировали возможности этого пакета для создания 3D изображения в PHP. Кто бы мог подумать, что этот язык, который был изобретен для управления веб-страницами, может быть использован для создания таких сложных графических файлов? Ну вот все прекрасно и замечательно, но если вы не 3D волшебник или вычислительная машина, вам может быть скучно. Давайте посмотрим, как вы можете взять ваши простые объекты и сценарии командной строки и воссоздать несколько интересных примеров.

Анимация 3D изображений

Графическая библиотека GD в прошлом имела поддержку изображений в формате GIF. Из-за проблем лицензирования, поддержка GIF-изображений была удалена из GD после V1.6, хотя это было восстановлено в V2.0.28. В любом случае, Image_3D не может экспортировать анимированные GIF изображения, а PNG файлы не поддерживают анимацию.

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

Sunday 29 May 2011

Руководство по Image_3D: Дополнительные драйверы вывода (часть 8 из 13)

Перевод восьмой части руководства по PEAR пакету Image_3D, оригинал http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/section8.html

Дополнительные драйверы вывода

До сих пор все изображения, которые вы создали, использовали драйвер GD. Вы видели, что этот драйвер производит изображения в формате PNG, но в вашем распоряжении есть ещё четыре дополнительных драйвера: SVG, SVGRotate, ZBuffer, и ASCII.

Saturday 28 May 2011

Руководство по Image_3D: Пользовательские формы и поверхности (часть 7 из 13)

Перевод седьмой части руководства по PEAR пакету Image_3D, оригинал http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/section7.html

Пользовательские формы и поверхности

Существуют два объекта, которые позволяют создавать больше пользовательских объектов в Image_3D: полигоны и карты.

Создание полигонов

Предположим, что вы можете наметить 3D форму с помощью многомерных координат, вы можете поместить эти координаты вместе, чтобы построить стороны 3D объекта. Проделав некоторые тщательные расчеты, используя точки и полигоны, можно построить кубы, конусы или сферы с нуля. Но существуют простые методы для создания этих объектов.

Friday 27 May 2011

Руководство по Image_3D: Дополнительные объекты (часть 6 из 13)

Перевод шестой части руководства по PEAR пакету Image_3D, оригинал http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/section6.html

Дополнительные объекты

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

Кубы

Как конусы, кубы еще один простой объект для создания. Только для их создания необходимо небольшое количество полигонов и, не взирая на размер, все кубы имеют один уровень детализации. При создании куба, второй параметр для createObject() является массивом из трех значений: ширина, высота и глубина куба.

Thursday 26 May 2011

Руководство по Image_3D: Изменение объектов и форм (часть 5 из 13)

Перевод пятой части руководства по PEAR пакету Image_3D, оригинал http://www.ibm.com/developerworks/opensource/tutorials/os-php-3d/section5.html

Изменение объектов и форм

Если вы когда-либо использовали инструмент преобразования в Adobe Photoshop, вы, вероятно, знакомы с его способностью перемещать, масштабировать, вращать, и наклонять элементы. Метод transform() для 3D объектов и пространств является аналогичным инструментом.