Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как правильно взаимодействовать с заказчиком во фрилансе?

Лучший ответ:
Вот моя примерная схема, которая была выработана после пары неудачных попаданий «в рабство»
1. Действительно, в договоре стоит указывать порядок сдачи-приема готовой работы: сколько дней принимаются замечания, в какой форме они принимаются (очень полезно требовать все претензии оформлять в виде письма на email).
2. В этом же договоре вся работа бьется на этапы, каждый из которых заканчивается согласованием. После согласования все дополнения по завершенному этапу вносятся с заключением дополнительного договора.
3. Всем клиентам в конце работы выдается мануал с описанием стандартных операций (как добавить администратора, как добавить товар, как добавить страницу и т.п.).
4. В момент сдачи работы стоит заказчику сказать что-то типа «Посмотрите, пожалуйста, до конца недели, все ли вам понятно, и все ли работает правильно. После этого срока я буду заниматься другими проектами и не смогу оперативно внести правки, если они потребуются»

Худший ответ:
Помогает оговаривать срок принятия претензий, например 5 рабочих дней с завершения проекта (т.е. когда все deliverables переданы клиенту). После истечения этого срока исправление всех дефектов или доработки идут за отдельную плату.
И/или дается гарантия в дополнению к этому: если в течении 30 дней после сдачи проекта обнаруживаются дефекты, то их исправление включено в стоимость работ, а новые свойства (features), модификации и т.п. за отдельную плату.
Вопрос: Как работает этот js-код?

Лучший ответ:
Еще как вариант: <input type="text" onkeyup="this.value = this.value.replace(/\D/g,'');">

Худший ответ:
Лови с использованием jquery, код намного меньше и понятней$('#id').bind("change keyup input click", function() {
    	if (this.value.match(/[^0-9]/g)) {
        	this.value = this.value.replace(/[^0-9]/g, '');
   	}
});
Вопрос: Чем чистить макбук?

Лучший ответ:
Спиртом. Самый действенный способ.

Худший ответ:
Ну пожалуй спирт самый доступный и эффективный вариант. По скольку корпус металлический, то не надо брать щётку по металлу, а вот комплектная тряпочка самое то!
Вопрос: Как подключить css к теме wordpress?

Лучший ответ:
Посмотрите functions.php в стандартной теме twenty fifteen. Может натолкнёт на мысль:<?php /**
 * Enqueue scripts and styles.
 *
 * @since Twenty Fifteen 1.0
 */
function twentyfifteen_scripts() {
	// Add custom fonts, used in the main stylesheet.
	wp_enqueue_style( 'twentyfifteen-fonts', twentyfifteen_fonts_url(), array(), null );

	// Add Genericons, used in the main stylesheet.
	wp_enqueue_style( 'genericons', get_template_directory_uri() . '/genericons/genericons.css', array(), '3.2' );

	// Load our main stylesheet.
	wp_enqueue_style( 'twentyfifteen-style', get_stylesheet_uri() );

	// Load the Internet Explorer specific stylesheet.
	wp_enqueue_style( 'twentyfifteen-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentyfifteen-style' ), '20141010' );
	wp_style_add_data( 'twentyfifteen-ie', 'conditional', 'lt IE 9' );

	// Load the Internet Explorer 7 specific stylesheet.
	wp_enqueue_style( 'twentyfifteen-ie7', get_template_directory_uri() . '/css/ie7.css', array( 'twentyfifteen-style' ), '20141010' );
	wp_style_add_data( 'twentyfifteen-ie7', 'conditional', 'lt IE 8' );

	wp_enqueue_script( 'twentyfifteen-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20141010', true );

	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
		wp_enqueue_script( 'comment-reply' );
	}

	if ( is_singular() && wp_attachment_is_image() ) {
		wp_enqueue_script( 'twentyfifteen-keyboard-image-navigation', get_template_directory_uri() . '/js/keyboard-image-navigation.js', array( 'jquery' ), '20141010' );
	}

	wp_enqueue_script( 'twentyfifteen-script', get_template_directory_uri() . '/js/functions.js', array( 'jquery' ), '20141212', true );
	wp_localize_script( 'twentyfifteen-script', 'screenReaderText', array(
		'expand'   => '<span class="screen-reader-text">' . __( 'expand child menu', 'twentyfifteen' ) . '</span>',
		'collapse' => '<span class="screen-reader-text">' . __( 'collapse child menu', 'twentyfifteen' ) . '</span>',
	) );
}
add_action( 'wp_enqueue_scripts', 'twentyfifteen_scripts' );
?>
В частности, если у вас один файл со стилем, подключайте его как дефолтный:// Load our main stylesheet.
  wp_enqueue_style( 'main-style', get_stylesheet_uri() );
Таким образом будет подключен style.css в корне директории вашей темы.

Худший ответ:
А у меня наоборот. Твоя конструкция сработала, а моя нет:
<?php 
function register_styles() {
		wp_register_style('my-bootstrap', get_template_directory_uri() .
		 '/libs/bootstrap/css/bootstrap.min.css');
		wp_enqueue_style('my-bootstrap');
		wp_register_style('style', get_template_directory_uri() . 
 		'/style.css');
    wp_enqueue_style('style');
	}
add_action( 'wp_enqueue', 'register_styles' );
Вопрос: Как правильно написать regexp?

Лучший ответ:
В общем решение такое:regx = re.compile(r"""_\((['"])((?:(?!\1).)+)\1\)""")
Благодарю Vintorez за помощь!

Худший ответ:
Мне кажется проверка на двойные и одинарные кавычки внутри это лишнее. Я думаю, вам будет достаточно написать так: regx = re.compile(r"""_\(.*\)""")
Вопрос: В чём прелесть Андроида?

Лучший ответ:
Название прикольное.))

Худший ответ:
А аккумуляторы повышенной мощности являются панацеей для андроида? Хочу HTC Sensation или же новый iPhone, пока не решил, что купить.
Вопрос: Как написать «правильный» javascript (на примере)?

Лучший ответ:
1. Взять jQuery и не мучиться.
2. Вынести повторяющийся код в функцию, которая по имени радиобуттона выдаёт value выбранного элемента.
3. Шаманить document.querySelector('input[name="nameRadio1"]:checked').value

Худший ответ:
Вешаете обработчик onclick/onchange для всех кнопок(один и тот же), а в самом обработчике смотрите на какой кнопке произошло событие и в зависимости от его названия присваиваете значение соотв-му input-у
Вопрос: Сервис для взаимного обучения языков?

Лучший ответ:
i2istudy.com 
Только чаще жители стран ближнего востока, еще тайцы и прочие страны связанные с туризмом. 
Имею ввиду заинтересованных во взаимном обучении ru<->eng, так то там выходцев из всяких стран полно. 
И на сайте среди таких я встречал весьма хорошо владеющих английским.
Есть и native speakers, но русский из них мало кто изучает, чаще испанский, французский.
Найти там можно любые вариации.

Худший ответ:
Hello Talk (android и ios)Interpals (web)
Вопрос: Как тестировать REST api на клиенте?

Лучший ответ:
Я совершенно без библиотек использую просто json файлы, которые выдаются вместо Web Api. Работает хорошо без лишних библиотек. Иногда просто мокаю $.ajax и выдаю сразу оттуда json.

Худший ответ:
Есть либа mockJSON, можете мокать api 
experiments.mennovanslooten.nl/2010/mockjson
Коллы обыкновенной жкверевой обверткой $.ajax делать.
Вопрос: Android market не находит приложения

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

Худший ответ:
а приложение точно есть в андроид маркете? Может, оно в другом маркете находится?
Вопрос: Git deploy. Много разработчиков против одного сайта с админкой

Лучший ответ:
Для таких целей можно и нужно использовать capistrano или что то похожее.

Худший ответ:
Я считаю, что наиболее удобный способ использовать post-receive хуки в центральном репозитарии гита (если таковой имеется), либо (если проект хостится на гитхабе) использовать post-receive url. При этом в деплой должны попадать изменения, залитые в одну конкретную ветку гита (для тестовой версии это чаще всего ветка develop). 

Опять же, если над сайтом работает несколько человек, проблем не возникает, так как каждый сначала сам делает merge своих изменений в develop, после чего push ветки develop в центральный репозитарий.

Файлы, которые меняются из админки, не должны быть в репозитарии (логично добавить их в .gitignore) Если же предполагается, что в репозитарии должны лежать изначальные версии этих файлов, а затем они могут правиться из админки (не очень хорошая практика), то логичнее будет вместо например файла translation.xml добавить в репозитарий файл translation.tpl.xml, и уже в самом скрипте деплоя (который вызывается из хука), копировать этот файл в настоящий translation.xml. Если же он был изменен из админки, то это уже ваша проблема, как обрабатывать такие конфликты. В нормально спроектированной системе такого быть не должно.

Вообще, очень удобно сочетать такую систему деплоя с использованием git flow. Тогда в ветку develop будет попадать только код, готовый к тестированию (и соответственно сразу выкладываться на тест), а в master будет мерджиться только production-ready код из ветки develop (если все сделать грамотно, то из master'а можно автоматом выкладывать на релиз, главное чтобы туда никто кроме руководителя проекта не пушил)

P.S. Если интересно, могу написать статью про использование git flow совместно с post-receive URL гитхаба для выкладывания тестовой версии.
Вопрос: Веб разработка под Windows, реально?

Лучший ответ:
реально ли заниматься из под windows
Да
Консоль www.conemu.ru + unxutils.sourceforge.net (или аналоги)
Окружение
https://www.vagrantup.com/
либо
Для простых сайтов
open-server.ru
Редактор https://www.sublimetext.com/3 с плагинами по вкусу, нужно уже смотреть по потребностям.

Худший ответ:
работая linux <-> linux в итоге ошибок избежать легче, нежели чем window <-> linux.
Ну а всякие гульпы шмульпы это просто веяние моды и весьма спецефические вещи. И без них прекрасно обходимся ;)
Вопрос: Как распечатать чек на фискальном регистраторе из браузера?

Лучший ответ:
Локальная программа-сервер на localhost принимающая команды на печать.

Худший ответ:
Знаю один (довольно большой) проект, где используется второй вариант: написан Джава-апплет, который выступает посредником между драйвером и Джаваскриптом. А на Джаваскрипте написана обертка, которая передает вызовы в апплет. Всё работает уже не один год, и проблем (вроде) никаких нету.
Подробностями реализации поделиться не могу, так как совершенно ничего не понимаю в Джаве, и весь код был написан другим разработчиком. Но работы там довольно много.
Вопрос: Хочу такую же систему авторизации на сайте, как у VK.com (по телефону). Куда копать?

Лучший ответ:
Недавно наткнулся на mainsms.ru. Стоимость смс — 15 копеек (количество смс не влияет на стоимость). Есть API.

Худший ответ:
Копайте в сторону СМС рассылок.
Вопрос: Хороший CDN для видео?

Лучший ответ:
Попробуйте zerocdn.com
Там есть:
webdav
удобный api
white label
защита ссылок
лимиты скорости отдачи видео
hls
Цена за 10 Гбит/сек выходит около 70к в месяц!

Худший ответ:
Добрый день, Алексей!

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

У простого CDN кэширования есть опереденные минусы, это:

- Нельзя сформировать полноценную DRM защиту 
- Рано или поздно требуется масштабировать и прокачивать транскодинг видео
- Невозможно обеспечить максимально точную маршрутизацию трафика и лучший QoS
- Нет возможности добиться 100% hit ratio
- Потенциальная недоступность или проблемы связанности с ориджином

При использовании платформы сохраняется возможность мульти-CDN доставки, те использовать 3rd party CDN как фоллбэк, при этом в HLS/DASH стриминговых протоколах есть встроенные возможности балансировки между источниками.
Вопрос: Angular pristine в ng-repeat: почему не работает код?

Лучший ответ:
contactEditForm{{$index}}.$pristine - синтаксическая ошибка. Такое выражение недопустимо в JavaScript.

Худший ответ:
Погуглим ответ за вас: stackoverflow
Если лень читать, то не создавая ничего нового, можно сделать таким способом:<tr ng-repeat="contact in contacts">
            <form name="contact.contactEditForm">
        ...
       <button ng-hide="сontact.contactEditForm.$pristine" class="save btn btn-primary" ng:click="editContact()">Сохранить</button>
       ...
Вообщем, вот решение ваших проблем (используйте ng-form) plunker.
Единственное, непонятно, почему ng-form не работает сразу после tr, т.е. пришлось все завернуть в td.
Вопрос: Команды на oDesk

Лучший ответ:
Привет, у меня больше 500 часов работы на одеске и несколько проектов с оплатой по «факту».

1. Я не думаю что просто зарегистрировашись как член команды вы облегчите себе поиск заказа. Это работает немного по другому. Менеджер команды или кто-то кто уже работает над проектом может вас рекомендовать своему заказчику. Это может облегчить собеседование и заказчик не обратит внимание на отсутствие опыта. Но собесодоваться всёравно прийдется. Соответственно я как менеджер врядли буду рекомендовать кого-то мне незнакомого не зная его опыта/способностей.

2. Могу предложить способ которым я получал свои первые заказы:
 — мониторите заказы постоянно (oDesk позволяет подписываться на ключевые слова по RSS). Мне так кажется что большинство заказов публикуется в районе с 1 часа ночи до 4 утра по Москве.
 — как только появляется подходящий заказ делаете свою ставку в которой пишете что в течение какого-то времени (в идеале несколько часов, но можно и на след. день) сделаете прототип который покажет что вы знаете предметную область заказчика. Приходится поработать впустую конечно, но вы приобретаете опыт и вероятность того что выберут вас вырастает.
 — обращайте внимание на историю предыдущих наймов заказчика. Часть работ на oDesk публикуется чтобы оценить примерно стоимость разработки и решить стоит ли вообще приниматься за проект или нет. У таких заказчиков истории наймов нет — соответственно есть шанс что вы сделаете прототип без какой-либо отдачи.

Худший ответ:
Легче всего начать на oDesk имея низкую ставку часа (у меня по двум аккаунтам порядка 3000 часов). Поработаете за копеечки, набирая часы, потом сможете заявляться за нормальные деньги. Команды на оДеск имеют свои издержки и плюсы. Плюс в том, что для Вас будет искать работу менеджер команды — он мониторит проекты и продает Вас как рабсилу. Минус в том, что до 40% от ставки часа будет забирать себе Команда. Нормальные менеджеры команд спрашивают, какая ставка часа Вам интересна — вот ее и будете иметь, если оставите им возможность, озвучивая свои интересы, продать Вас все равно чуток дороже. Все зависит от аппетитов, терпения и квалификации, безусловно. У меня было несколько случаев, когда на протяжении проекта заказчик по собственному желанию повышал мне ставку за час — если ему нравилась моя работа. Удачи! Там работы много — хватит всем :-)
Вопрос: Какое направление в программировании или IT в целом выбрать?

Лучший ответ:
Виталий, по собественному опыту скажу, что работать разработчиком можно только тогда, когда тебе работа нравится. Потому вопрос скорее ставить надо не на основе ранее полученных знаний, а на основе стремлений и желаний. Выбор сферы - это надолго, может быть на всю жизнь.
Я в прошлом тоже безопасник, а сейчас веб разработчик. Почему? Потому что веб - это интересно. Веб сегодня - это скопление всевозможных фреймверков, модулей, библиотек, технологий и языков. Весь этот венигрет позволяет выбирать собственный стить и путь разработки. Кроме того веб очень активно меняется, что лично для меня весьма важно - развиваться всегда. Еще вчера в тренде был серверный MVC, а нынче уже SPA на MVVM, - это заставляет учиться.
Если хотите постоянных перемен, если хотите делать ПО для широких масс, если хотите свободу творчества - выбирайте веб разработку. За остальные сферы не скажу.

Худший ответ:
ИБ и свои наработки в С++ по ИБ
либо создание игр
Вопрос: Как лучше внести большие изменения в структуру бд?

Лучший ответ:
миграции для того и нужны. И они по сути выполняются как консольные команды. По поводу мусора в консоли — а какая вам разница? Миграции должны просто накатиться корректно, у меня они вообще накатываются в ci сервере и я вообще не вижу что там происходит. Только если что-то не так пойдет на email лог скинется.

Если же вы напишите консольную команду, то через некоторое время, если вам понадобится еще чего обновить, потребуется добавить поддержку версионизации структуры и по сути вы напишите еще один компонент миграций. Так зачем?

Худший ответ:
Теоретически правильно 1. Практически — второй вариант.

Выбор нужно делать в зависимости от того, находится ли в продакшине сайт, или нет. Что обеспечит меньший даунтайм — то и выбирать.

Однажды пришлось менять связку 1 к 1 на 1 к многим, на таблицах с десятками миллионов записей. Реализовано было:
1. шаг — создали новые таблици
2. тригер обновления (чтобы изменял и старые и новые данные). 
3. запуск консольного скрипта фонового обновления (выполнялся 7 часов, при этом не сильно грузил базу)
4. замена кода, который работал со старой структурой на новую.
5. удаление старых данных.
Суммарное время даунтайма = 0 секунд.
Итого: время обновление 10 часов. Даунтайма нет

На девелопмент машинах (с почти теми-же данными)
1. шаг — создали новые таблици
2. запуск консольного скрипта обновления (выполнялся 2 часф, при этом грузил базу, лочил таблици, и вообще ничего не работало)
3. замена кода, который работал со старой структурой на новую.
4. удаление старых данных.
Итого: время обновление 2часа часов. Даунтайма 2 часа
Вопрос: Почему NGINX использует сертификат и ключ первого хоста?

Лучший ответ:
Нужно, что nginx был собран с SNI 
узнать можно так :
nginx -V
должно выдасть
TLS SNI support enabled
также openssl должен быть собран  с enable-tlsext,
либо используйте разные ip для каждого домена

Худший ответ:
Покажите оба конфига, nginx абсолютно нормально обрабатывает ситуацию разные сертификаты для разных доменов, в общем случае настраивается так:server {
    listen              443 ssl;
server_name domain1;
        ssl                     on;
        ssl_certificate         /etc/nginx/ssl/domain1.crt;
        ssl_certificate_key     /etc/nginx/ssl/domain1.key;
}
server {
    listen              443 ssl;
        server_name domain2;
        ssl                     on;
        ssl_certificate         /etc/nginx/ssl/domain2.crt;
        ssl_certificate_key     /etc/nginx/ssl/domain2.key;
}
server {
        listen          80;
        server_name_in_redirect     off;
        server_name ~^(?:www\.)?(?P<host_wo_www>.+)$;
        return 301 https://$host_wo_www$request_uri;
}
Для каждого домена свой сертификат на 443 порту и общая редиректилка с 80 порта на 443.
Вопрос: если не секрет, то как построена инфраструктура анти-ДДОС сервисов типа qrator.net

Лучший ответ:
Да ровным счетом как у всех.
Стойки с серверами + роутеры + bgp + толстые 10 гигабитные каналы от нескольких провайдеров.
С точки зрения инфраструктуры почти у всех все стандартно. Как говорится вся прелесть в софте.

Худший ответ:
Если совсем просто — они выставляют в качестве фронтов свои сервера на толстых каналах. На серверах стоят проактивные IDS анализирующий трафик. Валидный трафик уходит на сервер клиента, невалидный оседает.
Вопрос: И все-таки, Paypal или Skrill или Payoneer или Wire transfer?

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

Худший ответ:
Skrill для того что бы отправить вам деньги в ваш банк, использует интернациональные сервис платежей и транзакций. Он отправляет деньги сервису, сервис распределяет транзакции между мидл банками, мидл банк уже отправить в ваш Банк. Сколько будет стоить взнос за транзакцию мидл банка известно только ему. Этот взнос может быть разный в зависимости от банка которым вы пользуетесь. Что бы узнать сумму взноса нужно позвонить в Skrill и попросить у них чек одной из ваших транзакцией, вы с этим чеком идете в ваш банк и разговариваете почему такой взнос и можно ли его как то уменьшить, если нельзя ищите другой банк или систему. Пример такого чека.
Вопрос: Выбор железа для SQL сервера 1С

Лучший ответ:
Недавно брали сервер, как раз под 1С.
Как писали выше, используйте счётчики, необходимо мониторить загрузку по памяти, дискам, процессору, сетевым интерфейсом, обращению к файлу подкачки. Собирать информацию необходимо периодически, постоянно следить за изменением показателей — очень пригодится позже, для анализа и решения проблем с узкими местами.
В вашем случае, с 0,5 Гб базой существующего сервера должно хватать.
В случае значительного роста, необходимо продумать всё наперёд.
В нашей организации, БД за 2 года выросла с 20 до 70 Гб, кол-во пользователей с 25 до 50 одновременно работающих.
По опыту и показаниям счётчиков:
 — процессор значительно загружен бывает очень редко и врят ли будет узким местом, скажу только, что выбирать выгоднее один 4-х ядерный, вместо двух 2-х ядерных из-за схемы лицензирования MS SQL на процессор, если СУБД другая, то считайте сами, по деньгам;
 — сетевой интерфейс, бывает загружен значительно, но пока не являлся узким местом, 2-х гигабитных интерфейсов хватает;
 — памяти, тут как всегда её много не бывает, и сейчас она относительно недорога, плюс всё серверное ПО 64-bit (ОС, СУБД, УПП);
 — самый большой затык в дисковой подсистеме, наибольшая нагрузка на неё, поэтому при больших объёмах выбирайте самый быстрый тип RAID, не забывая про надёжность (у нас Raid 10). Как советуют выше, мы выбрали SSD — это достаточно дорого, кроме того, эти диски имеют свойство быстро умирать, поэтому обязательный запас, на случай выхода из строя, но эти диски дают в разы бОльшие скорости на операциях случайного чтения и записи, обгоняя любые НЖМД. Также не забываем разносить базы и логи на разные тома рейда, и помним про tempdb в MS SQL.

При увеличении количества одновременно работающих пользователей, на первый план выйдет проблема блокировок на уровне таблиц БД. Вам наверное пока рано об этом думать.

Советую почитать раз и два.

Худший ответ:
под первый который под БД считайте так, чтоб вся база помещалась в оперу.
А второй, где-то написано сколько откусывает один терминал + можно посмотреть сколько откусит 1с и сложить все что есть.
Вопрос: Photoshop.Как изучать?

Лучший ответ:
Судя по тому, что вы не знаете с чего начать, вы не знаете зачем оно вам надо, а если вы не знаете зачем оно вам надо, то скорее всего оно вам не надо ;-)

Худший ответ:
1. уметь пользоваться торрентом
2. смотреть желательно западные уроки. начать можно с tutsplus.com
3. регулярно посещать сайты такие как behance.net и dribbble.com
4. свободное время :)
Вопрос: Сколько инстанстов Flask приложения запускает Gunicorn?

Лучший ответ:
В конце концов я пришёл к выводу что Gunicorn запускает один экземпляр Flask приложения. 
Запросы от NGINX попадают в Gunicorn, а он в свою очередь определяет передавать их в приложение сейчас или позже. Запросы от Gunicorn поступают в объект wsgi_app Flask`а. На каждый из запросов приложение Flask выделяет поток из пула потоков со своим контекстом, а после запроса этот контекст убивает. Таким образом получается что каждый worker Gunicorn обрабатывается в одном экземпляре приложения асинхронно.Standalone WSGI ContainersMiddlewares WerkzeugFlask Викиучебник

Худший ответ:
Количество процессов, запускаемых gunicorn'ом, определяется его параметром workers.
Однако с помощью "асинхронных" worker'ов (например, gevent) можно условно параллельно обрабатывать несколько запросов даже в одном процессе.
Тип worker'а задается с помощью параметра worker-class.
Вопрос: Google Calendar

Лучший ответ:
Попробуйте проверить TimeZone в настройках календаря. 

Мои календари — Общие — Текущий часовой пояc.

Худший ответ:
у меня сегодня работал нормально.