Дело было вечером, делать было нечего. Вспомнил, что в прошлом году видел забавный программерский 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"
Добавил возможность скачать PNG и PDF.
ОтветитьУдалитьКлассный календарь. Спасибо большое.
ОтветитьУдалитьБольшое спасибо!
ОтветитьУдалитьПри шестнадцатеричной системе недели в двоичной.
ОтветитьУдалитьДа и недели принято считать в пределах года, а не в пределах месяца.
Ещё б макет под трехсекционный календарь, было бы вообще на грани фантастики.
супер. спасибо.
ОтветитьУдалитьА добавьте пожалуйста новые года, а то на 2016й уже хочется :)
ОтветитьУдалитьДобавил.
ОтветитьУдалитьСпасибо большое за сервис! В прошлом году печатал друзьям маленькие календари, в этом повторим успех. Очень рад что добавили больше календарных годов. Теперь можно еще 5 лет спать спокойно ;-)
ОтветитьУдалитьУ меня только 2 маленьких замечания. Возможно ли отредактировать выходные дни под общепринятый табель? Т.е. на тот же 2016 выходные до 11 января, а по календарю 6 и 8 января - рабочие. Плюс переносы и прочее, там всего около 15 выходных праздничных дней в году.
И второе. Возможно ли больше кастомизации? Т.е. те же скругленные углы заменить на строгие квадратные, сетку календаря отредактировать сделав 3 на 4 месяца, дни недели не горизонтально, а вертикально и прочие радости дизайнерской жизни.
От себя взамен могу пообещать небольшую раскрутку, лайкорепосты и вообще частое обращение к странице)))))
И еще косяк нашел. 2016 год, ставишь шестнадцатиричную систему, а дни недели идут в двоичной. На остальных системах все правильно.
ОтветитьУдалитьИ хочется дальше и дальше... даёшь 2021! 2022 и т.д.
ОтветитьУдалить