четверг, 31 января 2013 г.

Мысли вслух

Вчера перед сном, узнав новость о том, что путен придумал новый закон про уголовную ответственность за то, что живёшь не там, где прописан, я принялся размышлять о том, может ли не появляться в России единожды из неё уехавший. Существует как минимум четыре государства, с которыми у России безвизовый режим, и это не только Украина и Беларусь. Так как безвизовый режим подразумевает в большинстве случаев не более 90 дней пребывания в стране, то придётся время от времени переезжать. Из Израиля в Тайланд, например, и обратно. Любители тайской, с позволения сказать, кухни, вообще могут жить там безвылазно, выезжая раз в три месяца на пару дней из страны, чтоб получить новый штамп, возвещающий о начале нового 90-дневного пребывания, в загранпаспорт. С Израилем такие штуки не прокатят, страна суровая. Откажут в посещении, и авиакомпания повезёт обратно за свой счёт.

И вот тут интересная ситуация может возникнуть. Допустим, гражданин России находится в стране шенгенского соглашения, у него заканчивается шенгенская виза. Он покидает шенгенскую зону и вылетает в Израиль. Там он не нравится пограничнику, его заворачивают. Авиакомпания везёт его за свои деньги обратно в шенген, куда его уже не могут пустить по той причине, что у него закончилась виза... придётся жить в терминальной зоне аэропорта или вечно летать туда-сюда самолётами этой бедной авиакомпании (пока не впустят в Израиль, разжалобившись), или сдаться властям гостеприимной страны шенгенского соглашения, чтоб тебя депортировали на фиг в Россию, без права получения новой шенгенской визы, разумеется, за нарушение визового режима.

Глупость, конечно, но чисто технически такая ситуация возможна.

И вот ещё. Я слышал краем уха, что путен не только возвращает крепостное право в России, но и потихоньку закручивает гайки, чтоб крепостные не поразбежались. Выражается это в усложнении процесса получения нового загранпаспорта взамен истёкшего или закончившегося за границей. Может, я ошибаюсь и всё как было через жопу, так и осталось, без дополнительного усложнения и унижения. Скоро тогда усложнится точно. А это значит, что как только у тебя заканчивается за границей паспорт, пусть у тебя хоть ВНЖ, хоть жена рожает - собираешь вещички и едешь в матушку-Русь за новым загранпаспортом, получать его в отделении ФНС по месту прописки. Вернее, надо съездить пару раз - один раз документы подать (даже если подавать через интернет, всё равно надо лично явиться с паспортом и сфотографироваться или фотографию отдать), другой раз - получить, спустя сколько-то там времени. И это всё по месту прописки, вот счастье то - я до сих пор с содроганием вспоминаю душный полутёмный коридорчик, битком набитый ждущими в очереди людьми. И автоматом получаешь штрафы от ФМС за то, что не появлялся по месту прописки 90 дней (новый законопроект, я о нём упоминал выше), от ФНС за то, что не настучал на себя о том, что у тебя счёт в заграничном банке (или забыл прислать отчёт обо всех своих финансовых транзакциях за отчётный период), ну и так далее. Ещё и военкомат повестку пришлёт о том, что неплохо бы явиться на военные сборы, ага.

Глупость, конечно, но чисто технически такая ситуация возможна.

А если за границей просто так выбросить паспорт гражданина РФ в пропасть - это не будет означать выход из гражданства, а будет означать только утерю паспорта (за это тоже, разумеется, положен штраф). Поймают, установят личность, депортируют. Здравствуй, матушка-Русь.

вторник, 29 января 2013 г.

Марки

Вчера я некоторому достаточно узкому кругу лиц признался в своей склонности к филателии. Филателия - это пока ещё не какая-то изощрённая статья из Уголовного Кодекса Российской Федерации, а всего лишь страсть к собирательству знаков почтовой оплаты, известных как марки. Сюда же относятся провизории (марки с изменённой ценностью после выпуска, обычно существующие на территориях, где всякие гиперинфляция, война или послевоенное время, после аншлюса и так далее, короче, пока своих марок новых нет). По поводу размера своей, с позволения сказать, коллекции, я скромно умолчал. Хотя на самом деле почему бы и не признаться? Если считать одинаковые марки гашёные и негашёные за две, то отечественных марок у меня разных получается 46, 9 чешских, 5 эстонских, 2 польских, 2 вьетнамских и 1 португальская. В этом месте люди, которые на самом деле занимаются собирательством марок, а не как я, должны презрительно скривиться и сказать, что если ещё раз услышал слово "филателия" от меня, то перестанут со мной разговаривать. Тем не менее, я хочу показать несколько марок из тех, что у меня есть.

Негашёные марки достоинством 10 и 4 кроны, Чехия. Купил в Праге.
109.22 КБ

Негашёная марка достоинством 20 крон, Чехия. Купил там же.
73.48 КБ

Негашёная марка достоинством 42 евроцента или 6.50 крон, Эстония. Марка выпущена в 2006 году, когда Эстония ещё не перешла полностью на евро, поэтому указаны два номинала. Эту марку мне привезла после долгих уговоров из Таллина одна наша сотрудница. Сейчас, кстати, она снова уехала в Европу кататься на лыжах, а я забыл попросить купить там для меня ещё марок.
34.46 КБ

Гашёные 1 злотый и 20 грошей, Польша. С открытки с посткроссинга.
62.17 КБ

0.80 евро, Португалия. Это очень странная марка с открытки с посткроссинга. Во-первых, я не нашёл на ней года выпуска (2008?), во-вторых, на открытке стоял только один штемпель - нашего локального почтового отделения. Штемпель португальской почты на открытке я не нашёл, марка опять же негашёная получилась.
29.54 КБ

Негашёная марка достоинством 10500 донгов, Вьетнам. Её привёз просто так в качестве подарка наш исполнительный директор, который там побывал. В переводе на русские деньги это примерно 15 рублей.
42.35 КБ

Тикеты на доске

Так как мы в Гринсайте перешли на электронную доску с тикетами, то обычная пробковая осталась не у дел. Сначала там висела бумажка "пользуйтесь электронной доской", потом бумажка "доска, ты никому не нужна, уходи", а потом тикеты изменили своё месторасположение, образовав абрис того, что вначале девочки приняли за "какое-то странное кривое сердечко".

Фотография на телефон.


На этом сегодняшнее веселье на работе не кончилось. Разработчики поспорили, сможет ли Саня выпить пластиковый стаканчик вискаря, на содержимое горшочка со штрафами (там рублей триста накопилось). Саня сначала не хотел спорить, но мы с Ромой сказали, что накинем по сто рублей, а Антон сказал, что он и свои 100 рублей добавит, если Саня сделает это прямо сейчас на голодный желудок. Саня согласился, выпил залпом пластиковый стаканчик Grant's и пошёл дальше работать как ни в чём не бывало. Даже не поморщился. Сразу видно, спортсмен!

воскресенье, 27 января 2013 г.

Плёнка 15

Хотел я дать просраться хипстоте,
Но хипстеры уже не те.

Фотоаппарат: ФЭД-2 с неисправным затвором, плёнка Kodak PRO-Foto 135 36+.




суббота, 26 января 2013 г.

Автопортрет в зеркале в ванной



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

А виной всему, наверное, дурацкий климат и живущие в нём дурацкие люди, которые не могут определить организацию, которая должна платить смешные по московским меркам деньги семье дворников, чтоб те расчищали снег и лёд на каких-то ста метрах пешеходной дорожки, что ли. Хотя нет, на самом деле шею я повредил совсем не там, но те сто метров в таком состоянии будет, боюсь, не пройти.

Пока ещё голова всё-таки на месте, надо валить из этой страны.

Пересечения

Читая статью в Википедии о такой человеческой забаве, как "геокешинг", по ссылке перешёл на коротенькую статью о ещё более интересной и странной забаве - "поиск пересечений" (degree confluence project). Суть её заключается в посещении точек поверхности земного шара, координаты которых являются целым числом градусов. Кто-то посетил Аргентину и Ямайку и хвалится этим, а кто-то - точку (0.0, 0.0). Просто пролетел надо ней на самолёте или проплыл на корабле, сделав в нужный момент фотографию GPS-трекера, зато гордости и признания можно получить больше чем за посещение любой Аргентины и Вьетнама вместе взятых.

Неиссякаем запас человеческой придури.

И связана эта затея с геокешингом как раз потому, что геокешеры ныкают свои тайники как раз неподалёку от точек пересечения, и поэтому большинство геокешеров волей-неволей становятся посетителями точек пересечений, а посетители точек пересечений легко могут стать геокешерами, поискав поблизости тайники.

Геокешинг - тоже забавная штука. Люди прячут друг от друга тайники и указывают их координаты, а потом ищут. Обычно в тайнике лежит какой-нибудь блокнот, где можно отметиться, а потом надо всё обратно заныкать, как было, для тех, кто придёт следом.

Ближайшая точка пересечения рядом с Зеленоградом - 56 градусов северной широты, 37 градусов восточной долготы, расположена на краю поля в какой-то деревне или дачном кооперативе. Google строит туда маршрут от моего дома протяжённостью 22 километра.

пятница, 25 января 2013 г.

четверг, 24 января 2013 г.

Полуночный пост

Вообще я давно хочу написать пост про сравнительный анализ функций sizeof() и count() в PHP. Несмотря на то, что это алиасы, в среде разработчиков ходят легенды, что одна функция быстрее работает на маленьких массивах, но быстрее - на больших. Я даже скачал исходники PHP и попробовал там найти эти функции. Ну, count нашёл, sizeof - нет. Вернее, sizeof-то я нашёл, это стандартная функция языка C, но именно пхпшный sizeof - не нашёл.

Тем не менее, этот пост я пока ещё не написал. Давайте лучше расскажу про свои последние два дня. Вчера я встал в шесть утра и поехал по делам в Москву. Из-за пробок поездка по этим самым десятиминутным, по сути, делам, растянулась до часу дня. Пришёл на работу, поработал. Пришёл с работы поздно, пожрал, лёг спать.

Сегодня меня с утра рано, ещё до будильника, разбудила телефонным звонком мама. Точнее, это вчера было, а то, что я писал про вчера - позавчера, надо же иметь в виду то, что сейчас уже 25 января, пятница. Так вот, я встал, поговорил с ней, продиктовал номер счёта. По ходу дела выключил будильник, чтоб он зря не пищал, но, забыв об этом, лёг полежать до его звонка. Проснулся часов в десять, посмотрел на улицу и на градусник, подумал, что хорошая погода (-10°C и лёгкий снежок) и надо пробежаться. Пробежал 3.6 км за 27 минут, ну и в итоге пришёл на работу к 12 дня. Там я обнаружил, что на меня на сегодня запланировано задач больше, чем на 8 часов, возмутился, выкинул часть в "перепланировку" и начал рассказывать программистам анекдоты про евреев, смерть и говно (мои любимые, кстати, да). И тут менеджер, задачи по проектам которого я убрал с сегодняшнего дня, ехидненько так замечает, что "задачи в перепланировку убрал, чтоб поболтать побольше времени было?". Я оскорбился, принялся в ответ писать всякие глупости, часть из них потом удалил (в скайпе можно удалять свои сообщения, отправленные недавно), извинился, но настроение себе и окружающим испортил надолго.

Потом выяснилось, что я не очень правильно оценил задачу на разработку, техзадание писал какой-то, извиняюсь, пиздоголовый кретин, дизайн не умещается в вёрстку, сообщения об ошибках не предусмотрены... ну вместо пяти часов я делал эту задачу восемь. Постоянно отвлекаясь и будучи постоянно отвлекаем, в итоге часам к девяти-десяти вечера я всё доделал. Так как я толком не обедал (поднимал упавший сервер, и все уехали обедать без меня), мы заказали пиццу в офис (я не единственный полуночник в офисе; сегодня там вообще было трое из четырёх PHP-программистов ночью), ну и где-то в половине одиннадцатого с работы мы ушли.

Припёрся домой, ну а дома уже 11 часов вечера. Надо помыть посуду, да и пол помыть неплохо бы, ага. Но сел за ноутбук; сделал быстренько одну экспериментальную фичу, гляжу - уже час ночи, зашибись. Посуду-то я помыл, конечно, потом, но вот мытьё полов и вытирание со стола пролитого борща под большим вопросом, надо признать...

вторник, 22 января 2013 г.

Горящие дневники

Сегодня я надел шарф и ботинки, отошёл метров на сто в лес и сжёг 2/3 своих дневников.



Предвидя очевидный вопрос "зачем?", отвечу примерно в том духе, что это мои дневники, что хочу с ними, то и делаю.

Ну а вообще я вёл их довольно давно, потом бросил, и спорадически делал записи типа "список того, что надо сделать завтра" или "список вещей, которые не забыть взять с собой в лес". Сначала я эту муру выдрал и выкинул, оставив только нормальные записи, но мне они не нравились неупорядоченностью и бессистемностью, поэтому я таки не выдержал, пошёл и сжёг их.

Однако, я сжёг не всё. У меня осталась ещё на три четверти исписанная записная книжка, которую я назвал "Дневник премигранта, часть первая". Я заказал в интернет-магазине "Книжный лабиринт" новую записную книжку и купил пару синих гелевых ручек.

понедельник, 21 января 2013 г.

Фотка Паше

Наш CEO сейчас отдыхает от нас в какой-то жопе мира, вроде Индонезии или Вьетнама. Наверное, во Вьетнаме, да. Питается там головами тухлой рыбы и жареными глистами - это там считается деликатесами местной кухни, наряду с эмбрионами птенцов, извлечённых из яиц. Но про нас он там забыть не может, и каждый день требует, чтоб мы ему присылали фотографии доски с бумажками. У нас пока нет электронной доски, так что фотографии ему нужны. И вот когда он в очередной раз требует в скайпе:
- Кто-нибудь (не Рома), пришлите фотки! - мы прислали ему фотографию не доски, а нас, чтоб он на нас полюбовался. А то соскучился, поди.



Хотя мне больше нравится вот эта, непостановочная и стихийная, но на неё не попали все желающие, да и те, кто попал, вошли не все целиком.

воскресенье, 20 января 2013 г.

Про верстальщиков

Мы на работе часто срёмся между собой по техническим вопросам. Каждый думает, что он знает, как лучше, и пытается доказать оппоненту свою правоту. В основном, эти споры заканчиваются очень просто – либо мы оцениваем трудозатраты на реализацию какого-то решения, сравниваем их с получаемой в перспективе выгодой, и делаем выводы.

Если мы делаем какой-нибудь простенький сайтец, типа рекламного промо-сайта или простейшего каталога какой-нибудь фигни, который вряд ли будет обрастать функциональностью полноценной CRM-системы, то я рекомендую не строить монструозных систем, а быстро всё слепить из того, что есть. Если же проект сложный, ты мы выбираем решение, которое потом проще будет поддерживать (наращивать функциональность и чинить нарощенное) – скорее всего, все модели будем описывать вручную, наплодим классов, ну и так далее. Неправильно взятый курс на старте в итоге выльется в десятки, а то и сотни часов бесполезных трудозатрат.

Программисты обычно быстро понимают эти простые вещи и стараются им следовать, чтоб облегчить жизнь себе и коллегам. Но сегодня я бы хотел рассказать про верстальщиков. Очень многие представляют себе, что хороший верстальщик должен просто сверстать HTML-страницу, ориентируясь на представленный макет. Некоторые пиксельдрочерские дизайнеры даже проверяют вёрстку так: делают скриншот свёрстанной страницы в браузере и накладывают в режиме difference на дизайн-макет. Расхождений нет – значит, свёрстано хорошо, работа принимается.

Однако, не надо забывать и о том, что сайт не ограничивается вёрсткой. Чтоб сайт ожил, вёрстку надо натянуть на костяк программного кода, который будет выводить в HTML-шаблон переменные, которые надо в правильных местах отобразить. Это называется "интеграцией вёрстки". И тут может выясниться, что, казалось бы, крутой верстальщик на самом деле не очень крутой, потому что забыл про то, что вёрстку-то надо интегрировать. Так как я сам по себе верстальщик хреновый, и дизайнер вообще никакой, я не сравниваю попиксельно, что там попало, а что не попало, а сразу открываю HTML и смотрю в код. Бывалоча, я кричал: "что ты тут, блять, наверстал!?" - хотя всё выглядело идеально. А я усматривал проблемы в интеграции.

пятница, 18 января 2013 г.

Волшебная метель

Сегодня в Зеленограде была метель. Весь день валил снег. Ну мало ли бывает метелей зимой. Однако, некоторые автомобилисты отметили странную особенность в поведении некоторых пешеходов. То ли метель была волшебной, то ли содержала какие-то вещества, кроме снега и воздуха, но пешеходы принялись ходить по дорогам, полагая, видимо, что метель сделала их бессмертными.

А я отметил это странное поведение автомобилистов и решил написать этот пост с фотографиями, ведь я их всё равно сделал.

Утро. Или, скорее, уже почти день. Я иду на работу. Меня не видно, я с другой стороны фотоаппарата.


Мост и, за ним, дендропарк, НИИМВ и, где-то там за метелью, технопарк "Элма".


Вечер.

Котлас-Южный (вокзал)






Ещё фотографии из Котласа


понедельник, 14 января 2013 г.

Вечер в Котласе

Ранний вечер в Котласе (ещё не очень темно) и более поздний вечер в Котласе (тёмные и очень шумные фотографии). Всего 11 снимков.






Как мы ходили к нотариусу

9 января 2013

Проснулся с утра в половине десятого сам без будильника. Атмосферное давление ещё слегка снизилось и составляет 745 мм.рт.ст. Сегодня я уже должен быть на работе в офисе, но билетов нет, а другие планы – есть, ...

9:50 Я не уверен в том, что сейчас именно столько времени, потому что все часы показывают разное время. Но я позавтракал, побрил щетину вокруг бороды одноразовым бритвенным станком, поковырял в ушах.

11:40 Пошли с Ленкой к нотариусу. А нотариус сегодня работает с часу дня. Второй нотариус (на весь славный город Котлас всего два нотариуса) сегодня тоже работает с часу дня. Потом пошли в банк, в банке огромная очередь. Ещё бы, после выходных-то. Сбербанк – точно бабкобанк, очередь сплошь из бабок. Мы не стали стоять в очереди, пошли домой. По дороге домой зашли на почту, я купил три марки из серии Europa вдобавок к той одной, что у меня уже есть.
1) марка из серии Europa достоинством 8 рублей, год выпуска 2008 (изображены пергамент, сургуч и конверт);
2) марка из серии Europa достоинством 8 рублей, год выпуска 2003 (изображен плакат про ПЕЧЕНIЕ);
3) марка из серии Europa достоинством 8 рублей, год выпуска 2004 (изображен пляж). Интересно, что в 2003, 2004 и 2005 годах на марках писали "Россия" латиницей по чешским правилам чтения: "Rossija", а в 2008 – уже просто перевод на английский – "Russia", без транскрибирования.

12:45 Сел поработать. Немного поковырялся, но толком покамест ничего путного не сделал. Зато проверил почту и – о, радость! - моя открытка на посткроссинге дошла в Финляндию всего за 12 дней. Здорово. Надо будет потом ответить тому пользователю из Финляндии на его комментарий к моей открытке, когда приеду в Зеленоград (если не забуду). А чуть ближе к вечеру дошла и другая моя открытка в Россию! За 17 дней – на 5 дней больше, чем в Финляндию. Поистине, Почта России – непредсказуемая чёрная дыра и по срокам жопа. Кстати, котласское отделение 165300 очень неплохое; мало того, что тут каким-то непостижимым образом и письма и открытки доходят быстрее, чем в Москву (отправленная мной из Праги открытка дошла ещё в декабре сюда, а в Зеленоград – нет), так тут сотрудницы более приветливые и симпатичные работают, чем в моём местном отделении. Сегодня мне марки принесла посмотреть в коробочке так вообще сексуальная девушка в мини-юбке, симпатичная и с красивыми ногами, где б я ещё такую на почте встретил!

19:05 Сегодня в итоге мы ходили к нотариусу трижды, и всё безуспешно. В первый раз, с утра, мы обнаружили, что нотариусы работают по средам на с 10, а с 13 часов, что один, что второй. Потом мы зашли в банк и на почту, в банке я взял чек с распечатанным балансом на карточке. За декабрь мне перечислили на зарплатную карту ещё пока всего полторы тысячи рублей, чуть меньше. Второй раз мы ходили к нотариусу после обеда. Когда приехали, оказалось, что нотариус собирается куда-то уезжать, получение документов после пяти. Мы сдали документы (паспорта) и вернулись домой, потому что без паспортов в банке делать нечего.

В третий раз к нотариусу мы поехали уже ближе к вечеру, когда стемнело (в половине пятого). Казалось бы, теперь-то что может помешать? Оказалось, не было света. Мы пришли в приёмную нотариуса, где в полной темноте сидело четыре человека, подсвечивая свою судьбу мобильными телефонами. Свет выключили минут сорок назад на полчаса и "вот-вот должны были дать". Меня неприятно поразила одна пара посетителей, которые светили фонариками, встроенными в телефоны, в лицо. Я попросил женщину не светить мне в глаза фонариком (он там из сверхъяркого светодиода, если светить им в глаза, то это очень неприятно), она даже не извинилась. Неотёсанная деревенщина.

Кстати, мы ехали на одном и том же автобусе все три раза. И автобус не "скотовозка", а уже более современный ЛИАЗ, наподобие таких, какие ездят в Зеленограде. Эти билетики утренние и вечерние, видно, что автобус перевёз с 10 утра до 5 вечера около 700 человек. Причём билетики с большими номерами – утренние.

Так вот, посидев в темноте в приёмной у нотариуса и подождав, когда "уже вот-вот" включат свет эдак с полчаса, мы с Ленкой махнули рукой, забрали у нотариуса паспорта, и ушли домой. В банк уже было поздно идти по понятной причине – мы бы не успели до закрытия, если отделение работает до 19:00 (а ежели до 18:00, то тем более). Поэтому мы отправились домой. Любимая тёща приготовила замечательное мясо, я слопал три порции; оно восхитительно и очень вкусно.

Тверь

На выходных съездил в Тверь - навестить родителей и поесть. Сфотографировал из окна восьмого этажа несколько довольно-таки уныленьких, и, я бы даже сказал, безысходненьких видов.







Отличная идея, по-моему :)

воскресенье, 13 января 2013 г.

Зимняя сказка в Куимихе

7 января 2013

А после обеда мы поехали в уже упоминаемый в этой книге населённый пункт с несколько необычным — ах, как бы не оговориться — названием Куимиха. Там местные умельцы сделали несколько ледяных скульптур, залили горку, огородили территорию и назвали это «Зимняя сказка вход 50 рублей». Прокат так называемых «ватрушек» - 50 рублей за полчаса. Местные ребята пробираются мимо билетёрши и катаются так задарма на своих «ватрушках», она их не гоняет. Это всё устроено перед крыльцом куимихинского дворца культуры... прошу прощения, дома культуры. На дворец это не тянет.





Даже по меркам Котласа всё устроено неплохо — играет музыка, ледяные скульптуры подсвечиваются разными цветами (правда, кроме этой подсветки разными цветами другого освещения нет). А по мерках деревни Куимихи эта «ледяная сказка» или как её там — просто высший уровень и супер-пупер-экстра-класс.





суббота, 12 января 2013 г.

Батарейка ноутбука

У меня ноутбук Toshiba Satellite PRO A120, купленный лет эдак 5 назад. Он всем хорош, кроме двух вещей - массы и батарейки. Если с тем, что он весит три килограмма, я свыкся, то батарейка меня постоянно расстраивает. Её хватает минут на пятнадцать.



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



Зато я могу спокойно попить кофе или почитать книгу, и вовсе мне не обязательно показывать окружающим свою крутость, вынимая ноутбук и изображая бурную полезную деятельность, на самом деле заключающуюся в том, чтоб поймать вай-фай и ссануть в твиттер. Зато если в таком заведении найдётся публичная розетка, то я тоже могу ссануть в твиттер! А если нет, и совсем невмоготу от желания проверить электронную почту (в которой, скорее всего, нет новых писем), приходится доставать планшет из сумки жены.

Смотрел батарейки на замену на dx.com - нету там их, уже очень старая модель.

пятница, 11 января 2013 г.

Декабрь, Прага



Отрывок из рукописной книжечки «Дневник премигранта», перепечатанный оттуда с купюрами и повествующий о небольшой кратковременной поездке в Прагу в декабре 2012 года.


8 декабря 2012, суббота



11:50 Вызвал такси на полдень. Собираю вещи.

13:30 Таксист вёз меня через Новоподрезково, потом по всяким полям, и, в итоге, мы, даже не выезжая на стоящую в жуткой пробке в обе стороны Ленинградку, приехали в Шереметьево F чуть менее, чем за час. Позвонил домой, там всё нормально, у Даши температура 36.7°C. Походил по залу отлёта, купил себе по рекомендации Ленки гевискон (сосательные таблетки от изжоги — прим.авт.), в итоге сел в зале ожидания, чтоб подождать тут открытия регистрации на рейс. Пассажиры некоторое время на меня косились, потому что, видимо, не каждый день видят пишущего в дневник мужчину, потом привыкли и перестали обращать внимание.

Открыли регистрацию, и я сразу прошёл и регистрацию, и досмотр, и в 14:15 уже был в «чистой» зоне (duty free). Так как посадка начинается в 15:05, то мне, значит, сидеть тут чуть меньше часа. Пятьдесят минут.

14:30 Московское duty-free в Шереметьево F — это царство элитного алкоголя, дорогого парфюма, дерьмовой прессы и бессмысленной роскоши. Приправлено тонким ароматом сигарет (и толстой сигаретной вонью возле зон для курения). Я немного походил туда-сюда и купил себе в автомате баночку кока-колы за 50 рублей, не потому, что хотел пить, а больше для того, чтоб посмотреть, как работает автомат.

14:06 CET Перевёл часы на местное время в Праге (-3 часа по сравнению с Москвой). Летим в самолёте авиакомпании CSA (České Aerolinie) Airbus A-319. Здесь всего два ряда кресел по три кресла в каждом ряду, между ними проход, по которому снуют стюардессы. Мне досталось место 05D (место в правом ряду справа от прохода у, собственно, самого прохода). Мои попутчики, сидящие справа от меня — средних лет супружеская пара из России. Они даже ничего толком не стали есть, сразу завалились спать. Кормили сегодня в самолёте как и в прошлый раз — на выбор свинина или курица в остром соусе с кнедликами, булочка и пирожок. Разносили чай, кофе — всё как в прошлый мой визит в Чехию, когда мы там побывали с Ленкой. Осталось лететь ещё 1,5 часа. Высота около 11 км, скорость примерно 800 км/ч. Пролетели Минск, летим в сторону Варшавы.

14:46 По старинному русскому обычаю снял ботинки в самолёте, чтоб ногам не было жарко. Перед этим сходил в туалет. Температура за бортом -56°C. Пролетели Варшаву, приближаемся к Лодзи.

Примерно в половине четвёртого приземлились в Ружине (на самом деле уже не Ружине, а имени Вацлава Хавела — прим.авт.) под жиденькие аплодисменты из хвоста самолёта. Я прошёл всякие паспортные контроли, вышел через зелёный коридор, купил йизденку на 72 часа и на 119-м автобусе уехал в Прагу. В Праге, во общем-то, оказалось совершенно неожиданно холодно. Мне было лень надевать шарф, я просто застегнул воротник куртки до подбородка. Сел в метро на Дейвицкой, проехал пару остановок и на Малостранской вышел. Прошёл немного пешком, вдыхая ароматы и впитывая атмосферу вечерней Праги. Уже довольно заметно темнело. Перешёл Влтаву по Карлову мосту и ушёл в глубь Старого города. И, что само собой разумеется, заблудился. Я просто шёл по улицам с потоком туристов, смотрел по сторонам. В центре Праги зимним вечером очень красиво — в историческом центре Праги, я имею в виду. Пока я ехал в 119-м и смотрел по сторонам, было такое ощущение, что еду по Москве — кругом всё тоже так же перекопано, измалёванные граффити заборы, панельные многоэтажки и невысокие домики, скрытые за голыми деревьями. Снега в Праге, кстати, нет.

Kassa API draft

Kassa API draft

Помимо привычного веб-интерфейса, существует ещё один, на принципе REST — на определённый адрес отправляются запросы методом POST, возвращаются данные в формате XML. С помощью такого интерфейса можно осуществлять взаимодействие каких-нибудь внешних проложений с модулем «Касса».

В каждом запросе должны присутствовать поля login и password, значение которых — соответственно логин и пароль пользователя, имеющего доступ к кассе. Если пользователя с таким паролем нет или он не имеет доступа к кассе, будет возвращена ошибка 403. Третье поле POST — поле method. В зависимости от его значения вызываются разные методы API.

Получение списка счетов в кассе

method=getaccounts

Метод возвращает список счетов в кассе. XML имеет следующий формат:

<reply>
 <accounts>
  <account id="123" active="1" default="0">Наличные</account>
  …
 </accounts>
</reply>

У каждого элемента account его значение — это название счёта. Свойства:

  • id внутренний идентификатор;
  • active — активность счёта (неактивные не отображаются в веб-интерфейсе);
  • default — счёт по умолчанию в выпадающем списке. Вовсе не обязательно, что будет один счёт, у которого default=1, их может быть сколько угодно, хоть 0, хоть все.

Получение списка валют в кассе

method=getcurrencies

Метод возвращает список валют в кассе. Возвращаемый XML имеет следующий вид:

<reply>
 <currencies>
  <currency id="1" default="0" symbol="$">американский доллар</currency>
  …
 </currencies>
</reply>

У кажого элемента currency его значение — это полное наименование валюты в кассе. Свойства элемента:

  • id — внутренний идентификатор валюты;
  • active — активность валюты (неактивные не отображаются в веб-интерфейсе);
  • symbol — один символ, принятый для обозначения этой валюты.

Получение списка типов операций в кассе

method=getoptypes

Этот метод возвращает список типов операций в кассе. Кроме трёх обычных, этот метод имеет ещё один параметр group. Если он задан и не ноль (а также не false и не пустая строка), то типы операции будут выведены сгруппированные по типам операций. Если параметр group не задан, то типы операций будут выведены плоским списком.

XML списка типов операций без группировки имеет следующий вид:

<reply>
 <optypes>
  <optype id="7" group_id="2" is_income="0">Соседний супермаркет</optype>
  …
 </optypes>
</reply>

У каждого элемента optype значение — название типа операций. Элемент имеет следующие свойства:

  • id — внутренний идентификатор;
  • group_id — внутренний идентификатор группы;
  • is_income — 0 или 1, является или нет данная операция приходной (0 — если операция расходная).

В том случае, если задан параметр group, и он не ноль, то XML имеет следующий вид:

<reply>
 <optypegroups>
  <optypegroup id="1" name="Прибыль">
   <optype id="2" is_income="1">Зарплата</optype>
   …
  </optypegroup>
  …
 </optypegroups>
</reply>

Каждый элемент optypegroup имеет свойства id и name — внутренний идентификатор и название группы типов операций соответственно. Элемент optypegroup имеет внутри несколько вложенных элементов optype — типов операций, рассортированных по группам. Каждый тип операций входит в одну группу. Элементы optype в этом случае идентичны элементам optype списка без группировки, за исключением того, что в случае группировки в них отсутствует за ненадобностью свойство group_id.

Получение списка операций

Получение списка операций осуществляется с помощью передачи в параметре method значения getoperations. Существуют дополнительные переменные, которые можно передавать.

date_start При выборе всех операций за какой-то период, в этой переменной указыватся timestamp начала периода. Если не указано, то по умолчанию считается минут семь суток от текущей секунды
date_end При выборе операций за какой-то период времени, в этой переменной указывается timestamp окончания периода. Если не указано, то считается текущей секундой.
account Внутренний идентификатор счёта, по которому выбрать операции. Если не указано или передан 0, то фильтрации по счёту не ведётся.
currency Внутренний идентификатор валюты, по которой выбрать операции. Если не указано или передан 0, то фильтрации по валюте не ведётся.
optype Внутренний идентификатор типа операции, по которому выбрать операции. Если не указано или передан 0, то фильтрации по типу операции не проводится.
optypegroup Внутренний идентификатор группы типов операций, по которым выбирать операции. Если не задано или передан 0, то фильтрация по группам типов не проводится.

XML списка операций имеет следующий вид:

<reply>
 <operations>
  <operation id=" внутренний идентификатор операции">
   <currency id=" внутренний идентификатор валюты ">название валюты</currency>
   <account id=" внутренний идентификатор счёта ">название счёта</account>
   <comment>комментарий к операции</comment>
   <time timestamp=" таймстемп даты проведения операции ">дата проведения операции</time>
   <amount>сумма операции</amount>
   <optype id=" внутренний идентификатор типа операций ">название типа операции</optype>
  <operation>
 </operations>
</reply>

Пример:

<reply>
 <operations>
  <operation id="3639">
   <currency id="4">белорусский рубль</currency>
   <account id="1">Наличные</account>
   <comment>Нашёл</comment>
   <time timestamp="1357222778">2013-01-03 18:19:38</time>
   <amount>20</amount>
   <optype id="17">Прочее</optype>
  <operation>
 </operations>
</reply>

Добавление операции

Добавление операции осуществляется запросом всё на тот же адрес с параметрами login, password и параметром method, равным «add». Для добавления также необходимо указать тип операции и сумму. Перечень всех параметров в таблице ниже.

Параметр Обязательный? Пояснение
login Да Логин пользователя кассы
password Да Пароль пользователя кассы
method Да, «add» Должен быть равен add
optype Да Идентификатор типа операции
amount Да Сумма операции. Если не указана или равна нулю, то операция не будет добавлена
currency Нет Внутренний идентификатор валюты. Если не указан, для добавления операции берётся первая попавшаяся валюта по умолчанию. Если передан идентификатор несуществующей валюты или не передан идентификатор валюты, а ни одной валюты по умолчанию не задано, то операция не будет добавлена
account Нет Внутренний идентификатор счёта. Если не указан, то для добавления операции берётся первый попавшийся счёт по умолчанию. Если идентификатор не передан и нет ни одного счёта по умолчанию, или передан идентификатор не существующего счёта, то операция добавлена не будет
comment Нет Комментарий к операции

Если операция не добавлена, возвращается ошибка. XML ошибки имеет следующий вид:

<reply>
 <error code=" код ошибки ">текст ошибки</error>
</reply>

Если операция добавилась нормально, то возвращается уведомление о том, что всё в порядке. Оно имеет следующий вид:

<reply>
 <success />
</reply>

понедельник, 7 января 2013 г.

Wishmatrix

Несколько лет назад я нарисовал картинку под названием wishmatrix. Она изображала из себя матрицу размером 3*3. Столбцы были озаглавлены «легко», «сложно» и «невозможно», а строки - «купить», «сделать» и «изучить». У меня сейчас нет возможности её найти и дать на неё ссылку, может быть, позже. Опишу словами то, что там было нарисовано и то, что я думаю сейчас по этому поводу.

Легко купить было мороженое. Ну, я с тех пор, конечно, купил мороженое несколько раз, это действительно легко. Теперь, думаю, на этой же ячейке я так и оставил бы мороженое.

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

Невозможно было купить где жить. Когда я рисовал эту картинку, я имел в виду квартиру в Зеленограде. Для меня до сих пор так же невозможно купить где жить, потому что у меня до сих пор не хватает денег для того, чтоб купить то, где я хочу жить. Но это уже не квартира в Зеленограде.

Легко сделать было «съездить в зоопарк». Да, в зоопарке я побывал с тех пор раз или, может, даже два. Как выяснилось, ездить в зоопарк действительно несложно. Сейчас я бы поместил туда какую-нибудь фигню типа «посрать» или «приготовить яичницу».

Сложно было сделать «уволиться с работы». И ещё была перечёркнутая надпись «корпоративное рабство». Если мне не изменяет память, то после того, как я нарисовал эту картинку, я увольнялся с работы два раза. Ничего сложного в этом нет. Берёшь и увольняешься. Неприятно — да, немного страшно — да. Но не сложно. Сейчас я бы разместил тут «переехать». У меня в квартире просто безумное количество вещей, причём это только вершина айсберга. Наверняка ещё столько же барахда необходимо будет перевезти/отдать на хранение родственникам/выкинуть/продать, о котором я даже не подозреваю. Мысль о переезде даже не то, что в Москву, а в другую квартиру в том же микрорайоне вызывает у меня приступ панического ужаса и повышенного потоотделения.

Невозможно сделать было «открыть свой бизнес». Сейчас я не думаю, что это невозможно. «Переехать в Новую Зеландию» я бы поместил туда сейчас или «слетать в космос» :)

Легко выучить было, помнится, «сделать 20 подтягиваний в подходе». До сих пор этого я не смог сделать, хотя даже прикладывал к этому некоторые усилия. Сейчас я бы поместил в эту ячейку «научиться мешать чай не звякая об стенки стакана».

Сложно выучить было «японский». Пожалуй, сейчас я бы заменил «японский» на «чешский».

Невозможно было выучить «сдать на права». Ха-ха, какой я был наивный. Я с тех пор поучился в автошколе, сдал в ней внутренний экзамен, и на этом всё закончилось. Я не пошёл сдавать экзамен в ГИБДД не потому, что это невозможно, а потому что я понял, что мне этого не надо. Мой знакомые крутят пальцем у виска: «ты потретил прорву денег и времени на автошколу и решил, что не будешь водить машину?». Да, я именно это и сделал. Мне не нравится водить машину, я боюсь и ненавижу машины и их водителей. Так что я убедился, что сдать на права — возможно, только этого мне не надо. Что касается того, что для меня невозможно выучить сейчас и при этом я бы считал это для себя хотя бы немного полезным... я даже не знаю. По идее, тут должна быть какая-то отдалённая гносеологическая цель, пути достижения которой я не знаю. Но всё, что я мог бы поместить в эту ячейку, я бы на самом деле отношу к категории «сложно», так как я знаю, что надо делать, чтоб этого достичь... а, знаю! Сюда надо поместить «танцевать», вот. Я, может быть, хочу научиться танцевать, но мои физические данные плюс общая стеснительность с учётом полнейшего неумения танцевать — практически непреодолимая преграда. Ещё могу придумать кучу отговорок типа «не хватает времени», «не хватает экипировки», «да зачем мне это надо», «мне не нравится музыка, под которую они танцуют», «в Зеленограде нет студий танца, которые бы меня полностью устроили», «это очень дорого»... да, именно «танцевать» сюда подойдёт.

Синяя касса



Валяясь целыми днями на диване в славном городе Котласе без доступа к интернету с нноутбука (сейчас-то он у меня появился), я не терял зря времени и сделал в своей кассе синий темплейт, не считая кое-каких новых штуковин, про которые я напишу позже. Пока что я не обновлял исходники на продакшене, сделаю это чуть позже, предварительно забекапив всё. Новый синий темплейт включается галочкой "синяя касса" в настройках модуля "касса".

воскресенье, 6 января 2013 г.

С приветом с севера

Последние несколько дней я провёл вдали от Зеленограда в гостях у тестя и тёщи, в славном городе Котласе. Помнится, чуть меньше месяца назад я ныл, что в Праге выпал снег и она стала унылой. Хех, я тогда по-настоящему унылого места не видел. Вот Котлас зимой на самом деле очень уныл. Ситуация ухудшается ещё и тем, что светает поздно, темнеет рано. Снега тут не очень много. Если кто-то представляет себе Котлас в виде пригорода Воркуты, где всю зиму полярная ночь, сугробы до окон второго этажа, и дети ходят до школы по протянутой от подъезда верёвке, чтоб не заблудиться в метели, то тот ошибается. В Зеленограде снега не меньше, чем в Котласе.

Котлас вообще расположен южнее Архангельска, лишь немного севернее Вологды. Хотя, наверное, для среднестатистического жителя Москвы что Архангельск, что Вологда — это всё находится где-то в так называемом «северо-западном регионе», протянувшемся от Санкт-Петербурга до Урала по северу России, и ещё там где-то есть Карелия, которая даже не совсем понятно, отдельная страна или нет. Среднестатистический житель Москвы лучше разбирается в спа и ресортах на египетском побережье Красного моря, чем в географии собственной страны.

Тем не менее, Котлас зимой выглядит очень уныло. Дело в том, что тут много деревянных домов (сохранились двухэтажные такие, старинные, построенные, наверное, лет 50 назад, а в них уже пластиковые стеклопакеты и стены утыканы спутниковыми тарелками), много кирпичных необделанных. Стены из безликого серого кирпича под серым однородным небом — очень унылое зрелище. Более ярких и разнообразных домов совсем мало, и большинство из них тоже выглядят совершенно одинаково, так что особо сильно на общее впечатление не влияют. А ещё тут очень много места между домами. Это даже не совсем дворы и не совсем дороги, а просто свободное место. Кое-где заросшее бурьяном, кое-где машинами заставленное. Такое свободное место называется «пустырь», придаёт зимой и ранней весной дополнительную унылость.

Поэтому я предпочитаю сидеть дома. Я взял с собой свой китайский карманный сканер фотоплёнки и мы с тестем отсканировали эдак с три десятка плёнок, хранившихся в двух коробках из-под обуви с 90-х годов и начала 2000-х. Одна плёнка была в кассете со следами неудачных попыток вскрытия. Мы достали инструменты, вскрыли кассету, и обнаружили, что плёнка там полностью засвеченная. Кто её засветил — мы или до нас ещё кто-то успел за последние лет 5-7 — неизвестно. Ещё мы ходили в самое неунылое место в городе — в городской парк. Там половину парка залили водой и дают напрокат коньки, играет на весь парк «Радио дача» и катаются на коньках посетители. На коньках мы не катались, потому что я, во-первых, боюсь и не умею, а во-вторых, я уже успел повредить спину, катаясь с горки, и теперь хожу, держась за неё, вздыхая и охая, как старик с приступом радикулита. А нагибаться не могу вообще. Смещение позвонков в поясничном отделе?