Pull to refresh
2
0
Павел Промин @pavelpromin

User

Send message

Принципы написания приложений на ExtJS 2.x/3.x

Reading time6 min
Views9.2K
Каркас для кроссбраузерной разработки ExtJS сейчас очень популярен. Это поистине грандиозный (и монструозный) набор компонентов, классов, функций, хелперов и т. п., которые могут как облегчить жизнь разработчика, так и усложнить ее. Говоря вообще, ExtJS (до 4-й версии) не устанавливает никаких «правил игры» для конечного разработчика: формально нет никаких требований и рекомендаций по проектированию и написанию надежных приложений.
Удивительно, что до сих пор качество пособий и туториалов для новичков ExtJS, мягко говоря, оставляет желать лучшего. Как и стандартная справка по ExtJS API, впрочем [1].
Цель данной статьи — показать, как писать приложения на базе ExtJS так, чтобы человеку, который будет поддерживать ваш код, не хотелось рвать волосы, а вам просто не было стыдно. А если серьезно, то в данной статье я предложу простой и короткий набор правил проектирования и написания приложений применительно к данному фреймворку.
Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments22

Почтовые рассылки: письменная кухня

Reading time12 min
Views8.3K


Каждый день я получаю различные рассылки от многих сервисов, и по роду деятельности с удовольствием их критикую. Но на этот раз мне пришло письмо от PayPal c рекламой магазинов-партнеров, которое меня очень приятно удивило. Это натолкнуло меня на мысль «приготовить» подобную рассылку и поделиться этим с вами.
Читать дальше →
Total votes 63: ↑59 and ↓4+55
Comments51

Интерактивная диаграмма на CSS и HTML

Reading time1 min
Views19K

:hover


В очередной раз просматривая плагины для реализации всплывающих подсказок, наткнулся на замечательный пост.
Ничего сверхсложного и сверхсекретного в реализации не было, но она мне понравилась своей простотой и отсутствием javascript'a.
Обмозговав возможное применение, решил что на самой подсказке тоже могут быть подсказки, на подсказках второго уровня, могут быть подсказки 3его уровня и т.д. Можно сделать интерактивную блок-схему!
image
Читать дальше →
Total votes 133: ↑127 and ↓6+121
Comments32

Автоматические хосты для веб-разработки (FreeBSD)

Reading time2 min
Views6K


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

Как вариант, можно скриптами обновлять конфиги apache и файл hosts.

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

Итак, создадим зону ".dev" (используя демон named и apache под FreeBSD)
Читать дальше →
Total votes 45: ↑38 and ↓7+31
Comments21

Почтовые рассылки: Долой костыли!

Reading time2 min
Views4.7K
Привет, хабраверстальщикам!

После долгого затишься спешу поделиться новыми наблюдениями относительно костылей при верстке, а так же приятных изменениях в этом плане. Данная статья является ремастерингом прошлого топика о костылях при верстке рассылок. Почему ремастеринг и зачем? Все просто! Глубокоуважаемые «Демоны»(почтовые клиенты и веб-интерфейсы) изменились визуально и пофиксили свои баги. Что ж, начнем!
Читать дальше →
Total votes 54: ↑48 and ↓6+42
Comments28

Визуализация связей внутри класса с помощью GraphViz

Reading time2 min
Views7.3K
Прочитав книжку Р. Мартина «Чистый код», я исполнился решимостью и принялся за рефакторинг своего старого, большого и грязного проекта.

И захотелось мне посмотреть, как в одном из самых простых классов связаны между собой методы и поля. PhpCallGraph, быстро нагугленный, наладить не удалось (какие-то проблемы с xdebug), и к тому же, судя по примерам, он показывает связи во всём проекте, трассируя его, а мне нужно было исследовать один класс.

Я решил написать собственное решение, и вот что получилось.
Красивые картинки и не только
Total votes 41: ↑39 and ↓2+37
Comments19

Backbone.js для «чайников»

Reading time13 min
Views288K
Backbone.js для чайников
Как то поздним вечерком мне пришла мысль изучить Backbone.js и привязать его к уже написанному на jQuery сервису. Сервис уже серьёзно расширился и меня достало это нагромождение обработчиков кликов, запросов и логики. Поэтому, я как усердный школьник полез в официальную документацию. Но либо я тупой, либо мой английский меня подкачал, либо то и другое вместе, но я не черта не понял. Я прочитал уже второй раз, внимательно, и для особо одарённых мест использовал google translate. Прочитал также и пример ToDo List. Всё показалось понятно, ровно до той поры пока я не стал писать. После чего я взял всё что нашел по этой библиотеке, как на английском так и переводы. Прочтя кипу документации я решил, что сейчас вроде всё понял. Я напрягся, но… Не вышел каменный цветок у мастера Данилы, т.е. вышло, но это явно был не цветок, и камень как то неправильно пах. Тогда, как прилежный ученик, я решил написать «Hello, KittyWorld» с нуля. Попутно комментируя и сохраняя шаги в hg, у меня получилось введение в backbone.js framework для таких как я, особо одарённых.
Данные 7 шагов с комментариями.
Total votes 113: ↑110 and ↓3+107
Comments51

Инструменты командной строки для веб-разработчика

Reading time3 min
Views39K
Жизнь веб-разработчика омрачена сложностями. Особенно неприятно, когда источник этих сложностей неизвестен. То ли это проблема с отправкой запроса, то ли с ответом, то ли со сторонней библиотекой, то ли внешний API глючит? Существует куча различных прилад, способных упростить нам жизнь. Вот некоторые инструменты командной строки, которые лично я считаю бесценными.
Читать дальше →
Total votes 227: ↑217 and ↓10+207
Comments30

Автоматизация магазина или как конкурировать с супермаркетами

Reading time4 min
Views93K
image
В один прекрасный день появилась идея автоматизации своего небольшого магазина. Причин было несколько: во-первых, продавцы всю смену стоят на ногах, что не комфортно; во-вторых, когда человек ходит сам, он не может обвинить продавца в качестве принесенного товара, тут он сам смотрит, выбирает и кладет в корзину, соответственно может положить не только то, за чем пришел; в-третьих, нужно было избавиться от больших очередей.
В этом посте постараюсь поделиться опытом организации.
Читать дальше →
Total votes 181: ↑179 and ↓2+177
Comments195

Личные данные в результатах поиска

Reading time4 min
Views11K
Мария Моева и Андрей Липатцев, команда качества поиска Google

В последнее время широко обсуждаются случаи появления конфиденциальной информации в результатах поиска, поэтому мы решили напомнить веб-мастерам о том, как индексируется контент и как обеспечить индексацию только предназначенных для этого страниц. Одновременно мы хотели бы еще раз рассказать пользователям о мерах, которые следует принимать при обнаружении своих конфиденциальных данных в Интернете.
Читать дальше →
Total votes 44: ↑38 and ↓6+32
Comments16

Chosen: сделай выпадающие списки более дружественными

Reading time1 min
Views54K
Плагин Chosen создан для оформления красивых и удобных выпадающих списков с помощью jQuery и Prototype. Для установки плагина достаточно просто скачать файлы и прописать одну строчку:

$(".chzn-select").chosen()
(версия для jQuery)

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

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

Некоторые форки:
Chosen для MooTools
Модуль Chosen для Drupal 7
Total votes 264: ↑250 and ↓14+236
Comments57

Использование TileMill

Reading time3 min
Views4K


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

В этом посте будут рассмотрены:
  • Подготовка данных, перепроецирование в Web Mercator
  • Повышение скорости обработки shape файлов
  • Создание проекта и импорт данных в студию
  • Создание точечного слоя землетрясений
  • Стандартные селекторы и атрибутивная таблица

Интересно? Приглашаю под кат.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments1

re2c — компилятор регулярных выражений

Reading time3 min
Views8.3K
Задача выделения из потока символов определенных лексем является весьма распространенной. Часто ее решают с помощью лексических анализаторов, конфигурируемых регулярными выражениями. Многие анализаторы построены по принципу генерации программного кода, который в свою очередь реализует логику регулярных выражений. Фактически, это компиляция языка регулярных выражений в код языка программирования.

Например, flex — это один из таких анализаторов. Старый, но проверенный годами.

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

Но вчера наткнулся на интересный проект — re2c. По сути, на этой штуке можно писать лексические анализаторы прямо на коленке за несколько минут.

Подробности
Total votes 39: ↑37 and ↓2+35
Comments18

Perl и GUI. Взаимодействие приложений

Reading time3 min
Views1.7K
Иногда возникает необходимость сделать обмен данными между приложениями (например выполнить какую-либо команду в Internet Explorer, Excel).
Платформа Microsoft Windows предоставляет нам несколько механизмов, это и OLE, COM и… DDE.

DDE был введен в 1987 году, позже была сетевая реализация NetDDE, и используется до сих пор.
Работать с DDE очень просто, не требуется подключать с CPAN дополнительные модули, все есть в tkkit.

Рассмотрим на примере двух приложений приёмника и отправителя.

image

Описание и код под хабракатом.

Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments17

ООО «Снежинка» — Часть 1. Пошаговое руководство по регистрации.

Reading time7 min
Views3.5K

Прелюдия


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

После обсуждения с партнером будущего бизнеса и выбора движка для интернет-магазина, встал вопрос о регистрации фирмы. Каталог еще не наполнен, сайт поисковые системы еще в лицо не видели, поэтому особенной спешки в регистрации не было, но и тянуть не хотелось. Все же первые клиенты могут прийти и из оффлайна, а мы даже счет выставить не сможем.
Читать дальше →
Total votes 176: ↑170 and ↓6+164
Comments82

Asterisk – система компьютерной телефонии уровня предприятия

Reading time9 min
Views265K
Я хочу рассказать о свободном решении для компьютерной телефонии от компании Digium. Asterisk – это ATC созданная хакерами (в первоначальном смысле этого слова), а точнее, это супер конвергентная платформа компьютерной телефонии, распространяемая по лицензии GNU GPL, изначально разрабатываемая Марком Спенсером (Mark Spenser), позже ставшим президентом и техническим директором компании Digium. Благодаря коммерческой поддержке Его компании и лицензии GNU GPL Asterisk активно развивается и поддерживается тысячами людей со всей планеты.

Дaлее
Total votes 111: ↑108 and ↓3+105
Comments67

30 высококачественных комплектов иконок

Reading time1 min
Views2.6K
Доброго времени суток, хабралюди! Сегодня я хочу представить вашему вниманию 30 комплектов иконок. Несмотря на то, что все иконки выполнены на очень высоком уровне, распространяются они абсолютно бесплатно. Превью для каждого пака внутри.
Читать дальше →
Total votes 146: ↑131 and ↓15+116
Comments38

FL Studio – путь джедая (Часть 1).

Reading time6 min
Views83K
Как-то раз вернувшись домой, наслушавшись всевозможной электронной музыки, которая оказалась на плеере, ты решил, что пора бы тоже подарить этому миру пару хитов. Естественно перед тем, как покупать дорогостоящее оборудование и с головой окунаться в сферу профессионального музыкального продюссирования, хочется просто, забавы ради, попробовать и «пощупать», а что же это такое создание электронной музыки на компьютере…

В данном цикле статей я хочу осветить процесс создания музыки в программе FL Studio.

Всех кому интересно, как порадовать друзей и знакомых новым произведением Вашего искусства прошу под кат.
Поехали!
Total votes 117: ↑108 and ↓9+99
Comments119

Системное администрирование. Начало

Reading time6 min
Views219K
Существует много пособий по настройке программ (Операционок, сервисов, сайтов и тд), но редко можно встретить мануал по организационным вопросам связанным с системным администрированием. Сразу скажу, опыт работы у меня достаточный. Рассматриваться предмет будет на моем личном примере работы, сразу скажу что любые аргументированные дополнения, и исправления приветствуются. Также поясню для господ минусующих: «Не нравится? Сделай лучше!», и обязательно пришли ссылку, почитаю с большим удовольствием.
Начнем
Total votes 196: ↑183 and ↓13+170
Comments172

Отправка комментариев пользователей сайта вам на Jabbеr

Reading time1 min
Views5.9K
Во время шумихи с аськой и предложениями перехода на jabber я решил разобраться: что же такое джаббер и как он мне может пригодиться кроме прямого общения.

Применение нашлось само собой – хочется получать комментарии с сайта себе в мессенжер. Этот подход оказался очень удобным и простым в реализации.

Поскольку я только начал разбираться с джаббером решил использовать готовую библиотеку для php (так как мой сайт работает на нем).
Итак, на сайте протокола xmpp (jabber) xmpp.org/software/libraries.shtml я скачал баблиотеку xmpphp (она мне понравилось больше всех своей простотой в понимании) и закачал ее на свой хост.

В функцию добавления комментария на сайте я добавил строки:

include ‘XMPPHP/XMPP.php’;
$conn = new XMPPHP_XMPP('джаберовский сервер', 5222, 'логин', 'пароль', 'xmpphp', 'jabber.ru', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO);
try
{
	$conn->connect();
	$conn->processUntil('session_start');
	$conn->presence();
	$conn->message('ваш джаббер', 'текст сообщения');
	$conn->disconnect();
}
catch(XMPPHP_Exception $e)
{
	die($e->getMessage());
}


Где: джабберовский сервер — сервер через который отправляются сообщения (я указал тот же на который и приходят сообщения).
Внимание! Текст сообщения должен быть с кодировке UTF-8.

Вот собственно и все…

P.S. Спасибо за приглашение на хабр! Решил перенести свою статью из песочницы в блог.
Total votes 171: ↑158 and ↓13+145
Comments69

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity