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

Лучший ответ:
jsfiddle.net/ntk7kvbp/5UPD:
Взглянул на свой вариант и подумал, можно ведь обойтись одним псевдоэлементом.
И получилось следующее: jsfiddle.net/ntk7kvbp/12 в хроме немного ухудшается качество, видны "лесенки". В других браузерах получше.
Возникла еще идея, если потребуется удлинить пустую середину. Можно элементу задать overflow: hidden; а его псевдоэлементу отрицательный bootom отступ. Регулируя border-top и bottom можно добиваться нужного угла и ширины центра. 
В общем вот пример - jsfiddle.net/ntk7kvbp/11
Ну и последнее, автоширина, в первом варианте размеры указанны жестко и если увеличить ширину контейнера то псевдоэлемент останется на месте.
Можно сделать так - jsfiddle.net/ntk7kvbp/10, конечно хотелось бы, чтобы тянулся сам бордер, но к сожалению этого эффекта не добиться, ну хоть так ).

Худший ответ:
Вот вам пример.
Вопрос: Что такое «data rehydration»?

Лучший ответ:
Ну если вкратце,  то dehydrating это всего лишь навсего сохранение состояния вашего приложения в какой-либо объект. Соответственно rehydration это перезапись состояния вашего приложения или восстановление состояния приложения по входным данным. Применительно ко Flux архитектуре этим занимаются Stor-ы и Dispatcher. Первые хранят состояния ваших компонентов, второй отслеживает изменения.

Худший ответ:
Одна из полезных фишек в Реакте — пререндер страниц.
Чтобы отрендерить страницу на сервере, вам нужно получить все данные, нужные этой странице. Данные у вас хранятся в Сторах.
Получили данные на сервере, отредерили страницы, переслали разметку... И данные снова нужно получить уже на клиенте.
Гораздо проще на сервере сделать дегидрацию (сериализовать все нужные данные), переслать их сразу же на клиент (вместе с разметкой) и на клиенте сделать регидрацию (из сериализованных данных обратно в сторы или куда вам нужно).
Как пример: yahoo/dispatcher – 2 метода с такими же названиями у каждого стора.
Вопрос: Как организовать общение между клиентом (Android) и сервером (Java)?

Лучший ответ:
Самое простое - написать REST API на сервере, отдавать клиенту данные в JSON'е по HTTP.
Быстро накидать серверное приложение можно с помощью вот этого, например. Запрашивать что-либо по HTTP в Android-приложении можно с помощью Volley.

Худший ответ:
Исходя из задачи, требуется исполнение в виде частых опросов.
В таких случаях обычно используют протокол websockets, который дает возможность многократного использования соединения и позволяет сделать server push. Для server push еще google предоставляет сервис https://developers.google.com/cloud-messaging/ с возможностью подписки и бродкаст.
Если хотите писать не на WebView а ближе к железу, то unix sockets никто на android не отменял import java.net.InetAddress;
import java.net.Socket;
Вопрос: Какой паттерн проектирования выбрать для списка объектов разного типа?

Лучший ответ:
Реализовать одинаковый интерфейс для всех трех видов объектов, никаких паттернов

Худший ответ:
Пересмотрел свое решение. Решил сделать просто наследование, плюс Property, которые будут возвращать коллекции конкретного типа для подписки/отписки от событий.
Вопрос: Есть ли варианты получения ВНЖ для фрилансера-программиста в ЕС?

Лучший ответ:
Можно получить ВНЖ в Болгарии, она входит в ЕС(но на настоящий момент не в Шенген).
Схема такая: открывается компания в России, а в Болгарии открывается ее представительство. Представитель иностранной компании - основание для ВНЖ. ВНЖ дается на год, каждый год его надо продлевать. Через 5 лет можно подать на ПМЖ, через 10 - на гражданство. 
Возможно это самый дешевый ВНЖ в ЕС. Стоимость от 1000 евро, +/-, вписываться в готовое представительство дешевле, чем открывать его с нуля. Максимальная стоимость в районе 2-х тысяч. Так же надо показать средства на счете, в размере как минимум 12-ти минимальных зарплат в Болгарии. Сейчас это 420 лева или 210 евро, таким образом показать надо примерно 2500 евро. Но их не обязательно класть на депозит, можете снять на следующий день после получения справки из банка.
Лично мне весь переезд обошелся в 1500 евро, вместе с перевозкой вещей, кота, оформлением визы Д и ВНЖ, несколькими поездками в Москву и съемом квартиры.  
Стоит понимать, что представительство хозяйственную деятельность вести не имеет права, оно для того, чтобы изучать рынок, налаживать деловые связи и т.д. Как в таком случае работать?
Или просто живете и работаете на своих заказчиков как работали раньше. Происхождение ваших денег, полученых из-за границы, никого не волнует, если это не миллионы. Главное, что тратите вы их в Болгарии, не отнимая при этом рабочие места у граждан.
Или открываете аналог ИП/юрлицо уже в Болгарии и работаете из-под него. Сотрудников нанимать не обязательно, ведь у вас ВНЖ по другому основанию.
Ехать сюда стоит только в том случае, если вы действительно хотите работать как фрилансер и дальше, либо же готовы открыть какой-то свой бизнес на месте, либо имеете пассивный доход. ВНЖ в Болгарии не дает права работать по найму, нужно отдельное разрешение на работу. Зарплаты низкие даже в IT, исключение пожалуй София, т.к. там есть офисы крупных компаний. 
И хоть формально Болгария и в Европе, по менталитету, стилю жизни и культурным особенностям - это Балканы. Лоска Западной Европы ожидать не стоит, разочаруетесь. При этом тут низкие цены, размереный ритм жизни,  красивая природа и очень хороший климат. Позавчера у нас +18 было, например :) В середине января, да.

Худший ответ:
1 устроиться работать в ес
2 открыть компанию и иметь обороты на ней
Вопрос: Какие параметры изменить что бы избежать 504 ошибки?

Лучший ответ:
в nginx добавить
если используем proxy_pass: proxy_read_timeout 999999; 
если испоьзуем fcgi: fastcgi_read_timeout 999999;

Худший ответ:
установите параметр в nginx: fastcgi_read_timeout
Вопрос: Windows 10 кавычки вводятся только парами?

Лучший ответ:
Это раскладка клавиатуры. Наверняка стоит США - Международная. Нужна просто США.

Худший ответ:
Впечатление, что США международная ставится "невидимо". Переключение на русский срабатывает только со второго раза. Мне помогло установить эту раскладку явным образом, а потом удалить. 
Точнее так:
установил США международная 
удалил США
установил США
удалил США международная 
Не знаю, важны ли дополнительные пункты :)
Вопрос: Как это называется?

Лучший ответ:
Вы открыли exe-шник или библиотеку в блокноте видимо. Читайте про portable executable

Худший ответ:
Это называется ТЕКСТ (последовательность букв которые складываются в слова, которые складываются в предложения). То что для вас какой либо текст не имеет смысла компу пофиг. Дело в том, что любой файл это не более чем набор байт (чисел), а как эти байты будет трактовать та или иная прикладная программа. По этому  большинство программ открывая файл определяют его тип (расширение) это те (как правило три) буковки в названии после последней точки. Все более менее продвинутые программы кроме типа файла используют сигнатуры. Из таблицы следует, что ваш файл является исполнительным (программа) и по идее должен иметь тип exe

PS Прикольно, что множество совершенно разных типов файлов (docx, xlsx, jar) имеют сигнатуру PK что соответствует zip архиву. На самом деле физически это и есть zip архивы. Можете переименовать и открыть такой файл архиватором
Вопрос: Как отключить «предупреждение» ITBrain в TeamViewer 9?

Лучший ответ:
Смотри скриншот. Мну тоже эта абсолютно ненужная функция достала. Немного поковырялся )))
Сними галочку на "Enable integrated system health checks" и перезагрузи вьювер.
Профит! ;)

Худший ответ:
Или Зайти на сайт  выключить ITBrain
или удалить пк из списка и заного его туда добавить
Вопрос: Задачка о шифровании

Лучший ответ:
Можно, конечно: md5($pass.$salt.$date) — и $date округлять до нужного вам интервала: месяц, день, час — смотря какой срок годности. Проверять можно текущий и предыдущий, чтобы не было засады. Работать будет правда с точностью ± выбранный интервал, но думаю, не страшно.

Худший ответ:
например, код можно формировать как-то так:
HEX(симметричный_шифр(array(сложный_хэш_пароля, дата_окончания_хеша, сложный_хеш_включающий_дату_и_хэш_пароля)))
Загляните на phpclasses, там есть готовые алгоритмы в обход mcrypt.
Дополнительно нужно учесть лимит get-запроса.

Есть лучше вариант: например, можно давать срок на три дня, код записывать как
md5($password . $salt . date('Y-m-d', strtotime('+3 days')))
после перехода клиента по ссылке проверять соответствие пришедшего кода коду, сгенерированному на следующие три дня.
Минусы, думаю, понятны.

Отбрасывая вариант сохранения в бд Вы лишаетесь возможности контролировать количество переходов по приведенной ссылке, плюс приходится формировать довольно сложный url.
Вопрос: Как перевести из table colspan="4" в css?

Лучший ответ:
Никак. Не путайте структуру и визуализацию. Это как спрашивать — можно ли в CSS задавать action у form или for у label.
А в вашем случае можно совсем обойтись без таблицы.

Худший ответ:
<div class="row" style="width: 100%;">
       <div class="column fullSize" style="width: 100%">
              Angaben zur Kontaktperson<br /><br />
       </div>
</div>
<div class="row" style="width: 100%;">         
      <div class="column halfSize" style="width: 50%;">
            Обычные колонки
       </div>
       <div class="column halfSize" style="width: 50%;">
            Обычные колонки
       </div>
</div>
Как-то так может быть? Вообще, для этого есть готовые решения в том же bootstrap, но если хочется создавать свой велосипед, почему бы и нет)
Вопрос: Как работать с try — catch при проверке ввода в С++?

Лучший ответ:
Указатель в cin при ошибке не сдвигается.
1. как написал superhabra, надо снимать failbit cin.clear()
2. надо чем-то сдвигать указатель, например cin.ignore(1)

Худший ответ:
А что дальше-то идет? Может, оно в другом месте завершается. Например, там, где используется var с непонятно каким значением.
Вопрос: Как в jQuery узнать код ошибки, отданной сервером?

Лучший ответ:
error: function(request, status, error) {
   var statusCode = request.status; // вот он код ответа
}

Худший ответ:
error: function(request, status, error, html) {
   var statusCode = request.status; // вот он код ответа
   $("#id_дивА_где_нужно_вывести_результат").html("Error: "+statusCode);
Вопрос: Какая правильная структура static файлов в больших проектах?

Лучший ответ:
1. Все внешние библиотеки подключаются только через bower
2. Своя статика в каталогах project/static/(css|less|js). Структура подкаталогов зависит от фреймворка и договорённостей между разработчиками.
3. Всё собирается/сжимается через django-pipeline в момент сборки и загружается в CDN при деплое. 
В итоге внешний мир видит только static.example.com/frontend.HASH.css и static.example.com/frontend.HASH.js. Файлы доставляются в сжатов ввиде и навечно кешируются.
Профит!

Худший ответ:
Почитайте про БЭМ ru.bem.info/method/filesystem
Вопрос: Фильтрация объектов в массиве Django?

Лучший ответ:
according to документация, вам надо использовать entries__set
кроме того, совсем не ясно, почему вы пытаетесь фильтровать is_published=True, когда сами же пишете, что нужны неопубликованные...

Худший ответ:
class Blog: 
  name = некоторое поле

  def non_published_entries(self):
    return Entry.objects.filter(blog=self, is_published=False)

for blog in Blog.objects.all():
  print(blog.non_published_entries())
Вопрос: Как правильно работать с php-функцией Mcrypt? Не хочет восстанавливать зашифрованные данные

Лучший ответ:
Вот юолее простой пример использования mcrypt_encrypt / mcrypt_decrypt:
<?php
function encrypt_data($key, $text){
  $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
  $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  $encrypted_text = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
  return $encrypted_text;
}

function decrypt_data($key, $text){
  global $encryptionkey;
  $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
  $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  $decrypted_text = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
  return $decrypted_text;
}

$key = 'This is a very secret key';
$text = "Meet me at 11 o'clock behind the monument.";
echo $text .':'. mb_strlen ($text)."\n";

$crypttext = encrypt_data ($key,$text);

$decrypttext = decrypt_data ($key, $crypttext) ;
echo  $decrypttext.':'. mb_strlen ($decrypttext)."\n";
var_dump($decrypttext);


В результате выполнения:
[AGvin@localhost public]$ php test.php 
Meet me at 11 o'clock behind the monument.:42
Meet me at 11 o'clock behind the monument.:64
string(64) "Meet me at 11 o'clock behind the monument.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"


В качестве лечения, можно использовать $decrypttext= rtrim($decrypttext, '\0'); 

или поправить функцию decrypt_data:

<?php
function decrypt_data($key, $text){
  global $encryptionkey;
  $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
  $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  $decrypted_text = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
  return rtrim($decrypted_text, '\0');;
}


Худший ответ:
Насколько я знаю про AES, вектор инициализации при шифровании и расшифровке должен быть одинаковым. А у вас при каждом encrypt/decrypt
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

То, что при выполнении функций «подряд» результат верный — списываю на особенности random.
Вопрос: Посоветуйте надежный планшет для Skype

Лучший ответ:
Искренне советую nexus 7 16 гб. Цена чуть выше бюджета. 7-8 тыс, но для первого знакомства с android, на мой взгляд, лучший вариант.

Худший ответ:
Относительно Skype — У меня он нормально работал на обычном IconBit, одна из младших моделей за 2800 рублей, больше качество связи мешало. А вот насчёт Google Play — смотря что Вы оттуда наплаите, может Вам нужен четырёхядерный процессот и экран с высоким разрешением?
Вопрос: Немного о кармообразовании и его истории

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

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

Лучший ответ:
С чего начать путь в Game Dev?
Что нужно, чтобы стать разработчиком игр?
Какое должно быть портфолио?
Хотите делать игры - делайте игры. Участвуйте в геймджемах (Ludum Dare, itch.io, Global Game Jam) и выкладывайте всё в интернет. Есть хороший канал про игры на YouTube, буквально на днях они начали серию роликов про разработку, очень полезно, посмотрите. Походите на собеседования, там вам скажут чего не хватает.

Худший ответ:
классика www.ozon.ru/context/detail/id/1692806
так и основы и математика
Вопрос: Как сделать корректным sitemap and robots.txt?

Лучший ответ:
Рискну предположить, что проблема в кодировке файла. Делайте UTF-8.

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

Лучший ответ:
set будет работать быстрее всего

Худший ответ:
Можно изначально хранить данные в set.
Вопрос: Доступ к локальной сети через OpenVPN server. Маршрутизация

Лучший ответ:
iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 192.168.0.0/24 -j ACCEPT
иiptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
решили вопрос.
После этого создал скрипты для восстановления iptables после перезагрузки
Все работает.

Худший ответ:
Красава, чо
Вопрос: Стоит ли публиковать на Хабре пост о плохом работодателе?

Лучший ответ:
habrahabr.ru/info/help/rules/
Хабр — не жалобная книга. Наша жизнь полна несправедливостей, но это вовсе не означает, что о каждой трагедии и драме нужно рассказывать IT-сообществу. Как правило, в таких статьях одна ругань, разборки и выяснение отношений с переходом на личности и публикацией личной переписки. Мы категорически против такого на Хабре, поэтому, пожалуйста, воздержитесь от жалобных публикаций, а если кто-то обманул или ограбил, обращайтесь в полицию.

Худший ответ:
напишите, очень интересно! можно в личку )
Вопрос: Как сделать чтобы TV отображался во вкладке в MODX REVO?

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

Худший ответ:
Можно разместить TV ниже поля содержания ресурса. Для этого в настройках системы включит "Разместить TV ниже контента (tvs_below_content)"
Вопрос: RBAC в Yii, есть у кого визуальный редактор прав?

Лучший ответ:
Если я не ошибаюсь, то вот есть расширение -> www.yiiframework.com/extension/rights
Оно под версию 1.1.

Худший ответ:
посмотрите в репозитарий https://github.com/githubjeka/gui-rbac-yii2.git, может это то что вы ищите.
Вопрос: Как залочить Macbook или аналог Win-L в MacOS?

Лучший ответ:
www.macdigger.ru/macall/6-sposobov-bystroj-blokiro... (5-й способ)

Худший ответ:
На M1 достаточно просто нажать на кнопку что является дактилоскопическим датчиком.
Вопрос: Как форматировать дату?

Лучший ответ:
Date
toLocaleString
как сделать фильтр для vue

код
upd: так будет работать кроссбраузерно только с ISO датами. Не подойдёт для решения вашего варианта.
const date = new Date('2020.06.01').toLocaleString('Ru-ru', {day: 'numeric', month: 'long', year: 'numeric'})

upd: из комментариев. Преобразуйте регуляркой.
replace
const date = new Date(
'2020.06.01'.replace(/\./g, '-') + 'T00:00:00.000Z'
).toLocaleString(
'Ru-ru', {
  day: 'numeric',
  month: 'long',
  year: 'numeric'
})


Худший ответ:
const months = {
  1: 'Января',
  2: 'Февраля',
  3: 'Марта',
  4: 'Апреля',
  5: 'Мая',
  6: 'Июня',
  7: 'Июля',
  8: 'Августа',
  9: 'Сентября',
  10: 'Октября',
  11: 'Ноября',
  12: 'Декабря',
};

function formatDate(date) {
  const [dd, mm, yyyy] = date.split('.');

  return `${dd} ${months[Number(mm)]} ${yyyy}`;
}

console.log(formatDate('01.06.2020'));
Вопрос: Как реализовать «обратный» порядок вызова методов класса PHP?

Лучший ответ:
А какова цель? Получить более естественный, легко читаемый код?
Чем не нравится конструкция типа: $this->template('templateName')->withData($array)->render()
Есть еще вариантик - перекрыть в Template метод __toString():
В render устанавливаете имя шаблона, в withData параметры.
В __toString вызываете непосредственно render с установленными ранее именем шаблона и параметрами.
Тогда весь вызов будет как (string)$tpl->render('templateName')->withData($dataArray)
Так или иначе, вам придется определять какой-то терминальный метод. Просто во втором случае он неявно вызывается, в том числе и в конструкциях типа $html = "<some html code>$tpl</some html code>"

Худший ответ:
$cookie = Cookie::make('name', 'value');
return Response::make($content)->withCookie($cookie);
Тот, кто получит Response, сам отправит данные в браузер. Попробуйте их схему применить в случае, если make($content) непосредственно отправляет контент в браузер - не получится.
Потому что вы данные отправите в браузер, а заголовок уже не сможете, так как перед этим отправлены данные.
Это все называется fluent interface или текучий интерфейс.
Но он был придуман не для того, чтобы выполнять методы в произвольном порядке, а для того, что бы писать более компактный и читаемый код.
Но я вот еще что придумал, пример (могут быть ошибки, не запускал)class SomeFreakyEntity {
    var param1, param2;
    public function terminalMethod(){
    // Этот метод всегда выполняет некое действие с настроенным объектом, конец текучего интерфейса
        var_dump($this);     
    }
    public function withSomeParams1($value){
        $this->param1 = $value;
        return $this;
    }
    public function withSomeParams2($value){
        $this->param2 = $value;
        return $this;
    }
    // Ловим любой вызов необъявленного статического метода
    public static function __callStatic($method, $arguments){
        $o = new __CLASS__;
        return call_user_func_array(array($o, $method), $arguments)        
    }
}
Теперь можно писать как-то так:SomeFreakyEntity::terminalMethod();
SomeFreakyEntity::withSomeParams1('blabla')->terminalMethod();
SomeFreakyEntity::withSomeParams2('blabla')->terminalMethod();
SomeFreakyEntity::withSomeParams2('blabla')->withSomeParams1('blabla')->terminalMethod();
SomeFreakyEntity::withSomeParams1('blabla')->withSomeParams2('blabla')->terminalMethod();
А в вашем случае Template::withData($dataArray)->render('templateName')
Вопрос: Разбить проект на несколько файлов?

Лучший ответ:
возможно ли вынести некие методы и переменные в отдельные файлы? К примеру, у меня есть методы gameInit() и gameDraw(), <...>. Могу ли я вынесли эти методы в отдельные файлы<...>?
Partial класс это что надо для вашего запроса.

Можно создать 2 файла: Program.Main.cs и Program.Game.cs (названия могут быть любыми) а внутри разместить partial-класс:

Program.Main:

static partial class Program
{
    static void Main() 
    {
        GameInit();
        GameDraw();
    }
}


Program.Game:

static partial class Program
{
    static void GameInit()
    {
        // Game init here
    }
    static void GameDraw()
    {
        // Game draw here
    }
}


а переменную сделать глобальной
Самая глобальная! :)

static partial class Program
{
    public static String Username;
}


Обращаться к ней можно откуда угодно как:

var username = Program.Username;


Худший ответ:
Глобальных переменных и методов в c# нет. Можете сделать статический (или обычный) класс и разместить в нём статическое поле(свойство) и статические методы. Получится примерно то что нужно.

Партиал всего лишь позволяет разместить описание класса в нескольких файлах для удобства.

Вообще в c# все классы, ничего вне класса (структуры) создать нельзя. Т.е. глобальных переменных и методов нет. Но статический метод и статическое поле (свойство) это примерно то, что вам нужно.
Вопрос: Что делать, если пропал заказчик на oDesk?

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

Худший ответ:
В общем, заказчик потом таки появился.) 
Но суть не в этом. На самом деле всё просто. Если у заказчика верифицированный метод оплаты (не заглядывал по ту сторону, но подозреваю, что фактически это ввод реквизитов кредитки), то с понедельника после той недели, на которой были натреканы деньги, начинается неделя Review. Если за эту неделю клиент ничего не сделает, то со следующего понедельника начинается некий frozen период, в течение которого деньги уже начислены, но ещё недоступны. Доступны они становятся со среды и сразу падают на счёт, если платёжка подключена, и сумма больше минимальной, указанной в автоплатежах.
Вопрос: Как задать описание сайта для Like кнопки Facebook не меняя description мета-тег?

Лучший ответ:
Используйте мета-теги Open Graph. Не забудьте добавить соответствующее пространство имен:
<html xmlns:og="http://ogp.me/ns#">

Посмотреть какие данные будут выбираться можно через Facebook Lint.
И результат выборки кешируется на 24 часа по URL!

Худший ответ:
1) Пользователь кликает по кнопке Like Facebook'a.
2) Facebook загружает ссылку {URL} читает description.
3) Показывает попап.

 — на этапе 2) проверяем кто страницу грузит, подменяем description.
Вопрос: Создавать ли мне свою компанию под SaaS-сервис?

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

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