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

Лучший ответ:
А никак. Либо у вас под рукой пачка девайсов (livereload упрощает жизнь) либо боль и страдания.

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

Лучший ответ:
Для получения текущего времени с временной зоной (локализованное время) нужно использовать now() не из datetime, а из django.utils.timezone:from django.utils.timezone import now
Чтобы преобразовать уже локализованный datetime в другую временную зону (например во временную зону пользователя):from django.utils.timezone import now, pytz
user_timezone = pytz.timezone(user.timezone or settings.TIME_ZONE)
now().astimezone(user_timezone)
Если у вас нелокализованный datetime и вы хотите добавить ему информацию о временной зоне:from datetime import datetime
from django.utils.timezone import pytz
user_timezone = pytz.timezone(user.timezone or settings.TIME_ZONE)
user_timezone.localize(now())
Для того, чтобы Djagno использовало временные зоны для полей Date/Datetime нужно, они должны быть включены в настройках:TIME_ZONE = 'Europe/Moscow'
USE_TZ = True

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

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

Худший ответ:
Можете написать жалобу в контролирующие организации (Роспотребнадзор, Роскомнадзор), но вряд ли к чему путному они приведут. У моего провайдера, например, в договоре прописано что инета может не быть 10 дней в месяц, хотя недавно сделали, что пересчёт автоматом (до этого тоже по заявлению). А вообще почитайте «Правила оказания телематических услуг связи» — docs.pravo.ru/document/view/5640/64131/ Перерасчёт автоматом делать они не обязны согласно этим правилам
Вопрос: проблема с IE8

Лучший ответ:
попробуйте отключить половину JS, если не поможет — то другую. Ту половину еще пополам и так далее.

Худший ответ:
Можете ещё в джаваскрипте напихать алертов, и смотреть, на каком этапе едет вёрстка.
Вопрос: Актуальны ли Java аплеты сегодня?

Лучший ответ:
нет, не актуальны

Худший ответ:
Нет
Вопрос: Есть ли Coworking-центры в Донецке?

Лучший ответ:
Сам давно жду такой центр в Донецке… плюс также задумывался организовать, но здоровье на данный момент не позволяет…
Спрос будет, я думаю…
потому как работа дома- расслабляет… и надоедает…
P.S. сам с Донецка… можем встретиться, поговорить…

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

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

Худший ответ:
сказать что если что-то случиться ,то будет только по предоплате и с наценкой за срочность )
Вопрос: Где лучше рекламировать игру?

Лучший ответ:
Есть неплохой документ с контактами ревьюверов - https://docs.google.com/spreadsheet/ccc?key=0As1jo...
Наиболее эффективным вариантом рекламы для меня была публикация на сайтах-каталогах, например pdalife.ru для русскоязычной аудитории или www.appbrain.com для всего мира, на втором уровне по эффективности группы в ВК, Twitter и Facebook.Пару десятков сайтов есть в открытом доступе, с полным описанием и оценкой эффективности и контактами.

Худший ответ:
Доброго времени суток. Как вариант вы можете разместить свою игру на вот этих сайтах:
https://bumdroid.ru/
https://xplayon.com/
Свои программы я размещал у них, проблем не было.
Вопрос: С помощью чего создать такое оформление?

Лучший ответ:
Повторяющийся зубчатый фон
Это если старые IE не нужны.
Иначе - картинкой. Меньше мороки.

Худший ответ:
на примере картинкой сделан
demo.joomla.org/templates/joomla/images/demo/modBox.png
Вопрос: Как решить проблемы с системой охлаждения ноутбука ASUS U31SD?

Лучший ответ:
Краска же?

Худший ответ:
это значит что есть отверстие в системе охлаждения и вышла жидкость охлаждения
Вопрос: Почему sshd логирует внутренний IP, а не внешний?

Лучший ответ:
Наверное у вас пиринг с его домашней сетью.
У меня точно так же :) Иногда полезно, за интернет дома можно не платить, через свою проксю сидеть…

Худший ответ:
Сделайте на машинке простенький .php с текстом вроде:
echo "IP: ".$_SERVER["REMOTE_ADDR"];
и посмотрите, что он выдаст если открыть его в браузере с той машины. Если 10.* адрес — то дело не в SSH, а как выше сказали, в прямом роутинге. Ну и еще как вариант, можете с этого сервера попингать адрес клиента — если он точно NAT'ится — пинги не пройдут.
Вопрос: Беспроцентные проценты по кредитке Альфа-банка?

Лучший ответ:
У меня кредитка альфы уже второй год. Никаких процентов ни разу не платил, т.к. всегда укладывался в двухмесячный срок беспроцентного периода. У меня было спец. предложение, потому первый год я не платил за обслуживание карты. Второй год платил ок. Вашего — 625 руб.
9,99% — это действительно должна быть полная стоимость кредита, если считать годовой взнос за обслуживание карты. Плюс еще что-то там может быть. У меня там еще Альфа-Чек включен. Помню в свое время считал, у меня все сошлось.
Но если Вам непонятно, то действительно лучше спросить у специалиста в отделении и уточнить из чего складывается полная стоимость.
Я, повторюсь, уже второй год ей пользуюсь и только рад. Очень выручал меня такой запас денег на всякий случай. Плюс оплачиваю ей регулярно все покупки в сети на dx.com, aliexpress.com, ebay.com, amazon.com и т.д. Привязана к PayPal. Отличная вещь в общем :)

Худший ответ:
alfabank.ru/f/1/retail/docs/general_conditions_20100915.pdf
Банк предоставляет беспроцентный период пользования Кредитом в случае, если условие о беспроцентном периоде пользования Кредитом
(включая срок его действия) содержится в Уведомлении об индивидуальных условиях кредитования/Кредитном предложении/ Предложении об
индивидуальных условиях предоставления Кредитной карты
Такое было?
Вопрос: Как сверстать резиновый квадрат с помощью чистого CSS?

Лучший ответ:
вроде все работает https://jsfiddle.net/dbvq1nzf/

Худший ответ:
Самый простой способ это сделать ширину = 0, и например padding: 25%
Получим квадрат который будет занимать половину ширины своего контейнера
Вопрос: Загрузка видео &gt;15 минут на YouTube?

Лучший ответ:
habrahabr.ru/blogs/google/109799/
YouTube снял ограничения по длительности видеороликов

Худший ответ:
Не понял вопроса, наверное Вы спрашивали как?
Каналл бренда. www.youtube.com/t/advertising_brand_channels
Вопрос: Ддосят сайт через активные соединения (ISP). Как поставить ограничение на кол-во запросов?

Лучший ответ:
В Iptables внесите строку. Ограничение в 10 подключений с одного IP на 80 портiptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j REJECT
Еще вариант. Суть та же:iptables -A INPUT -p tcp --syn --dport 80 -m recent --name radiator --set
iptables -A INPUT -p tcp --syn --dport 80 -m recent --name radiator --update --seconds 120 --hitcount 10 -j REJECT

Худший ответ:
Эм, а заблокировать IP?
Рекомендую CloudFlare.
Вопрос: Прием платежей с Visa-Mastercard для физического лица

Лучший ответ:
liqpay.com
Только там лимиты 250$ на платеж, 500$ на сумму платежей в сутки с одной карты.

Худший ответ:
Посмотрите в сторону waytopay.
Вопрос: Поле типа BIT

Лучший ответ:
выставить крайний правый бит в 1: update bitset set data=data | 1
выставить крайний правый бит в 0: update bitset set data=data &~ 1
остальные биты так же (2, 4, 8, 16 ...)

Худший ответ:
Использую поле integer через слой. NULL понимается как FALSE, единичка 1 — TRUE. 

В итоге:
1. Кроссбазно. В любой момент можно переезжать от SQLite и MySQL до PostgreSQL и Oracle, а также экзотические, и даже nosql базы. Все, что поддерживает слой. Если не поддерживает — просто написать новый драйвер для слоя.
2. Не заметно каких-то существенных изменений в производительности и ресурсах. Честное слово, не заметно!
3. Удобно для использования, удобно для программирования, очень удобно для стандартизации.
4. В любой момент можно расширить количество состояний сущности. Про запас имеются 4 миллиарда вариантов…
Вопрос: Как изменить элемент внутри iframe?

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

Худший ответ:
годная статьяДоступ к контенту iFrame с другого домена
когда лично мне понадобилось менять во фрейме, я проксировал запрос и получался фрейм со своего домена
Вопрос: CSS3. Почему не срабатывает псевдокласс nth-child?

Лучший ответ:
Все прекрасно работает: jsfiddle.net/IonDen/1h6otjub
Вы не на то вешаете псевдокласс. Нужно на ul li:pseudo, а не на ul:pseudo

Худший ответ:
ССылку на пример кода дайте
Вопрос: Как настроить быстрый запуск Django runserver?

Лучший ответ:
добавляем в конец ~/.virtualenvs/PROJECTNAME/bin/postactivate
там может быть бат файл, хз как оно там в виндеcd  <к папке с manage.py>
python manage.py runserverworkon PROJECTNAME

Худший ответ:
Напишите батник что-ли. Если не хотите батник - напишите питоновский скрипт и сделайте ассоциацию на py файлы.
Вопрос: Куплено ли приложение в Google Play?

Лучший ответ:
developer.android.com/guide/google/play/licensing/index.html
Но вам придётся делать в Google Play два приложение (платное и бесплатное).
Или можно сделать покупку расширенного функционала через платежи внутри приложения: developer.android.com/guide/google/play/billing/index.html

Худший ответ:
Благодарю за ответ!
Вопрос: Бесплатная альтернатива MS Projects?

Лучший ответ:
Если есть свой сервер, то RedMine, например, умеет диаграммы Ганта.

Худший ответ:
Есть бесплатный тариф у крупного игрока Wrike.com Возможно вам этого будет достаточно.
Вопрос: Как разместить div по центру с позицией fixed?

Лучший ответ:
jsfiddle.net/iiil/RN8yW/7
Самый простой вариант.

Худший ответ:
Мне кажется, или ваш вариант не самый простой??))
Вопрос: Какие специалисты работают над шлемами виртуальной реальности?

Лучший ответ:
https://www.oculus.com/en-us/careers/ Довольно полный список.

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

Лучший ответ:
Покажи вывод (echo) $outciti и $gociti
А вообще так не делай, это плохо. 
Так-как ввести можно с ошибкой или в другом регистре, с лишним символом и т.д.
Лучше давай выбор пользователю из dropdown (select) и пусть в скрипт приходят не названия локаций, а их номера. Вот по этим номерам и делай условие.

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

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

Худший ответ:
Я linkedin'ом пользуюсь. Про ИТ-специфику не уверен, но сферу деятельности выбрать дают.
Вопрос: Как четко спроектировать БД?

Лучший ответ:
EAV
Пляшем от 5-ой нормальной формы а дальше уже оптимизации по мере необходимости.

Худший ответ:
Товары
Список опций товара
Связующая таблица
Лично я в данный момент разрабатываю интернет магазин на Laravel, связи до банальности простые (парочка belongsToMany для опций и категорий соответственно).
Если пишите на чистом PHP / MySQL (это конечно то еще удовольствие), вот вам полученные SQL запросы:
Вопрос: Как, используя API Yandex.Map ограничить область вывода на карте?

Лучший ответ:
Вы пытаетесь передать опции карты вторым параметром вместо третьего.
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/refe...

Худший ответ:
Сервис для определения кординат https://nominatim.openstreetmap.org/ui/search.html
Вопрос: Какие посоветуете уроки по PHP?

Лучший ответ:
По своему опыту могу посоветовать:
1. Курсы от "Специалист", которые ведет Борисов Игорь Олегович. Лично я от него без ума
2. Книга "Изучаем PHP и MySQL" от O'Reilly

Худший ответ:
Очень сильная книга, очень понравилась - "Мэтт Зандстра - PHP. Объекты, шаблоны и методики программирования". Но это не для начала. Для начала посоветую видео-курсы Попова PHP+MySQL. И сразу же после него учитесь писать парсы...
Вопрос: Создание отказоустойчивого кластера. Что посоветуете?

Лучший ответ:
https://yadi.sk/d/7ebzswl0cnn8V
На, может этот хлам хотя бы кому-то пригодится =)

Худший ответ:
Nginx умеет балансировать и исключать отказавшие сервисы (апачи или пхп).
www.hilik.org.ua/nginx-%D0%BF%D1%80%D0%BE%D0%BA%D1...
Вопрос: Отслеживание страницы 404?

Лучший ответ:
А мне казалось это не так делается…
Url не должен меняться, должен меняться ответ от сервера, своя кастомная страничка с извинялками или еще что.

Худший ответ:
нашёл корень проблемы, но ума не приложу, как его решить. Как оказалось на сервере стоит связка apache+nginx соответственно сначала nginx перехватывает управление видит 404 выдает 301 редирект, потом управление подхватывает апач и показывает страницу, но при перенаправлении теряются исходные данные массива $_SERVER. Может кто подскажет как решить эту проблему?
Вопрос: Проблема mcrypt в phpmyadmin на ubuntu server 14.04, как бить?

Лучший ответ:
Устанавливаем расширение.sudo apt-get install php5-mcrypt
Создайте ини файл, если его нет.➜  ~  cat /etc/php5/mods-available/mcrypt.ini 
; configuration for php MCrypt module
; priority=20
extension=mcrypt.so
Включаем модуль.sudo php5enmod mcrypt
Перезагружаем сервер.

Худший ответ:
А еще может быть, что у вас несколько php (от LAMPP, например). И используется та, которая без mcrypt
Вопрос: Почему в C++ некорректная работа с переменными и указателями?

Лучший ответ:
Почему в C++ некорректная работа с переменными и указателями? - потому что тот, кто на нем пишет не умеет ими пользоваться.

Худший ответ:
Как я написал выше - скомпилил это дело под gcc.
UPD:
Проблема решилась заменой непонятной strcat_s на стандартную strncpy(_string, _buffer, _lenght);
UPD2:
Всю суть ошибки можно осознать тут valera.asf.ru/cpp/book/c08.shtml 
Конкретно пункт "8.3.1. Автоматические объекты"После возврата в main() mainResult указывает на область памяти, не отведенную никакому объекту. (В данном примере эта область все еще может содержать правильное значение, поскольку мы не вызывали других функций после trouble() и запись ее активации, вероятно, еще не затерта.)
Вопрос: Как можно улучшить код на JQuery?

Лучший ответ:
Я же вам здесь очень подробно ответил.
Принципы, которые там описаны, применяются одинаково хорошо и для ванильного js и для jquery.var classes = ['item-id', 'item-title', 'item-price', 'delete-btn'];

$('#sf tr').each(function () {
    var $cell = $('<td>').append('<a class="add_item">Добавить в корзину</a>');
    
    $(this).append($cell);

    $(this).find('td').each(function (index, element) {
        $(element).addClass(classes[index]);
    });    
});
Или вот такой вариант, без итерации по строкам:var classes = ['item-id', 'item-title', 'item-price', 'delete-btn'],
    $rows = $('#sf tr').filter(':gt(0)'),
    $link = $('<a>').addClass('add_item').text('Добавить в корзину'),
    $cell = $('<td>').append($link),
    $cells;

$rows.append($cell);

$cells = $rows.find('td');

$cells.each(function (index, cell) {
    $(cell).addClass(classes[index % classes.length]);
});Интересные, кстати, получаются результаты сравнения скорости работы этих двух вариантов.

Худший ответ:
Можно$(this).add('<td></td>');
$(this).find('td:last').append('<a class="add_item">Добавить в корзину</a>');
заменить на:$(this).add($('<td><a class="add_item">Добавить в корзину</a></td>'));
Вопрос: Кто отвечает за анимации сайта?

Лучший ответ:
Jquery??? Ха-ха-ха! Великие разработчики придумали для этого CSS3 keyframes!! Создаете анимацию вы(т.е. верстальщик), а дизайнер ее придумывает и продумывает(как будут сменяться картинки, что как будет появляться и т.д.). Но то что вы их правите по 100500 раз говорит о том, что дизайнер мягко говоря туповат и не знает что хочет, либо ленив что бы написать все это сразу!
У меня на работе точно так же, я после 1 и 2й правки ставлю перед фактом, что бы он сразу сидел и продумывал иногда даже с криками.

Худший ответ:
Это делает фронтэнд разработчик, как правило на javascript и фреймворках, например на jquery. Это уже не верстка, а программирование, и тут нужен javascript программист. Как правило фронтэнд разработчик может и верстать, но это глупо, т.к. время верстальщика стоит дешевле. Вы, как я понял, просто верстальщик, и вас грузить фронт энд программированием не верно.
Вопрос: Как сделать random с неравномерным распределением в Python?

Лучший ответ:
Сначала определите предельно конкретно, что означает "в начале вероятность выше, чем в конце".
После чего сможете написать свою функцию распределения. Например, в вашем списке 4 элемента и вероятности распределены так: 60, 25, 12, 3, то есть 60% - для 1-го элемента, 25% - для 2-го и так далее.
Тогдаyour_data_list = [...]
probabilities_list=[60, 85, 97, 100]
rnd = random.uniform(1, 100)
idx = -1
idx_found = False
while idx < len(probabilities_list) and not idx_found:
  idx += 1
  idx_found = rnd <= probabilities_list[idx]
your_random = your_data_list[idx]
Однако, это очень медленный способ (и к тому же не лишенный некоторых проблем).
Можно сделать быстрее и короче с помощью модуля bisect:idx = bisect.bisect_right(probabilities_list, rnd)
Этот вариант будет заметно быстрее (иногда, правда, на 20%, но иногда и в 3.5 раза).
Но правильнее всего использовать numpy:numpy.random.choice(your_data_list, size=N, p=prb_list)
Это будет раз в 10 быстрее.
При этом prb_list должен содержать именно вероятности появления каждого элемента, т.е. для вышеприведенного примера [0.6, 0.25, 0.12, 0.03]

Худший ответ:
Сначала определите предельно конкретно, что означает "в начале вероятность выше, чем в конце".
После чего сможете написать свою функцию распределения. Например, в вашем списке 4 элемента и вероятности распределены так: 60, 25, 12, 3, то есть 60% - для 1-го элемента, 25% - для 2-го и так далее.
Тогдаyour_data_list = [...]
probabilities_list=[60, 85, 97, 100]
rnd = random.uniform(1, 100)
idx = -1
idx_found = False
while idx < len(probabilities_list) and not idx_found:
  idx += 1
  idx_found = rnd <= probabilities_list[idx]
your_random = your_data_list[idx]
Однако, это очень медленный способ (и к тому же не лишенный некоторых проблем).
Можно сделать быстрее и короче с помощью модуля bisect:idx = bisect.bisect_right(probabilities_list, rnd)
Этот вариант будет заметно быстрее (иногда, правда, на 20%, но иногда и в 3.5 раза).
Но правильнее всего использовать numpy:numpy.random.choice(your_data_list, size=N, p=prb_list)
Это будет раз в 10 быстрее.
При этом prb_list должен содержать именно вероятности появления каждого элемента, т.е. для вышеприведенного примера [0.6, 0.25, 0.12, 0.03]
Вопрос: Можно ли сделать 1 база mysql и несколько wordpress на 1 домене?

Лучший ответ:
можно, там же когда ставишь - пишешь префикс для таблиц базы
нагрузка - 20 ВП с 100-500 уников в сутки живут на 2Гб ВПС

Худший ответ:
Режим Multisite не подходит?
Вопрос: Что именно значит ошибка?

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

Худший ответ:
Обновлять UI вы можете воспользовавшись методом активити.
MainActivity.this.runOnUiThread(Runnable)
developer.android.com/intl/ru/reference/android/ap...
Вопрос: Как настроить QtCreator 5.2.0 для Windows 7 64-bit Desktop?

Лучший ответ:
Лучше качайте сборки под MinGw, там все в комплекте идет и компилятор и настроенный QtCreator

Худший ответ:
Qt 5.2.0 for Windows 64-bit (VS 2012, OpenGL, 589 MB) : VS 2012 как бы намекает на версию компилятора. И недавно был такой же вопрос, но под Linux...
Вопрос: По каким техническим характеристикам определить, что на компьютер невозможно поставить более одной операционной системы?

Лучший ответ:
В СЦ тупо не захотели морочиться с установкой системы, если системные требования (производительность, размер оперативы) позволяют запускать каждую систему по отдельности, то поставить несколько систем абсолютно не проблема, главное чтобы хватило на всех места на HDD.
PS: Да, в MBR может быть только 4 основных раздела и куча логических, никто не мешает ставить системы на основные разделы, а данные хранить на логике, просто в СЦ не умеют или не хотят правильно форматировать HDD и пилить загрузчик.
PPS: Если в новом буке будет EFI биос и GPT разметка диска, то там количество загрузочных разделов практически не ограничено, и можно поставить хоть 100 копий DOSа лишь бы ресурсов системе хватало.
А вообще хакактеристики ноута пожалуйста в студию. 
Еще в СЦ могли решить что хочешь поставить не загрузчик а гипервизор и пускать виртуалки, тогда да под несколько одновременно работующих систем может и нехватить ресурсов.

Худший ответ:
В СЦ тебя обманули. А про характеристики (в пределах разумного не имеется ввиду на 486 ставить WinServ2012) это наверное если только нехватка свободного пространства на HDD или SSD. Покупай новый ноутбук, и ставь туда хоть 5 ОС.
Вопрос: Почему UDP Hole Punching не всегда обходит NAT?

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

Худший ответ:
Насколько я помню есть так называемый симметричный NAT, и Hole Punching через него не работает. А так если в 1 случае работает то единственное что может мешать в другом это провайдер или firewall
Вопрос: Почему дизайн тостера стал таким ужасным?

Лучший ответ:
Нормальный дизайн. Всё под рукой. Главное, чтобы не как SO

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

Лучший ответ:
Вариант — подать в суд на нового владельца. Максимум, что ему будет — заставят убрать ваш контент и оплатить судебные издержки. Домен назад получить (в вашем случае) невозможно.

Другой вариант — купите сайт у нового владельца и впредь будьте осмотрительны.

Третий вариант (он мне нравится бьольше всех) — плюньте на всё, сделайте «с нуля» и в 100 раз лучше.

Худший ответ:
Я в этом вопросе не силен, но ВОЗМОЖНО, если зарегистрирвоать авторские права, то можно на него наехать. И он будет вынужден поменять дизайн. Найти авторов курсовых и лаб, если учились вместе с ними, и тоже как бы попросить удалить. Но домен уже не вернуть.

Пусть кто-либо адекватный и грамотный и осведомленный в этом вопросе теперь скажет, прав ли я.