Просматриваем раздел from Июнь, 2010

MySQL BackUp/Restore. Чит-лист

Posted Опубликовано cross в Разработка сайтов     Comments 7 комментов
Июнь
21

Для каждого владельца сайтов, который дорожит своими проектами очень важно умень регулярно делать backup своих mysql баз данных, что уберечь себя от потери данных. Данный пост, поможет Вам легко делать backup & restore всех Ваших MySQL баз. А также поможет экспортировать данные, чтобы сделать их импорт на другом сервере.

MySQL backup / MySQL restore

MySQL Backup из командой строки

Используя SSH или Telnet доступ к своему серверу Вы можете делать бэкап баз используя mysqldump комманду. Эта комманда подключается к MySQL серверу и создает SQL dump файл. Дамп файл содержит SQL, необходимый для того, чтобы можно было восстановить базу. Вот пример:

$ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]

, где:

  • [uname] Имя пользователя базы данных
  • [pass] Пароль к базеданных (после -p не нужно использовать пробел для ввода пароля)
  • [dbname] Имя базы данных
  • [backupfile.sql] Имя файла для бэкапа
  • [--opt] Mysqldump настройка

Например, чтобы экспортировать бэкап базы под названием blogitcross от пользователя root без пароля в файл blogitcross.sql пишем такую команду:

$ mysqldump -u root -p blogitcross > blogitcross.sql

С помощью mysqldump комманды так же можно делать бэкап конкретных таблиц из вашей базы данных. Например, чтобы экспортировать таблицу node и users из базы данных itcross можно использовать такую команду:

$ mysqldump -u root -p itcross node users > itcrossbackup.sql

Допустим Вы ведете и свой блог и помогаете с блоггингом своей девушке :) Тогда конечно же нужно экспортировать две базы данных из MySQL:

$ mysqldump -u root -p --databases crossblog yurmaryblog > backup.sql

А если нужно сделать бэкап для всей семьи используем следущую комманду:

$ mysqldump -u root -p --all-databases > all.sql

А теперь рассмотрим какие опции есть у mysqldump комманды:

  • --add-drop-table - Делает так, чтобы импорт mysql базы не создал проблем, и все существующие таблицы были предварительно удалены;
  • --no-data - Позволит сделать Вам дамп базы без контент, только со структурой таблиц;
  • --add-locks - Создает в дампе дополнительные LOCK TABLES и UNLOCK TABLES команды, которые обезопасят импорт базы на живом сайте от потери данных.

Backup базы данных MySQL с компрессией

Один из моих сайтов СДЛ - сайт на женскую тематику 39-5.ru имеет громадную базу данных, что делает нереальным использование бэкапа без компресии:

$ mysqldump -u [uname] -p[pass] [dbname] | gzip -9 > [backupfile.sql.gz]

Для того, чтобы разархивировать дамп-файл используем простую команду:

$ gunzip [backupfile.sql.gz]

Restore MySQL базы данных

Если ранее мы делали бэкап баз данных, теперь попробуем из существующих дампов сделать импорт базы. Первым делом создайте базу, допустим она будет называться blogitcross.

И теперь делаем restore базы:
$ mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

, где

  • [db_to_restore] - как раз и будет blogitcross
  • все остальное Вам уже известно

Чтобы восстановить базу и одновременно ее декомпрессовать:

gunzip < [backupfile.sql.gz] | mysql -u [uname] -p[pass] [dbname]

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

Как правильно определить цену разработки сайта?

Posted Опубликовано cross в Разработка сайтов     Comments 21 комментов
Июнь
21

Цена разработки сайта - очень сложный и главное важный для обоих компаний заключающих сделку вопрос. Все компании в этом вопроссе проявляют свой подгод и есть несколько различных вариантов:

  • Фиксированная цена
  • Цена по затратам
  • Почасовая оплата

Web Development Price

Фиксированная цена

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

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

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

Минус тоже очевиден - в случае если разрабатываемый проект достаточно сложен, есть вполне серьезная проблема с качественной оценкой и в случае ошибки оценки времени будут проблемы с доплатой или объяснением почему "разработчик", что-то не успел :)

Цена по затратам

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

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

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

Почасовая оплата

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

Исходя из этой почасовой оценки и рейт/час вычисляется цена разработки сайта.

Список модулей внедренных в Drupal7

Posted Опубликовано cross в Drupal     Comments 2 комментов
Июнь
18

Drupal 7

  • AHAH helper
    Позволяет Drupal модулям использовать AHAH/AJAX функционал без работы с JavaScript. Функционал обернут новым AJAX фреймворком в D7, основанным на Earl Miles' CTools.
  • Autoload
    Включает поддержку lazy-load любых классов, которые до этого не были подгружены.
  • Auto Menu Title, AutomaticMenu, Auto Menu
    При создании нового контента Друпал 7 автоматически делает тайтл ссылки меню как тайтл ноды, позволяя при этом редактировать его.
  • Admin:hover, Block edit
    Одно из улучшений, которые предвещают успех Друпал в будущем: Edit links on everything. Новый Contextual links модуль в Drupal 7 позволит Вам редактировать элементы на странице, на которые Вы смотрите, то есть у вас прямой доступ к "Edit" и "Delete" для контента, или "Configure" страницам для блоков, "List links" для меню, блоков и прочее.
  • Admin Role
    Необходимо это или нет, но Drupal 7 наконец-то теперь имеет administration role. Это обычная друпловская роль, и теперь каждый пользователь может стать администратором. Все новые права теперь автоматически проставляются для роли администратора. Но тем не менее у Вас есть возможность удалять права у этой роли.
  • Block Node Visibility
    Желали ли Вы когда-нибудь показывать блок только на определенных нод типах? Drupal 7 позволяет это сделать.
  • 404 Blocks
    404? Drupal не предоставлял ранее никакой полезной иноформации на 404 странице. В Drupal 7 теперь есть специальные регионы для блоков 404 страницы.
  • Content Construction Kit (CCK)
    CCK теперь в Drupal 7. Но не все так просто. Реальность в том, что Drupal 7 представил новую парадигму "поля". Уловили? Поля теперь могут быть приатачены практически ко всему. Можете добавлять поля для нод, пользователей, терминов таксономии и других сущностей. Теперь Вы можете добавить поле к любой сущности. Можете даже добавить поле термина к термину. Круто? Круто!
  • Checkbox Validate
    Пользователи должны подтвердить обязательный чекбокс, как например подтверждение согласия на регистрацию? Это не работало в Друпал 6 и ниже. И наконец-то в Drupal 7 у Вас есть возможность сделать checkbox обязательным.
  • Comment Display
    В предыдущих версиях комментарии рендерелись совершенно странным способом, практически никак не связанные с нодой или страницей. В Drupal 7 наконец-то можно рендерить комменты значительно более удобным способом.
  • Site Configuration Permissions
    Кто есть администратор, а кто нет? Кто может менять настройки сайта, управлять модулями и темами? Кто может проставить сайт в режим технических работ и кто может иметь к нему доступ в этом режиме? Прошлые версии друпал все это совмещали в одной галочке прав  "administer site configuration". Drupal 7 позволяет проставлять значительно больше административных прав.
  • Content Taxonomy, Field Taxonomy, Term fields, Taxidermy
    В прошлых версиях Друпал, термины таксономии (или категории) могли быть привязаны только к контенту. В Drupal 7 таксономия - это поле, которое может быть привязано к любой сущности. Теперь термины таксономии значительно усложнились и идут с большим количеством нового API для хуков.
  • DBTNG, Transaction
    В Drupal 7 полностью переработали работу с базой данных. Database Layer: The Next Generation (DBTNG) позволяет работать с любым типом баз данных. Теперь модули наконец-то способны правильно выполнить почти любой запрос и откатить данные, если что-то во время транзакции пошло не так.
  • Elements, Element theme hook
    При запросе определенной страницы, колбэк функция возвращает рендереный HTML в предыдущих версиях Друпал. Что делает невозможным нормальную обработку кастомными модулями и темами данных. В Drupal 7, почти любой контент может быть отрендерен как массив данных. Если Вы знакомы с массивом данных для друпловских формы, то мысль Вы можете уловить.
  • File field, Upload element, Upload preview
    Upload модуль был удален из ядра друпал. И заменен на более удобное поле "файл". Предоставляя предпросмотр после аплоада, поддерживая крупные файлы, и конечно не исключая всех приятных особенностей полей.
  • Filter Default, User Default Filter
    Устали каждый раз выбирать форматирование контента? Drupal 7  теперь позволяет устанавливать вес для форматов контента и устанавливать определенные форматы для определенных ролей.
  • Image, Image API, Image Cache, Image Field
    Drupal 7  первый релиз с встроенным функционалом для работы с изображениями. Теперь у Вас есть поле "изображение". И как Вы уже поняли это поле может быть привязано к любой сущности. Также изображения можно стилизовать используя пресеты.
  • Input Format Permissions
    Теперь права на использование форматирования текста могут быть проставлены на странице прав.
  • jQ, jQuery Plugin Handler (JQP), jQuery plugin manager
    Drupal 7 позволяет собрать разные  JavaScript и CSS файлы в библиотеку, что удобно для загрузки ее в любом модуле за раз. Это решает множество проблем связанных с удобством использования jQuery. Это не распространяется на внешние библиотеки, но Друпал сообщество уже обширно обсуждается это тут Libraries API.
  • jQuery Cookie
    jQuery Cookie библиотека теперь в ядре Drupal 7. Он позволяет сохранять и получать данные из кукисов через яваскрипт.
  • jQuery UI
    Drupal ядро не использует этот модуль, но тем не менее основное иссью практически готово для комита, и это позволит Вашим модулям удобнее использовать  jQuery UI.
  • JS Alter
    Модули и темы теперь могут правильно изменять все JavaScript, которые есть на странице.
  • Login Security
    Что происходит после 5и неудачных попыток логина? Ничего. Встречайте в Drupal 7: встроенная логин защита от brute-force.
  • Menuless Node Type, Menu Settings per Content Type
    Теперь появилась возможность устанавливать показ определенного меню в зависимости от контент типа. Все административные ссылки теперь находятся в отдельном меню, так что они в любом случае не будут видны для не администратора.
  • Node Preview by Content type, Preview
    Друпал 7 теперь позволяет настроить поведение кнопки Preview для каждого контент типа отдельно.
  • Permissions API
    Ранее путь в предоставлении и работе с правами пользователей был не сильно гибким. Теперь у Друпал солидное API пользовательских ролей и прав.
  • Plugin Manager
    Хотите инсталировать или обновлять модули прямо через сайт? Drupal 7 позовляет Вам это сделалать безопастно.
  • Poor man's cron, Drupal Queue
    Проблема №1  для новичков Drupal: "крон". Drupal обычно говорит, что его нужно настроить. Но "WTF is a cron?" Drupal 7 позволяет автоматически запускать крон (и да, эта фича может быть легко отключена). Помимо того, Drupal 7 теперь предоставляет систему очередей.
  • RDF
    Семантика - будущее поисковой оптимизации. Drupal 7 взялся всерьез за RDF. Теперь боты, пауки, парсеры поисковых систем смогут классифицировать и индентифицировать контент ваших страниц, точно понимать его и отношения между другими страницами и конкретным контентом на Вашем сайте. Вероятно, что боты будут знать о контенте Вашего сайта, больше, чем Вы сами.
  • Seven
    Нравится Вам или нет, Drupal 7 теперь использует эту тему по умолчанию.
  • Simpletest
    Одна из основных особенностей Drupal 7 в ведение тестов функционала. Практически любое изменение в скриптах теперь может быть обернуто тест-кейсом в Drupal 7. Это собственно означает, что первая стабильная версия Друпал 7 будет действительно самой стабильной версией. Также это означает, что весь Ваш код теперь может быть менее баженым.
  • Archive::Tar
    В основном используется для извлечения данных модулей их архивов.
  • Taxonomy Delegate, Vocabulary Permissions
    У вас множество словарей? И определенные пользователи должны администрировать определенные из них? Drupal 7 позволяет раздавать права на это.
  • Token
    Drupal 7 поддерживает замену строк через токены. Основное имезнение, которое внесено в Друпал 7 для токенов, поддержка рекурсивной замены, и lazy-loading замены. Например, [node:title] заменяется тайтлом контента, а [node:author:name] заменяется именем автора контента .
  • URL alter
    В Drupal 6 и ниже, модули типа Domain Access и другие подобные, были не совместиммы или требовали правок в settings.php. Drupal 7 позволяет использование разных модулей одновременно с правильной работой всех URL и без дополнительных хуков.
  • User Cancellation, User Delete
    Приватность данных важна. Профессиональные сайты позволяют уничтожать аккаунты пользователей. В любое время. Но позволяет ли Друпал? Да: Drupal 7 позволяет удалять пользователям их аккаунты.
  • Vertical Tabs
    Формы в Друпал могут быть очень длинными. Особенно если использовать филдсеты. Но как часто Вы действитально что-то меняете в этих филдсетах? Drupal 7 представляет новый подход с вертикальными табами. Это один из основных юзабили моментов в новом друпал.
  • View unpublished
    Бывают ситуации, когда не получается просмотреть контент после сабмита. Как минимум в некоторых случаях, это очень нежелательно. Drupal 7 позволяет настроить видимость своего unpublished контента для юзеров.
  • Canonical URL, Shortlink
    Если Вы знакомы с основами поисковой оптимизации, тогда скорее всего слышали о дубликате контента. Из-за того как устроена система ссылок в Друпал, многие сайты имеют один и тот же контент под разными URL - допустим системная ссылка и алиас. Drupal 7 позволит избежать штрафоф поисковых систем из-за дубликата контента предоставляя поисковым системам канонические ссылки на контент.
  • Date Timezone
    В Drupal 6 и ниже, Drupal предоставлял кастом timezone обработку. Начиная с Drupal 7, в основе работы с датами лежат встроенные в PHP5's обработчики timezone, что позволяет использовать больше таймзон и что самое главное поддерживает daylight saving time (DST).
  • Documentation
    Почти все API и документация по hook`ам была перемещена в .api.php файлы в ядре Друпал. Разработчики теперь могут получать доступ к этой информации локально и контент док-файлов 1 в 1 соответствует API documentation.
  • Edit term
    Никогда не хотели отредактировать термин находясь на его странице? Drupal 7  теперь предоставляет специальный таб. Кроме того, описание термина теперь имеет форматирование текста, что позволяет использовать client-side редактор.
  • File API, Storage API
    Drupal 7 теперь включает полностью пересмотренное API для работы с файлами. Также включает функционал PHP5 интеграции, который позволяет сохранять и предоставлять доступ к файлам различными способами и по разным путям, даже удаленным. Drupal 7 - первый релиз друпал, где есть разделение на public и private файловую систему, которые можно использовать одновременно.
  • jQuery Form Update, Wysiwyg API CCK Integration, TinyMCE AHAH Integration, TinyMCE Drag and Drop Integration
    Как результат усилий сообщества Wysiwyg модуля, Drupal 7 включает теперь в себя множество улучшений, которые позволят лучше интегрировать client-side редакторы. Полученный урок: Дубликация модулей - это плохо. И только объединения усилий Drupal разработчиков и пользователей позволят исправить эту ситуацию с редакторами.
  • Secure Password Hashes (phpass)
    Начиная с Drupal 7, все пароли юзеров хранятся в базе Drupal с дополнительным шифрованием, что предотвращает декриптацию пароля методами обратной инженерии.
  • Simple CDN, Absolute src, Parallel
    Новый File API обрабатывает файлы необходимых элементов(JavaScript, CSS) в Drupal 7 и позволяет Drupal модулям изменять URLы файлов.  Это позволяет всем разработчикам работать с системой удаленного распространения контента CDN integration для ускорения загрузки сайтов.

Donation Bar

Order Links

Топ комментаторов