Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Куда свитчнуться из автоматизации, если понял что я не вытяну программирование и иже с ним более высокого уровня?

Лучший ответ:
Свичнуться можно куда угодно. Главное, чтобы вам нравилось.

что то совсем новое, более связаное с креативом чем с хард скиллами
Ну если потянуло на творчество, то UX / UI дизайн неплохая, интересная и прибыльная область.

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

Можно еще попробовать себя в роли android разработчика. Не знаю насколько актуально это для вас.

Худший ответ:
Вы сами ответили на свой вопрос
Вопрос: Действительно для видеокамер нужен «особый» жд?

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

Худший ответ:
Без разницы. По сути есть 2 типа дисков. Обычные и серверные.
Например WD blue и wd black
Всё остальное это маркетинг и не более

Чисто из своего 8ми летнего опыта по установкам - мой выбор wd blue с 64мб кеша и 7200об.
При нормальной установке живут почти вечно
Вопрос: Как поставить разрешение экрана dekstop или imac в Figma?

Лучший ответ:
Здравствуйте!
eeeee_what, для отображения списка фреймов под разные устройства вам нужно:
1. Нажать "Frame" или кнопку "F" на клавиатуре.

2. После чего с правой стороны вы увидите меню Фреймов.

3. Фрейм разрешения imac находится в пункте "Desktop".
4. Для Планшетов нужно зайти в "Tablet".

5. И нажимаете на нужный фрейм, после чего он появляется в рабочей области.


Худший ответ:
Да просто создаётся фрейм через клавишу F. Выбираете то разрешение, которое посчитаете нужным. Как и показано в ответе выше
Вопрос: В каком формате обычно делают CRM системы?

Лучший ответ:
От многопользовательского приложения в формате программы для десктопа уже отказались даже такие динозавры, как 1С.
Не хочешь класть данные в интернет - положи в интранет. Потом, когда одумаешься, перенесешь на хостинг.
"CRM-система с клиентской базой, с учетом приходов и расходов, c учетом товаров на складе и с архивом заказов" - это 90% систем, внедряемых в бизнесе. Писать что-то свое с нуля тут имеет смысл только в том случае, если вы собираетесь развивать и поддерживать его самостоятельно же, постоянно копаясь и выделяя на это ресурсы. В формате "один раз заплатил и работаешь" - только готовые решения.

Худший ответ:
Я сделал так, дома дополнительный комп сервер, который всегда включён. На нем запустил open source CRM систему ( я пробовал odoo, но наверное лучше взять ERPNext или ещё какую нить по вкусу) . После покупаем самый дешёвый vps с хорошим каналом, ставим туда nginx и через ssh туннель или vpn пробрасываем порт себе на локальный компухтер.

Тут можно и домен привязать и lets encrypt сертификат получить и будет работать как будто система находится там, а на самом деле вы всего лишь настроили проброс порта.

P. S. Писать новое с нуля не надо, возьмите готовое, а если функционала не хватит допилите плагин/дополнение
Вопрос: Как сделать адаптацию зума html?

Лучший ответ:
Мда... Такого я давно не видел) Конечно, будет съезжать
top: 44%;
left: 41%;
...и т.д.
Это костыль явных новичков. Потому что нужно знать, что твой экран - это не экран других и пропорции могут отличаться. Тут нужно полностью переписывать этот отрывок CSS, чтобы исправить. Скинь разметку HTML, помогу

Худший ответ:
Зум просто меняет вьюпорт, если у тебя адаптивная верстка для всех экранов будет то все и останется по красоте
Вопрос: На чем лучше делать ML-движок/модель — на Python или C++? Где библиотек больше и т.п.?

Лучший ответ:
Если вы не понимаете преимущества и недостатки этих языков именно в задачах ML,  а кроме того, вы в одну кучу намешали  "ML-движок"  и  "ML-модель" , то это просто означает что у вас (и вашей команды) знания в области ML реально нулевые.  В таком случае писать самостоятельно "ML-движок" я бы вообще поостергся.   Как вам уже посоветовали - нанимайте людей, которые имеют соответствующую экспертизу, они и на ваши вопросы вам ответят.  Опыт в программировании и опыт в ML - это близкие, но совершенно различные скилзы.  
P.S. Про вопрос - а ЗАЧЕМ самостоятельно писать "ML-движок" -  я вообще умолчу.

Худший ответ:
Практически все т.н. "движки" пишуться на C/C++. Это связано с перформансом. Но к ним делаются библиотеки доступа из других языков. Например Python, Java, e.t.c.

Но сам вопрос поставлен очень безграмотно. Много гонора и мало представления о предметной области в целом. Автору я очень сильно советую найти настоящего специалиста ML и поговорить с ним. 

Меньше амбиций и гонора. Больше конструктивных вопросов. Что делаем? Какой объем обучающей выборки? Какие факторы? Какого класса обучение делается. Классификация? Прогнозирование? Рекомендательные системы?
Вопрос: Как избавиться от бесконечных условий в php?

Лучший ответ:
Сумма за 99 символов
У нас есть 205 символов
За каждые 99 символов прайс 500 рублей
1) Делаем деление всего символов на 99
2) Умножаем результат на 500 рублей

ПС:
Это даже не программирование.

Худший ответ:
Но у вас же тут просто формула.
$sum = (1+floor($number_of_characters / 100)) * 499;
Вопрос: Как создать маску для нескольких частей названия файла?

Лучший ответ:

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

Давайте по шагам, как детстве с мамой

Что выводит echo "../local/$id.*.$login_*";? Соответствует ли вывод ожиданиям? Если нет - то в чем различия? Что должно вывести и что вывелось?
Если ответ на первый вопрос положительный, то что выводит var_dump(glob("../local/$id.*.$login_*")); Соответствует ли вывод ожиданиям? Если нет - то в чем различия? Что должно вывести и что вывелось?
Если ответ на второй вопрос положительный, то каков результат работы кода? Соответствует ли он ожиданиям? Если нет - то в чем различия? Что должно было удалиться, и что удалилось?
Включен ли вывод ошибок? Если нет - то надо включить. Если включен и выводятся - то какие?


Худший ответ:
Решение нашел сам.

Выделил искомые слова одинарными, а не двойными кавычками. И соответственно все что внутри glob( тоже взял не в двойные кавычки, а в одинарные.
В двойных видимо точки в названии файла распознавались как часть условия маски.
Вопрос: Php оператор substr и присваивание возвращает пустую переменную?

Лучший ответ:
На php операция конкатенации - . , а не +.

Худший ответ:
Ответ уже есть но на будущее автору, вардампь переменные и будет меньше вопросов
Вопрос: Как группировать данные, если у них есть уникальные id?

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

Вот есть некая группа, в ней все off_id одинаковы, но id различны. После группировки все эти записи будут сгруппированы в одну. А теперь, внимание, вопрос: ну и какое одно значение id из всех возможных сервер должен вернуть? не знаете? так ведь и сервер не знает... вот он и генерирует ошибку.

Уберите id из выходного набора. Либо явно и чётко скажите серверу, какое именно значение из всех возможных в группе он должен вернуть. Наименьшее? требуйте MIN(id). Наибольшее? MAX(id). Хоть какое, любое? ANY_VALUE(id).

Худший ответ:
Это не из-за того, "что у каждой записи есть свой уникальный id", а из-за того, что вы один набор данных (строки в таблице) превращаете в другой (аггрегированные данные), но при этом хотите выбрать ещё и поля из первого набора. Но чтобы это сделать, нужно эти поля тоже конвертировать. Для этого используются аггрегирующие функции: GROUP_CONCAT(), MIN(), AVG() и т.п.
Вопрос: Как удалить console.log из node_modules?

Лучший ответ:
Форкнуть пакет, почистить и заинсталлить в проект свой форк.

Худший ответ:
попробуй сделать патч через https://www.npmjs.com/package/patch-package
Вопрос: Можно ли хранить массивы в MySQL?

Лучший ответ:
Есть вариант хранить как строку "1,2,3,4"
JSON

мне надо 100 записей в бд для 10 id'шников
И что? В чем проблема?

как-то не правильно это все
Читаем https://habr.com/ru/post/64524/

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

Лучший ответ:
users <---> projects

у одного пользователя один проект? one-to-one
у одного пользователя больше одного проекта? one-to-many
много пользователей на один проект? many-to-one
каждый пользователь может иметь больше одного проекта, и на одном проекте может быть больше одного пользователя? many-to-many

Худший ответ:
В таблицу projects добавьте поле user_id и записывайте туда id пользователя из таблицы users.
Вопрос: Как выбрать железо для обучения нейронной сети?

Лучший ответ:
Вы только учитесь, не парьтесь насчет железа, с нуля вы не будете обучать модели, так что делайте на том что есть, есть площадки типу google colab.

P.S: для машинного обучения смотрите на видеокарту и количество CUDA ядер

Худший ответ:
Размер и архитектура сети плюс размер обучающей выборки.

Не всегда количество ядер GPU оказываются решающими, большее влияние имеет размер и скорость GPU RAM.

Первая метрика, точнее граница, ниже которой скорость обучения максимальная - объем весов сети плюс обучающая выборка должны вмещаться в оперативную память GPU.

Несколько GPU позволяют почти линейно снизить требования к размеру обучающей выборки - так как можно поделить выборку на части и вычислять на каждом шаге ошибку параллельно (кстати так сделать можно не всегда).

Следующая граница - обучающая выборка не влезает в GPU но вмещается в RAM, сама же нейронная сеть влезает в GPU, т.е. вычисление самой сети все еще быстрое а значит единственное ограничение - узкое горлышко между RAM и GPU.

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

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

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

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

в общем это процесс творческий и каких то гарантий без собственно исследования дать нельзя.
Вопрос: Какой гипервизор подходит для моих задач?

Лучший ответ:
Если прям изкаропки браузер - виртуализация - можно ProxMox

Если просто удаленка до ПК - 
Виндовс + RDP\VNC
Ubuntu\Debian + VNC

Худший ответ:
Если однократно у тебя будет монитор, тебе достаточно настроить удаленное управление (стандартный rdp, настраивается в свойствах мой компьютер) и все, по локальной сети ты сможешь управлять компьютером с телефона и даже запускать не самые динамичные игры

Виртуальная машина тебе не нужна

Проследи, чтобы пользователь через который ты будешь заходить был администратором
Вопрос: А как на серверах функция mail отправляет почту?

Лучший ответ:
Использует sendmail
echo ini_get('sendmail_path');
sendmail_path	
/usr/sbin/sendmail -t -i

Худший ответ:
Вообще, php отправляет посредством фунцкии mail() - https://www.php.net/manual/ru/function.mail.php

Советую посмотреть также вот это: https://github.com/PHPMailer/PHPMailer
Вопрос: Как сделать не кликабельный текст?

Лучший ответ:
Сделайте так, чтобы это была не ссылка (<a>).

Худший ответ:
Чтобы убрать подчеркивание, нужно написать стиль
text-decoration: none;
Насчет текста, чтобы не был кликабелен? Он не кликабельный
Вопрос: Какой стиль лучше использовать в лапше?

Лучший ответ:
А вы можете хоть один аргумент в защиту второго варианта привести? Вот и ответ.

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

Лучший ответ:
Что такое дополнительная скорость? Это что за зверь такой?

У вас тариф для выхода в интернет - 2мегабита/с. Если качаете с большей скоростью - шейпер срежет скорость во соответствии с тарифом.
Закачки с некоторых адресов шейпер может игнорировать если его соответствующим образом настроить.

Настраивает шейпер провайдер - вы на это никак повлиять не можете.

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

Худший ответ:
Мммм... великие видосы с ютюба с демонстрацией сверхспособностей автора...

Есть только два варианта:
1) Купить контрольный пакет акций steam, чтобы иметь возможность указать разработчикам, которые зделaют вам инторнет.

2) Надеяться на то, что в механизме ограничения скорости у провайдера есть дырка, которой вы сможете воспользоваться.
Вопрос: Почему не выполняется условие в JavaScript?

Лучший ответ:
Так напишите  console.log(result == "username-error");,   и увидите результат этой проверки. И лучше делать    console.dir(result);,    тогда будет видна настоящая структура result, может там вообще массив сидит...

Худший ответ:
Не понимаю, что сложного в том, чтобы зайти в документацию. И увидеть там
dataType
Type: String
The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html).

То есть мало того что у нас древнее и никому не нужное жквери, так оно ещё и играет в угадайку. 

Вместо которой надо явно написать, в каком формате мы данные ожидаем. 

Плюс из пхп лучше не плеваться непонятными словами, а отправлять в нормальном формате, например json.

Ну и PHP код - это конечно, ужас.
Вопрос: Asterisk основы и язык, что выбрать?

Лучший ответ:
AEL несколько удобнее в написании диалпланов, но при загрузке он транслируется в стандартный конфиг, так что при необходимости отлаживать диалплан всё равно придётся в стандарте. Плюс при трансляции добавляются дополнительные команды NoOp для переноса управляющих структур if/else, case, while и т.п.
Диалплан в базе - это всего лишь вариант хранения. По сути он ничем не отличается от стандартного конфига, просто одна строчка диалплана - одна строка таблицы в БД.

Худший ответ:
В целом, подход правильный, что с непосредственно с голого астера. Также, сразу начать конечно без реал-тайм конфига и бд, а просто файлов sip.conf и extensions.conf (ну возможно еще, asterisk.conf). 
Но также, обратите внимание, что при изучении Вам будет встречаться рекомендация использовать вместо устаревшего sip новый набор - pjsip (файл pjsip.conf). Да, он круче, чем сип, и да на него стоит переходить. Но он может отпугнуть своим объемом настроек. То что в сип делалось 3 строками, в pjsip делается 5 блоками по 3 и более строк. То есть, пока pjsip задвиньте, когда освоитесь на практике с sip, потом перейдете на pjsip, и возможно на реалтайм.
Вопрос: Как так оказалось, что часть Windows 10 не русифицирована?

Лучший ответ:
У меня версия 19041. Такого пункта в данном месте нет. 
Возможно, вкладка добавляется драйверами на аудио (такое бывает например с тачпадом)

Худший ответ:
у всех так (точнее зависит от драйверов на звуковую карту)

раньше этой закладки не было, а для расширенных настроек звуковой карты требовалось запускать утилиту от производителя (если помните к примеру релтековская с ужасным скин дизайном), похоже майкрософт занялись стандартизацией этого, но до правильной локлизации руки не дошли
Вопрос: Как вывести что-либо если сейчас от 10 до 20 часов?

Лучший ответ:
функция date

Худший ответ:
<?php
if (10 <= date("G") && date("G") <= 20) {
    echo "сейчас на сервере от 10 до 20 часов.";
}

php code online
Вопрос: Как разбить сети на подсети?

Лучший ответ:
/23 можно разбить на две /24, четыре /25 и так далее. Что это за подсети с количеством хостов 25, 60, 150 - вопрос к формулировке задачи.

Худший ответ:
/23 можно разбить на две /24, четыре /25 и так далее. Что это за подсети с количеством хостов 25, 60, 150 - вопрос к формулировке задачи.
Вопрос: Актуален ли рынок программирования микроконтроллеров?

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

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

возможно ли найти вакансии в данной сфереВозможно.

порекомендуйте, что стоит изучить. Для начала электронику. Что такое напряжение, ток, сопротивление и т.д.

Я знаю, что очень популярны платы Arduino, однако как я вычитал из некоторых статей они актуальны именно, как хобби, Совершенно верно, платформа Arduino разработана для изучения МК людьми далекими от электроники. Также служит для быстрого прототипирования и очень мелкосерийного производства.

В любом случае мне придется изучить C++ и C#,  Язык программирования Arduino похож на C++, C# вам может понадобится если захотите прикрутить Arduino к ПК под Windows

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

Многие говорят про STM программирование, но я допустим не нашёл в принципе вакансий под данную нишу. И не найдете. Программирование МК осуществляется на стадии разработки, а где и кто "на территории стран СНГ" занимается разработкой? Чисто теоретически на больших предприятиях можно поискать вакансии программистов ПЛК, но это уже совсем другая история
Вопрос: Определение оператора сотовой связи и региона по номеру мобильного телефона, как сделать?

Лучший ответ:
В России есть Россвязь, которая распределяет номерную ёмкость по операторам. Эта информация публична, можно скачать машиночитаемые выгрузки у них на сайте: https://rossvyaz.gov.ru/deyatelnost/resurs-numerac...

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

Оператором базы данных перенесённых номеров (БДПН) является ЦНИИС, на его сайте можно получить текущего оператора только по конкретному номеру: https://zniis.ru/bdpn/check/ а обновляемый доступ ко всей базе простым смертным не получить.

Чтобы понимать масштаб проблемы, сейчас в России ~14.7 млн. перенесённых номеров, за вчерашние сутки ~9.5 тыс. номеров поменяли оператора и ~1.5 тыс. вернулись из списка перенесённых к своему родному оператору.

Таким образом, никакого смысла в подобном сайте без обновляемого доступа к БДПН (а она обновляется каждые 2 часа) нет.

Что касается технической реализации, то тут всё достаточно просто, если у тебя есть доступ к БДПН. ЦНИИС публикует раз в сутки Numbering_Plan, аналогичный выгрузке DEF-9xx.csv Россвязи (формат отличается, но смысл тот же - диапазоны, каждый назначен оператору+региону), также публикует раз в сутки Port_All с полным списком MNP. Если не нужно поддерживать (для простоты) частые (каждые 2 часа) обновления, то этого достаточно. Любой номер сначала проверяем на наличие в Port_All, если не нашёлся - ищем подходящий диапазон в Numbering_Plan.

Худший ответ:
Этих сайтов ещё только ленивый не делал )) 100500 штук уже.
А вам с такой постановкой вопроса путь на фриланс.
Вопрос: Как правильно перенести ВМ из hyper-v в proxmox?

Лучший ответ:
Пробовал Ютубчик глядеть лениво, а последняя ссылка выглядит здраво.

Попробуйте это:
раз https://pve.proxmox.com/wiki/OVMF/UEFI_Boot_Entries
два https://forum.proxmox.com/threads/how-to-fix-non-b...
(особо не вникал, просто нагуглил варианты решения)

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

Лучший ответ:
Вы можете попробовать заранее создать эти 10 точек прямо на сцене за камерой и во время игры просто перемещать их на место спавна. Это кстати будет и не так ресурсозатратно, потому что destroy и instantiante тяжелые функции. 
Как реализовать ваш код пока не знаю, надо думать. Но, по-моему, вариант который я предложил не хуже.

Худший ответ:
В общем  у меня была схожая ситуация нужно было сделать так что бы на сцене всегда было 15 платформ, платформы когда игрок к ним касается удаляются а новые создаются. В общем вотprivate int pointCount = 0;

void Update(){
if(pointCount <= 10){
pointCount++;
//создаёшь точку 
}
А в коде  где записано соприкосновения игрока и точки сделай просто что бы когда сожрало одну точку то pointCount --; всё.
Вопрос: Выбор базы данных для быстрой записи меняющихся данных?

Лучший ответ:
Это не должно быть проблемой для Mysql, это очень быстрая СУБД. С учётом, что это временные значения, которые не нужно хранить постоянно, то и классическая СУБД не нужна. Поэтому берите Redis. А Clickhouse это аналитическая СУБД, это здесь вообще не причём.

Худший ответ:
и что, вы взяли коэффициент к в 0 часов, ав 0 часов 1'' коэффициент k поменялся k`, и кто-то тем старым коэффициентом k воспользовался.
Вы серьезно ок забыть, какой он был?
Наверное даже во время запроса по списку, часть коэффициентов изменится, по мере считывания, при том, что все, как задумано,но по-честному Вам бы наверное хотелось список "к" в 0 часов список в 0 часов + 1 версия + 2 ... n версия.
Учитывая 300 значений/3 секунды по 32 бита на каждый получаем 1,2МБ в час. В принципе копейки для  MySQL
Редиску можно встроить для текущего слепка, если хочется немедленный ответ из буфера.
Вопрос: Как сделать мигающее уведомление во вкладке браузера?

Лучший ответ:
var titleState=0;
setInterval(()=>{
document.title=titleFlag?"Мигающий":"заголовок";
titleState = titleState?0:1;
},500);

Худший ответ:
Во-первых, это два разных вопроса.
По поводу мигания вам уже написали.
А вот по поводу получения уведомления есть разные способы, все они потребуют фоновых запросов, чтобы не блокировать вкладку.
Простейший пример - polling. Каждые несколько секунд шлем запрос на сервер "а есть ли новые сообщения?", на что сервер отвечает либо "нету" либо отдаёт список новых сообщений. Просто, но грузит сеть, жрёт батарейку, грузит сервер. 
Чуть сложнее - long polling. Мы шлём запрос "есть ли новые сообщения?" на сервер с длинным таймаутом, скажем, несколько минут. Если сообщений нет, сервер молчит, но запрос не прерывает. Он только у себя время от времени проверяет их наличие. Как только сообщение появилось, сервер шлёт ответ и закрывает соединение.
Когда клиент получил ответ или когда случился таймаут, клиент запускает новое соединение и снова ждёт ответа.
Ну или использовать web sockets - ЕМНИП, когда соединение установлено, сервер может уже послать что-то по своей инициативе. Но это нужно изучать.