вторник, 23 марта 2010 г.

Закрыть, свернуть, развернуть

В то время как все хаят планируемое нововведения в Lucid Lynx - перемещение кнопок управления окном влево, я решил попробовать свой вариант.
Изменить расположение кнопок можно через gconf-editor по ключу apps/metacity/general/button_layout, что я и сделал, но выбрал порядок как это принято в MacOS: закрыть, свернуть, развернуть.
Хотя "развернуть" используется довольно редко, ведь достаточно двойного клика по заголовку окна.
Скажу честно - неудобств не замечено. возможно, стало даже немного удобнее, но судить трудно. Так что никакой трагедии нет :).

О планировании и календарях

Не успел я начать писать свой планировщик с календарем, как Google внезапно решила научить свой календарь перепланированию событий

воскресенье, 21 марта 2010 г.

Лытдыбр на будущие времена

Эта зима была довольно-таки прохладной, а конец марта был полон глубокими озерами воды вокруг, ибо снега было много и он потаял.

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

Одна моя странная идея

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

Если такого нету, а мне такое хочется попробовать накарябать чисто с точки зрения программирования (т.е. написать какую-то реализацию такого планировщика), но что-то не понятно, как.
Вообще не понятно как можно расставлять задачи на бесконечной прямой времени, как их при этом хранить и как при этом отличать занятое время от незанятого. Пока только родилась идея планирования на n дней вперед (тем более что больше смысла не имеет), путем записи отсортированного по времени начала ассоциативного массива с элементами типа "диапазон времени", с циклической проверкой всего массива на пересечения при попытки вставить новое событие (вот не медленно ли это, хз). При этом стоит заметить что повторений и цикличности в полной мере в этом случае никогда не будет, ибо каждый день, неделя и т.д. в реальности всегда уникален и наполнен своими событиями.
Итак, пока мысль такая: создаются объекты типа Task, засунутые в контейнер. Задачи хранят время, выделенное на задачу, некоторые атрибуты типа "обязательная" и "имеет жесткое расписание" или "должна выполняться перед ..." или "после ...". Мы проходим по всем задачам в контейнере и добавляем в план задачи с расписанием в первую очередь. Затем мы повторяем это с задачами, у которых есть зависимости от задач с расписаниями, и снова их добавляем. На этом, вроде-бы со всеми жестко привязанными вариантами мы должны были разобраться (а если не получилось сделать это так чтобы ничего не пересеклось, сделаем себе хедшот в виде эксепшена). Далее начинается самое сложное и интересное, ибо тут мы будем как раз пытаться сделать работу за человека :).
Есть пара вариантов, как можно работать с множеством задач без расписания, у которых есть разные приоритеты.
1. Это просто сортировать задачи по приоритетам и забивать ими все свободное время. Но это скучно и неинтересно для моего мозга, поэтому я бы такое расписание даже не стал юзать.
2. Сделать нечто похожее на работу планировщика задач CPU. Разбить задачи на кванты определенной длины (т.е., скажем, по 30 минут), а затем, как и OS, закидывать их с учетом приоритета на все свободные промежутки времени. Реализацию этого точно можно где-то подсмотреть. :)

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

О разнообразии

Вот сколько помню, в любом университете или школе при составлении расписания делаются вещи вроде "Математика - 8 часов в неделю, русский язык - 6 часов в неделю", но не делают никогда длинный период математики в четверти/семестре, за которым следует длинный период русского языка, да и никогда не бывает в неделе два дня чистой математики и т.д. С какой целью делается это именно так (может это способствует лучшему усвоению всего материала?). Если это имеет под собой особенную основу, интересно было бы знать где о ней почитать и как она обзывается.

четверг, 4 марта 2010 г.

Always on top в Windows 7

Это лечится. Его можно привнести в меню окна с помощью утилитки PowerMenu:)



А где telnet-то?

Не знаю, чем он мешал, но...
теперь эта очень маленькая утилитка для проверки возможности установить tcp-соединение в Windows из коробки отсутствует.