Жизнь из телевизора


Как так вышло, что единственное плохое в моей жизни — это новости в телеке? Ах да, это те самые ситуации, на которые я не могу никак повлиять: будь то спорт, политика, чрезвычайные происшествия, криминал…

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

«Чрезвычайное происшествие произошло сегодня», сообщала бы ведущая новостей, «Василий проснулся без десяти девять и помчался на работу не позавтракав».

«Роковое стечение обстоятельств или ошибка водителя? Специалисты ломают головы над тем, как это Наташа умудрилась так неудачно оторвать бампер?» — это мои локальные скандалы-интриги-расследования.

«Трагедия разразилась сегодня в детской» — голос диктора становится ниже на полтона — «несмотря на запреты властей, Анюта вновь описила пелёнку. Министр ЧС уже вылетел на место в голубом вертолёте»

Алколобби

Итак, добрый день.
Давайте рассмотрим проблему реализации алкоголя в нашем городе.
В России существует 171-ФЗ
О ГОСУДАРСТВЕННОМ РЕГУЛИРОВАНИИ ПРОИЗВОДСТВА И ОБОРОТА ЭТИЛОВОГО СПИРТА, АЛКОГОЛЬНОЙ И СПИРТОСОДЕРЖАЩЕЙ ПРОДУКЦИИ И ОБ ОГРАНИЧЕНИИ ПОТРЕБЛЕНИЯ (РАСПИТИЯ) АЛКОГОЛЬНОЙ ПРОДУКЦИИ

 

в нём есть статья 16. Особые требования к розничной продаже и потреблению (распитию) алкогольной продукции

 

И в ней есть пункт 5. Он звучит так

 

============
5. Не допускается розничная продажа алкогольной продукции с 23 часов до 8 часов по местному времени, за исключением розничной продажи алкогольной продукции, осуществляемой организациями, и розничной продажи пива и пивных напитков, осуществляемой индивидуальными предпринимателями, при оказании такими организациями и индивидуальными предпринимателями услуг общественного питания, а также розничной продажи алкогольной продукции, осуществляемой магазинами беспошлинной торговли.
 Органы государственной власти субъектов Российской Федерации вправе устанавливать дополнительные ограничения времени, условий и мест розничной продажи алкогольной продукции, в том числе полный запрет на розничную продажу алкогольной продукции.
============

 

Основываясь на этом пункте закона регион может весьма неконституционные ограничения сделать, вплоть до изъятия из продажи определенных сортов напитков, вполне легальных на территории РФ. Например, Ягуаров.

 

В Архангельской области уже сориентировались —  с 1 июля слабоалкогольные коктейли будут полностью запрещены. Прочитать текст этого закона можно тут(Закон Архангельской области от 04.06.2012 N 487-31-ОЗ)
Я считаю, это очень круто. Предлагается особо себя не сдерживать и поддержать инициативу губернатора Архангельской области. В ближайшее время урайская Молодёжная палата представит свою законодательную инициативу примерно следующего содержания

 

Уважаемые депутаты Думы ХМАО, уважаемый Губернатор
В соответствии с п. 5 статьи 16 Федерального закона «О государственном
регулировании производства и оборота этилового спирта, алкогольной и
спиртосодержащей продукции и об ограничении потребления (распития)
алкогольной продукции» от 22 ноября 1995 года N 171-ФЗ, в частности
говорящем о том, что органы государственной власти субъектов
Российской Федерации вправе устанавливать дополнительные ограничения
времени, условий и мест розничной продажи алкогольной продукции, в том
числе полный запрет на розничную продажу алкогольной продукции, а так
же в соответствии с Федеральный законом Российской Федерации от 2 мая
2006 г. N 59-ФЗ просим рассмотреть возможность запретить  на
территории Ханты-Мансийского Автономного Округа-Югры
розничную продажу спиртных напитков с содержанием этилового спирта от
0,5 процента до 9 процентов объёма готовой продукции, винных напитков
с содержанием этилового спирта от 1,5 процента до 9 процентов объёма
готовой продукции и напитков, изготавливаемых на основе пива (пивных
напитков).
О принятом решении просим направить уведомление в соответствующий срок
по указанному выше почтовому адресу. В случае рассмотрения настоящего
обращения на заседании  Думы Ханты-Мансийского Автономного Округа-Югры
и открытом голосовании прошу уведомить о поименном списке

голосовавших.

Я считаю, Молодёжная палата в очередной раз делает крутое и важное дело, держим кулачки, чтобы инициатива пролезла.

Пьёшь ягу = рожаешь шнягу \ алколобби \ моя законотворческая инициатива \ алкоголизация населения

Восстанавливаем убитую базу 1C

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

Так вот, прихожу на обед, а Наташа сидит с явным выражением шока на лице. У Наташи случился «Не удалось найти файл v8srvr://dbeng8/f0577CFD0/Config/version.new» на рабочей базе бухгалтерии одной огромной организации. Резервным копиям десять дней, десять кровавых рабочих дней с шести утра до полуночи, и каждый утраченный в рабочей базе документик словно вырванный зуб.

В Интернетах по запросу «В моём 1C случилась беда» вываливается полтора форума, где вместо решений проблемы все пишут «У меня также!!! Помогите мне тоже!!!!» Вот здесь, например.

Вообще, в нашей семье роль программиста 1C выполняет Наташа, а не я, но здесь сразу стало понятно, что пора сдувать пыль со своего диплома о высшем образовании и подключаться. А Наташу нужно отправить прыгать по весенним лужам.

Так вот, в чём проблема:
1C 8.2 может быть построен на базе SQL сервера (мне было бы проще, в таком случае) или на базе файловой системы (и у нас именно такой случай). Вот в этом втором случае вся конфигурация и данные хранятся в огромном файле с расширением 1CD, и что там внутри с первого раза не очень понятно.
И сегодня выяснилось, что этот огромный файл не хочет работать.

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

Встроенная утилита chdbfl, которая идёт с 1C, сообщила мне, что данные как-то очень уж безвозвратно попортились, и она не готова мне помочь. Ну ладно, мы и не думали, что будет просто.

Далее в интернете я обнаружил чудную программу Tool_1CD. Она открывает этот самый большой побитый файл и читает всё, что в нём скрыто. Утилита прочитала базу без проблем, с помощью неё я сразу же сохранил конфигурацию в формате cf на всякий случай. Ну и вот, он, этот самый негодяйский файл version.new.

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

Действительно, у нормальных ребят таких файлов нет. У нормальных ребят файл versions не имеет никакого расширения.

Увы, программа Tool_1CD не умеет редактировать базу, она только может подсказать, что в ней скрыто.

Вам наверное не очень понятно, почему я называю versions файлом, и как так может быть, что в файле конфигурационной базы скрыты другие файлы. Да, мой юный друг, это вполне модная затея — хранить в одном файле массу других файлов. Вспомни архивы на своём компьютере, там именно так. Вот и база 1C представляет из себя кучу таблиц, и в ячейках этих таблиц между делом могут храниться целые файлы. Если твой 1C собран на базе SQL — там будет ровно такая же фигня, и благодаря открытости формата SQL ты можешь подключиться консолью БД и увидеть всё своими глазами.

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

Вся идея восстановления в моём представлении стала заключаться в том, чтобы взять таблицу CONFIG из резервной копии и запульнуть её в повреждённую базу.

Так я и сделал.

Вот здесь автор программы Tool_1CD благородно раскрыл примерный формат файла 1CD. Это очень помогло. Спасибо тебе, автор программы Tool_1CD. И программа хорошая, и формат файла мне пригодился.

Для того, чтобы комфортно ковыряться в бинарных файлах, мужчине нужно иметь в доме шестнадцатиричный редактор. Я не пользовался ничем подобным уже лет семь. Стал скачивать с интернета эти самые редакторы: Ultraedit, Hiew, 010 Editor — а они все платные! Представляете, в яндексе уже стало проблематичным найти нормальную взломанную версию шестнадцатиричного редактора, куда катится этот мир?
В итоге поставил HxD, он сделал всю грязную работу.

Вот люди на форуме пишут свои рецепты:

1. Открыть базу с помощью утилиты tool_1CD.exe определяем размер таблицы CONFIG или CONFIGSAVE в базах. 
2. С помощью текстовых редакторов находим это место в базе. можно с помощью TotalCommander разбить файл, чтобы таблица CONFIG могла попасть в одну из частей. Затем отредактировать, Полученные файлы. 
3. Редактируем кусочек текста между {«Folder»,»Config», и {«Folder»,»ConfigSave», — это конфигурация, надо заменить на кусок из работующей конфигурации. 
4. Собираем TotalCommander-ом, сохраняем, даже если будет жаловатся(на crc).

А потом другие люди это пробуют сделать и пишут вот такие комментарии:
Но открыв в редакторе файл 1CD и сделав поиск по названию таблицы, я ничего не нашел. Больше ничего в голову не идет, поэтому решил спросить вашего совета.

Сроки горят бухгалтер в истерике. Пробовала по вашим советам скачать программу Tool_1CD, скачала….открыла….посмотрела….поняла что ничего не поняла. Одна надежда на сдешних чудотворцев…..

Подскажите, пожалуйста, уважаемые — КАК КОРРЕКТНО заменить таблицу CONFIG в битом 1CD? WinHEX’а не боюсь, со смещениями и прочим вроде разбираюсь — но что-то постоянно ускальзывает в этой задаче от меня. Поможете?

1. открывал winhex’ом мертвый 1CD, открывал живой параллельно (из типовухи или старого архива) 
2. находил сегмент начала таблицы CONFIG (0x00009000) в обоих файлах 
3. находил окончание таблицы (проще всего по началу CONFIGSAVE) в обоих файлах 
4. копировал из нормального файла в битый (заменяя битое на нормальное). но видимо что-то не учитываю постоянно — формат файла корежится. и даже chdbfl.exe ругается на битость 

Ну да, там всё оказалось не совсем тривиально.

Дальше статья будет совсем скучной, если вы не собираетесь прямо сейчас восстанавливать какой-нибудь 1CD файл, то можете не читать 🙂

Итак, открываем HxD и начинаем смотреть. Юзернейм awa сообщает, что правильный файл базы будет по размеру кратен 4096 байтам (в шестнадцатеричном — 0x1000) и размер базы указан в самом начале файла. Вот как хранится размер:

А вот так мы можем посмотреть, сколько на самом деле занимает файл:

Видим, что никакого обмана: размер файла 1FA31000, судя по тому, что в конце числа у нас три нуля, оно действительно кратно 0x1000. Ну, и в заголовке файла мы видим 31 FA 01 00 — если прочитать в другую сторону, получается 1FA31. Размер указан в блоках по 0x1000 байт — добавляем три нуля и получаем нужное значение.
Кстати, запомните этот трюк про шестнадцатеричное умножение на 0x1000. Просто дописываешь три нуля в конце и получаешь нужное число. Пригодится в жизни.

Дальше смотрим. Нам нужно найти таблицу CONFIG. Если просто открыть файл текстовым редактором и сделать поиск, то фраза не находится. Почему? Потому что в файле все строки хранятся в UNICODE и поэтому выглядят вот так:

Поэтому, если вы пользуетесь просмотрщиком из Total Commandera, переключите кодировку в Юникод и он вам всё найдет.
Ребята на форуме оказались правы. База Config действительно начинается на смещении 0x9000
Полнотекстовым поиском я также нашёл базу ConfigSave.

Оно оказалось на смещении 0C782000
Проанализировав целую базу, я увидел, что в ней таблица Config ожидаемо находится на 9000, а вот ConfigSave — на 07С83000. То есть, в старой базе блок Config длиннее аж на 0x1000 байт.
Ну, это сразу и навело меня на размышления. Наверняка если я вставлю в новую базу более длинный кусок, всё там посдвигается и 1C сойдет с ума.
Попробовал: удалил все байты с 0x9000 по 0x0C782000 и потом вставил из целой базы. Сохранил, запустил — стало ещё хуже: 1С говорит что база ему совсем не нравится, chdbfl сообщил, что данным пришёл конец, а Tool_1CD выдал кучу ошибок. И в этих ошибках написано: неправильное смещение блока C77F. И таблица Config открывается. Это означает, что пересадка таблицы Config прошла успешно, но вот всё остальное сломалось. Переходим к блоку C77F (0x0c77f000) — и там действительно нет  начала блока. А в документации по 1CD мы выяснили, как должен выглядеть правильный блок. Вот так:

Ну, значит, действительно — все данные в файле сместились и это нарушает целостность данных.
Продолжаем разбираться, и читаем у awa про корневой объект. Оказывается, внутри файла 1CD есть блок, в котором хранятся смещения всех таблиц. Соответственно, смещение таблицы Config не меняется и поэтому она открывается утилитой верно, а все остальное съезжает. И нужно что-то с этим делать. Я нашёл этот корневой объект на смещении 0x4000 :

Вот полюбуйтесь, как выглядит этот корневой объект на целой и сломанной базе. Начинается он с текста ru_RU, затем ниже мы видим значения 00 00 05 CD (всё хранится в обратную сторону, не забыли?) — эти значения одинаковые в обоих файлах — количество таблиц. Дальше идёт ещё одна одинаковая запись 00 00 00 05. Так вот, это и есть начало блока таблицы Config — 5000, а не 9000. Я сравнил отрезки с 5000 до 9000 в двух файлах (старом и новом) и там есть какая-то разница, в которую я не стал вникать. Поэтому я пришёл к мысли, что и копировать блок Config надо не с того места, где в файле написано слово Config, а именно со смещения 0x5000.
Далее в корневом объекте мы видим записи 00 00 C7 7E и 00 00 С7 7F — это как раз начало блока ConfigSave. Видите — отличаются ровно на 1000, но тоже не указывают ровно на то место, где находится слово ConfigSave.

Теоретически, усидчивый парень может запихнуть из рабочей базы в нерабочую блок Config, а затем поправить все смещения. Но я поленился так делать. Я решил попробовать каким-то образом сравнять размеры блоков Config, чтобы ничего не сдвигалось. И вот что я сделал:
1. Я скопировал старый Config в разбитую базу.
2. В корневом объекте исправил 00 00 C7 7E на 00 00 C7 7F потому что блок Config стал длиннее и следующая таблица сдвинулась.
3. Перешёл на 00 00 C7 7F и стал смотреть:

Вот у нас начало блока и далее — адрес смещения, где должна начинаться таблица. Перехожу к этому смещению (C782000) и там буквально экраном ниже начинается таблица ConfigSave. Но между текущим блоком и следующим методом прокручивания обнаруживается какой-то непонятный пустой блок:

И в этот момент я подумал: в таблице ConfigSave хранится промежуточная конфигурация. Наверное, ничего страшного не произойдет, если она будет не совсем целая.
Поэтому я совершенно не переживая взял и удалил целый блок с 0C780000, ровно 0x1000 байт — до следующего блока.
Всё сдвинулось обратно, и смещения стали совпадать с тем, что указано в корневом объекте.

Ну, тогда я это сохранил и запустил 1C. Я был абсолютно уверен, что все заработает и оно заработало.
Из конфигуратора я тут же сделал резервные копии данных.
Затем я на всякий случай проверил базу через chdbfl, она ругнулась на таблицу ConfigSave, но сообщила, что всё починено.

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

Удачи.

Как зарабатывают на звонках с чужого телефона

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

На самом деле, даже не требуется отжимать мобилу. Можно распространять вирусы или взламывать офисные цифровые АТС. Давайте посмотрим, в чём тут профит.

Допустим, у нас на съёмной квартире обнаружилась команда блестящих инженеров-связистов и программистов. Они открывают яндекс и ищут телефоны менеджеров телефонной компании в далёкой банановой стране. Почему там, ребята? Потому что там не развит рынок связи, услуги оказываются одной компанией-монополистом и по этой причине дико переоценены. Команда блестящих инженеров-связистов и программистов дозванивается до отдела по работе с мошенниками телекоммуникационной компании далёкой банановой республики. Они обсуждают условия агентского вознаграждения и начинают работать.
Среднёхонький офис, типа нашего УТТ-2, имеет 30-40 линий. Если АТСка автоматическая, она может каждую ночь совершать звонки на определенные номера, пока инженеры не догадаются проверить журнал звонков.
Наиболее популярные направления для звонков — Сомали, Сьерра-Леоне, Куба. Цена звонка в Африку  в районе 25 рублей за минуту. Возможна работа с некоторыми Европейскими операторами. Цена минуты ниже, но зато в некоторых офисах люди итак постоянно звонят в Европу, так что работу взломщиков долго не заметят.
Так вот, если АТС на 30 линий четыре часа ночью поговорит с Сомали, выйдет 180 000 рублей. Часть этих денег осядет магистральным операторам связи (около 30%), часть заберут себе сотрудники отдела по работе с мошенниками телекоммуникационной компании далёкой банановой республики (35-50%), остальное себе.

Так и живут.

Какие АТС наиболее подвержены этой проблеме? Ну понятное дело, что не механические. Вся опасность сокрыта в железяках, которые позволяют сотрудникам звонить со своего компьютера. Через локальную сеть программа подключается к АТС и может инициировать звонок.
Ну вот, блестящие инженеры-связисты пишут программу, которая подбирает пароль и делает 30 подключений к такой АТС.

А потом другие блестящие инженеры-связисты весь этот геморрой разгребают.

Про журнал звонков

Слушайте, наша новая АТСка ещё и в красивой форме ведёт отчёт о том, кто нам звонил, кто дозвонился, а кто нет.
Я его поглядываю, чтобы понять, дозванивается народ или нет. Недавно увидел, что линий мало — заказали ещё. Написали письмо в связьинформ, мол, подавайте нам ещё телефонных линий, оплату гарантируем.
Они прислали нам допсоглашение, в нём написано что мы имеем право, а они обязуются, как обычно. Мы его подписали.

Потом приходит чувак с плоскогубцами и говорит «ну всё».

Мы говорим «чего?»

А он нам отвечает «я всё сделал.»

А мы такие смотрим на него, смотрим друг на друга, понять ничего не можем. И спрашиваем его: «а как ты подключил нам телефоны не попадая в наш офис?».

А он и говорит: «я подключил в соседнем подъезде на четвёртом этаже в распредкоробке. Оттуда к себе в офис вы уж как-нибудь сами». Я говорю «слушайте, нам не нужен телефон в соседнем подъезде на четвёртом этаже, нам же он в офисе нужен». А он говорит «а вы допсоглашение читали? там написано — наша зона до распредкоробки, ваша зона оттудова досюдова». Я говорю: «давай заключим еще одно допсоглашение, чтобы ты оттудова досюдова сам всё сделал». В общем, он не согласился и ушёл, и нам пришлось самим легко и непринуждённо этот вопрос решать.

Конечно, теперь все могут легко дозвониться в наш офис и послушать приятную песню Нины Симон. И выше я уже сказал, что с помощью отчётов я могу видеть эту вашу попытку дозвониться до нас. Вот и сегодня вечером сижу и смотрю в отчёты и вижу, что куча людей совершает в течении полутора часов попытки дозвониться до нас. А мы до 19-00.
Я им звоню и спрашиваю: «Ребята, вы чего?»
Оказывается, это 2-65, у них полдевятого свет моргнул и автомат нашего узла отщёлкнулся, соответственно ни телевидения ни интернета. Увы, это история непростая: автоматы стоят в щитках жэка, щитки на замках, ключи у электриков, электрики в утке, утка в зайце, заяц в сундуке.
Взял и обзвонил всех звонящих и недозвонившихся. Думал: обматерят. Ни один.
Завтра с утра всё починим.

ГТД!

Тема самоменеджмента весьма популярна: людям нравится ярлык «успешный человек», а его вешают тем, кто «всё успевает».

Вот на Хабре есть даже отдельный блог про управление своими задачами.

В свое время я очень хотел быть руководителем проектов в сфере разработки ПО, поэтому очень много изучал про управление командной разработкой и индивидуально каждым программистом: о, айтишники выдумали кучу разных религий в этой области. И конечно, я тоже читал Getting things done

Сейчас у меня в телефоне простой планировщик, который может создавать несколько списков и напоминать мне о делах. Он стоит прямо на экране блокировки, поэтому чтобы ознакомиться с делами — мне нужно только одной кнопкой включить телефон. ОКАЗЫВАЕТСЯ это самая важная вещь в планировщике. Если он долго загружается или для его использования нужно сделать несколько действий — пользоваться планировщиком становится лениво. То же самое про заведение задач: на старом телефоне с кнопками и Т9 я довольно медленно набирал, поэтому заводить задачи, особенно с длинным текстом, было не охота. На новом телефоне экранная клавиатура, которую я весьма быстро освоил, неудобства не испытываю. Разные списки нужны для того,чтобы группировать задачи в рамках проектов и по смыслу.

И ещё несколько плюшек:

1. У меня есть отдельный список «чужих дел». Человек говорит «это будет готово в пятницу» — значит завожу себе напоминалку «четверг, человек почти закончил то что обещал». И в четверг напоминаю «ты помнишь, что завтра ты мне обещал закончить дело?». Довольно часто в этот момент человек делает круглые глаза и куда-то убегает с криком «ТОЧНО! Спасибо что напомнил!».

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

3. Это называется «в день по лягушке». Вот эти дела из пункта два часто оседают на дне списка задач, каждый день переносятся на следующий: «что-то всё равно лень ехать к другу, несмотря на то, что он в списке задач» и нажимаешь «перенести задачу на сутки». И друг сидит там со своим компьютером и погибает без моей помощи, а я, сволочь, на пляже. Так вот, в день хотя бы по одной лягушке съедать всё-таки придётся. Надо лишь внутренне договориться с собой и делать эти неприятные дела, иначе они поработят.

Вот такие у меня секреты управления делами.

Меня постиг прогресс

Перешли в офисе на цифровую АТС на Астериске. Железо обошлось в 22 штуки — за эти деньги купили платы расширения, чтобы к компьютеру подключить восемь аналоговых (обычных) телефона.

Нам это дало:

  • Разговоры записываются.
  • Теперь при звонке играется красивая музыка и сообщают, какой вы в очереди на обслуживание в техподдержке.
  • Звонить можно через компьютер — ставишь программку и вперёд. А можно на смартфон поставить программу, и на него можно будет тоже принимать звонки (бесплатно, чёрт возьми!)
  • Набираешь межгород — он автоматом коммутирует на скайп, и звонки идут через интернет (экономятся деньги).
  • У оператора на экране выводится номер звонящего, если он в базе есть — то сразу карточка клиента открывается.
  • Всякие хитрые способы маршрутизации звонка со сложными условиями типа «в обед звонит этот телефон», «если переводите на вторую линию звонки, телефон должен зазвонить у всех сотрудников, чтобы любой мог взять», «после рабочего дня звонок автоматом переадресуется на личный сотовый дежурного»

Ещё сделаем:

  • Возможность переводить звонок на сотовый. Звонящий тогда не будет знать телефон вашего директора, помогает избежать неловкости вида «ой, нас ругают, когда мы даём всем личные сотовые номера».
  • Удалённый офис — это значит я из дома смогу звонить и принимать звонки офиса.
  • Объединение офисов — все подразделения нашей компании будут звонить друг другу бесплатно.

Очень круто. Если вам нужно такое же — обращайтесь.

Один из важнейших признаков качества сервиса

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

УрГУ — бронза на чемпионате мира по программированию

В третий раз за историю чемпионатов мой родной ВУЗ берёт медали на 35ом чемпионате мира по спортивному программированию в Орландо.