Посоветуйте VDS-ки

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

Критерии: живучесть, оперативка, колличество доменов

Очень важно: если у вас там битриксы стояли, то сколько человек без кэша держало?

Ребят, на сумбур не обижайтес )

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

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

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

Опубликовано 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 высчитывать и рисовать. Потом будем писать редактор. Так что пока - редактором будет эта прога

Создание десктопных приложений: на чем писать?!

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

Так как пишу редко, то ничего не помню из того, что писал. Так что в двух словах: возникла необходимость написать под себя некоторые десктопные приложения (на php можно реализовать все, но не всегда удобно, особенно если не для себя). Последний раз с этим сталкивался году в 2000 и программировал тогда на VisualBasic 6.0. Сейчас же старый VB откапывать не резон, новый - как раз на той версии олдскул и закончился, теперь сплошные классы всезде.

Так что под новый год решил попробовать Java ну и за 3 недели так и не смог понять, как, например, сделать ассоциативный массив в виде дерева (нужно мне аля xml-ку распарсить и вертеть данные по всякому). Вообще работа с массивами там убила: динамических в стандартном синтаксисе нету (даже в яваскриптах есть), поэтому надо пользовать какие-то не самые удобные классы, аля vector, arraylist итп. В общем мерзкий язык и впечатления от него только негативные. Хотя нельзя не заметить, что java.swing (работа с интерфейсам, кнопочки там всякие итп) весьма приятна, если разобраться в ней (по крайней мере работа с графикой понравилась) :)

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

Сишарп (C#) -  не смог нарыть визуалстудию, так что тот прошел мимо. Хотя друзья советовали именно его.

В итоге натолкнулся на питон. Раньше я его считал серверным языком разработки, однако оказалось все не так просто. Суть у него, как и у php: дешево, средито, не хочешь классы - не юзай итд. Синтаксис весьма прост и хорошо запоминается. Основная вкусная фишка: если ты не можешь написать что-то на самом питоне - спизди нужный модуль на другом языке. Поэтому, например, можно из скриптового языка python работать с модулями матлаба, организовывать параллельные вычисления (http://www.intuit.ru/department/pl/python/11/) итд.

Но у него куча веток. Например, netbeans поставил мне сразу jython (который как раз интегрирован с явой и тырит из нее java.swing). Но есть всякие PyQt (погуглите, что такое Qt) или IronPython (для работы с .NET). Короче глаза разбегаются, сижу выбираю =))

Внимание! Приложения на вконтакте теперь не только на Flash

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

Теперь можно работать через ифрейм! (правда вири тоже через него могут заливаться =( )

Соц сети: методы приготовления

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

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

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

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

Собсно вот. А вообще тошно на него почему-то смотреть =(


Copyright © 2007 Doorway blog. All rights reserved.