пятница, 21 октября 2011 г.

Need help: phpStorm + PHPUnit

Есть такие составляющие
1. Сервер на FreeBSD с проектами, которые расшарены по самбе
2. Установленный PHPUnit 3.5.14
3. phpStorm с проиндексированными проектами. Работую через самбу

На данный момент я запускаю интеграционные тесты из консоли командой
phpunit

Что я хочу: настроить запуск текстов из IDE.
В чем проблема: phpUnit и php находятся на виртуальной машине. Тоесть, IDE не может к ним подключиться.

Есть у кого варианты решения кроме создания симлинков и добавления прав на чтение?
Читать далее

четверг, 20 октября 2011 г.

Как тренируют настоящих вебмастеров


Верстать сайты, сидя в противогазе - настоящий дзен.
Читать далее

среда, 19 октября 2011 г.

Эффективная работа с унаследованным кодом


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

Это вторая техническая книга с подобным переводом, которая попадает мне в руки. Первой была CMS Drupal 6. Но там все вообще было грустно, так как функции "кладут обратно правду" (return true).
Читать далее

понедельник, 17 октября 2011 г.

Magento Forms: Prototype Javascript Validation


Javascript валидация не является основной проверкой введенных данных пользователями, но ее использование необходимо для повышения юзабилити сайта. Кроме того, уменьшается количество запросов на сервер и повышается его производятельность, т.к. первичная валидация происходит у пользователя в браузере. У Magento есть своя удобная валидация, о которой сегодня и пойдет речь.

Javascript валидация в Magento

Для валидации форм в Magento используется файл form.js (js/varien/form.js), в котором находятся все необходимые Javascript функции. Во время валидации используется класс Validation, который является частью Javascript библиотеки Prototype. Его работа заключается в проверке определенных html-классов. Каждое имя класса говорит валидатору какой тип проверки можно использовать.

Учимся валидировать

Добавить Javascript валидацию для вашей формы очень просто. Во-первых, необходимо создать объект Form (form.js), который будет с ней работать.

Первый параметр в это примере является ID вашей формы. Второй параметр определяет стоит ли делать фокус на первом input-элементе. Если он определен как true, то курсор будет автоматически переведен на первый input-поле. Вы можете отключить данную функциональность, устанавливая второй параметр как false.

Теперь, когда вы создали Javascript объект, который определяет форму, необходимо добавить валидационные правила в ваши input-поля.





Классы 'required-entry' and 'validate-email' отвечают за валидацию полей. Если любое из них ее не пройдет, то форма не будет отправлена, а пользователь увидит специальные сообщения об ошибках.

Magento Javascript Validation Classes

Существует много валидационных классов. Я нашел вот такой список. Под классами описаны ошибки, которые показываются пользователи в случае фейла валидации. Для большей информации используйте Google, экспериментируйте с кодом или связывайтесь со мной.

validate-select
Please select an option

required-entry
This is a required field

validate-number
Please enter a valid number in this field

validate-digits
Please use numbers only in this field. please avoid spaces or other characters such as dots or commas

validate-alpha
Please use letters only (a-z or A-Z) in this field.

validate-code
Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.

validate-alphanum
Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed

validate-street
Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field

validate-phoneStrict
Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890

validate-phoneLax
Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890

validate-fax
Please enter a valid fax number. For example (123) 456-7890 or 123-456-7890

validate-date
Please enter a valid date

validate-email
Please enter a valid email address. For example johndoe@domain.com.

validate-emailSender
Please use only letters (a-z or A-Z), numbers (0-9) , underscore(_) or spaces in this field.

validate-password
Please enter 6 or more characters. Leading or trailing spaces will be ignored

validate-admin-password
Please enter 7 or more characters. Password should contain both numeric and alphabetic characters

validate-cpassword
Please make sure your passwords match

validate-url
Please enter a valid URL. http:// is required

validate-clean-url
Please enter a valid URL. For example http://www.example.com or www.example.com

validate-identifier
Please enter a valid Identifier. For example example-page, example-page.html or anotherlevel/example-page

validate-xml-identifier
Please enter a valid XML-identifier. For example something_1, block5, id-4

validate-ssn
Please enter a valid social security number. For example 123-45-6789

validate-zip
Please enter a valid zip code. For example 90602 or 90602-1234

validate-zip-international
Please enter a valid zip code

validate-date-au
Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006

validate-currency-dollar
Please enter a valid $ amount. For example $100.00

validate-one-required
Please select one of the above options.

validate-one-required-by-name
Please select one of the options.

validate-not-negative-number
Please enter a valid number in this field

validate-state
Please select State/Province

validate-new-password
Please enter 6 or more characters. Leading or trailing spaces will be ignored

validate-greater-than-zero
Please enter a number greater than 0 in this field

validate-zero-or-greater
Please enter a number 0 or greater in this field

validate-cc-number
Please enter a valid credit card number.

validate-cc-type
Credit card number doesn't match credit card type

validate-cc-type-select
Card type doesn't match credit card number

validate-cc-exp
Incorrect credit card expiration date

validate-cc-cvn
Please enter a valid credit card verification number.

validate-data
Please use only letters (a-z or A-Z), numbers (0-9) or underscore(_) in this field, first character should be a letter.

validate-css-length
Please input a valid CSS-length. For example 100px or 77pt or 20em or .5ex or 50%

validate-length
Maximum length exceeded

Читать далее

пятница, 14 октября 2011 г.

box.net дарит 50GB для пользователей iOS


box.net сегодня начал замечательную акцию - 50GB в подарок для пользователей iOS девайсов. Акция продлится 50 дней, место дарится навсегда! Я уже зарегистрировал там аккаунт, мне дали 5GB места, но после авторизации с iPhone количество свободного пространства на сервере было увеличено до 50GB. Пруфлик: http://blog.box.net/2011/10/12/were-giving-ios-users-insane-amounts-of-free-storage-box50gb/.
Читать далее

Реиндекс в Magento с помощью модели

Иногда необходимо сделать реиндекс в Magento прямо в PHP коде. Сделать это можно так:
$processCollection = Mage::getResourceModel('index/process_collection');
/** @var $process Mage_Index_Model_Process */
foreach ($processCollection as $process) {
    $process->reindexAll();
}

Читать далее

четверг, 13 октября 2011 г.

Конец испытательного срока


Ура! Я знал что этот момент когда-нибудь настанет. 3.5 месяца моего пребывания на испытательном сроке позади. Теперь я полноправный сотрудник Magento, Inc., an eBay Company (X.Commerce). Спасибо всем кто причастен к этому :)
Читать далее

Посещаемость



Некоторым известно, что я поддерживаю ресурс http://videobzor.com. Проект сугубо аматорский и не подразумевает пока что какой-либо финансовой выгоды. Сначала он ресурс проектировался как склад видеобзоров на различную тематику, но со временем все свелось к узконаправленному ресурсу с видео тест-драйвов. В начале сентября я забросил его, но посещаемость держалась на уровне 100-150 хосто в день. В начале сентября она упала ниже 100 хостов и я решил поднять ее, начал обновлять сайт. В результате, посещаемость начала расти. Пиком стало 200 хостов, после чего все выровнялось на свои стандартные ~150 хостов/день. Думаю менять дизайн и что-то в структуре. Есть пожелания?
Читать далее

среда, 12 октября 2011 г.

Отключение кеширования в Magento


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

Для его выключения нужно пройти в админку и зайти в System => Cache Management


У вас загрузится страничка с примерно таким содержанием


Выбираете все типы кеша и ставите им disable status


Для чистки кеша можно нажать на кнопку Flush Magento Cache или удалить (очистить) папку var/cache. Не волнуйтесь, в случае ее удаления, она снова создастся в файловой системе.

Внимание! Если вы запретили использования кеша в админке, то это не еще факт что он у вас не создается ;) Так что при каких-либо проблемах при девелопменте под Magento, не забывайте очищать кеш.

Читать далее

Online RSS

Я не представляю как можно пользоваться веб-приложением с таким ужасным интерфейсом


Есть такие? Просто мне плеваться хочется на него :) Есть альтернативы? Дома читаю только с помощью MobileRSS для iOS.
Читать далее

Online GTD. Связываем яблочные девайсы.

На прошлой работе долго искал GTD программу для Windows или веб-клиент + клиенты под iOS. В результате, ничего подходящего не нашел. И вот сегодня я нашел такой сервис: Flow.

Заходим на сайт и сразу видим они могут нам предложить


Внутри нас ожидает полноценное веб-приложение, которое позволяет привести в порядок все свои домашние/рабочие дела. Думаю, сервис подойдет для небольших команд (до 10 человек). Интерфейс очень напоминает Things, который в свою очедь потерял множество покупателей из-за отсутствия веб-версии.

Напоследок хочу предупредить, что сервис платный. Цена составляет 9.99$/месяц или 100$/год. Согласитесь, это не большая цена за порядок в голове.
Читать далее

PayPal начал отправлять платежи в Россию! Украина опять ...

А Украина под Угандой. Пруфлинк - http://www.paypal.com/cgi-bin/webscr?cmd=_display-approved-signup-countries-outside
Мне оно не особо нужно, но "за державу обидно" (с)
Читать далее