воскресенье, 28 октября 2012 г.

Запуск Apache Solr автоматически. Регистрация процесса как сервис.

Продолжаю позновать IT по мере необходимости. Apache Solr Server использую только в целях тэтирования. Занимаюсь разработкой сайтов,  интеграцией Apache Solr Server c сайтами на базе Drupal.  В одной статье-перевод выложил инструкцию по интеграции. Теперь стала делема того, что бы автоматизировать запуск  Apache Solr Server. Там же я нашёл скрипт который регистрирует сервис. Он достаточно простой. Это bash скрипт который использует определение переменный, конструкцию switch и запуск команд.

суббота, 27 октября 2012 г.

php 5.2

http://programjutsu.wordpress.com/2011/09/20/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9-php-%D0%BD%D0%B0-apache-ubuntu/

вторник, 23 октября 2012 г.

JavaScript это зло.

На самом деле я про язык JavaScript очень хорошего мнения. И могу предположить, что node.js достаточно хорошая технология. JavaScript в современном WEB мире - это как нефть, которая вредна для WEB приложений, но без которой никто не желает жить. Мой данный проэкт становиться больше. Я осознаю, что больше затрат уделено на front-end(User friendly interface, usability).  Я понимаю, что к этой технологии надо отнестись очень  серйозно, что б меня не уволили в дальнейшем... Просматриваю рессурс javascript.ru . Нахожу достаточно много интересных вещей, к примеру: замыкания, и оператор with.

суббота, 20 октября 2012 г.

Магическая цифрра 2

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

воскресенье, 14 октября 2012 г.

Процесс установки Apache Solr 3.x под Drupal 7 или Drupal 6 (Для ведения разработки под Ubuntu)

Для работы этой схемы необходимо.
  • Установить Java.
  • Установить Apache Solr Server.
  • Иметь сайт на базе Drupal.
  • Установить модуль Apache Solr Drupal.
  • Настроить Apache Solr Server в соответствии Drupal Apache Solr module.
  • Запустить Apache Solr Server.
  • Настроить Drupal Apache Solr module.
  • Переиндексировать контент.

пятница, 3 августа 2012 г.

Где взять антивирус бесплатно?

Где взять антивирус бесплатно? Я приверженец открытого и бесплатного программного обеспечения в большинстве случаев работаю под Linux. Наконец-то в нашей стране появляется возможность подавать различные отчетности через интернет, всё программные приложения написаны под Windows. Вот и мне пришлось установить данную О.С. на виртуальную машину. А так как мне эта О.С. нужна для очень важных дел. Я озадачен выбором антивируса. У Avast есть бесплатные версии для домашнего использования, но он как-то не авторитетно работает. Работа Nod32 меня вполне удовлетворяет. Необходимые программы и базы можно взять на сайте www.nod32base.com бесплатно. Да, но опять надо учесть, что бесплатно, то не даёт никакой гарантии.

среда, 25 июля 2012 г.

Выполнение резервных копий и восстановление сайта с использованием Drush

Стал вопрос быстрого создания резервных копий сайта и их восстановления на различных видах хостинга. Рассмотрим вариант с использованием Drush. В дальнейшем планируем более детально рассмотреть создания резервных копий сайта где нету доступа к командной строке используя модули Backup and Migrate.
Drush замечательный инструмент! Он даёт нам большие возможности по работе с сайтами созданными на Drupal.
Создавать резервные копии и восстанавливать сайты с использованием Drush очень легко.

четверг, 24 мая 2012 г.

Отладочные функции в Devel в Drupal

  1. dpm($var) или dsm($var) - Выводит информацию о переменной в виде системного сообщения, используя Krumo.
  2. dvm($var) - Выводит информацию о переменной в виде системного сообщения, используя var_dump($var).
  3. dpr($var, $return = false) - Выводит информацию о переменной вверху страницы, используя print_r($var, $return).
  4. dvr($var, $return = false) - Выводит информацию о переменной вверху страницы, используя var_dump($var, $return).
  5. kpr($var, $return = false) - Выводит информацию о переменной вверху страницы, используя Krumo.
  6. dargs() - Выводит информацию об аргументах текущей функции вверху страницы, используя Krumo.
  7. dd($var, $label = null) - Записывает информацию о переменной в файл drupal_debug.txt, который находится во временной директории (admin/settings/file-system).
  8. ddebug_backtrace() - Выводит стек вызова функций вверху страницы, используя Krumo.
  9. db_queryd($query, $args = array()) - Функция db_queryd(), это дебаг версия db_query(), которая после выполнения запроса $query, выводит его вверху страницы.
  10. dpq($query, $return = FALSE, $name = NULL) - Это аналог функции db_queryd() доступный только в Drupal 7. Выводит с помощью dpm() SQL запрос с подставленными аргументами. В качестве первого параметра принимает объект DBTNG.

вторник, 22 мая 2012 г.

Вопросы по MySQL при подготовке на собеседование

  1. Как запустить, остановить MySQL под Windows? - используя команды в консоле: net start MySQL, net stop MySQL
  2. Как запустить, остановить MySQL под Linux? - /etc/init.d/mysql start, или service mysql start.
  3. Объясните разницу между mysql и mysqli интерфейсами в PHP? - mysqli является объектно ориентированной версией, mysql является библиотекой функций.
  4. Какой порт по умолчанию у СУБД MySQL? - 3306
  5. Что выполняет команда tee в MySQL? - tee используется с аргументом, который указывает файл. Команда включается логирование в указанный файл. Может быть остановлено командой notee.

пятница, 13 апреля 2012 г.

Используем apt-get offline

apt-get --print-uris --yes
--print-uris - возвратить URI, где можно получить пакеты, место того, что бы их сразу устанавливать. URI содержит путь к файлу, его размешение, размер и хэш md5. Эта команда также работает с командами работы c исходным кодом и командами.

четверг, 12 апреля 2012 г.

Создание локального репозитория в 4 шага, Ubuntu

1. Установим пакет dpkg-dev
2. Скопируем пакеты в директорию.
3. Создадим скрипт, который будет сканировать пакеты и создаст файл, что б "apt-get update" могло получить список пакетов.
4. Добавляем строку в sources.list определяя новый репозиторий.

Всё. Устанавливаем пакеты.

пятница, 6 апреля 2012 г.

Поигрывания mp3, audio используя python( pygame )

Была необходимость поигрывать маленькие mp3 файлы, используя средства Python 2.7 под O.S. Ubuntu. Много перерыл материала.
Первый вариант, который заработал. Здесь использовали библиотеку pygame, которая есть в репозитории, как python-pygame. Смотрите. PyMedia у меня не получилось запустить, также на официальном сайте написанно, что работает с Python 2.3.

четверг, 15 марта 2012 г.

Страшно за мою страну в которой я живу.

Когда будет следующая Мировая Война, скоро? Да нет не скоро, а может завтра? Кажется мы что то пропустили. Или то что мы не заметили можно считать непропущенным. Да мы уже пропустили несколько Мировых Воин. Мы обычные люди не можем дать им название, проклассифицировать их. Одна война вытесняет другую. Да я говорю про Дарвина. Какая же война сейчас идёт, и кто её начал, что хотят получить? Опять человеческие жертвы? Нет, никаких человеческих жертв. Люди - это добыча этой войны. Жаль, что не все. Blueseed — корабль стартапов. Хорошо, хоть кто-то кому то нужен! Боюсь, что следующим шагом Мировой Оптимизации будет земная чистка неугодных, бракованых. Улыбнитесь не так всё плохо. У вас есть шанс попасть на ковчег новой мировой системы.

Blogger + DropBox + Прямые руки.

Я являюсь разработчиком, любой вид работы могу выполнить сам. Мешает слово могу, а могу и не могу. Вот так. Делал свои блоги, сайты. В течении длительного времени они исчезли. На своем личном опыте подтверждаю, что написано в умных книжках. Делать надо именно то, что надо, как можно проще, доступнее. Зачем заново создавать своё метро, если можно воспользоваться общественным. Решил доверить свои записки, аннотации третей стороне - сервису blogger. Зарегистрировал свой блог, заполняю его. Blogger имеет отличные инструменты работы, в том числе отслеживания статистики. Здесь есть большое количество различных шаблонов, хороший редактор этих шаблонов, большое количество различных виджетов. Захотелось выделиться, сделать свой шаблон, не используя шаблонизатор, сделать всё руками в HTML+CSS. Необходимо ж где-то размещать дополнительные медиа рессурсы шаблона. Опять нужен хостинг. Если есть хостинг, можно и обзовестись каким нибудь своим сайтом - не подходит, уже это проходили. В одном из журналов Хакер прочитал, данное ухищрение, статические файлы хранить в Dropbox, в открытых каталогах(Public), где есть возможность получить ссылку на них. Результаты можете видеть на данном блоге.

понедельник, 12 марта 2012 г.

Дистрибутивы Drupal

Не устаю удивляться мощности сообщества Drupal. Как много сделано работы! Главное, что результаты доступны сообществу БЕСПЛАТНО. Качественные продукты! Наткнулся на сайт где дан список различных дистрибутивов Drupal drupaldistrowatch.com, звучит почти как Linux foundation. Все дистрибутивы различны, но состоят из обыденных модулей Drupal. Drupal даёт нам возможность легко модифицировать, развивать дистрибутивы, создавать свои ветвления. КРУТО! Кто то скажет про установочные профайлы. Я считаю это разные вещи.

Добавление кода в репозиторий GitHub без использования checkout

Необходимо было отредактировать код приложения
и добавить его в репозиторий. Проблема в том, что код не содержал в себе никаких напоминаний об GitHub. Подобный код спас данную ситуацию.
mkdir my_project
cd my_project
touch .gitignore
git init
git add .
git commit -m "Initial commit"
git remote add origin youruser@yourserver.com:/path/to/my_project.git
git push origin master

Отличия и приимущества RequestContext от Context в Django

Лучше всего познается на практике. Создаю небольшой сайт используя Django. Получаю запрос, обрабатываю его, вывожу результаты используя шаблонизатор. Да хорошо, что можно всё отделить, но при большом количестве однотипных действий желаешь упрощения. Начал использовать render_to_response с библиотеки django.shortcuts. На первый взгляд я получил, что хотел. В данную функцию передаю шаблон и переменные,
получаю готовый ответ со всеми заголовками http протокола. Встал вопроса общих переменных для шаблонов. За формирование переменных шаблонов отвечает Context. Самое главное в Web приложениях(имеющие однопроходный алгоритм REST) - это запрос - request(запрос - получаем), response (ответ - отдаем). RequestContext - это контекст унаследованый от Context, работает с request(запросом), дополнительно переменные шаблонов формируются
приложениями указанными в переменной TEMPLATE_CONTEXT_PROCESSORS файла настроек. Для взаимодействия всего фреймворка необходимо использовать RequestContext. Создадим декоратор, почувствуем мощь python.

понедельник, 5 марта 2012 г.

Django Micro

На хабре наткнулся на статью - Django Micro для микро проектов. Преведенный код проекта оказался очень изящным, точнее не пугающий своими настройками. Для поднятия небольшого сайта - сайта визитки, или сетевого сервиса, то что надо. Но когда я взглянул в код, я ужаснулся, дополнительный модуль состоит из пару десятков строк. Всё так просто, в django есть всё, и он достаточно прост и не надо наводить ужас. В данном модуле оптимально(коротко) указаны настройки среды django, объявлен декоратор, который собирает путь-обьект для обработки. Эти мелочи показывают возможности django. В комментариях к статье очень много говорилось об Flask. И что в связке Flask+jinja2+Alchemy+wtforms нет равных. Я работал с подобной схемой Webapp2+jinja2+Google Storage+wtforms. Это всё разные технологии и всё надо дополнительно изучать. Особенно бывает досадно, когда одна из технологий выпадает, приходиться её заменять. Да ещё раз хочу выразить своё позитивное отношение Django Micro. У каждого есть своё мнение. Проект находиться здесь. Не бойтесь посмотрите во внутрь.

воскресенье, 4 марта 2012 г.

Microsoft Translator - сервис беcплатных переводов для разработчиков

Google - компания добра. Но доброго ничего не бывает. Теперь я понимаю суть понятия "однополюсность". Cуществовать мы можем только в равновесии. Должно быть нескосколько полюсов. Вот и компания Microsoft дала возможность использовать их сервис переводов бесплатно, в ограниченных объёмах. В то время, как Google прикрыла такую возможность. Пока они там борются за мономополию, нам падают хоть какие крошки. Спасибо. Документация по использованию сервиса вот.
Кратко расскажу, как пользоваться сервисом переводов от Microsoft, используя их API и Python.

воскресенье, 26 февраля 2012 г.

Отделённая реализация паттерна Singleton

Чем больше программируете, тем больше желаете, как можно меньше писать кода. Не всегда это правильное решение, но желание есть всегда. Также хотел отделить реализацию Singleton.  Пытался делать отдельным классом, который потом унаследовал. Да конечно результат можно было предсказать, но желание сделать быстро отключило разум. Да ещё раз на практике усвоил свойства статических методов(один и тот же экземпляр не в зависимости схемы унаследований). Случайно нашёл этот паттерн. Код написан на Python. Основная суть паттерна в том, что создаётся статический список Класса - экземпляра класса. На Python для обёртки класса использовали декоратор. Для других языков можно подобным способом реализовать базовый класс.

среда, 15 февраля 2012 г.

Дизайн патерни - просто, як двері

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

вторник, 24 января 2012 г.

Шаблон реализации события на Python

Ещё раз убеждаюсь, что на питоне достаточно всё просто и прозрачно. Это ни в коем случае не недостаток, это большой плюс. Хотите сложнее, всё в ваших руках. Вы лично можете прочувствовать код. К примеру, всё можно сделать очень просто, но для более сложных ситуаций необходимо делать хитрее. Для этого и необходимо набираться знаний использования различных паттернов. Дальше описывается паттерн использования событий. В простой ситуации можно обойтийсь объявлением метода-событие в рабочем классе и после инициализации класса, переопределить метод нужным. Да это просто, но это только начало. Событие — это набор функций,  которые будут вызваны при вызове события, смотря, на реализацию кода. Смысловая нагрузка заключается в следующем: клиенты подписчики, подписываются на данное событие, к данному событию добавляется метод который должен будет вызываться. При возникновении события, менеджер событий вызывает методы подписчиков, все подписчики стают уведомлеены о происшествии события. Становиться видно из данного кода. Чистый код, лучше длинных статтей.

суббота, 21 января 2012 г.

Ознакомление с Drupal Commerce - Drupal Camp Colorado 2011


Drupal Camp Донецк 2011

В Донецке проходил очередной DrupalCamp закрывающий 2011 год. На самом  мероприятии я не присутствовал, по различным причинам. Видео материалы конференции можно найти на YouTube http://www.youtube.com/user/DrupalCampDonetsk, слайды презентаций здесь http://slideshare.net/DrupalCampDN. Также обработанные материалы находятся на официальном сайте мероприятия http://donetsk.drupal.ua/ru/program/session-schedule. Просмотрел видео доклады. Качество видео не очень: плохо воспринимается при онлайн просматривании, плохо настроены видео камера, плохой ракурс, плохо видно особенности на экране. Помогают отдельно выложенные слайды. Мое мнение. Уровень кемпа - для продвинутых Drupaler(ов). Рассказывались именно особенности использования и разработки на Drupal. Освящаются, старые проблемы. В направлениях докладов тем ничего нового не появилось, кроме мелочей, в поисках которых мы убиваем много времени . Кемп помогает определиться в разнообразии различных технологиях, определяя актуальность той или иной технологии.

вторник, 3 января 2012 г.

English Club TV Online

Нашёл интересный канал на котором на доступном языке объясняют, учат английскому языку. Кабельного телевидения у меня нет. Кто хочет смотреть онлайн, СМОТРИТЕ.


Watch live streaming video from englishclubtv at livestream.com