Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какими должны быть работы в портфолио неопытного верстальщика?

Лучший ответ:
нормально. и у опытного тоже нормально :)

Худший ответ:
да божешь мой, вы можете создать тонну демосайтов на бесплатном myfh.ru (через websurf киньте 90 просмотров каждого за месяц иначе закроют за непосещаемость).
а так для портфолио мало одних скриншотов.
Заказчик любит "пощупать" изделие и ему параллельно чем вы владеете. Главное для него удобство, шарман и респект. (удовлетворение по основным функциям).
Вопрос: Как правильно настроить входящую маршрутизацию ASTERISK?

Лучший ответ:
exten => _X.,1,Goto(incoming,s,1)

exten => sip_login2,1,Goto(incoming,s,1)

[incoming]
exten => s,1,GotoIfTime(8:00-20:00,mon-fri,*,*?ivr-main,s,1)
same => n,GotoIfTime(8:00-17:00,sat,*,*?ivr-main,s,1)
same => n,GotoIfTime(10:00-15:00,sun,*,*?ivr-main,s,1)
same => n,Playback(nonworkinghours)
same => n,Goto(autoanswer,s,1)
Hangup не нужен, поскольку на него попасть невозможно.

Худший ответ:
Думаю, вам поможет s extension.
Выглядеть это будет как-то так:exten => s,1, GotoIfTime(8:00-20:00,mon-fri,*,*?ivr-main,s,1)
exten => s,n, GotoIfTime(8:00-17:00,sat,*,*?ivr-main,s,1)
exten => s,n, GotoIfTime(10:00-15:00,sun,*,*?ivr-main,s,1)
exten => s,n, Playback(nonworkinghours)
exten => s,n,Goto(autoanswer,s,1)
exten => s,n, HangUp()
Вопрос: Как сделать такую адаптивность без фреймворков?

Лучший ответ:
flexbox + order для смены порядка блоков

Худший ответ:
jsfiddle.net/5aafbhrv/2 html из примера не подходит для решения без дублирования
Вопрос: Яндекс Метрика и Гугл Аналитикс. Кому из них верить?

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

Худший ответ:
Проанализировав все данные сайта, особенно логи сервера, выбор сделан в пользу GA, так как ЯМ не умеет теперь нормально считать пользователей из Украины, печально однако...
Вопрос: Сколько выделяется памяти под массив в C++?

Лучший ответ:
Я предполагаю, что выделится ровно столько, сколько элементов перечислено в списке
Совершенно верно за одним исключением. Памяти может выделятся чуть больше из-за выравнивания. Доступ к памяти по выровненным адресам намного быстрее происходит, из-за чего эффективнее например выделить дополнительный байт в начале (что бы адрес массива стал кратным 2/4/8/16 (смотря какое выравнивание в архитектуре используется).

Худший ответ:
sizeof(type) * N, где type - тип, а N - количество элементов, плюс к этому числу добавляется количество байт до такого числа, чтобы оно было кратно выравниванию, как сказали выше.
Проще говоря, занимает столько, сколько занимает N таких элементов ( для int -  4N байт ) и это число округляется в верхнюю сторону до числа, чтобы было кратным некоторому числу K. Это число K и есть выравнивание, задается в настройках компилятора.
Нужно выравнивание, чтобы процессору проще вычислять было. Он гораздо проще работает с числами кратными степени двойки.
Вопрос: Как добиться быстрой индексации страниц сайта?

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

Худший ответ:
В твиттере попробуйте сделать пару постов. 
Из быстрых методов, к сожалению, больше ничего не знаю, т. к. обычно за скоростью индексации и пр. не гонюсь.
Вопрос: Какой ресурс лучше для изучения программирования?

Лучший ответ:
За английским:
https://medium.com/@nechitai/750-hours-of-free-pre...
За практикой:
hexlet.io (просто охренеете от количества и сложности заданий). Что-то типа учебного плана тут https://ru.hexlet.io/professions/backend

Худший ответ:

3. Как можно больше практики (очень нравится как все устроено в freecodecamp и codeschool)
Это по вашему практика? =) только живой ментор может проверить код.
Вопрос: Какие способы гарантированной неподмены данных с клиента существуют?

Лучший ответ:
Никак
Дублируйте генерацию на стороне сервера

Худший ответ:
Думаю, что никак. В самой постановке задачи у вас что: клиент заведомо ничего не знает про сервер. Тогда если мы представим параллельно идущий процесс клиента B, который полностью дублирует работу клиента A, то в какой-то момент времени данные с клиента B могут быть переданы серверу вместо клиента A.
HTTPS/SSL как раз и существует для решения подобных задач, в том числе. Просто используйте его - никто ничего не подменит (ну кроме уж случаев с перехватом сертификата, но это уже другой уровень).
Вопрос: Как сделать замену с массивом с помощью регулярных выражений?

Лучший ответ:
Как осуществить замену в строке данными из массива?

Худший ответ:
Думаю что нашел решение вопроса. Выглядит правильным.<?php

//$string = "Carrier with such method not found: %, %";
//$string = "Carrier with such method not found: %1, %2";
//$string = "Carrier with such method not found: %2, %3";
$string = "Carrier with such method not found: %1, %1";
$replacements = [
    'ups',
    'GND'
];

echo preg_replace_callback('/\%(\w+)/', function($matches) use (&$replacements) {
    return array_shift($replacements);
}, $string);
Вопрос: Как ускорить большое количество get запросов?

Лучший ответ:
Основное происходит в строке с pool.mapimport urllib2 
from multiprocessing.dummy import Pool as ThreadPool 

urls = [
  'http://www.python.org', 
  'http://www.python.org/about/',
  'http://www.onlamp.com/pub/a/python/2003/04/17/metaclasses.html',
  'http://www.python.org/doc/',
  'http://www.python.org/download/',
  'http://www.python.org/getit/',
  'http://www.python.org/community/',
  'https://wiki.python.org/moin/',
  'http://planet.python.org/',
  'https://wiki.python.org/moin/LocalUserGroups',
  'http://www.python.org/psf/',
  'http://docs.python.org/devguide/',
  'http://www.python.org/community/awards/'
  # etc.. 
  ]

# Make the Pool of workers
pool = ThreadPool(4) 
# Open the urls in their own threads
# and return the results
results = pool.map(urllib2.urlopen, urls)
#close the pool and wait for the work to finish 
pool.close() 
pool.join()

Худший ответ:
Как на счёт распараллелить задачи с помощью воркеров ? У меня всегда на этот случай есть message broker. Я просто накидывают туда задачи и в зависимости от числа задач ставлю больше или меньше воркеров. Только есть проблема что если ресурс один или не большое колличество то вас могут забанить
Вопрос: Что сейчас самое главное в продвижении сайта?

Лучший ответ:
1. Контент
2. Контент
3. Контент

Худший ответ:
Читаем тут https://sitecoder.blogspot.ru/search/label/%D1%80%...
и тут: На чем лучше делать одностраничник?
Вопрос: Как перейти на договорные отношения с заказчиками?

Лучший ответ:
ООО
В Гугле
Договор счёт оплата акт

Худший ответ:
1) Открываешь ИП, покупаешь патент для своей деятельности: надо лишь вести книгу о доходах, один раз оплатить патент (12-60к в зависимости от региона, оплачиваться может в один-три подхода), в конце года заплатить в ПФР 26к и за ОМС 5к, а так же продлить патент (с той же оплатой). Ни надо ничего считать, нанимать бухгалтеров и т.д.
Про патент лучше почитать, я вкратце рассказал, кое-какую инфу незначительную опустил.
2) 500₽ юристу заплати и он тебе составит договор под тебя и твои задачи. Найти можно прямо в гугле, я на правоведе искал.
3) Примерно так и есть. Ну, еще суды бывают)
Вопрос: VPN на Mikrotik, как запретить внутренние ресурсы?

Лучший ответ:
/ip firewall filter add chain=forward in-interface=all-ppp dst-address=!192.168.1.100 action=drop
либо/ip firewall filter add chain=forward src-address=192.168.10.0/24 dst-address=!192.168.1.100 action=drop
Не забудьте разместить правило в правильном месте в фаерволе.

Худший ответ:
Настроить firewall
Вопрос: Веб сервер дома?

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

Худший ответ:
пинга  в 1 мс не бывает, попингуйте гугл, яндекс, мейл
т.е. "хороший интернет" у вас только до вашего провайдера
Вопрос: Bootstrap или JavaScript. Что изучать?

Лучший ответ:
И то и другое. Вместе.

Худший ответ:
День начинается с вечной борьбы,
Между желаньем поспать и побриться.
Вопрос: Как реализовать переходы между сгенерированными локациями(Unity 2D)?

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

Худший ответ:
Если у вас мир не бесконечный, то один из возможных подходов, это на старте создания мира для каждой локации сгенерировать свой seed, далее во время игры, если вы в эту локацию каким-либо образом попадёте (пешком, телепортируетесь или ещё как), то другой генератор берёт сохранённый seed и создаёт эту локацию с нуля. Если вы потом как-то внесёте изменения в эту локацию, то вы эти изменения сохраняете отдельно, будь то выпавшие предметы или снесённые стенки. Если вы потом захотите вернуться в эту локацию, то вы берёте сохранённый seed, с нуля генерируете локацию и применяете изменения. Другой вариант - в качестве seed для локации брать её координаты, такая схема подойдёт и для бесконечного мира, но не в каждой игре можно очевидным образом найти координаты уровня.
Вся эта возня с сидами нужна по нескольким причинам. Во-первых, это нужно вам как разработчику для тестирования генераторов. В идеале ваши генераторы должны быть полностью детерминированными, из одного и того же сида у вас всегда должен генерироваться один и тот же мир, независимо от того, как он исследуется. Если это не так, то вы потом умучаетесь дебажить процесс генерации, в то время как с сидом вы просто его записываете в сохранку, пишете в логи, а потом в любой момент используете для воссоздания проблемной ситуации. Во-вторых, наличие явного сида в процедурно генерируемых играх это уже ожидание жанра, ими делятся в интернете, они используются для еженедельных испытаний и т. д.
Вообще говоря, на тему генераторов и сидов могу посоветовать вот эту статью от разработчика Cogmind, там всё то же самое, что и я сказал, только подробнее.
Вопрос: Почему не хватает прав для перенаправления вывода?

Лучший ответ:
sudo echo "121.0.0.1 test.dev" >> /etc/hosts
sudo применяется только к вызову команды echo, запись в файл выполняется от имени обычного пользователя
правильно сделать такecho "121.0.0.1 test.dev" | sudo tee -a /etc/hosts
echo выполняется от обычного пользователя, ее вывод перенаправляется на вход команды tee, запущенной от имени рута, она входной поток дописывает (-a опция) в конец файла, ну и дублирует в stdout.
получается запись в файл от имени рута.

Худший ответ:
ибо sudo sh -c 'echo "127.0.0.1\texample.com\n" >> /etc/hosts'
по крайней мере в макоси.
Вопрос: Компьютер не включается после чистки?

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

Худший ответ:
Защита срабатывает. Тут два варианта:
- после чистки собрали так, что где-то коротит
- в процессе выправления ножек повредили проц
Вопрос: Как обратиться к объекту в массиве, зная значение его свойства не через цикл?

Лучший ответ:
только перебором.[{id: 1}, {id: 2}].find(item => item.id === 1) //{id: 1}UPD
Можно попробовать нормализовать данные, т.е сделать плоский объект, который будет хранить значения нужного объекта и указывать на его индексconst data = [
	{ id: 1, title: 'foo', notUniqueKey: 1 },
	{ id: 2, title: 'bar', notUniqueKey: 2 },
	{ id: 3, title: 'baz', notUniqueKey: 1 },
]

const flatify = (data = [], uniqueKeys = []) => {
	const o = {}
	
	data.forEach((item, index) => {
		Object
			.keys(item)
			.forEach(key => {
				if (uniqueKeys.indexOf(key) !== -1) {
					o[item[key]] = index
				}
			})
	})
	
	return o
}

const bindings = flatify(data, ['id', 'title'])

console.log(data[bindings[1]]) // по id
console.log(data[bindings['baz']]) // по title

Худший ответ:
может не знаю какой то хак в JS, как обойтись без цикловЕсть такой хак. Называется "правильный выбор структуры данных". Работает, кстати, не только в js.
Можно, например, вести отдельный словарь, в котором в качестве ключей используются значения свойств, а в качестве значений - индексы в массиве. Или ещё десяток вариантов, всё зависит от структуры и особенностей конкретного приложения.
Вопрос: Как кастомизировать стандартные подсказки html?

Лучший ответ:
Стилизовать никак не получится. А вот изменить например текст можноoninvalid="this.setCustomValidity('Please Enter valid email')"
добавлением этого атрибута

Худший ответ:
Стилизовать никак нельзя. Либо делать самому валидацию и выводить подсказки.
Вопрос: Как скачать exe файл в убунту?

Лучший ответ:
Запустите консоль и скачайте через wgetwget http://host.com/myfile.exe

Худший ответ:
на страничке download есть запись
Загрузить
Если загрузка не началась, нажмите здесь.
"нажмите здесь" есть ссылка на https://cdn1.evernote.com/win6/public/Evernote_6.7...
Вопрос: Как влияет на продвижение сайта большое количество исходящих ссылок?

Лучший ответ:
nofollow не панацея.
Я бы посоветовал закрыть их через js.

Худший ответ:
Еще вариант: все исходящие заворачиваются на свой же домен, откуда идет редирект (уже по назначению) через meta http-equiv="refresh", а лучше - через js, но только не через 30X код, так как 30X редиректы могут склеиваться.
Вопрос: Какие есть OTP на основе текста?

Лучший ответ:
А чем именно ОТП TOTP, HOTP не подходят?
Не нравится время и счетчик - засуньте на вход алгоритма хеш от вашего документа. Но только это будет уже не OTP, т.к. для одного документа всегда будет один и тот же пароль.

Худший ответ:
Ну так и берите HOTP, где в качестве счетчика пускай будет уникальный идентификатор документа. 
Дальше вопрос в том, как превращать что-либо в число и кто и где это будет делать. Можете в sha512 загонять, можете CRC32 считать. Воля фантазии.
Вопрос: Правильней продвигать сайт или landing page к нему?

Лучший ответ:
Для сео - сайт
Для контекстной рекламы - Landing Page

Худший ответ:
Специально, чтоб не было лишних мыслей, делать или не делать . Варианты и тд)) Придумали готовый бизнес. Франчайзинг- наверняка слышали. Там есть ответы на все вопросы)) Это когда ты берешь Готовый бизнес под ключ, у меня был ларек, много лет, до 2014, до кризиса, тогда нужно было, что то делать более крупное. Тогда на последние деньги приобрел себе франшизу coffee-franchise.ru ., почему бы нет, мучений и лишних мыслей нет, только есть одна загвоздка, РАБОТАТЬ нужно Если есть готовая система -это только 50% усеха))
Вопрос: Yii2 фильтры для товаров?

Лучший ответ:
Можно юзать GridView|ListView, можно написать свой виджет, можно просто html во view файле. Ваш вопрос видимо из разряда "как сверстать", а это вопрос ни как не относящийся к yii.

Худший ответ:
Итак, продолжение =) Предполагаю расположить представление с фильтрами (_search.php) в layout-е, как передать $searchModel в layout?
Вопрос: Как записать rtsp поток качественно?

Лучший ответ:
1. Macroscop есть под Linux. Если уже куплен, почему бы не использовать.
2. Можете поискать по тостеру. Тут кто-то уже пилил свой велосипед на ffmpeg  или что-то такое.
3. Возможно поможет поменять транспорт в ffmpeg на TCP.

Худший ответ:
Проблем с записью с камер может быть очень много.
Причинами будет как сама камера так и качество канала между ней и сервером.
По идее смена транспорта должна помочь, так как потери пакетов как бы намекают.
Время сегмента можете также уменьшить.
А ещё, долгими зимними вечерами можно пробовать Flussonic и его архив.
Работает он преимущественно под Debian/Ubuntu 64 bit.
Вопрос: Как разграничить доступ в laravel 5.4?

Лучший ответ:
Laravel Enrust
В документации все очень доходчиво объясняется. Читаем, используем.

Худший ответ:
laravel gate про middleware само собой надо почитать
Вопрос: Macbook Pro 13 Retina TB: стоит ли брать для веб-разработки?

Лучший ответ:
Ех, есть отличная тема где я все расписывал по той же теме что и у вас! 50 комментариев, если не лень читать - много интересного узнаете. Выбор Macbook Pro для дизайна и xCode — 15" 2015 против 13" 2016-17 и 15" 2016?
Если кратко: лучше брать 2018го года уже при возможности, 13ки там с i5 4х ядерными, которые мощнее i7 в 15ках 17го года!
Но для веб разработки 13ки мало! Photoshop плохо оптимизирован и в 13ке стандартный макет сайта не помещается в 100% масштабе на экран без прокрутки, так как из за размера панелей (которые нельзя сузить) остается 2/3 площади экрана всего!
Так же при выборе ноутбука у нас - рекомендую смотреть отзывы перед покупкой на hotline, так как для "не официальных" ноутбуков - сервиса в Украине нет! Авторизированный сервис Apple в Украине не возьмет в случае чего в ремонт ваш макбук по гарантии и потому важен сервис магазина где вы покупаете, они возят их в случае поломки в европу в СЦ которые берут в ремонт или в Apple Store! По отзывам присмотритесь к MrFix

Худший ответ:
Очень даже неплохой вариант, себе такой же купил, заказывал в Apple Room https://apple-room.com.ua/category/macbook-pro/ у них самая дешевая цена в Украине, еще и гарантия год
Вопрос: Стоит ли учить python?

Лучший ответ:
Учите. Вас никто не ограничивает. Нужно  отталкиваться от своего положения. Если работа уже есть, и потраченное время не нанесет сильный урон текущему положению, почему нет? С опытом будет уже привычка учить различные языки без особой цели, чисто для развития. В книге "программист прагматик" говорится, что нужно учить как минимум 1 новый язык программирования в год, желательно с разной идеологией.

Худший ответ:
Зачем? PHP  как раз подходит для всех проектов (любой сложности). Лучше изучай дальше, более углубленно. Фреймворки Laravel, Symfony  и т. д. Ещё много чего нужно знать кроме языка. Но если он не по нраву, то конечно можна python выучить.
Вопрос: .NET Core -- перспективы, стоит ли изучать?

Лучший ответ:
Сейчас самое время его изучать, к тому времени как платформа будет полностью готовой будет багаж знаний. Но пока применять его на серьезных проектах я думаю не стоит.
Тот же EF Core - не готов и на половину. Большое количество багов, построение не оптимальных запросов, медленная работа. Я сравнивал одни и те же запросы на EF 6 и EF Core - разницы в десятки раз.

Худший ответ:
что значит переходить? а есть другие варианты? писать на старье? ну пару лет еще попишешь, а потом?
Вопрос: DevOps. Какие задачи являются типичными в повседневной работе?

Лучший ответ:
DevOps отличается от обычного сисадмина тем, что не может сказать "это задача программистов".

Худший ответ:
DevOps настраивает инструменты для автоматизации процесса разработки и тестирования.
Это может быть и Jenkins/Teamcity с различными билдами, верификациями, автотестами.
Это может быть и автоматическое разворачивание виртуальных образов/докеров для тестирования
Это может быть и организация железок с их автоматической прошивкой свежими билдами
Это может быть и организация системы версии контроля и ревью (bitbucket/gerrit)
Это может быть и банальная настройка каких-нить локальных шарообменников, чатов, вики, бэкапов и репликаций
Это может быть и банальная настройка обычных общих енвайрнментов и поддержания их в актуальном состоянии
В зависимости от квалификации девопса и его вовлеченности в проект, он может либо влиять на организацию всего вышеуказанного, либо работать по указанию темлидов/архитектора.
Бывает (не часто, скорее в стартапах), что девопс приходящий - пришел, настроил с нуля, научил кого-то за этим следить и ушел искать другой проект.
Девопс также весьма совместим с release manager, который отвечает за деплой на продакшн и все с этим связанное.
Еще с точки зрения организации, обычный сисадмин может работать в компании, поддерживая ее локальную инфраструктуру, но не в проекте, который работает на зарубежного заказчика. Следовательно у админа может не быть прав на проектные сервера/исходники и он не должен иметь к ним доступ, поэтому администрированием такого тоже занимается девопс, в силу того, что он работает в проекте (и подписывает НДА).
Вопрос: Какой бесплатный SSL лучше?

Лучший ответ:
В зависимости от того что предоставляет вам хостер вашего блога - посмотрите сможете ли вы сделать (бесплатный!) https://letsencrypt.org/
Ну а так - startssl для блога будет самое то, имхо.

Худший ответ:
WoSign еще можно, бесплатно и на три года
но от китайцев - для кого-то может быть минусом
Вопрос: Как правильно делать большие блоги на MODX? Где найти свежие материалы по созданию блогов на MODX?

Лучший ответ:
Не рекомендую в 2017 изучать MODX. Если уж хочется какую-нибудь CMS, то берите WP — если хочется попроще и October CMS — если посложнее и качественнее.
Блог на MODX сделать можно. Но опять же все упрётся в проблемы с тегами и категориями. Проблем с тормозами не будет.
Но если это каталог, то MODX подойдёт. Берите Collections + Gallery для галереи, линкуете к каждому ресурсу по своей галерее. MIGX — это плагин для клиентов, которые постоянно норовят поломать HTML-код. Для нормальных пользователей он не нужен.

Худший ответ:
Откройте для себя https://modx.pro Там всё есть.
Вопрос: Как оправлять команды у бота Telegram при выборе в меню?

Лучший ответ:
Не пойму, как отлавливать, какую из 3х клавишей нажал?
и как сделать так, чтобы в меню был один текст, а при нажатии на нее отправлялась к примеру команда?
С помощью Inline Keyboards, появившемся в Bot API 2.0.
https://core.telegram.org/bots/2-0-intro#new-inlin...
https://core.telegram.org/bots/api#inlinekeyboardmarkup
> Unlike with custom reply keyboards, pressing buttons on inline keyboards doesn't result in messages sent to the chat. Instead, inline keyboards support buttons that work behind the scenes: callback buttons, URL buttons and switch to inline buttons.Как на этапе отправки текста, мы знаем, что нам надо перевести текст?
При приёме сообщения от user_id, бот проверяет, на каком шаге в последний раз остановился этот user_id, и обрабатывает сообщение в рамках текущего шага. Если шаг "перевести" - то в ответ на любое сообщение он переведёт строку. На этапе "перевести" бот просто не показывает никакого меню, он просто ждёт строку.
Для этого боту делают хранилище сессий. Это может быть просто БД с колонками `user_id` и `state`, где в стэйте будет указан текущий шаг. При обработке сообщения, бот смотрит шаг и действует в соответствии с тем, чего хотел пользователь на этом шаге.
Если пользователь запросил другую функцию, или сделал /cancel, поменять шаг в таблице.

Худший ответ:
тоже интересует этот вопрос. получается, что если кнопка названа по русски "Как у тебя дела?", то нужно проверять строку if($stroka == "Как у тебя дела?") и тогда уже можно вернуть какой-то результат в чат?