IT-Expert
  IT-Expert / Веблог / Ключевые слова / Web Development
Авторизация
Логин:
Пароль:


 
Поиск по записям:

Ключевые слова:
Записей в блоге
 за 2015 год
 за 2014 год
 за 2013 год
 за 2012 год
 за 2011 год

     за 2010 год

       за 2009 год
       за 2008 год
       за 2007 год
       за 2006 год
       за 2005 год
      RSS лента Лента новостей IT-Expert 
      Лента подкастов IT-Expert IT-Expert audiopodcasts
      входит в:
      Docker

      Web Development

      включает:
      Microsoft
      SharePoint Portal
      Infopath
      PHP
      Parser
      XSLT
      mod_rewrite
      Javascript
      AJAX

      Коллекция крохотных текстовых cheat sheets

      09:54, 20 октября 2006 ( )

      Даже не столько cheat sheet в привычном понимании, сколько подборка tips и shortcuts по тематике ключевых слов. 

      http://cheat.errtheblog.com/b

      Это полезно. Здесь можно найти шорткаты для gmail, cписок assertions, шоткаты bash(!) и многое другое.

      P.S. Ссылка для тех, кто еще не знает о гугль группе ror2ru

       

      Использование mod_rewrite для временного сообщения об обслуживании сервера

      12:22, 17 октября 2006 ( )

      Заметка из серии mod_rewrite tips.

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

      Бывает, заменяем, апргрейдим и вообще производим различные работы на веб-сервере, которые могу т испугать случайно зашедшего в этот самый интимный момент пользователя. В таких случаях рекомендуется вывешивать успокоительное сообщение наподобие "Не переживай друг, сервер всего лишь в режиме maintenance". 

      Сделать это можно элегантно, при наличии mod_rewrite добавляем такие строки в наш .htaccess:

      RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
      RewriteCond %{SCRIPT_FILENAME} !maintenance.html
      RewriteRule ^.*$ /maintenance.html [L]

      Таким образом, при создании в корне сайта файла maintenance.html пользователю будет отображен контент этой страницы, да и все запросы будут отправлены на эту страницу.

      По окончании работ просто удаляем, или же переименовываем страницу maintenance.html, тем самым возобновляя нормальную работу сайта. 

       

      Сборник cheat sheets по html, css, mysql, capistrano, rails, regexp, javascript

      14:59, 10 октября 2006 ( )

      Сборник кратких хелпов (в формате PDF) из одной странички по


      Сохраняем копирайты: www.dizzy.co.uk, www.ilovejackdaniels.com.   

      Кодирование e-mail при помощи Javascript в Rails

      14:43, 10 октября 2006 ( )

      Я так подозреваю, что от сбора email со страниц сайтов не удержит спамеров ничего. Даже такая защита, какую предоставляет Rails кодированием :encode=>'javascript'

      Но все же, это лучше чем просто mailto:me@domain.com

       mail_to "me@domain.com", "My email", :encode => "javascript" # =>
      <script type="text/javascript" language="javascript">eval(unescape('оченьдлиннаяescapeпоследовательность'))</script>

       

       

      Запуск fastcgi от конкретного юзера (suexec) на Apache 1.3.x

      11:07, 8 октября 2006 ( )

      Так сложилось исторически, что большое количество проектов на хосте уже давно и стабильно работает под Apache 1.3. Назревает необходимость перехода на Apache 2.x в виду того, что  хочется:

      1. попробовать subversion с http (возможно webdav)
      2. попробовать mongrel с mod_proxy_balancer

      Но это на будущее, а пока же требуется просто правильно настроить существующий Apache на поддержку нескольких проектов на rails.

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

      Добавляем в конец httpd.conf две строки, первая будет считывать конфигурацию для виртуальных хостов, вторая задает конфигурацию fastcgi. 

      Include /usr/local/etc/apache/vhosts.conf
      Include /usr/local/etc/apache/fastcgi.conf

        читать далее >>

      Этапы развития разработчика на Rails.

      09:24, 6 октября 2006 ( )
      1. Будущий разработчик читает Rolling with Ruby on Rails
      2. Разработчик принимает решение быть разработчиком на Rails.
      3. Разработчик пишет первое приложение на Rails за пару дней делая то, на что уходила неделя, чаще всего это frontend. Решает, что scaffold - не самое востребованное изобретение в rails.
      4. Мучается выбором IDE для Rails. Под Windows  остается на Radrails, и что тут такого, ведь пишут же как-то люди. Но видеоролики подсказывают, что есть еще и другие редакторы и командная строка руби, которая почему-то до этого никогда не требовалась.
      5. Разработчик заканчивает первое приложение. Пытается настроить Apache, lighttpd, но остается разрабатывать на Webrick.
      6. Пробует использовать AJAX, балдея до тех пор, пока не понимает, что изначально надо было все делать в UTF-8.
      7. Переводит все в UTF-8.
      8. Попутно читает книги Rails Recipes и Agile developement with ROR, перечитывая между делом маны о Руби.
      9. О чудо, мама, что это? Это плагины, сынок. Плагин file_column сделал жизнь комфортнее. Вычищает половину кода связанную с работой с изображениями.
      10. Пробует ImageMagick (Rmagick), - тяжелый фотошоп в командной строке. А  ведь нужно только ресайзнуть.
      11. Понимает что тесты - это хорошо. Начинает немного пописывать юнит-тесты, постепенно вырастая до функциональных тестов. Окончательно понимает,  что тесты - это хорошо, и теперь пишет и код и тесты, элегантно чередуя порядок написания.
      12. Открывает для себя командную строку ruby и оператор breakpoint. Пользуется breakpoint один раз и решает в дальнейшем писать без багов :)
      13. Открывает для себя Америку в виде migrations. Понимает, что migrations это тоже хорошо, и активно их использует.
      14. Где-то прочитав мануалы о Capistrano только сейчас решается попробовать. Пробует. Отлично. Наверное было бы более отлично, если нужно разворачивать свое приложение на мегакластер веб-серверов. Но и так пойдет, на этот единственный который есть.

      Чувствует силу и понимает, что жить стало легче :)

       

      ведение TODO в проектах

      13:11, 17 сентября 2006 ( )

      Вот ведь неосвещенная тема попалась, ведение TODO проекта. Как его ведут? Кто его ведет? Зачем и когда?

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

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

      Вот моя маркировка:


      LEGEND:
      + сделано
      ? требует согласования
      * все согласовано, остается сделать
      -----------------ADMIN----------------------------------
      + при входе администратора - сводка (новых участков, участников)
      + указать на карте координаты
      * загрузка картинок
      ? нанесение лого на загружаемое изображение (размеры лого, позиция) 

      Таким образом отфильтровав файл по ^* .* мы получим все задачи, которые необходимо только сделать и так далее. После выполнения строчки с * я меняю * на +, копирую строку в файл DONE, который потом подставляется в svn commit -F DONE. Но тут уж необходима дисциплина, что бы не забывать удалять из сделанных строки при добавлении новых коммитов.

      Есть свои и минусы у данного подхода, но лично мне пока хватает и этого, как альтернатива  установке мегасистемы управления требованиями.  

      Второй способ, ну скорее не способ, а дополнение, мы ставим в комментариях пометки TODO: сделать то-то.

      А затем в любимом редакторе (vim) вызываем grep по файлам проекта на предмет строчек с TODO. К слову, в vim есть для этого специальное удобное окно Quickfix. Используя плагин Project я могу <leader>G комбинацией полнить grep по открытой папке проекта. 

       

      Цветастость в vim

      10:08, 11 сентября 2006 ( )

      Надоели страшные цвета в vim? Хотите поностальгировать с цветами Turbo Pascal или Turbo Vision (помните еще, что это такое?).

      Тогда вперед, качать theme pack, собранные темы+плагин, который покажет меню тем + recommended.

       gvim

       

      Обзор некоторых веб-приложений, которыми я пользуюсь

      20:14, 10 сентября 2006 ( )

      В нашу-то эпоху Интернета и мегаглобализации становится ясно, что жить надо по-другому ... хм, это я о чем? 

      Есть некоторые вещи, к которым тебе нужен доступ как из дома, с работы, так и из других неожиданных мест. Использование AJAX дает невиданные возможности построения чуть ли не полноценных приложений, которым не нужны ни инсталляция, ни специальные обновления. Некоторые из таких приложений, которые мной используются, приведу ниже.

      1. Чтение почты. gmail. Не добавить, ни убавить. Просто gmail.

      2. Чтение RSS. bloglines.com. Есть большие кучи напраснорожденного софта для чтения RSS, одни более удобны, другие менее удобны. Что бы дома читать те же фиды, что и на работе мне нужно: 1. установить ридер, 2. синхронизировать настройки. 3. не ясно как отделять прочитанные от непрочитанных. Исходя из этого мой выбор очевиденю

      3. управление TODO списками. hiveminder.com. Почти все те же причины, что и в случае чтения RSS. Конечно, было бы круто, если бы в моем Outlook/Evolution выскакивали мои таски, ну да думается, это лишь вопрос времени.

      4. управление закладками. blinklist.com. Есть импорт из браузеров, есть удобные кнопки в тулбар, есть теги, есть публичные/не публичные записи. Опять же, решает проблему хранения и синхронизации закладок. Даже googlesync для Firefox мне как-то не очень подошел, тормозявостью видно. Кстати, мои закладки можно посмотреть здесь http://blinklist.com/nexus/

       

      Вебмастеру на заметку: способы борьбы с флудом

      18:06, 10 сентября 2006 ( )

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

      Способов борьбы с данным безобразием есть несколько. Первый, наиболее лекгий, состоит в проверке заголовка HTTP_REFERER, которым снабжаеся каждый запрос браузера нашей страницы сайта. Именно по этому заголовку собирается статистика кто и откуда на нашем сайте появился. Поэтому поступаем следующим образом, если REFERER не соответствует нашему домену (разным доменам, если их у сайта несколько), то отпускаем постившего флудера восвояси. Способ плох тем, что данный заголовок легко подделать. Но, как показвает практика, число ботов его подделывающих ничтожно мало, поэтому пока будем считать данный способ достаточно эффективным. 

      Второй способ состоит в использовании механизма сессий. Это специальным образом сформированный идентификатор, который передается с каждым запросом пользователя, и который существует на время периода работы пользователя в открытом окне браузера. Есть, конечно, механизмы отлова сессии и спуфинга, но и они настолько трудоемки, что для среднего сайта защита при помощи сессионного механизма будет представлятся более чем достаточной. Суть метода в проверке сессионных переменных в процессе записи данных пришедших из формы, ежели сессионной переменной нет, то на нет и суда нет. И туда нет. 

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

      А основывать свои проверки на IP адресе отправителя, как вы сами понимаете, глупость. 

       
      страницы: 1 2 3 4
       5 
      6 7 8 9 10 ... >|
      © Максим Прокопов 2005-2016 О сервере