Просмотр категории Others

Ивенты ноября — jsTalks и Mageconf

В ноябре было два интересных события — jstalks и mageconf.

jsTalks прошло 26 ноября в Днепропетровске в клубе Рио. Организатор — фирма Wix, которые делаю систему для сайтоконструктора (напоминает ucoz). Вместо стандартного для таких мероприятий «актового зала» выбрали неплохой клубешник в центре. На входе давали фирмовые баффы, правда качества не очень ;)

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

@sergebezborodov и @timlar_ua

MageConf прошла 3 декабря в Киеве, в Экспоплазе. На входе фирмовые пакетики, ручки, блокноты — как обычно, всякая дребедень. Проходило в две секции php и magento.

Первый доклад был общим, растянулся на час, но смысл можно выразить словами «magento, классно, x.com, развитие, рост». Крутили промо ролик, как парниша накодил за пару часов шоп в консольном виме на маженте и заработал кучу бабла, улыбнуло.

Сама Magento интересовала не  сильно, пошел на секцию php, доклад был о сервис-ориентированной архитектуре, рассказчик очень волновался, что он хотел донести осталось непонятно. Дальше шли «Взаимодействие с асинхронными системами на php» и «О преднамеренном» программировании», на последнем Виталий Коротун безперерывно тараторил и шутил с залом, в итоге конечная мысль - серебряной пули нет, программирование говно.

Приятный момент, что за лучший вопрос докладчику давали лицензию php storm.

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

Те кто были «в теме» после конфы собрались на #YiiBeerAfterParty где отлично провели время, в принципе ради этого и поехали в Киев.

#YiiBeerAfterParty

Полностью

Техническая сторона проекта Все бланки

 

 

 

 

 

 

 

Как и любая хорошая идея, идея создания сайта пришла после того, как я пытался найти нужный бланк для сдачи отчетности для ЧП. Стоит сказать, что украинские сборники бланков напоминают сайты конца девятосных годов, где искать приходится браузерным поиском по Ctrl+F. После недолгих раздумий, решил сделать сайт с простым названием «Все бланки»

Полностью

Переезд

Долгое время блог работал на Joomla. Мягко говоря, не самое удобное решение, но было выбрано из-за того, что на сайте было портфолио моих работ.  В результате решил все перевести на старый добрый WordPress и наконец то радоваться возможности писать посты через Windows Live Writer.

Полностью

Особенности функций PHP или краш print_r

У PHP есть особенности в  функциях при работе с большими объемами данных – они падают, безо всяких предупреждений. Очень часть это может проявиться в самом неожиданном месте.

Пример: При построении логики приложения на исключениях (Exceptions) очень удобно делать дамп эксепшенов в файл, а именно входные параметры функции, которая выбросила эксепшен, для чего и применяется print_r($data, true). Но если в качестве входного параметра фукнции передать объект у которого в филдах будут другие объекты, а у них ещё объекты и так до бесконечности…print_r($data, true) начинает дампить данные клиенту, вместо строки в файл.

Данная ситуация отнюдь не выдуманная, выкиньте эксепшен в startup компонента CakePHP и получите подобную ситуацию.

Полностью

Установка PHPUnit на WAMP Server

Многие веб разработчики используют Windows в качестве основной ОС. По сравнению с Linux, мы лишаемся прелестей консоли и приходится использовать несколько нестандартные решения. Одним из таких является установка PHPUnit на WAMP Server.

Собственно порядок установки:

  1. Установить WAMP
  2. Открываем консоль и переходим в папку php которая находится в wamp
    D:\>cd wamp\bin\php\php5.2.11
  3. Отсюда запускаем go-pear.bat которая скачает все необходимое и установи PEAR
    D:\wamp\bin\php\php5.2.11>go-pear.bat
  4. Во время установки PEAR будет задавать разные вопросы по поводу путей, необходимо будет проверить корректность предлагаемых путей к установке
  5. После завершения процедуры нужно будет запустить PEAR_ENV.reg которая пропишет в систему переменные окружения.
    D:\wamp\bin\php\php5.2.11>PEAR_ENV.reg
  6. Если что-то пойдет не так, то стоит попробовать запустить команду из под администратора.
  7. Все, PEAR установлен, можно перейти к установке PHPUnit, сперва регистрируем канал в системе
    D:\wamp\bin\php\php5.2.5>pear channel-discover pear.phpunit.de
  8. И собственно установка:
    D:\wamp\bin\php\php5.2.5>pear install phpunit/PHPUnit
  9. На этом установка закончена. Возможно будут проблемы с запуском phpunit из консоли, необходимо проверить наличие его папки в системной переменной PATH

Полностью

CSS3 в Internet Explorer

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

Полностью

Несколько Regex’ов

Сколько я не пытался выучить язык regex’ов, так у меня это толком и не получилось. Поэтому я постоянно пополняю свою подборку выражений на все случаи жизни.
Вот небольшая часть из них:

  1. проверка валидности URL
    /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/
  2. стойкость пароля
    • пароль должен содержать минимум 1 символ в верхнем регистре
    • пароль должен содержать минимум 1 символ в нижнем регистре
    • пароль должен содержать минимум 1 цифру или специальный символ
    • пароль должен иметь минимум 8 символов в длину
    • максимальная длина пароля не ограничивается
    (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
  3. незакрытые теги img
    по XHTML стандарту все теги должны быть закрытыми, данный regex ищет незакрытые теги

    <img([^>]+)(\s*[^\/])>
  4. ищем все CSS атрибуты
    с помощью данного выражения можно найти все css атрибуты

    \s(?[a-zA-Z-]+)\s[:]{1}\s*(?[a-zA-Z0-9\s.#]+)[;]{1}
  5. проверка IBAN кода
    ([a-zA-Z]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?)

Полностью

На строчку выше конкурента

Бизнес сегодня очень интенсивно (и экстенсивно тоже) развивается в Интернете. Глобальная паутина — это необыкновенный инструмент, который, если им верно пользоваться, способен нарастить прибыли, сделав даже маленькое предприятие сверхдоходным. Всё что для этого нужно — это создать свой сайт, а затем раскрутить его и добиться, чтобы пользователи по ключевым запросам получали ссылку именно на него.

Полностью

Вставка строки в подстроку в PHP

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

$newstring = substr_replace($orig_string, $insert_string, $position, 0);

Полностью

XBap приложения на Linux хостинге

Многие уже наслышаны о новой технологии от Microsoft – XAML Browser Application, которая позволяет создавать .NET приложения работающие прямо в браузере. Эдакий Silverligth, только с поддержкой всех функций .NET Framework.

XBAP приложение является полностью клиентским, т.е. взаимодействие с сервером необязательно. Соотвественно можно разместить приложение на linux хостинге.

Для этого делаем обычный deploy в папку и загружаем её на сервер. На сервере нужно создать в этой папке файл .htaccess с таким содержимым:

AddType «application/manifest» .manifest
AddType «application/x-ms-xbap» .xbap
AddType «application/octet-stream» .deploy
AddType «application/x-ms-application» .application
AddType «application/vnd.ms-xpsdocument» .xps
AddType «application/xaml+xml» .xaml

Теперь Mozilla будет корректно распознавать xbap файлы и загружать приложение.

Полностью