Pull to refresh
7
0
Tairov @ArtInt

User

Send message

О «достаточно хорошем» ПО

Reading time3 min
Views2.4K
Сегодня на ежедневном Stand-up'е я произнёс перед командой очень проникновенную речь о том, что мы пишем софт для людей и никого не интересует, насколько красиво код будет выглядеть изнутри, если пользователю будет неудобно с ним работать.

Ещё я говорил о том, что нельзя бесконечно полировать один и тот же кусок кода, ухватившись за него в середине проекта, что основную ценность продукта представляют бизнес фичи, а не код, и что движение вперёд невозможно, если застрять на месте и заниматься перфекционизмом.

И, конечно же, я сразу же вспомнил концепцию о достаточно хорошем (good enough) ПО. Итак, вот её основной постулат: мы не стремимся сделать идеально, мы не пишем как попало, мы делаем достаточно хороший продукт.
Читать дальше →
Total votes 94: ↑85 and ↓9+76
Comments107

jQuery плагин для получения данных формы + ajax аплоадер файлов

Reading time30 min
Views19K
imageДоброго времени суток, уважаемое Хабросообщество! Не пытаясь скрыть легкое волнение, публикую свой первый пост, темой которого стал мой скромный jQuery-велосипед для быстрого и безболезненного сбора данных, введенных пользователем на странице (сразу небольшая оговорка для тех, кто закричит — «ату его! Зачем еще один подобный плагин?», отвечу: во-первых — а быть может именно это кто-то из хаброчитателей и искал, во-вторых — для саморазвития, в-третьх: для собственного удобства и безболезненного использования в своих програмных продуктах).

Итак, помимо, собственно моего небольшого плагина, нам понадобится сам jQuery последней версии, а так же небольшой плагин к нему, реализующий преобразование объектов\массивов в json-строку, для того, чтобы полученные данные можно было быстренько передавать на сервер.
updated

updated 2 — добавлена мультизагрузка!
Смотрим далее
Total votes 71: ↑66 and ↓5+61
Comments98

Движок интернет-магазина Simpla 1.1

Reading time2 min
Views6.7K
image Благодаря отзывчивым пользователям и вашим конструктивным комментариям Скрипт интернет-магазина Simpla стала еще лучше.

Сегодня вышла новая версия Simpla 1.1, и в этот торжественный момент я хотел бы поблагодарить вас, а так же своих коллег boriss (верстальщик) и timokhin (программист) за неоценимый вклад в развитие этого скромного продукта.

И еще спасибо Аннне Хиддекель за красочные иллюстрации к моим постам (и за оформление компакт-диска, который скоро выйдет, только тссс).

Что же нового появилось в этой версии
Total votes 25: ↑14 and ↓11+3
Comments46

cogear — релиз 1.0

Reading time2 min
Views922
Доброго времени суток, %username%.
В начале лета был опубликован анонс системы управления сайтами cogear.

Особенности движка:

  • Работает на фреймворке CodeIgniter.
  • Модульная архитектура. Установка/удаление модулей в один клик.
  • Широкий спектр применения системы. Дистрибутив предоставляет возможность создать сообщество с многопользовательскими блогами, но благодаря расширяемой архитектуре возможностей трансформации движка существует великое множество.
  • Гибкая система хуков. Позволяет модифицировать любые контроллеры и модели, не затрагивая их код.
  • Открытый исходный код.
  • Интернационализация.
  • Автоматическая загрузка классов/моделей.
  • Оптимизация скорости загрузки (объединение файлов CSS и JavaScript).
  • Кеширование с поддержкой тегов (работает с файловой системой и Memcached).
  • Возможность подгружать стили и скрипты для определенных браузеров (прощай IE6).
  • Собственный шаблонизатор, дающий возможность работать и с PHP-Native.
  • Подробная документация, в том числе и в PDF.

Информация, скриншоты, трафик
Total votes 83: ↑69 and ↓14+55
Comments151

Nested Sets + MySQL TRIGGER

Reading time7 min
Views9.8K

Задача


Задача такая же как и в предыдущей статье, только применимо к MySQL.

Грабли


Хорошая новость ребята! В MySQL нет проблемы с рекурсивными триггерами! Разработчики MySQL просто тупо лочат изменяемую таблицу даже на уровне триггера, вот редиски. Но, собственно, нас может остановить только отключение электричества.
Есть небольшая лазейка, с… объединенными таблицами. Хотя я не нашел в документации подтверждения того, что это так специально было задумано, но и отрицания тоже не было. Правда есть вероятность того, что эту лазейку могут прикрыть, хотя я не вижу в этом смысла.
Увы, механизм триггеров в MySQL новый и довольно сырой, что накладывает некоторые ограничения на его использование, но все же его достаточно для решения нашей задачи.
Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments47

Nested Sets + PostgreSQL TRIGGER

Reading time11 min
Views12K

Задача

Как удобно делать выборки из деревьев типа Nested Sets, и как не удобно им управлять. Как удобноуправлять деревьями типа id->parent_id, но как не удобно и накладно использовать рекурсии при выборках. Понятно, что прииспользовании модулей для управления деревьями часть проблемы снимается, но при этом процесс работы с базой данных несовсем прозрачен т.е. для изменения данных мы используем одни методы, для изменения расположения узла в дереве — другие,плюс еще транзакции не помешали бы. Эту нестыковку можно решить двумя способами:
  • Использовать для работы с таблицей хранимые процедуры, в которой объединить оба метода обновления (вставки, удаления);
  • Использовать триггеры, для исключения вообще каких-либо нестандартных методов работы;
Первый способ неудобен тем, что при изменении структуры таблицы, нам потребуется еще изменять процедуру, а так же бытьмаксимально внимательным, при работе с таблицей, что бы все изменения данных проходили через наши процедуры, а не прямымизапросами. Второй способ несколько утяжеляет тяблицу введением дополнительных булевых полей, а так же приходится делатьнекоторые «финты ушами», хотя позволяет добиться максимальной прозрачности работы.Первый способ — в топку, тем более где-то интернетах уже есть подобное решение.База данных — PostgreSQL, как актуальная мне на данный момент, дополнения для MySQL напишу позже.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments13

10 вещей которые необходимо сделать после установки WordPress (шпаргалка начинающим)

Reading time4 min
Views14K
10-veshey-posle
5-минутная инсталляция WordPress это здорово – так легко создать свой блог! Однако, после установки WordPress, вам необходимо будет сделать еще несколько шагов, чтобы добиться от вашего блога как можно лучшего результата.

Нижеследующая информация может быть использована как памятка или шпаргалка при установке движка.
Читать дальше →
Total votes 97: ↑64 and ↓33+31
Comments61

Eclipse PDT — Zend for Eclipse своими руками

Reading time2 min
Views7.5K
С выхода в свет последней версии Zend прошло уже немало времени, а на Хабре регулярно проскакивали дискуссии о том, что же лучше — Zend for Eclipse или Eclipse PDT, в которых я неизменно принимал участие. Нынче я позволю себе потревожить публику своим взглядом на предмет, расскажу про всяческие плагины и вы сами сможете решить, что вам нужнее.
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments56

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. Так уж получилось, что был выбран именно этот метод :)

хочу!
Total votes 45: ↑43 and ↓2+41
Comments27

jQuery Tools v1.0.1

Reading time1 min
Views3.9K
jQuery Tools Logo
jQuery Tools v1.0.1 — это инструмент/библиотека представляет собой файл весом в 5,8 кб включающий в себя наиболее важные компоненты для вебдванольных сайтов, а именно: табы, всплывающие подсказки, плавные переходы, прокрутки, всплывающие окна и т.д.

Не буду тянуть резину, лучше, как говориться, один раз увидеть, чем сто раз услышать!
Переходим по ссылке и смотрим более 50 (!) демок:

Несколько понравившихся мне демонстраций. Очень рекомендую!
Маскируем фоновое изображение;
AJAX-табы с поддержкой истории переходов;
Неколько всплывающих окошек на одной странице.
Total votes 158: ↑152 and ↓6+146
Comments85

Как правильно использовать исключения

Reading time3 min
Views15K
Жаль, если ваше изучение концепции исключений закончится чтением соответствующего раздела официальной документации по вашему языку.

Изучив синтаксис конструкции try{...}catch(Exception $e){...}, узнав о возможности создавать собственные классы исключений, наследуя их от класса Exception и поверхностно осознав мощь оказавшегося в ваших руках механизма, дальше вы можете пойти по одному из двух путей:
  • Начать тут же использовать исключения. Скажем, прикручивать их к системе, в которой они никогда не использовались. Или приколачивать их к проекту, в котором ООП и не пахнет. Или, что самое ужасное, пытаться использовать их повсеместно, особенно там, где это не нужно.
  • Попытаться понять, где их применять, как делать это правильно, и зачем они нужны.

Читать дальше →
Total votes 122: ↑109 and ↓13+96
Comments98

Создаем свой SVN сервер: 3$ и 30 минут

Reading time4 min
Views14K
Многих хабрачитателей иногда волнует вопрос хостинга SVN. В интернете полно вариантов захостить SVN репозиторий, с ценой порядка 10-15уе в месяц, но смущает одно: хостинг репозитория — намного более ответственное дело, нежели хостинг сайта. В коде — ваши «сверхценные идеи», от аптайма сервера и надежности бэкапов напрямую зависит работа вашего бизнеса. Некоторые выбирают все же хостить SVN в серьёзных компаниях. Хорошее сравнение по параметрам тут: http://www.svnhostingcomparison.com/, open-source кстати можно захостить в неплохом месте на букву G ;-).

Другие же, как и я, решают хостить SVN на своём VDS / Dedicated сервере. На этом вопросе я и остановлюсь, рассказав заодно немного о вариантах запуска/настройки svn сервера (в том числе относительно новых — шифрование/аутентификация SASL и хранение в FS). Выльеться все это вам в 3-4$/месяц, в полный контроль за бэкапами и доступом к серверу. Пожертвовать придется 30 минут драгоценного времени на настройку.

Целевая аудитория: начальный — средний уровень опыта работы с Linux.
PS. Я в курсе что FreeBSD is not Linux ;-)
Читать дальше →
Total votes 79: ↑73 and ↓6+67
Comments78

How to become a ZCE

Reading time3 min
Views9.9K
Наверное многие из вас сдавали тесты на таких ресурсах как Retratech или Specialist. А вы задумывались зачем? Чтобы отразить результат в своем резюме? Чтобы оценить свой уровень? Подобные ресурсы не предложат вам ничего, кроме некачественных вопросов и сомнительных достижений. Их цель — получение прибыли на печати ничего не стоящих в профессиональной среде сертификатов. Чтобы получить результат вам нужно
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments89

Умный экспорт из SVN при помощи TortoiseSVN

Reading time2 min
Views8.7K
Достаточно давно я столкнулся с проблемой, что в хорошей и правильной программе TortoiseSVN (по-русски «тортойс эС-Ви-эН»), нету такой необходимой и желанной вещи, как экспорт только тех файлов, которые были затронуты определенными ревизиями. Особенно начинаешь страдать, когда приходится перезаливать на сервер весь проект, куда входят достаточно увесистые библиотеки и фреймворки. Можно, конечно, не включать библиотеки в Subversion, но это уже тема для другой беседы.
И вот, совсем недавно, один очень хороший гуру и друг совершенно ненавязчиво рассказал мне, как изящно и красиво решить эту проблему.
Ну, а я перескажу все это дело вам
Total votes 19: ↑19 and ↓0+19
Comments40

Практический JS: балансировка на стороне клиента

Reading time1 min
Views1.8K
Примечание: ниже находится перевод статьи «Client Side Load Balancing for Web 2.0 Applications», в которой затрагиваются вопросы балансировки нагрузки между несколькими серверами и рассматривается решение, обеспечивающее балансировку такой нагрузки прямо на компьютере клиента.

Сервер обрабатывает HTTP (HyperText Transfer Protocol) запросы со стороны браузеров. Если вы введете в адресной строке URL, например, www.digital-web.com, то ваш компьютер отправит поисковый запрос для определения, какие именно сервера будут обрабатывать ваш запрос и пересылать данные. Техника обработки таких запросов для кластера веб-серверов называется балансировкой нагрузки.

Балансировка нагрузки для веб-приложений



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

  • Распределять нагрузку внутри кластера рабочих серверов.
  • Корректно обрабатывать отказ одного из рабочих серверов.
  • Весь кластер должен существовать для конечного пользователя как одна-единственная машина.


читать дальше на webo.in →
Total votes 25: ↑20 and ↓5+15
Comments12

Работа с фрилансерами. Из опыта сотрудничества с отечественными удаленщиками, часть 1. Проблемы

Reading time3 min
Views9.4K
Фрилансеры — один из самых доступных и частых способов закрыть фронт работ, который в компании выполняются нерегулярно. Либо в случае, если свои люди беспросветно заняты на других проектах, а нанимать новых нет смысла или времени. Я работаю с фрилансерами по обоим причинам. Хотя за последнее время потерянные сроки и нервы убедили, что время и смысл для поиска постоянных сотрудников лучше все-таки найти. А субподрядчиков использовать только для совсем уж нетипичных работ.

Читать дальше →
Total votes 56: ↑52 and ↓4+48
Comments243

Практический HTML: учимся любить формы

Reading time4 min
Views8.2K
Примечание: ниже находится перевод тезисов доклада «Learning to Love Forms» с конференции «WebVisions 2007» (автор Aaron Gustafson). Докладчик рассказывает о верстке форм, используя корректный и эффективный XHTML/CSS-код.

  • Формы — это необходимое зло. Людям свойственно усложнять формы, хотя они могут быть представлены весьма просто.
  • Рассматривайте верстку форм как создание обычного XHTML-кода. Но будьте готовы к несоответствиям со стороны браузеров и применению хаков.
  • Разбивайте сложные формы на несколько простых частей.
  • Старайтесь обеспечивать максимальную семантическую ценность кода.
  • Не усложняйте дизайн форм.


XHTML & CSS приемы



  1. Элемент FORM создает форму.
  2. Единственным обязательным его атрибутом является ACTION, и он всегда должен быть URI.
  3. По умолчанию METHOD выставляется в GET.
  4. Атрибут NAME устарел, используйте вместо него ID.
  5. Элемент FIELDSET используется для группировки связанных полей формы. Может быть вложенным.

Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments70

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Date of birth
Registered
Activity