Pull to refresh
0
0
digger @digger

Могу копать

Send message

Simpla — движок для великолепных интернет-магазинов

Reading time7 min
Views14K


Последние 5 лет я создавал интернет-магазины. Много магазинов. Хороших и разных. Я был сам себе программистом, верстальщиком, дизайнером и менеджером.

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

Обычная история


Думаю, многим знакома ситуация, когда после создания сайта, на протяжении нескольких месяцев вам звонят с вопросом «как вставить картинку на сайт» сначала заказчик, потом его секретарша, потом новая секретарша, потом менеджер по продажам (секретарша в отпуске). А потом звонит их новый «компьютерщик», чтобы узнать какой файл ковырять, чтобы вставить красную бегущую строку справа от логотипа. И так далее, и тому подобное.

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

Range, TextRange и Selection

Reading time13 min
Views78K
Многим JavaScript-разработчикам приходилось сталкиваться с объектами, перечисленными в заголовке, например, при решении следующих задач:
— создание визуальных редакторов (wysiwyg),
— поиск в окне браузера,
— выставление BB-кода,
и т.д.

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

В целом пост носит справочный характер, и, надеюсь, кому-то упростит разработку.

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

Простое сравнение изображений с помощью php

Reading time3 min
Views27K
Алгоритм возможно не новый, и не является идеалом, но, на удивление, работает. Никаких графов и корелляции.

Для начала, стоит отметить, что сравнение очень приблизительно (по крайней мере, на данном этапе), временами две совершенно разные фотографии оказываются похожими процентов на 60%, так же не учитываются жесткие модификации (повороты, инверсия, обрезка) – для этого нужно доводить и доводить. Лично для меня самым главным оказались два параметра: скорость, независимость от разрешения изображения и возможность сравнивать «изображения» прямо в базе данных.
Читать дальше →

Атака на беспроводные сети. Чуть меньше теории и чуть больше практики

Reading time6 min
Views316K
image
В общих чертах теорию и процесс атаки хорошо описал юзер n3m0 в своих статьях «Атаки на беспроводные сети», поэтому я не буду заострять внимание на многих теоретических моментах.
Я же хочу описать самые простейшие способы обхода защиты, но более подробно.
Читать дальше →

Пишем плагины

Reading time4 min
Views755
Как всегда началось все с того, что мне не подошли готовые решения из хранилища плагинов для symfony. Точнее сказать — готовые решения просто не работали, но это уже совсем другая история.

Сегодня я хотел бы поделиться своим опытом и знаниями о том, как писать плагины для symfony. И так как я буду описывать все то, что надо делать, на своем примере, побочным эффектом будет дополнительная информация о том, как создавать виджеты и валидаторы для форм (sfForm).

И так ниже вы узнаете:
  • Как создавать плагины
  • Как писать виджеты для sfForm
  • Как писать валидаторы к этим виджетам
Читать дальше →

PHP Speedy — наше все

Reading time2 min
Views1K
PHP SpeedyЧто такое PHP Speedy? Это набор php-скриптов, которые позволяют объединять и сжимать CSS- и JS-файлы для веб-сайта, написанного на PHP. Изначально разрабатывался как приложение к Wordpress, но сейчас получил более широкое распространение.

PHP Speedy был выбран в качестве основы для начала разработки Web Optimizer — веб-приложения, автоматизирующего клиентскую оптимизацию. Предполагается, что такое приложение можно будет максимально быстро и максимально легко развернуть на любой платформе, а оно уже само позаботится о всех действиях, связанных со скоростью загрузки страницы.

Как показала практика, клиентская оптимизация интересует большой круг людей. Но очень многих останавливает то, что нужны специальные знания для освоения этой области. Web Optimizer создается как раз, чтобы убрать этот барьер (и как наш ответ Чемберлену www.getrpo.com :).
Читать дальше →

Полный AJAX. Теория и Примеры. Фишки и Фичи

Reading time8 min
Views34K
По многочисленным просьбам начинающих (и не только) AJAX разработчиков, решил выделить часть своего времени для описания некоторых хитростей и приемов, которыми пользуюсь при построении сложных, динамических веб-приложений. Статья представляет из себя смесь теоретических выкладок и практических примеров.

Наибольшие трудности при построении сайтов c применением AJAX возникают при реализации механизма AHAH (Asynchronous HTML and HTTP). Особенно выполнение на лету подгружаемых Javascript-ов. Также есть куча дополнительного «гемороя» при разработке AJAX сайтов и веб-приложений. Вы можете ознакомится с детальным описанием некоторых существующих проблем. Из-за указанных сложностей, многие разработчики отказываются от более насыщенного внедрения AJAX.

Однако, мало кто знает, что перечисленные проблемы можно решить.
Читать дальше →

Безопасный код в Друпале: Работа с базой данных

Reading time5 min
Views5.4K


(ч1. Подделка межсайтовых запросов; ч3. Работа с пользовательским вводом)

Друпал предоставляет свои собственные средства для доступа к базе данных.

Во-первых, это позволяет не зависеть от используемого типа СУБД. К слову, на сегодняшний момент, полностью функционирует прослойка для MySQL и PostgreeSQL. В седьмом Друпале этот список будет расширен Ораклом и SQLite.

Во-вторых же, прослойка БД позволяет защититься от SQL инъекций.
Читать дальше →

Прогрессивные технологии, как способ выжать из сервера максимум

Reading time5 min
Views12K

Вступление


Просто красивый rrdtool =)
Забавно, но когда программист разрабатывает какой-либо продукт, он редко задумывается над вопросом могут ли на одну кнопку в один момент времени нажать одновременно 2000 человек. А зря. Оказывается могут. Как ни странно но большинство движков, написанных такими программистами, очень плохо ведут себя под большими нагрузками. Кто бы подумал, а всего один лишний INSERT, не проставленный index, или кривая рекурсивная функция могут поднять load averages чуть ли не на порядок.

В этой статье я опишу как мы, разработчики проекта, сумели выжать из одного сервера с Pentium 4 HT / 512Mb RAM, максимум, держа одновременно 700+ пользователей на форуме и 120,000 на трекере. Да, проект этот — торрент трекер. Предлагаю сразу оставить в стороне разговоры о копирайтах и правах, мне это не интересно, что действительно интересно — это HighLoad.
читать дальше

Знакомство с jabber ботами

Reading time4 min
Views11K
imageДлительное время я использовал джаббер только в роли меседжера, однако несколько недель назад мне попался адрес джаббер бота, который был словарем, что представилось мне крайне удобным в использовании. В скором времени мой ростер пополнился десятком удобных ботов, и в поиске новых я, в том числе, исследовал хабр, но не нашел ничего. Я решил заполнить эту нишу и создать сводный список ботов, известных мне, которые, по-моему мнению, могут заинтересовать.
Читать дальше →

FreeBSD 7.1 — i386 -> amd64 migration via SSH only :)

Reading time3 min
Views4K
Есть сервер, который находится в датацентре в г. Москва. Есть я, который находится в уездном городе N™ :-) Единственный доступ к серверу — SSH и Remote PDU для перезагрузки.

Появилась нужда перейти на FreeBSD amd64, за одно обновив ПО и пересобрав ядро.

Что было до:
FreeBSD hostname FreeBSD 7.1-RELEASE i386.

Что стало после:
FreeBSD hostname FreeBSD 7.1-RELEASE amd64.

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

jQuery в Eclipse PDT, WTP/ Zend Studio for Eclipse

Reading time1 min
Views3.4K
Захотелось мне тут для JavaScript perspective в любимом Eclipse заиметь автодополнение функций для jQuery с наличием полной документации. Порыскав в сети, нашёл только jQueryWTP, который даже ставить не хотелось из-за негативных отзывов, и устаревшей версии.
Потому пришлось сделать самостоятельно, и вот результат:

Требования: Eclipse, Web Tools Platform / Zend Studio for Eclipse / Любой редактор с поддержкой JSDoc

P.S. Конечно, есть и другие методы подключения jQuery, например использование NetBeans или плагина Aptana. Так уж получилось, что был выбран именно этот метод :)

хочу!

PHP + Twitter

Reading time2 min
Views2.3K
Twitter сейчас бурно развивается и на то были причины, есть в нем хорошие функции, которые можно использовать и в своих проектах.

На Хабре есть фишка связанная с ним, если в профиле ввести свой Twit-аккаунт, то последнее сообщение будет стоять у вас в статусе — мелочь, а приятно, не нужно делать одно и тоже дважды.

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

В техническом исполнении все оказалось не сложно.
Читать дальше →

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

Reading time1 min
Views6K
Во время шумихи с аськой и предложениями перехода на 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. Спасибо за приглашение на хабр! Решил перенести свою статью из песочницы в блог.

Организуем релевантный поиск по разнородным данным с помощью Sphinx

Reading time10 min
Views22K
В одном из текущих проектов возникла задача поиска по данным разного типа, которая была успешно решена с помощью зарекомендовавшей себя поисковой машины Sphinx, но обо всем по порядку. 

Постановка задачи


В проекте есть на данный момент 2 зоны:
  1. географическая зона, реализованная на базе Google Maps, которая отображает нанесенные пользователями на карту географические объекты (маркеры, маршруты и области);
  2. информационная зона, которая представляет собой большой иерархически организованный каталог, содержащий информационные материалы.
Необходимо было решить задачу одновременного текстового поиска по 3-м типам объектов: географическим объектам, категориям информационной зоны и материалам информационной зоны — c возможностью фильтрации по дате публикации объектов и категориям, к которым они относятся.
Решаем задачу

Установка и настройка SVN (сервер+клиент)

Reading time6 min
Views316K
По просьбам трудящихся, а так же учитывая, что есть статья по установке SVN (правда +Trac) под Linux, решил написать краткое описание установки и настройки SVN для Windows.
Ничего нового для людей, хорошо знающих и работающих с SVN, здесь не будет. Цель статьи — помочь некоторому проценту новичков, пребывающих на Хабре, таки осилить изучение этой системы контроля версий.
Читать дальше →

Плагин tagSphere

Reading time2 min
Views2.3K
Думаю, многие из вас видели плагин для wordpress. Симпатичный шарик привлек мое внимание и мне захотелось его поковырять...
Разочарованию не было предела ― он оказался на флэше(против флэша ничего не имею). Ладно, флэш так флэш нагуглил исходники, распаковал архивчик, а там… А там море файлов с кодом, файлы для настройки с парой десятков опций, несимпатичный фалик для вывода всего этого, для генерации xml'ки.
С этим я мириться уже никак не хотел и решил написать тоже самое, но на javascript. Привык я работать с jQuery поэтому решил сделать в качестве плагина для него.
Читать дальше →

Почему я люблю Drupal

Reading time3 min
Views3.9K
топик-ответ на противоположный взгляд

Предыстория


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

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

Почему я не люблю Drupal

Reading time5 min
Views12K
  • Сложен в изучении
  • Высокая нагрузка на БД
  • Безграмотная структура
  • Отсутствие ООП
  • Странный кэш
  • Несовместимость модулей
  • Трудоёмкая кастомизация
В принципе дальше можно не читать, так как будет то же самое, но подробно.
И всё-таки читать то же самое, но более подробно

Information

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