pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Зачем в PHP нужна рефлексия?

Лучший ответ: <?php

class Stp008 {
   /**
    * Вытащи этот текст проще, че это сделал я
    */
	public function get() {

	}
}

$reflection = new ReflectionClass('Stp008');
$method = $reflection->getMethod('get');
echo $method->getDocComment();

Худший ответ: Потому что больше возможностей и ООП
Вопрос: ITunes gift card?

Лучший ответ: Я покупаю тут.

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

Лучший ответ: FFmpeg: склейка и соединение файлов формата видео MP4Видеофайлы в контейнере MP4 нельзя соединить с помощью оператора concat. Но можно предварительно преобразовать эти файлы в контейнер, например, MPEG-TS без перекодирования видео и звука:ffmpeg -i vid1.mp4 -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts vid1.ts
ffmpeg -i vid2.mp4 -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f mpegts vid2.ts
А потом эти файлы уже можно соединить при помощи оператора concat в итоговый файл mp4:ffmpeg -i "concat:vid1.ts|vid2.ts" -vcodec copy -acodec copy out.mp4

Худший ответ: Без перекодирования возможно только если файлы одинакового формата - кодек и параметры кодирования должны совпадать.
Вам нужно выделить сперва видеопотоки из обоих файловffmpeg -i input1.mp4 -an -vcodec copy -f m4v input1video.m4v
Затем соединить m4v файлы, не уверен, что простого склеивания хватит, но вполне возможно.
И в конце вам нужно запаковать полученный поток обратно в mp4. Для этого вам потребуется все данные из заголовков файлов. Больше тут:
processors.wiki.ti.com/index.php/Extracting_MPEG-4...
Вопрос: Есть ли лучше способ перейти от event-ов к callback-у в NodeJS?

Лучший ответ: Используйте адаптер. Типа такого: var SuperModuleAdapter = function () {
    this.adapted = new SuperModule() 
}

SuperModuleAdapter.prototype = {
    start: function (callback) {
        var cb = function(err){
            this.adapted.removeListener('error', cb);
            this.adapted.removeListener('started', cb);
            callback(err); // err == null при started
        }
        this.adapted.on('started', cb);
        this.adapted.on('error', cb);
        this.adapted.start();
    }
}

Худший ответ: Используйте адаптер. Типа такого: var SuperModuleAdapter = function () {
    this.adapted = new SuperModule() 
}

SuperModuleAdapter.prototype = {
    start: function (callback) {
        var cb = function(err){
            this.adapted.removeListener('error', cb);
            this.adapted.removeListener('started', cb);
            callback(err); // err == null при started
        }
        this.adapted.on('started', cb);
        this.adapted.on('error', cb);
        this.adapted.start();
    }
}
Вопрос: Организация блока &quot;ПОДЕЛИТЬСЯ&quot;

Лучший ответ: Ща скажу, не кипятись.

Совсем недавно изучал, что нам предлагают соц. сети. Только в фейсбуке есть такая шняжка, как OpenGraph — он позволяет даже усы на фотках друзей пририсовывать, так что только на нём вы сможете это реализовать.

А так, вот к чему пришел я, за 2 дня розысков (скопировал из собственного проекта, писал для себя):

Продвижение сайта
developers.facebook.com/docs/coreconcepts - охуенный гайд по тому, как правильно

Facebook: Ставим кнопку Like, при нажатии на которую, с помощью opengraph-a будет залайкана страница сайта так, будто-бы это страница фейсбука, чтобы впоследствии мы могли спамить в ленту чуваку. Инструкция developers.facebook.com/docs/opengraph/ . Analytics: www.facebook.com/insights/.

Vkontakte: просто Like. vkontakte.ru/developers.php?oid=-1&p=Like

Google+: + 1 button. developers.google.com/+/plugins/+1button/ . UPD: Google+ запустили страницы, надо посмотреть, что там. – Пока ничего!

Twitter: просто Tweet . twitter.com/about/resources/tweetbutton . Тут надо получше изучить, они тоже что-то суперское придумали. Нихуя не придумали.

Худший ответ: Как же уже зае...(нецензурная лексика) сайты облепленные подобными «фантиками». Если, что-то стоящее — то большинство и так разберется, как послать линку знакомому.
Вопрос: Адекватная замена MacBook Pro 2014 — что купить?

Лучший ответ: Мне сразу в голову приходят ASUS zenbook'и. имхо.
Линейка у них широкая.

Худший ответ: Как опытный макбук-хэйтер, делюсь результатами своих поисков.
HP Zbook 14 G2 L3Z53UT
Характеристики:
Intel Core-i7 5500
16 Gb RAM (двумя планками, обе заменимы)
AMD FirePro M4150 + Intel HD Graphics 5500
SSD PCI-e Sandisk A110 256 Gb (скорость чтения/записи примерно 700/700 мб/с) в слоте M.2 2260
Посадочное место под 2.5" HDD (У меня стоит Samsung SpinPoint 2 Тб)
Экран 14" 1920*1080 IPS матовый (у модели L3Z54UT глянцевый сенсорный)
Безопасность - сканер отпечатков, ридер смарт-карт, ридер NFC-карт, шифрование ФС..
Порт для док-станции
Порт для допольнительной батареи (плоская на дно ноутбука)
Клавиатура островная с подсветкой и наиболее стандартной раскладкой из всех что я видел.
4 USB
DisplayPort (в продаже есть кабели DP-HDMI)
VGA (без переходников)
Ethernet (без переходников)
Wi-Fi 802.11 AC
Вес - 1, 8 кг.
Плюс - разбирается без отвёртки, общемировая гарантия на железо 3 года, в комплекте Windows 7 и Windows 8.1 Pro с апгрейдом до Windows 10. Зарядное устройство на 65W, довольно компактное.
Батарею держит часов 5 в обычном режиме, в экономном до 8-10.
Из минусов - не знаю, продаётся ли такой в России, живу не в России и покупал на амазоне с заведомо только английской клавиатурой (печатаю вслепую, а когда смотрю, русские буквы только мешают).
Собираюсь на днях сделать обзор на хабре :)
Цена на амазоне $1600 (была). Не знаю какой конфигурации ваша прошка, в сравнимой стоила бы от $2000.
Вопрос: Как округлить число в javascript?

Лучший ответ: можно так:function round(x) {
  var t = Math.floor(x);
  return (t === x) ? t : t + 0.5;
}

Худший ответ: Руками :) Из коробки сможет округлить или до десятых, или до единиц в нужную сторону (вверх, вниз, математически).function myRound(number) {
  var decimal = number - Math.floor(number);
  if (decimal > 0.01) {
    return number + 0.5;
  }
  return number;
}
Ну или что там нужно.
Вопрос: Как в Angular организовать методы, общие для нескольких контроллеров?

Лучший ответ: Философия такая, что вся логика, на мой взгляд, должна храниться в сервисах.
А контроллер лишь связывает интерфейс с этими сервисами.

Худший ответ: Я думаю, лучше всего будет разместить код в сервисе.
Вопрос: Почему тормоза MacBook pro 2014 + 4к монитор Samsung U28D590D?

Лучший ответ: при подключении по displayport такая же фигня?

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

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

Худший ответ: у одного сигнала может быть много слотов, а у одного слота может быть много сигналов и это очень удобно (QT)
Вопрос: Почему если подключать стили @media ( max-width :XXXpx ) отдельным css файлом, они работают, а если вставлять стили прям в HTML, не работают?

Лучший ответ: Есть приоритетность применения правил стилей в CSS.  Подключение стиля перегружающего текущий - надо делать после текущего, разумеется.

Худший ответ: Короче, методом тыка и проб выяснил, что если вы решили подключать css стили прям в HTML, нужно соблюдать правильный порядок.
В начале подключаем основные стили, и только после них должны ити стили с @medi.
Иначе работать они будут через жопу.
Вопрос: Нестандартные шрифты для сайта

Лучший ответ: Лучше Google Font API. Хорошая CDN, не нужно задумываться о вариантах подключения для совместимости с разными браузерами, генерируемый код — остается только вставить строчку.
Во всех современных браузерах шрифты отображаться будут (кроме разве что Opera Mini — там я не знаю, как дело обстоит со шрифтами). Если вам не нужна полная поддержка IE 6 и Firefox 1 — можно их использовать.

Худший ответ: м.б., имеет смысл блоки ссылок выделить не шрифтами, а оформлением через CSS
Вопрос: Как заблокировать сеть tor?

Лучший ответ: Ошибка в том, что вы проверяете точное совпадение, а не вхождение подстроки в строку. В гугле так и искать - "php поиск подстроки в строке".

Худший ответ: 
$string = gethostbyaddr($_SERVER['HTTP_CF_CONNECTING_IP']);
  if(stristr($string, 'tor')) {echo 'Сеть Tor заблокирована';exit;}
?>
Рабочий php скрипт.
HTTP_CF_CONNECTING_IP это используется, т.к. сайт проксируется через cloudflare.com
Вопрос: Как реализовать пополнение счета мобильного банковской картой?

Лучший ответ: Что бы принимать данные карты именно на собственном сайте, нужно пройти сертификацию pci dss.
Стоит это дорого, занимает времени кучу.
Поэтому все либо делают редирект на сайт платежного агрегатора, либо вставляют с него iframe.
Многие агрегаторы при наличии у Вас денег/объемов начинают себя вести очень лояльно вплоть до сборки под Вас страницы оплаты брендированной вашим фир стилем и логотипом.
Что касается зачисления денег на счет мобильного телефона - то это по сути платеж от посетителя, но не в вашу пользу (как при обычной оплате), а в пользу третьего лица (опсос`а). Поскольку у Вас очевидно нет никаких договоров с опсосами, законность этого сомнительна.
Далее (я не юрист, пусть юристы меня поправят, могу тут ошибаться, пишу как сам понимаю) с учетом 103ФЗ и 161ФЗ что бы это делать надо быть либо банком, либо партнером банка, либо нко)
НО! Выход есть :)
Вы можете обратиться в платежные системы/банки и поговорить с ними о данном функционале.
Т.е денежные средства будут СРАЗУ зачисляться на счет опсоса, минуя Вас.
Для начала я бы пошел к тем агрегаторам у которых этот функционал есть на сайте.
Навскидку помню https://www.ruru.ru , но думаю если поискать - найдется еще море.
Из банков с кем общались наиболее дружелюбными показались Лайф и Русский стандарт.
Еще один вариант - отправиться непосредственно к опсосам, может быть они что то подскажут.

Худший ответ: редиректите на pay.mts.ru
pay.megafon.ru
pay.beeline.ru
Вопрос: Как полностью деинсталлировать программу в OS X Yosemite?

Лучший ответ: With Hear open, go the the Hear menu drop down and select Uninstall. (c) Вы не пробовали тупо читать хелп самой программы? Иногда помогает.

Худший ответ: Может что-нибудь в домашней директории есть? Как вариант не все хвосты почистили в Preferences и Application Support.
Вопрос: Wi-fi для клиентов, но не для сотрудников, как?

Лучший ответ: Значит так:
1) Сканировать сотрудников на входе металлоискателем и отбирать на входе всю технику. 
2) Если сотруднику помогли с "воли" и занесли мобильник знакомые/родственники посадить специально обученного человека следить за этим на камерах.
3) Еще лучше приковать сотрудников к рабочим местам наручниками, чтоб всегда были на виду и не могли воспользоваться вайфаем там, где не просматриваются с камер.
4) В туалет ходить в присутствии специально обученного человека вайфай-контроллера.
5) На всякий случай рекомендую простреливать коридоры.
6) Отобрать паспорта у всех сотрудников, чтоб они не могли уволится нафиг из такой организации
Если что это все был сарказм и я в упор не понимаю такого дебилизма не на режимном предприятии, что за привычка оценивать продуктивность работника не по финансовым показателям а по каким-то идиотским параметрам типа не пользовался вайфаем, уходил позже всех, не тратит время на курилку, жрет быстрее всех и т.п.

Худший ответ: Писать лог доступа.
Находить MAC подключаемые чаще чем N раз за месяц.
Блокировать.
PS Можно сделать авторизацию для получения wifi через социальные сети - и знать кого штрафовать по итогам)UPD
я сейчас подумал - и понял что не понимаю смысла запрета такого.
сейчас мобильный интернет быстрый. если сотрудники захотят страдать херней - будут страдать херней через 3g/4g/lte. Wifi для этого не нужен вообще.
Вопрос: Синтаксис шрифта?

Лучший ответ: Читайте первоисточники.

Худший ответ: 300 - жирность
35px/52px - размер шрифта / line-height(высота строки)
Вопрос: Какой путь для написания конкретной программы наиболее эффективен для новичка?

Лучший ответ: на С++ в компиляторе QT
1. В компиляторе не пишут
2. Qt - это не компилятор
За вас ваш вопрос никто не решит.
Если хотите написать программу самостоятельно, то изучайте С++, Qt, базы данных. Это конечно не хай-лвл программа, но новичку написать реально, если должно подойти к этому делу.
Если же вы хотите чтобы за вас все написали, и написали именно так как вы хотите, то придется платить :)
По времени оптимален второй вариант, по цене - первый.
Конечно времени вы гораздо больше потратите на написание данной программы, чем опытный программист, но зато получите опыт.

Худший ответ: Кратко о программе которую я хочу написать. Это база данных собственных ошибок (в разных областях)
Это описание похоже на excel-файл, не более.
Qt Creator не полностью автоматизирован, поэтому многие вещи там нужно писать вручную. А чтобы писать вручную, надо разбираться в том, как там всё устроено.
Вопрос: Зачем хабрахабр убрал папки из личной переписки?

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

Худший ответ:  /users/{username}/mail/

Нельзя это удалять, ибо люди не смогут прочитать свою переписку, ведь в вашей новой системе переписки все сообщения вперемешку. 

Вы подумали о том, что юзеры могли писать в одно и то же время в разных папках?
Вопрос: Где можно взять курсы валют для загрузки на сайт, но не только по отношению к рублю?

Лучший ответ: ЯхуОтвет целиком

Худший ответ: Тут все курсы валют - https://finance-calculators.ru/konverter-valyut-1.php
все в реальном времени по курсу центрального европейского банка.
Вопрос: Нужно отправить письмо в Drupal 7 из формы?

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

Худший ответ: Я обычно использовал для этих целей Webform Обратная связь. Поля: Текст, Имя отправителя, E-mail отправителя.но только чтобы не вставлять поля, чтобы не поганить дизайн
Ну возможно я чего-то не уловил в этом противоречивом вопросе...
Вопрос: Как увеличить скорость загрузки сайта с большими фоновыми картинками?

Лучший ответ: Есть такая магия как LazyLoad

Худший ответ: Для начала сжать картинки и возможно заюзать webp для браузеров которые его понимают. 
Еще бы в 2016-м году неплохо делать риспонсив, и в таком случае воспользоватся елементом picture для предоставления картинок под разные разрешения екрана.
Вопрос: Новенький Windows Blocker

Лучший ответ: Уволить к чертовой матери такого «админа», который нормально венду поставить не может и права пользователя ограничить!

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

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

Худший ответ: эскорт можно относительно дешево: 20-100 евро /мес
с политикой куда сложнее, от200 только начинается
Вопрос: Как можно заработать на своей программе?

Лучший ответ: 4) Продавайте поддержку и "индивидуальные" допиливания вашего ПО для покупателя. 
Больше можно сказать если вы расскажите нам что ваше ПО делает.

Худший ответ: 1. Если ваша программа будет хорошо решать какую-либо пользовательскую проблему и при этом ее цена не будет в облаках, то ее будут покупать.
А что вас ограничивает продавать ее и вне снг? 
2. Для того чтобы реклама вам приносила хоть что-нибудь нужна массовость. 
3. Мне кажется, на пожертвования не стоит расчитывать.
Вопрос: JQuery: событие «Элемент просмотрен»?

Лучший ответ: Можно реализовать это с помощью jQuery.offset() и jQuery.scrollTop(). Ну и выбрасывать, например, trigger(«shown»)

Худший ответ: Отслеживаете изменение window.scrollTop
Находите координаты искомого дива — x1, y1, x2, y2
Проверяете, попадает ли прямоугольник полностью в прямоугольник window.scrollTop, window.scrollLeft, window.scrollTop + window.height, window.scrollLeft + window.width (способ получения вьюпорта поправить с учетом доктайпа).
Вопрос: Как исправить баг с кодировкой при экспорте в CSV?

Лучший ответ: Это проблема в самом Excel — погуглите как правильно открывать екселевские файлы в UTF-8 (через импорт данных, по-моему).
artkiev.com/blog/excel-import-csv-utf-8.htm

Худший ответ: Нашел решение, не знаю на сколько оно верное, добавил BOM.static function addBOM($text){
    return chr(239).chr(187).chr(191).$text;
}
Вопрос: Как записать загрузочный образ Windows на флешку одной командной?

Лучший ответ: Написать батник и запустить его одной командой? :) 
Передав в параметры исошник и букву диска.

Худший ответ: Ну, записать-то, положим, возможно; к примеру с помощью архиватора извлечь файлы на флешку, к примеру так:c:\Program Files\7-Zip>7z.exe x "I:\windows_8.1.iso" -oF:\
Но при условии что флэшка подготовлена соответствующим образом.
Вопрос: Резиновое приложение в WPF?

Лучший ответ: Устанавливайте якоря(Anchor) на элементы интерфейса и будет то, что нужно.

Худший ответ: я мб нуб
и не исползовал anchor
я использовал событие изменения формы и прописывал w/h относительно % размера окна
Вопрос: Правильно ли подключать стили через webpack?

Лучший ответ: Плагин для сохранения стилей в отдельный файл: https://github.com/webpack/extract-text-webpack-plugin

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

Лучший ответ: Ставьте Kali Linux. Там есть, например, Metasploit, отличная штука, база обновляется регулярно.

Худший ответ: Установите VDS, разверните Nessus. Бесплатен в течение trial-периода, или для ограниченного домашнего использования. Ищет дыры во всем.
Вопрос: Наследование в ООП — стоит ли широко применять?

Лучший ответ: Я не гуру, но в реальный проектах рулят "Рефакторинг" М.Фаулера, "Совершенный код" Макконнела, "Приемы объектно-ориентированного проектирования" Э. Гамма.
Наследование, не наследование - определяется задачей и сложностью кода. Что-то красиво и изящно делается наследованием, где-то оно наоборот всё усложняет.

Худший ответ: Привет. Реальных проектов указать не могу, но наследование нужно применять, когда нужно расширение класса, как вида. Например: от класса Животное наследуются классы Собака, кошка и т.д. Также следует помнить о интерфейсах (java/c#) или множественном наследовании (c++,etc), которые расширяют возможности класса. 
Неплохо бы уточнить конкретную ситуацию для примера или язык программирования. Однако...
Скажу про Java, а в комментариях подскажите для всех ли языков такое используется:
Надо понимать, что во время создания объекта (оператор new, допустим - new ChildClass() ) сначала вызывается конструктор класса ChildClass. Если ChildClass является наследником другого класса, например ParentClass, то конструктор ParentClass также вызывается при создании объекта наследника (ChildClass). Вероятно, по этой причине не советуют делать длинные линейки наследования. 
По поводу общего объекта - любой класс является наследником какого-либо общего корневого класса (например, object).
UPD: да, кажется, для всех ЯП такой же принцип работы конструкторов:)
Вопрос: На сайте Bootstrap 3 есть вариант скачки Sass, почему?

Лучший ответ: Прочитайте: wiki , frontender magazine, офф сайт

Худший ответ: SASS это препроцессор. Грубо говоря, это такой метод написания CSS с дополнительными возможностями, типа примешиваний, переменных, функций и пр. Вы пишете style.scss файл, потом через SASS-компилятор на выходе получаете готовый CSS. Если пишете на SASS, то генерируемый CSS файл трогать не нужно, он будет перезаписываться каждый раз при компиляции.
Если вы про эти 3 варианта скачивания: getbootstrap.com/getting-started/#download
то самый первый - это уже скомпилированная CSS-версия, в ней нет исходников в LESS (еще один препроцессор) и SASS. Далее идет LESS-версия, она включает в себя LESS-файлы. И 3 ссылка это SASS-версия. 
Если вы планируете переделывать дефолтный Bootstrap, например, менять кнопки, цвета, шрифты, то конечно лучше изучить какой-нибудь из препроцессоров и делать это в исходниках, нежели исправлять в сотни местах одни и те же строчки :)
Вопрос: Как правильно хранить данные заказов в БД?

Лучший ответ: Нет, дублировать данные в реляционной БД - не логично. Про нормализацию есть много умных книжек, но общее представление можно составить и по википедии.
Денормализация применяется в тех случаях, когда очень-очень нужно что-то оптимизировать.
habrahabr.ru/post/64524
habrahabr.ru/post/103021
Если вам очень хочется складывать всё в одну кучку посмотрите в сторону no-sql баз. MongoDB, и сородичи, например.

Худший ответ: Я бы в данном случае вынес название товара из products в отдельную таблицу pruduct_names со следующей структурой:
- id
- product_id
- name
- datetime
Таким образом, при обновлении названий товаров мы просто добавляем запись в pruduct_names, и если нужно узнать актуальное название товара: SELECT name FROM pruduct_names WHERE product_id=? ORDER BY id DESC LIMIT 1
Если нужно узнать как назывался товар в момент заказа - делаем запрос:SELECT name FROM pruduct_names WHERE product_id=? AND datetime<ORDER_DATE ORDER BY id DESC LIMIT 1
, где ORDER_DATE - дата заказа
Аналогично с данными пользователя (если эти данные у вас "одноразовые" - только для одного заказа), которые также можно запихать в отдельную таблицу (orders_data):
- id
- order_id
- type_id //ID из таблицы orders_data_types
- value
И связанную таблицу с типами данных для заказа (orders_data_types):
- id
- name
Таким образом в orders_data мы будем хранить только указанную информацию пользователя
Вопрос: Как отключить push уведомления Chrome от iGuides?

Лучший ответ: 1. Заходим на сайт iguides (https://www.iguides.ru/).
2. Кликаем по значку безопасности (замочек в самом начале адресной строки).
3. Заходим в раздел "Разрешения".
4. Нажимаем на "Оповещения".
5. Выбираем "Всегда блокировать на этом сайте".
Я нашел только такое решение.

Худший ответ: Тоже столкнулся с этой проблемой! У меня ощущение что не в Chrome дело! Капаюсь сейчас в настройках уведомлений, но что-то нет даже подобного там..
Вопрос: Работа с файлами UTF-8 в Tortoise Hg — как?

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

Худший ответ: Обновился — заработало. Всем спасибо :)
Вопрос: Существующие способы клиент-серверного общения на java?

Лучший ответ: Попробуйте netty. Весь фарш в одном флаконе.

Худший ответ: Зачем вам это ? Если учитесь, то фигачьте дальше сокеты. Если работаете - то возьмите что-то готовое.