Программирование: Написание парных элементов.

Очень часто наблюдал за начинающими (неопытными) программистами, что при написании парных элементов, таких как скобки, начало и конец транзакций и остальных подобных конструкций, они пишут их «раздельно». Что значит «раздельно»? Это значит что сначала пишется «открывающий» элемент, после которого пишется некий блок кода, а после этого пишется «закрывающий» элемент.

Наверное, опытный читатель уже догадался зачем парные элементы необходимо писать сразу вместе и представил отрицательные стороны обратного написания, описанного выше. Но для меня всегда было проблемой объяснить программисту зачем же необходимо писать подобные вещи сразу. Аргументы вида «Потом забудешь» не помогали, потому что ответ был «Компилятор/интерпретатор не забудет и подскажет, когда до него дойдёт очередь». А сегодня произошла ситуация, которую я теперь могу смело ставить в пример при объяснении причин, из-за которых необходимо писать парные элементы сразу. Итак, ситуация:

Был некий блок кода, который появилась необходимость обернуть в выполнение в рамках транзакции. Проще простого. Программист сделал, потом сделал что то ещё, после чего начали проверять ряд задач. При проверке выяснилось, что почему то блок кода, который был обёрнут в транзакцию, не работает. Ошибок нет, при отладке все нормально, но в результате как будто и не выполнялся. Через пару часов со словами «О, я понял» было выяснено, что транзакция начиналась, но не заканчивалась, т.е. commit не вызывался нигде, потому что про него попросту забыли после большого куска кода, наверное, отвлекло что-то попутное. А если бы начало и завершение транзакции были написаны сразу вместе, подобной ситуации и не возникло бы.

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

Posted in Разработка ПО | Tagged , , , | 3 Comments

Сегодня я начал использование Twitter

Вот и меня захватила эта волна под названием Twitter. Так что с сегодняшнего дня меня, а так же компанию Вебдока можно наблюдать в твиттере. А RSS с последними твиттами меня и вебдоки отображается у меня в блоге :)

Posted in Вебдока, Из повседневного, Офис, События | Tagged , | 2 Comments

Серверный redirect при ajax-запросе. Что получит клиент?

Описание задачи.

Есть сайт, на котором в popup-окно (div) ajax’ом загружается некая форма для заполнения пользователем, которая после заполнения так же отправляется средствами ajax. По результатам отправки формы в popup-окно загружается либо результат добавления формы, либо форма с показом ошибок заполнения или добавления результата.
Так как сайт реализован на CMS Bitrix версии Бизнес, то, естественно, форму решено было сделать на основе модуля Веб-формы с использованием компонента добавления результата веб-формы в публичной части.

Интересный момент, возникший на этапе реализации.
Continue reading

Posted in Ajax, Apache, Битрикс, Разработка ПО | Tagged , , , , , , | 2 Comments

Internet Explorer 6: Быть или не быть?

Уже в который раз, приступая к разработке очередного проекта мы задаёмся вопросом «Internet Explorer 6 будем поддерживать в HTML-вёрстке сайта или нет?». И каждый раз получается так, что поддерживать надо. Потому что, спросив клиента, получаешь вполне логичный ответ «Надо!». Казалось бы, в чём проблема добавляй за это денег к итоговой стоимости проекта и все. Но в конечном итоге мы получаем тонну убитых нерв человека, реализующего очередную модную штучку в IE6 обходными путями и встречающего на своём пути не малое количество багов. Да не только багами, но и не возможностью реализовать те или иные вещи, которые появились в CSS3, в спецификациях клиентских скриптов и т.д.

После всего этого получается забавная вещь: Все хотят видеть новые и модные фичи на сайте, но при этом хотят и поддержку IE6. Отсюда вытекает несколько решений — это разделение отображения в IE6 и остальных браузерах, попытки какими-либо костылями сделать отображение и функционал во всех браузерах максимально одинаковым или ещё что-либо. При этом реализуя поддержку IE6 мы как бы говорим пользователю «Не бойся, продолжай и дальше пользоваться своей смотрелкой сайтов», но в то же время все мы хотим, чтобы пользователи перестали пользоваться этим браузером.

Так почему бы просто не перестать адаптировать проекты под него? Зашёл пользователь на сайт, получил не работающее приложение или же приветливое сообщение о том, что сайт не будет у него работать адекватно, со ссылками на скачивание других браузеров (кстати, есть специальный плагин для jQuery), пошёл и скачал. А не скачал — да и бог с ним, всё равно, когда десяток другой сайтов у него не откроется, он пойдёт и скачает другой браузер. В результате и пользователи довольны, и клиенты видят на своих проектах модные и современные элементы отображения и реализации, и разработчики тратят время не на реализацию тривиальной по логике вещи в IE6, а на разработку качественных приложений.

Так может быть уже начнём так поступать?

Posted in CSS, Браузеры, Разработка ПО | Tagged , , | 3 Comments

Вебдока развлекается

Интересный сервис мне сегодня показал один мой товарищ, на котором сделал следующее видео:

Try JibJab Sendables® eCards today!
Posted in Вебдока | Tagged , , | 2 Comments

Список реально полезных плагинов для jQuery

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

Posted in Ajax, Браузеры, Разработка ПО | Tagged , , , , | 1 Comment

Бросок кобры

Бросок кобры

Бросок кобры

Вчера потратил пару часов на просмотр данного видео, и нисколько не жалею!!!
Отличный приключенческий экшн в стиле железного человека. Качественные спец-эффекты и забавный юмор.
Очень советую посмотреть любителям данного жанра кино, а так же, наверное, и любителям комиксов.

Posted in Фильмы | Tagged , , | Leave a comment

Windows 7: Пустой рабочий стол

Включил я сегодня свой ноут с Windows 7 и обнаружил пустой рабочий стол. При этом работало и контекстное меню, и гаджеты отображались, а файлов никаких не было. Да и не только файлов, но и остальных служебных иконок.
Первым делом я конечно же решил попробовать откатить ОС к вчера, например. Но почему-то восстановление не сработало (это я так и не выяснил почему).
После чего я обнаружил одну интересную вещь в контекстном меню рабочего стола:
Вид > Отображать значки рабочего стола
Именно эта опция и была у меня отключена. Как оказалось, все настолько просто.

Posted in Windows | Tagged , , | 5 Comments

Apache: Перенаправление на домен с www

Задача по перенаправлению с домена вида yoursite.com на домен вида www.yoursite.com уже давно вошла в привычку многих владельцев сайтов и не раз была решена. Соответственно, и решения можно найти в Интернет’е за 2-4 минуты:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^yoursite\.com
RewriteRule ^(.*)$ http://www.yoursite.com/$1 [R=permanent,L]

Это нужно прописать в .htaccess сайта.
Но что делать если у Вашего ресурса не один адрес, а два?

Continue reading

Posted in Apache | Tagged , , | 4 Comments

Администрирование Linux: hTop

В процессе работы мне частенько приходится сталкиваться с администрированием и настройкой LAMP на физических и виртуальных серверах для отладки или реальных проектов нашей компании. И, как и все администраторы, для просмотра нагрузки на сервер я привык использовать утилиту top, выводящую список процессов, отсортированный по нагрузке на процессор. Конечно утилита очень удобная, и, возможно, полистав man, можно найти много фишек этой утилиты, но мне, как пользователю windows, не привычно использовать параметры командной строки и тому подобное. А вот горячие клавиши были бы как нельзя кстати.

И вот недавно я встретил утилиту htop — человеко-понятный top :)

Главное окно

Главное окно

Continue reading

Posted in Linux | Tagged , , | Leave a comment