Дополнительные мысли к тз по п.р.о.е.к.т.у. и вообще как строить майндмап

Опубликовано admin 23.01.2010

Сейчас сижу и наблюдаю, как mindmap того, что надо сделать резко разрастается и становится не очень удобно читать, так как “старое сделанное” немножко все захламляет. По идее надо бы сделанное удалять, но тогда теряется весь смысл карты и подсчета времени: лог должен быть на все, раз есть такая возможность!

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

Так что думается мне так:

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

Вот как-то так. Кстати есть флешки, которые майндмап показывают. Зацените

Python: многопоточность. Простейший таймер

Опубликовано admin 21.01.2010

Была в visual basic 6.0, на котором я когда-то программировал такая тема: если запустить долгий или бесконечный цикл, то прога как бы повисала, то есть на кнопки я жать уже не мог, пока цикл не кончится. Чтобы так не происходило надо было в теле цикла подписывать “doevents” или как-то так, чтобы оно при каждой итерации шло и исполняло накопленные события.

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

Уже упоминал, что в моем секретном проекте таскменеджера нужен таймер. Вот вам общая концепция:

import thread, time

def timer_print():
while 1: # бесконечный цикл
time.sleep(1)
thread.start_new_thread(timer_print,())

Только есть одна проблема =) таймер пока что не остановить и приходится перезапускать. Однако решение скорее всего будет такое: при запуске проги, запускается поток таймера, который в переменной хранит время, прошедшее с начала запуска проги. Далее в нужный момент выхватываем время начала и время конца. Еще вариант - наверняка Python как и php имеет переменную “секунды с момента запуска линукса в 1970 году” - это по идее аналог того, что предложено выше и поток не нужен.
Зато нашел по поводу потоков пост в одном интересном блоге:

http://python4seo.ru/?p=67

Python: парсинг xml

Опубликовано admin 21.01.2010

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

import xml.dom.minidom
dom = xml.dom.minidom.parse(”expression.xml”)

dom.normalize()

def output_tree(node, level=0):
if node.nodeType == node.TEXT_NODE:
if node.nodeValue.strip():
print “. “*level, node.nodeValue.strip()
else: # ELEMENT_NODE или DOCUMENT_NODE
atts = node.attributes or {}
att_string = “, “.join(
["%s=%s " % (k, v) for k, v in atts.items()])
print “. “*level, node.nodeName, att_string
for child in node.childNodes:
output_tree(child, level+1)

output_tree(dom)

А собсно вот источник: http://www.intuit.ru/department/pl/python/7/6.html

Борьба с собой, мотивация, тз. Новый проект!

Опубликовано admin 21.01.2010

Когда-то я тут уже писал про таскменеджеры. Упоминал загадочную фирму “абстрактная ложка” и их прикольную софтинку с деревом. Некоторое время я им даже попользовался, но в конце концов забил из-за вот таких неудобств:

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

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

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

Посему тз на таск менеджер видится таким:

  1. Визуальное отображение (я выбираю нечто похожее на mindmap, но чуток модернизировать: возможность комментов к каждому пункту)
  2. Подсчет времени выполнения задачи (+ время выполнения ветви итд)
  3. Подсчет времени по дням: чтобы вечером я мог глянуть и сказать сколько я сегодня работал

Последнее очень нужная штука. Тоже откуда-то вычитано, что типа все работают часа по 2-4 фактического времени, а тратят на это 8 часов. Были проведены наблюдения за собой, и да, у это действительно так! Посему очень неплохо будет, если перед рожей будет маячить таймер, который показывает сколько времени ты сегодня фактически работаешь, тогда можно сказать себе, что пока 5 часов не будет - отвлекаться на чтение чего-то там итд себе не дам.

Вот собсо и все ТЗ. Теперь пишу для этого дела софт на питоне. Потом если что - посажу программера, чтобы перевел на то, что мне надо.

Итак, что нарыто на данный момент:

отличная прога freemind для рисования майндмапов (есть чему поучиться, карту хранит в xml)

Первоочередная задача - написать таймер, который будет по готовой xml высчитывать и рисовать. Потом будем писать редактор. Так что пока - редактором будет эта прога


Copyright © 2007 Doorway blog. All rights reserved.