Author Archives: JonasBlog.in.ua for IT-Blog

Генеруємо гарні PDF із Python. І трошки про качкодзьоба

Якось я був писав про один зі своїх домашніх проектів по обробці тексту. Суть проста: періоднично доводиться аналізувати тексти в яких наводяться цитати з єдиного джерела і в єдиному форматі. Замість того, щоб робити це вручну, я написав невеликий скрипт, який ці цитати збирає в одне місце і робить із них презентацію.

Робив він це таким чином: python-скрипт генерує tex-документ згодовує його Beamer+pdflatex і... профіт!

Все було б добре, але 1 - мені не подобався кінцевий результат, 2 - не подобалось застосовувати прив’язку до зовнішніх продуктів. Тож почались дослідження...

 

HTML та LXML. Парсимо онлайн таблиці з Python

За службовою необхідністю в мене з’явилася задача організувати новий сервіс для користувачів. Сервіс простий: в нас є віртуальні площадки з різними OVZ контейнерами. Ці площадки мають своїх хазяїв. Іноді вони про них забувають. Тож треба було написати щось таке, щоби періодично перевіряло актуальність цих площадок, нагадувала власникам про їх нявність та просило би продовжити термін життя площадки або подати заявку на знищення. Все зрозуміло. Але для того, щоб це зробити, спочатку треба було актуалізувати данні по цим площадкам.

Данні в нас зберігались на сторінці в Confluence у вигляді таблиці. Таблиць на сторінці було декілька, з різною кількістю рядків і стовпчиків, з різним форматуванням, і створювались вони в різний час. Можна було б посидіти і вручну витягнути ці данні. Але, по-перше, в майбутньому доведеться обробяти і інші таблиці, по-друге, хотілося розробити інструмент, який би ці данні готував до того аби запхнути їх в базу, і потім використовувати їх. Тож: Confluence, HTML, LXML.

Визначити url в будь якому темпліті Django

Іноді нам потрібно отримати значення дійсного url прямо в темпліті з яким працюємо. Наприклад, якщо потрібно прямо на сторінці підсвітити якесь значення меню, чи вевести цей шлях деінде. Для цього Django має певний функціонал, про який йтиметься далі.

Zimbra. Що таке і з чим їдять.

В одному із попередніх постів я обіцяв написати про те, що таке Zimbra, описати кілька корисних команд та процес міграції з Lotus Domino. Я не буду описувати процес інсталяції. В ньому немає нічого важкого. Zimbra не стане до тих пір, доки не будуть задовільнені усі залежності. А про всі свої забаганки вона дуже чітко і недвозначно повідомить. Але деякі моменти в конфігуруванні можливо зекономлять комусь трохи часу.

The Python challenge. Для тих, хто полюбляє Python (6)

Як і говорив в минулому пості з цієї серії, в шотому задання нам доведеться працювати із архівами. На цей раз нас зустрічає фотографія застібки типу  "блискавка". А англійською мовою "zip". Ну і у почтковому коді сторінки знаходимо відповідну підказку:

<html> <!-- <-- zip -->

RSS – стрічка

Як писав раніше, хотів доповнити функціонал блогу RSS-стрічкою. Як виявилося, з Django це зробити дуже просто. Тепер можна відстежувати оновлення блогу з допомогою різних RSS - агрегаторів. Особисто я користуюсь для цього Tiny Tiny RSS. Добавив стрічку з цього блогу - працює. Отже, далі про те, як це організувати.

TDD+Pytest

На минулому тижні познайомився з цікавою концепцією програмування: TDD (Test Driven Development). Українською це - розробка через тестування. Взагалі, таких концепцій є немало. Наприклад: BDD (Behaviour Driven Development) або ж LDD (Laziness Driven Development :) ). Але далі саме про TDD та інструменти, які застосовуються для неї.

The Python challenge. Для тих, хто полюбляє Python (0-4)

Мені дуже подобається мова програмування Python. Можливо, я знаю не так вже й багато, але з ним пов’язаний мій накращий і найдрайвовіший досвід вирішення проблем з допомогою пограмування. Для тих, хто вивчає, або вважає що вже й так добре знає Python існує ресурс The Python challenge. На ресурсі зібрані цікаві задачі, для вирішення яких можна скористатись будь яким засобом, але найкраще скористатись засобами Python.

Забігаючи наперед, скажу, що я всі 33 рівні не пройшов, але почавши проходити отримав задоволення і розминку для мізків. Далі розв’язки перших задач. Якщо хочете спробувати самі, краще не заглядайте, але якщо спробували і вийшло - поділіться враженнями.
 

Використання власних шаблонів. Django Template Tags

Вирішив додати блогу новий функціонал: сайд-бар, а в нім доступ до помісячного архіву сайту. Власне, що тут казати? Вирішив - зробив!

Для реалізації цієї функції легше за все скористатися такою штукою, як Template tags.

Розгортання Django з Apache, Virtualenv та mod_wsgi

Ото робили ви, робили свого проекта (бложика, як я, чи іншого якого) і раптом вирішили, що вже не хочеться вам бути суровим адміном локалхоста, а хочеться вам винести свій проект в Інтернет, щоб і інші могли помилуватися вашим геніальним творивом.