четверг, 10 ноября 2011 г.

Календарь программиста

Дело было вечером, делать было нечего. Вспомнил, что в прошлом году видел забавный программерский HEX-календарик. Поискал на 2012-й год, но, к сожалению, не нашел и решил сделать его самостоятельно. В процессе немного увлекся и получился целый генератор календарей в 5-ти разных системах счисления

На картинке ниже календарь в шестнадцатеричной системе:


В получившемся генераторе доступны системы счисления:
Можно, конечно, и больше, но для того, чтобы удивить окружающих странным календарем - вполне достаточно.

Вот так дико, например, выглядит календарь в троичной системе:





Что можно сделать с таким календарем?

  • Год выбирается в диапазоне от 2011 до 2015.
  • Можно выбрать любые цвета для полей: рамка, день недели, год и т.д.
  • Можно распечатать. Ткнуть ссылку "На печать" и в отдельном окне браузера откроется окно со сгенеренным календарем. Т.е. только календарь и ничего больше. Далее стандартно - штатными средствами отправить на печать, убрав в настройках всякие колонтитулы и выставив поля. Ну, не мне вас учить, как правильно печатать :) 
  • Открыть календарь для печати можно в трех предустановленных вариантах - карманный, средний и на весь лист А4 (стандартный лист бумаги). 
  • Вообще-то, календарь генерится в формате SVG. Это векторный формат, а значит можно выставить любой размер без потери качества. Для этого есть возможность скачать файлом. После этого открыть... Ну, скажем, с помощью бесплатного редактора Inkscape.
  • Можно разместить ссылку на уже готовый календарь (цвет, год, тип) в социальных сетях с помощью специальных кнопок.
  • А можно просто скопировать ссылку и отправить ее кому-нибудь (программисту, видимо)  любым удобным способом.

Нюансы.
SVG - удобный формат. И когда-нибудь наступит время, когда все браузеры будут корректно и одинаково его отображать. Однако сейчас правильно отображают его только Chrome, Firefox, Safari и Opera. Там все полноценно и динамично - вы меняете цвета и тут же видите результат. Но вот в Internet Explorer вы этого не увидите - вместо предпросмотра будет статичная картинка и соответствующая предупреждающая надпись. Впрочем, это не мешает выбрать нужные параметры и скачать готовый файл SVG, чтобы распечатать его в том же Inkscape.


Размеры для печати.
А что же за размеры такие - карманный, средний и А4? Вот пример печати из Adobe Reader:

Карманный
Средний
А4

Немного технических подробностей.

  • Основу составляет скрипт на Python, который и генерит календари. Идея и исходный код взяты вот здесь. Правда исходник генерит календари только в шестнадцатеричной системе, поэтому пришлось немного допилить.
  • Материалы по троичной системе взяты отсюда. И еще интересная ссылка.
  • Наверное, нужно еще прикрутить создание PNG или JPG. Прикручено и PNG, и PDF.

Любопытный факт.
Изначально в генераторе было на выбор три системы: шестнадцатеричная, девятеричная, троичная. Вроде бы и хватит. Поделился ссылкой с двумя друзьями. Программист и не программист.
Не программист удивился, почему нет обычной десятичной системы, а программиста возмутил факт отсутствия двоичной. Пришлось доделывать :)

Ну и напоследок еще раз напомню ссылочку на генератор: http://mmaps.net/cl/index.php

Продолжение: "Календарь программиста. Часть 2"

10 комментариев:

  1. Добавил возможность скачать PNG и PDF.

    ОтветитьУдалить
  2. Классный календарь. Спасибо большое.

    ОтветитьУдалить
  3. При шестнадцатеричной системе недели в двоичной.
    Да и недели принято считать в пределах года, а не в пределах месяца.
    Ещё б макет под трехсекционный календарь, было бы вообще на грани фантастики.

    ОтветитьУдалить
  4. супер. спасибо.

    ОтветитьУдалить
  5. А добавьте пожалуйста новые года, а то на 2016й уже хочется :)

    ОтветитьУдалить
  6. Спасибо большое за сервис! В прошлом году печатал друзьям маленькие календари, в этом повторим успех. Очень рад что добавили больше календарных годов. Теперь можно еще 5 лет спать спокойно ;-)
    У меня только 2 маленьких замечания. Возможно ли отредактировать выходные дни под общепринятый табель? Т.е. на тот же 2016 выходные до 11 января, а по календарю 6 и 8 января - рабочие. Плюс переносы и прочее, там всего около 15 выходных праздничных дней в году.
    И второе. Возможно ли больше кастомизации? Т.е. те же скругленные углы заменить на строгие квадратные, сетку календаря отредактировать сделав 3 на 4 месяца, дни недели не горизонтально, а вертикально и прочие радости дизайнерской жизни.
    От себя взамен могу пообещать небольшую раскрутку, лайкорепосты и вообще частое обращение к странице)))))

    ОтветитьУдалить
  7. И еще косяк нашел. 2016 год, ставишь шестнадцатиричную систему, а дни недели идут в двоичной. На остальных системах все правильно.

    ОтветитьУдалить
  8. И хочется дальше и дальше... даёшь 2021! 2022 и т.д.

    ОтветитьУдалить

Рейтинг GPS Клуба. GPS навигаторы. GPS мониториг. GPS трекеры. ГЛОНАСС