2016-09-20 23:37:37

Сглаживание шрифтов Firefox в Mac OS

Mac OS Firefox CSS

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

font-smoothing.png

Слева как было, справа - как стало. И делается это все при помощи CSS, специфичного для Firefox именно под Mac OS, невероятно но факт:

Firefox has finally added a property to enable grayscaled antialiasing. After a long discussion it will be available in Version 25 with another syntax, which points out that this property only works on OS X.

Аналогичная штука также есть и для браузеров на основе webkit.

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

2016-09-02 15:12:03

Oracle Client вместе с PHP-FPM

PHP Oracle Linux

PHP-FPM

Достаточно часто встречается связка Nginx + PHP-FPM, которая заменяет собой привычный многим Apache + mod_php. А когда требуется добавить возможность работать с Oracle из PHP, то не подготовленный человек, а точнее привычный к настройке Oracle Client для PHP, работающего как модуль Apache, может столкнуться с непредвиденными проблемами, о решении которых я попробую рассказать.

Итак, у нас CentOS (в принципе на других Linux все будет аналогично) на который уже установлен Nginx, PHP, PHP-FPM и Oarcle Client + модуль php_oci8. На всякий случай, в этом можно убедиться командой:

# php -m | grep oci

Если вывод такой же, как в примере ниже, то модуль установлен:

# php -m | grep oci
oci8

А вот если, там ругань об отсутствующей библиотеке вроде:

PHP Startup: Unable to load dynamic library 'oci8.so' (tried: /usr/lib/php/20170718/oci8.so (libmql1.so: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/oci8.so.so (/usr/lib/php/20170718/oci8.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

То надо сделать (замените путь из примера на свой):

# echo /u01/app/oracle/product/12.1.02/db_1/lib > /etc/ld.so.conf.d/oracle.conf
# ldconfig

* в случае Oracle Instant Client путь будет до папки клиента, например /opt/oracle/instantclient_12_2.

Теперь модуль должен нормально заработать в консольном режиме.

Но после этого все равно при попытке использовать oci_connect(...) получаем вот такую ошибку в ответе от сервера:

Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and LD_LIBRARY_PATH are set and point to the right directories in /var/www/...

Когда все известные бубны с прописыванием ORACLE_HOME и LD_LIBRARY_PATH во все скрипты запуска и прочие перебраны, но все равно не работает, то простое решение кажется просто невозможным, но оно есть!

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

2016-08-11 16:36:34

Вопрос для любителей ПеХеПе

PHP

PHP Code

Вашему внимаю предлагается жвачка для ума для любителей true-кодинга на PHP.

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

Итак, задача казалось бы вполне тривиальная и очень типичная:

Получить в переменную $id значение параметра id из GET, при условии, что это цифра и больше 0, в остальных случаях - FALSE.

И это бы было тривиально, если бы не следующие ограничения:

Запись должна быть в одну строку $id = ...; (точку с запятой можно поставить только один раз в конце строки), а операторы 'if' и '?', а также фигурные скобки использовать нельзя. Обращаться к массивам $_* нельзя.

Тест-кейс который должен выполняться:

index.php?id=100500  => 100500
index.php?id=-10     => FALSE
index.php?id=0       => FALSE
index.php?id=        => FALSE
index.php?id=wtf     => FALSE
index.php?           => FALSE

Ну что ж, давайте рассуждать как это сделать.

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

2016-05-20 14:53:04

Упыри лютые

Юмор

Упыри лютые

Продолжаем тему дурацких картинок, которые вроде бы и деть некуда, и удалить жалко. А эта еще и на злобу дня пришлась :)
2016-05-12 12:01:00

pisem.net, совсем нет :(

Почта

Как-то грустно писать про отвал почтового сервиса, но тем не менее мой почтовый ящик @pisem.net похоже умер. Произошло это следующим образом: вчера сижу жду письма о верификации емейл адреса и тишина, через пол часа отправляю повторно - так же тишина. Тестовое письмо с gmail так же не дошло. По прошествию ночи и отсутствию входящих писем приходится констатировать, что таким сервисом пользоваться не возможно :(

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

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

Хочу обратиться к "Почте QIP.ru": "Уважаемые! Если вы не можете поддерживать работу сервиса на достойном уровне, пожалуйста, закройте его или продайте тем, кто сможет! Ну а если, вдруг, у вас второй день уже авария, то хоть уведомите клиентов об этом, хоть как-нибудь."