Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting

Archive for the ‘OpenSource’ Category

Разработка mini-cms для MFA сайтов.

Monday, July 4th, 2011 |

Soooo, mini-cms for mfa sites – на жанге! Джанго отличный фреймворк (говорят даже что это один из лучших продуктов что сейчас вообще есть), там предусмотрено все что нужно для быстрой разарботки веб-сайтов, каждая мелоч, а философия фрэймворка предполагает многократно использовать приложения (apps почти как плагины в вордпрессе) которых наваяли уже тысячи и почти все что может понадобится можно найти на гитхабе и без проблем подключить на свой сайт.

Вообщем какие требования для начала к mini cms?

  • Желательно иметь возможность менять themes. Ок, не вопрос.
  • Урлы вида http://site.com/article-name или http://site.com/category/article-name
  • сайтмап
  • рсс фид

Предлагайте в комментах, что еще можно добавить.

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

Можно скопировать себе, поставить джангу и поиграться, на линуксе все просто, поставил git и…

git clone https://github.com/istinspring/mini-cms-for-mfa.git mini-cms-for-mfa

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

Описание, фичи, процесс разработки

Ситуацию с земами (themes) разруливал впервые, поэтому пришлось поэкспериментировать. Хотел сначала написать themes engine который отдавал файлы в соответствии с текущей активной темой, типа как в вордпрессе, но это долго, мутно и генерирует лишние запросы к базе данных, что как бы не очень круто. Поэтому решил сделать по другому, оптимальным решением, как мне кажется будет загружать зип архив с темой, файлы из которого при активации будут копироваться в соответствующие папки django, таким образом cms лишний раз не будет обстукивать sqlite базу данных, но при этом можно легко поменять текущий зем и загрузить новый.

Сам движок cms на джанге писать одно удовольствие. Я уже кучу раз делал подобное в своих проектах и теперь просто модифицировал/доработал/улучшил код который у меня был. Тут все просто – нужно создавать страницы которые будут отображаться в соответствии с заданными категориями, или без них (подумал что сайт вполне может разрастись до 50 страниц, а как бы 50 страниц уже нуждаются в сортировке по каким-то признакам).

Для создания RSS и Sitemap фрэймворк django любезно предоставляет удобные инструменты которыми я воспользовался. Ммм… что еще? Написал контекст процессор который передаёт данные по сайту и категориям при рендере каждой страниц, это позволяет достаточно просто создавать новые земы на основе произвольного html кода, прописывая логику отображения элементов сайта.

Почти готово…

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

Вообщем вот демо – mini-cms-for-mfa demo site
Вот код – Mini CMS for MFA

Логин/Пасс – test/test вход в админку через http://wtfisgoingon.co.cc/admin

Уже есть идеи по поводу улучшений :

  • сделать менеджер рекламы (чтобы рулить размещением из админки)
  • добавить темлейт тэги чтобы можно было очень просто обозначить рекламные блоки и какие-либо элементы интерфейса внутри шаблона
  • статистику
  • апи интерфейс
  • рендер в статику, чтобы эту статику потом размещать где угодно
  • интерфейс для добавления ссылок в сайдбар
  • кэширование

Если у кого-то есть пожелания, то пишите в комменты или на мыло, как будет время доработаю.

Кнопки в стиле GitHub.

Tuesday, June 7th, 2011 |

Многим очень нравится дизайн гитхаба, один из элементов, на который стоит обратить внимание отдельно это – кнопки (сининькие такие). Такие динамические кнопки смотрятся очень круто и с легкостью впишутся в интерьер любого сайта. Вообщем ближе к делу: в основе github buttons лежат 3и технологии – CSS, HTML и jQuery. Архив с ксс стилями и js можно скачать CSS3 Buttons, посмотреть как это выглядит – github style кнопки.

Обертка для Curl : grab

Saturday, May 21st, 2011 |

Многие (почти все) используют такую замечательную библиотеку как curl (ну, или в нашем случае pycurl), работать с ней конечно можно – но не слишком удобно. Приходится думать о разных вещах – куках, установке параметров и т.д. а ведь это время и в конечном итоге – деньги. Как правило, на определенном этапе многие пишут свои “функции” разной степени кривости облегчающие работу с curl’ом .

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

Итак, GRAB

(установка в убунте – sudo pip install grab)

Grab идеально подходит для большинства типичных задач (парсинг, регистрации), фактически освобождая программиста от рутины прямой работы с курлом и значительно сокращает размер кода. Я бы сказал, что Grab в какой-то степени эмулирует браузер (естественно без js). Итак, что внутри?

  • Отправка разных HTTP запросов
  • Обработка HTTP ответа
  • Парсинг и заполнение HTML форм
  • Работа с HTML DOM через XPath.
  • XPath для обхода html

Использование XPath сильно упрощает задачу выбора элементов, это гораздо более удобно чем иметь дело с мутными регулярками.
Более подробно про XPath - http://www.w3schools.com/xpath/default.asp

В качестве примера – простой код.

# выделяем каждый элемент td с классом "postbody"
for item in document.xpath('//td[@class="postbody"]//'):
	print item.text

Документация по Grab достаточно подробна, примеры использования тут и тут (в этих примерах граб создается в объекте parser). Как орудовать самим грабом можно посмотреть тут (парсинг форума), пример не рабочий, сразу предупреждаю, служит только для наглядной демонстрации того как можно его использовать.

Going OpenSource. Первый код на github’е.

Sunday, December 12th, 2010 |

Когда-нибудь нужно начинать… Вчера открыл счет, зарелизив небольшую библиотеку в OpenSource. Это обертка API сервиса Mag.ma который является чистой воды машапом – агрегатором видео с различных источников, которые предоставляет API.

Mag.ma API Python
на GitHub

GitHub

Реализованы следующие интерфейсы.

  • search – поиск видео по кею. пока не работает.
  • info/video – информация о видео
  • embed – получить embed код для видео
  • thumbnail – получить thumbnail для видео

но самое интересное

  • leaderboard – получить список топ видео за определенный интервал
  • mustwatch – список горячих видео которые жарят прям сейчас
  • channel – информация о канале включая видео по категориям.

Вполне можно использовать этот модуль для наполнения своих Entertainment сайтов.

My blog is Do-Follow


Пишу код, делаю сайты.
Check out my about.me profile!

парсинг сайтов, форумов, интернет магазинов

Want to subscribe?

istinspring twitter account
istinspring facebook account

 Subscribe in a reader Or, subscribe via email:
Enter your email address:  
Find entries :