Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как перевести единицы измерения (kg, m, cm) в WooCommerce?

Лучший ответ:
Порылся в коде и понял, что это баг Вукоммерс. Единицы измерения выводяться в таб с аттрибутами не оборачиваясь в функции локализации.Локализация единиц измерения веса
Вывод осуществляется в файле
.../plugins/woocommerce/templates/single-product/product-attributes.php
Этот файл нужно скопировать к себе в тему и расположить по адресу:
.../themes/[MY-THEME]/woocommerce/single-product/product-attributes.php
После этого внести в него изменения:
Строка 39 <td class="product_weight"><?php echo wc_format_localized_decimal( $product->get_weight() ) . ' ' . esc_attr( get_option( 'woocommerce_weight_unit' ) ); ?></td>
Нужно обернуть esc_attr( get_option( 'woocommerce_weight_unit' ) ) в функцию __()<td class="product_weight"><?php echo wc_format_localized_decimal( $product->get_weight() ) . ' ' . __(esc_attr( get_option( 'woocommerce_weight_unit' ) ), 'woocommerce'); ?></td>Локализация единиц измерения длины
К сожалению, значение длины выводиться функцией get_dimensions(), которая прописана в ядре и ее нельзя переписывать. Функция возвращает уже полную строку с цифрами и единицей измерения. Но перед выводом строка пропускается через фильтр woocommerce_product_dimensions.
В файле functions.php можно заменить значения единицы длины с английского языка на русский.function localize_demensions_units($dimensions) {
    return str_replace('m', 'м', $dimensions);
}
add_filter('woocommerce_product_dimensions', 'localize_demensions_units');
Нужно подставить нужные значения.

Худший ответ:
Проблема существует до сих пор, но сейчас она в файле wp-content\plugins\woocommerce\includes\wc-formatting-functions.php:1271:

$weight_string .= ' ' . get_option( 'woocommerce_weight_unit' );

По-хорошему должно быть:

$weight_string .= ' ' . __(get_option( 'woocommerce_weight_unit' ), 'woocommerce' );

Для фикса размеров надо провести аналогичные манипуляции с методом wc_format_dimensions в том же файле.
Вопрос: Как открыть/создать файл из под другого пользователя?

Лучший ответ:
Никак. Это противоречит идеологии линуха. Конфиги системы принадлежат руту. Точка. Никто кроме рута не должен их править. Точка. Если у программы могут быть пользовательские настройки, она должна создать свой локальный пользовательский конфиг, который будет читаться после системного. Никакая библиотека, запускаемая из-под пользователя не должнаписать в рутовое пространство - пользователь пишет только в домашку и /tmp. И уже тем более не должна делать это втихушку.
Все проблемы винды оттого, что однажды в угоду удобству сделали возможным писать кому угодно куда угодно. В линухе это не так. Это надо принять как данность, а не лепить костыли. Если это библиотечка для индивидуального личного пользования - тут конечно можете воротить все что угодно. Но если рассчитываете, что ею будет пользоваться кто-то еще - лучше следовать Linux-way

Худший ответ:
Проще создать файл и дать нужному пользователю права на него. Если нужно вот прям именно создать из-под другого пользователя - man7.org/linux/man-pages/man2/setuid.2.html man7.org/linux/man-pages/man2/seteuid.2.html
Вопрос: Что означает создание дизайна игры? И что должен сделать дизайнер?

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

Худший ответ:
На вопросы с первого по третий включительно ответит ТехЗадание. Каждая игра и каждый заказ - разные.
4 - зависит от 3 пункта. Обычно продукты адоба используют. Хотя вопрос как то странно сформулирован.
5 - зависит от сроков, уровня, размеров, сложности и т.д.
6 - анимации чего? бекграунда? персонажа? Персонаж 2д, 3д? Анимация спрайтшитом, еще чем то? Ну в общем вы поняли. А входит или нет - опять таки - зависит от ТехЗадания.
Вопрос: Существует ли стандарт для написания (валидации) mail-адреса?

Лучший ответ:
Безусловно, есть стандарт RFC822. Но... Когда вы взглянете на регулярное выражение, проверяющее на полное соответствие, вас хватит кондрашка. За самое неожиданное место.
По факту это соответствие вам не потребуется, поскольку большинство почтовых сервисов вводят свои жёсткие ограничения, а большинство валидных с точки зрения стандарта адресов вы никогда не встретите.
Загляните на эти страницы, чтобы понять, что потребуется вам для проверкиНикогда не проверяйте e-mail адреса по стандартам RFCПрекратите проверять Email с помощью регулярных вы...

Худший ответ:
Как это делаю я:<input type="email" name="email" required>if (filter_var($email, FILTER_VALIDATE_EMAIL) == false) 
 	{$error = true;
 		$text = 'некорректно введён адрес эллектронной почты.';
 	}
Вопрос: Как настроить sendmail на PHP через яндекс?

Лучший ответ:
help.yandex.ru/mail/support-old.xml#ssl-errors
Статья 2010 года, с той давней поры необходимо TLS шифрование, может ли его данная программа - попробуйте выяснить у гугла. Варианты от Яндекса по ссылке выше.

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

Лучший ответ:
Ну например та же фоторама (fotorama.io/) при открытии картинке в лайтбоксе, создаст для нее уникальный адрес в хеше. При заходе на сайт с этим хешем, галерея автоматом откроется на нужном кадре.

Худший ответ:
Как вы себе представляете расшаривание фотки из страницы? У неё нет отдельной страницы.
Вопрос: Как удалить элемент на чистом JavaScript?

Лучший ответ:
getElementsByTagName возвращает массив.
так сработает.document.getElementsByTagName( "html" )[0].remove();

Худший ответ:
getElementsByTagName возвращает массив.
так сработает.document.getElementsByTagName( "html" )[0].remove();
Вопрос: Как вы начинали разрабатывать под Windows Phone?

Лучший ответ:
В данный момент разрабатываю metro приложение.
Начинал просто - взял и сел за разработку. Стал поднимать инфу в инете по данному и сопутствующим вопросам. Инфы и тем более примеров с не стандартными кейсами очень мало. Собирал по крупицам. Актуально ли ещё утверждение, что с книгами туго, и нужно сначала освоить WPF с MVVM? 
Да. Если захочешь писать на xaml + C# behaviour то WPF-MVVM нужно знать. Так же есть возможность писать на связке HTML+WinJS (по сути "те же яйца только в профиль"), но мне что-то в душу этот подход не запал.
(Пополнение словаря ненормативной лексики в процессе разработки обеспечено.)
Удачи!!!

Худший ответ:
WPF + MVVM  -  не обязательно. я разрабатывал сайты на мвц и дот нет. придумал что за риложение хочу написать -  сел и за месяц почти без проблем написал.
кстати в большинстве случаев xaml наного лучше чем html+css+js
Вопрос: Как проверить уникальности Nickname в БД SQLAlchemy Flask/Python?

Лучший ответ:
Сделайте unique index на атрибут nickname в модельке User. Как-то так: nickname = Column(..., unique=True)
И проверяйте так:try:
    user = User.query.filter_by(nickname=user.nickname).one()
except NoResultFound:
    # ник уникален
    pass
else:
    # ник не уникален
    pass
p.s. Если не нужен результат результат запроса, то можно посмотреть на exists(). Не думаю, что оно критично для подобного рода задач, однако с ним выгрузки данных не происходит.

Худший ответ:
Пусть flask-wtf разбираетсяК прочтениюclass RegistrationForm(Form):
    email = StringField(u'Электронная почта',
                        validators=[Required(REQ_TEXT),
                                    Length(1, 64),
                                    Email(REQ_TEXT)])
    password = PasswordField(u'Пароль', validators=[
        Required(REQ_TEXT)])
    submit = SubmitField(u'Зарегистрироваться')

    def validate_email(self, field):
        if User.query.filter_by(email=field.data).first():
            raise ValidationError(u'Почта уже занята')
Вопрос: Поясните для чего super(props), а также .bind(this)?

Лучший ответ:
super(props) - вызвать конструктор наследуемого класса, те React.Component.bind(this) - возвращает функцию с жесткой привязкой контекста

Худший ответ:
super() - вызов родительского класса на данном экземпляре, чтобы наследование сработало.
А bind в данном случае - от скудоумия разработчиков react которые не смогли в компоненты на классах. Привязка методов из прототипа к конкретному экземпляру.
Лично я это в самом темплейте через arrow function решал.
Вопрос: Сайты в стиле Metro UI

Лучший ответ:
Недавно один человек, не зарегистрированный на хабре, хотел опубликовать свой набор CSS для создания Metro-подобного интерфейса, но пост не пропустили в песочницу. 
Стили написаны в формате less (lesscss.org)

Вот сам сайт — metroui.org.ua/
Проект на гитхабе — github.com/olton/Metro-UI-CSS

зы: если кому не жалко инвайта для него, поделитесь)

Худший ответ:
это будут «планшетоориентированные» сайты или вы предлагаете массово податься на уловки МС и начать скроллить горизонтально?
Вопрос: Wordpress — все страницы кроме главной отображаются по шаблону 404.php. Как исправить?

Лучший ответ:
Пересохраните ЧПУ

Худший ответ:
это стандартный htacces wordpress.# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress
Что у вас стоит в настройках "Настройки > постоянных ссылок" в админке? В шаблоне присутсвует файл index.php ?
Вопрос: Как подключиться к OpenVPN?

Лучший ответ:
Куда закинули? Что закинули?
Какая OS? Какой клиент пытаетесь использовать?
Из коммандной строки
openvpn --daemon --config /path/to/file.ovpn все прекрасно подключает, например.
Какой Private Tunnel и где вы включали, а главное зачем?
Телепаты в отпуске.

Худший ответ:
Если на Windows, то:
Закинуть в папку OpenVPN / config, запустить OpenVPN GUI, щелкнуть правой кнопкой по иконке в трее, нажать "Подключиться"
Если конфигов несколько, будет предоставлен выбор одного из них.
Вопрос: Возможно ли после заполнении пользователем формы отобразить введенные данные вместо нее на той же самой странице?

Лучший ответ:
AJAX, например, если принципиально не перезагружать страницу.
Для удобства, есть inline редакторы. Например, вот vitalets.github.io/x-editable

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

Лучший ответ:
Попробуйте эти варианты:
1. Через subprocessimport subprocess
subprocess.call("d:\\file.avi", shell=True)
2. Через osimport os
os.startfile("d:\\file.avi")

Худший ответ:
Первая ссылка в гугле. тык
Вопрос: HTML. Как вывести часть страницы в iFrame на своём сайте?

Лучший ответ:
Как-то так, только координаты поправь.
А с полосой сложнее.. если только отдельным фреймом сделать..

Худший ответ:
Здесь расписаны все способы, как это можно сделать - https://www.pandoge.com/stati_i_sovety/kak-pokazat...
Вопрос: Размеры файла в фотошопе для печати наклейки 155см х 95см?

Лучший ответ:
Уличная печать это 75-150dpi больше просто не нужно. А уж какое технологическое разрешения у принтера тут роли не играет. 
Если очень хочется сделайте файл с 300dpi уменьшить всегда можно.

Худший ответ:
300dpi - больше чем достаточно для качественной печати.
Вопрос: Реально ли поставить хакинтош на такое железо?

Лучший ответ:
В описании, не хватает матери и видео карты.
В любом случае топай на профильный ресурс https://applelife.ru

Худший ответ:
Вы сойдете с ума на таком железе работать, даже если получится установить хак.
Если говорить о маке, на котором можно прогать, то можете взять Air б/у (либо новый, если можете себе позволить)
Вопрос: Gentoo vs ArchLinux в замен Debian, что выбрать для домашнего сервера?

Лучший ответ:
Debian и не искать приключений на свою зацу.
Заняться нечем?

Худший ответ:
Это же сервер, нужна стабильность - я бы выбрал убунту и не парился. Весь новый софт обычно есть в PPA, если нет в репозитории.
Вопрос: Кто знает программу для мгновенной передачи фото со смартфона на комп (читайте вопрос полностью)?

Лучший ответ:
Вопрос из серии: Я придумал хреновину, но не знаю, как она должна работать. Как это сделать?

Худший ответ:
superbe.am - ближайший аналог того, что я хочу, но в нем нет функции фотографирования, а еще нужно сканировать QR-код для отправки соответственно это уже не мгновенная отправка.
Вопрос: Как на Upwork заполнить профиль на 100%?

Лучший ответ:
2 теста пройдите на минимум на топ30, и откройте их для показа. За по праилам пворка ничего не дают. Проценты повышают моментально при открытия теста.

Худший ответ:
Заполните места работы там же написано.
Вопрос: Как сделать лучше?

Лучший ответ:
При удалении элемента массива он устанавливается в undefined, при этом длина массива не меняется.
Для удаления элементов из массива с изменением его длины используйте методы pop, shift, slice, splice.

Худший ответ:
А зачем нужен массив err вообще?function Fun(){
	var error = false;
	var input = $("#input").val();
	if(input!=0) error = true;
	if(!error) {
		alert('Yes');
	}
}
Вопрос: Запуск Mac Mini без монитора (загрузка Ubuntu Server)?

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

Худший ответ:
Стоят в дц несколько макмини разных поколений, никаких проблем нет, ОС родная, думаю капать надо в сторону убунты.
Вопрос: Почему array.filter игнорирует значение 0 (не индекс)?

Лучший ответ:
1) непонятно что вы хотите получить на выходе
2) коллбэк должен возвращает boolean значение, если это true, то item остается, а если это false, то "удаляется", а если мы вернем 0, то к ему оно будет приведено, верно, к false,const xArray = [-1, 0, 1, 2, 3, 4, 5, 11];
let xArray2 = xArray.filter((x) => {
  return 0 <= x && x <= 10;
});
xArray2;  // [0, 1, 2, 3, 4, 5]

Худший ответ:
Он 0 воспринимает как false, поэтому исключает его из результата фильтра. Используй строгую проверку ===.Тут
Вопрос: Какую виртуалку выбрать?

Лучший ответ:
Под мак, если мне не изменяет память, неплохая виртуализация у Parallels. Под Linux я бы предложил QEMU и KVM.

Худший ответ:
Под мак, если мне не изменяет память, неплохая виртуализация у Parallels. Под Linux я бы предложил QEMU и KVM.
Вопрос: Вопрос по новому retina на ipad?

Лучший ответ:
В метрической системе ничего кардинально не поменяется. Сайты будут отображаться на всю ширину устройства, точно так же, как помещались большие сайты на 1024 пикселя второго айпада, точно так же, как не изменился размер отображаемых сайтов iPhone 3Gs -> iPhone 4.

Вопрос про видео не совсем понял.

Так что не переживайте.

Худший ответ:
Я не совсем понял ответ sineborod. Я сам фанат высокого разрешения и пользуюсь ноутами Делл. Экран 15. Разрешение 1920×1080. Я каждый день вижу маленькие картинки. Если у соседа на 1280×800 шапка некого сайта 1024×200 пикселей, то она почти на всю ширину. У меня она только на пол экрана. Единственный способ сделать ее на весь экран, это заниматься операционной системе работой фотошопа → ресайзить картинку «на лету». Возможно новый айпад так и делает, недаром у него 4 граф.ядра. Но это на мой взгляд утопия. Надо с пользователей начинать, чтобы они фотки выкладывали на яндекс.фотки в максимальном разрешении 2500×2500 пикселей (но тогда каналам связи придет конец, прокачать в 25 раз больше объем), а не урезали до 800×600. Вот тогда и будет смысл ретины. А так все либо мелко, либо искаженно увеличено.

PS проблема, по сути, только с картинками, все остальное достаточно хорошо масштабируется.
Вопрос: Как выровнять изображения и текст во горизонтали/по центру?

Лучший ответ:
каждый набор<img src="/img/1.png"><p>Текст 1</p><p>Текст 2</p>
заверните в див и его уже инлайн-блоком используйте

Худший ответ:
Держите https://codepen.io/aliencash/pen/LjdxZM?editors=1100#0
Но в принципе так никто не делает как вы. Для картинок и подписей к ним есть семантические теги fugure и figcaption.
Вопрос: Как с помощью конструктора создать его же свойство?

Лучший ответ:
А class это что? Если строка или число - switch-case (лучше в отдельном методе, GetInventoryForClass). Если это класс (как единица ООП) - то у самого класса и делайте GetInventory. Второй вариант красивее и правильнее, по идее.

Худший ответ:
Как выше уже писали, createPlayer не должна быть игроком, а должна быть фабрикой - т.е. просто создавать игрока. что-то типаclass BasePlayer {
  
}

class PlayerWithRole extends BasePlayer {
  constructor(properties) {
    super(properties);
  }
}

let playerFactory = function (role, properties) {
  let roles = {
    someRole: PlayerWithRole
  }
  return new roles[role](properties);
}
Вопрос: Вставка php в формат .html?

Лучший ответ:
Раз вы используете cms, то там какая-нибудь система роутинга и так просто вставить в папку файл и запустить его не получится. 
Почитайте manual.vamshop.ru/ch14.html и manual.vamshop.ru/ch14s05.html

Худший ответ:
Как всё просто та оказалось 
В VamShop есть (теперь знаю ^_^)
теги 
{php} здесь код PHP обрабатывается в .html файле {/php}
Вопрос: Как установить карту яндекс или google на сайт?

Лучший ответ:
Вот рабочий вариант https://jsfiddle.net/skodnik/vs4vg74z/ по мотивам примера Денис Янчевский

Худший ответ:
Привет.
Разместить перед контейнером карты div<div class="front-map-overlay" onclick="style.pointerEvents='none'" style="pointer-events: none;"></div>
и добавить css-код.front-map-overlay {
    position: relative;
    height: 400px;
    top: 400px;
    margin-top: -400px;
    z-index: 2;
}
400 — это высота блока с картой.
Вопрос: Как записать данные формы в файл?

Лучший ответ:
1. Проверяйте $_POST перед тем, как пишете в файл.
2. Т.е отправили опять форму? тогда все ок, если хотите избавится от дубликатов, можно читать файл, и лишь потом записывать информацию.

Худший ответ:
if (is_array($_POST))
{
    // записываем форму в файл
    ....
    // перезагрузим страницу, чтобы при обновлении форма не постилась еще раз
    // мы также можем проверить $_GET['done'] и вывести сообщение о том, что форма была успешно отправлена
    header('Location: '.$_SERVER['PHP_SELF']. '?done=1');
    exit;
}
а вообще валидацию ввода пользователя нужно делать всегда
Вопрос: Достаточно ли знаний алгебры за 9 класс для изучения алгоритмов и тп?

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

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

Лучший ответ:
Используйте датасторы, рекомендую посмотреть на редакс

Худший ответ:
Если вы новичек в React, и этими данными пользуется только один компнонент, то redux и прочие я думаю лишним. Советую сделать так: родитель, который является хранилищем для данных, и записывает/читает localStorage. И в нем компонент, которому даются данные, а он уже разбирается с фильтрацией.<ChildComponent notes={ this.state.notes } onAddNote={ this.addNote } />componentWillUpdate(props) {
  this.filterNotes(props.notes);
}
Вопрос: Посоветуете нормальный струйный принтер для печати большого потока фотографий?

Лучший ответ:
Какой-нибудь Epson T-50, P-50, СНПЧ есть, ПЗК есть.
С ними работают практически все сервисные центры без проблем.
Цена самого агрегата вполне адекватная.
На больших объемах не тупит обычно.
Перепрошивается также без проблем.

Худший ответ:
T50 уже снят с производства давно, P50 купить можно. Ну либо Epson L800 с уже встроенной СНПЧ. Его сейчас облюбовали как раз в салонах, он выходит дороже, чем P50+СНПЧ отдельно (хотя он и есть модифицированный P50). Но зато если с техникой не дружите - жить будет проще, обслуживание почти не нужно + официальная гарантия.
Вопрос: Как решить проблему связи между https и http?

Лучший ответ:
Воспользоваться сертификатом Let’s Encrypt, он бесплатный: https://letsencrypt.org/

Худший ответ:
Взять бесплатный серт у https://www.startssl.com
Вопрос: Mysql размер базы?

Лучший ответ:
mysql 4.1?
Мда. Ищите в архивах минимум 10-летней давности, как тогда можно было считать размер.
information_schema, помнится, только в 5.0 появился.

Худший ответ:
SHOW TABLE STATUS FROM DBNAME
такая была раньше команда
Вопрос: Не могу понять, каким методом подсчитывается вклад в теги на тостере?

Лучший ответ:
Ответы не учитываются вовсе. Только "лайки" , "решения" и вопросы.

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

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

Худший ответ:
в теории,  можно сделать прослойку из vmvare с pdf принт сервером.
на практике проблем от этого больше чем пользы.
Вопрос: Какие выбрать размеры первой страницы Landing Page?

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

Худший ответ:
Я так понял большинство юзают 960.gs/. Данное разрешение актуально? И если с шириной все понятно, то какую выбрать высоту для первого сегмента?
Вопрос: Вопрос веб-разработчикам

Лучший ответ:
Не хотят исправлять XSS (за их наличие еще и штрафы надо накладывать)? Не хотят поддерживать браузеры последних версий? Конечно «завязать сотрудничество».

Худший ответ:
Поддерживаю предыдущих ораторов.
Вопрос: Как отобразить все топики в ленте?

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

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

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

Худший ответ:
Все эти процессы запущены, работают, каждый из них лидер своей сессии (s) - то есть ни один из них не запустил другого. И все они находятся в состоянии ожидания завершения события (S) - ждут чего-то, ответа на вопрос например...
Вопрос: Что такое Secure Internet servers?

Лучший ответ:
Походу тут имелось в виду SSL.

Худший ответ:
так вроде вполне внятно написано "это servers using encryption technology in Internet transactions"
- сервера, использующие технологии шифрования при передаче данных через Интернет.
т.е. уже упомянутый выше SSL/TLS, SSH - и все, что работает поверх них. Если есть большое желание - можно сюда-же притянуть VPN, хотя это не совсем то.
Вот только как посчитать эту статистику? Вернее - где взять? В теории, что-то такое должно быть у поисковиков.
Вопрос: Что почитать не серверному программисту, чтобы написать свой сервер?

Лучший ответ:
Если знаком с С++ то за 2 недель освоишь  PHP без проблем , может и раньше зависит от тебя . Потом PHP+JS как раз подходит для такого сайта

Худший ответ:
Или, может, отговорите от затеи делать самому в свете отсутствия такого опыта, и нанять спеца.
Это Вам виднее, я даже не знаю ваших целей и доступных средств - финансов и времени.
Само по себе отсутствие опыта не повод отказываться от затеи, ведь тогда придется отказаться от всех затей. :)Из языков знаю C++/C#/JavaScript. Не прочь выучить новый, если эта троица плохо подходит. 
Два основных варианта, либо PHP, либо ASP.NET, попробуйте и сравните что лучше для вас, помимо личных предпочтений опять же важен сам проект, если пока нет возможности создать VPS или оплачивать хостинг, то это дополнительный повод выбрать PHP, для которого гораздо больше бесплатных хостингов.