Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Современная соц сеть с помощью JavaScript, какие лучше всего использовать технологии?

Лучший ответ:
React подойдет. Express тоже. Nginx тоже. Насчет монго я бы пятнадцать раз подумал, лучше взять sql. 
"Firebase, Heroku, Aws и прочее" тоже подойдет

чтобы думать как лучше построить архитектуру - надо сначала обозначить хоть что-то от чего она зависит - хотя бы планируемая нагрузка, количество пользователей, объемы данных, соотношение десктоп/мобилки, регионы и так далее. 

А так-то абстрактную "соцсеть" можно и на jquery + пачка php файлов сделать, и загрузить на шаред-хостинг по ftp.

Худший ответ:
Я тоже делал соцсеть, но на сайт никто не заходил) Пока вам можно не париться. Я использовал просто PHP и jQuery.
Вопрос: Есть ли хорошие источники языка C#?

Лучший ответ:
MSDN, поиск по тостеру...
Вот вы серьезно не смогли это нагуглить?

Худший ответ:
Есть, docs.microsoft.com ; metanit
Вопрос: Внутренний сайт по имени, для новых устройств (не по айпи) Это возможно?

Лучший ответ:
Вам нужно настроить DNS на вашем WiFi роутере. Гуглите настройка dns для гостевой сети wifi

Худший ответ:
осуществимо поскольку  вам нужно всего-лишь связать имя и домен.
Для этого можно сделать несколько вариантов
1. на Глобальном ДНС сервере купить домен и  там сопоставить вашу ДНС запись и айпи, айпи  ( но это платный вариант с покупкой домена)
2. вы поднимаете свой днс сервер и сопоставляете их уже у себя, смотри  предидущий коментарий.
3. поднять днс сервер на одном из компьютеров в сети и указать его как первичный днс.
но думаю вам хватит и  2 варианта.
Вопрос: Как найти координату точки, которую пересекает прямая?

Лучший ответ:
найти координату точки пересечения линии QD с биссектрисой BM
Если про QD известна только ее длина, то будет бесконечное количество решений.
Если известен еще угол BDQ (на рисунке он почему-то нарисован 90 градусов), то:
1. формула прямой BA - из координат B и A
2. формула прямой BM - из формулы прямой BA, повернутой на угол QBD
3. длина BQ - из синуса угла QBD и длины QD
4. координаты Q - из координат B, формулы прямой BM и длины BQ
Однако, если вы предпочитаете гуглить, а не открыть школьный учебник геометрии, у меня есть сомнения, что вы сможете это вычислить даже по моему разжеванному алгоритму.

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

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

Онлайн-хакатон это своего рода оксюморон. Чтобы он не превратился в "пшик", нужно чем-то привлечь и чем-то удержать в нём людей. Это непросто. Недостаточно просто сделать всё как обычно, но онлайн.
Вам придётся подыскать либо крутую цепляющую тему в паре с очень активным и большим комьюнити, либо громкий и резонансный повод, который поддержит азарт и вовлечение

Для более плодотворного поиска ответа на ваш вопрос хорошо бы знать больше подробностей. Какая тема, какой стек технологий, какая цель...

Я, вот, подумываю на счет концепции "бесконечного хакатона".
Это такая площадка для публикации идей, команд и проектов для обсуждения и совместной работы. Кто-то скажет: "Зачем?! Есть же гитхаб, гитлаб, кикстартер и прочие! Там можно оформить страничку проекта, обсуждать фичи, принимать фичреквесты, форкать, делать ревью..."
Суть "Бесконечного Хакатона" в том, что там первична именно коллаборация обсуждения и планирования, а не кодинга.
На площадке можно было бы завести проект, оформить его карточку (для эффективного поиска), настроить донаты для краудфандинга, привязать репозиторий (возможно сделанный по шаблону).
Для работы с кодом есть IDE и gitgub, для общения есть зумм, но нет единой точки кристаллизации, где можно искать проекты, единомышленников и идеи.

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

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

Лучший ответ:
Если Вы имеете ввиду, что в БД string-ом лежит "[( XXX )]", то это можно просто отрезать: yourVar [2:-2]
Если БД возвращает данные в виде list/tuple, то почему просто не взять [0]??

Худший ответ:
В моем случае проблема заключалась в строчке cursor.fetchall(), данный элемент выводит все элементы в столбце.
Вопрос: Как провести грамотный апгрейд сервера 1С?

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

Так что для начала - perfmon хотя бы, а потом более подробно по компонентам. Как итог - чего не хватает и кому.
Исходя из этого вполне может быть что получится вывод что надо уходить на рекомендуемые варианты масштабирования в виде разнесения всех звеньев на разные серверы, каждый из которых будет иметь разные требования к критичной для функции части.

Худший ответ:
Пользователи, поди, по rdp сидят, тогда памяти не хватает отчаянно. А если через клиенты, то пилите конфиг постгри, для таких маленьких баз, конфигурации должно хватать, по идее. Сомнительно, чтоб условные бухгалтеры сильно диски нагружали. Но от ssd хуже точно не будет, только не забывайте, что если они умирают, то внезапно. Backup'ы наше фсё.
Вопрос: Как превратить объекты со ссылками в JSON?

Лучший ответ:
Не понимаю, зачем задают такие вопросы.
Задача с learn.javascript
Там же можно посмотреть решение, если сам не можешь додуматься. Но автор почему-то хочет задать вопрос на тостере. Автор, зачем?

Худший ответ:
Дело в том, что в JSON не может быть циклических ссылок по определению. Там даже нет переменных.
Лучше всего вам перейти на немного другой формат данных. А именно, хранить не ссылки на объекты, а их ключи в виде строк. Такие строки-ссылки спокойно сериализуются.leader.soldier = "soldier";
soldier.leader = "leader";
Автоматически лучше не конвертировать, а именно взять такой формат за основу. Но если очень хочется, то как-то так:for (let key in obj) {
  if (window[key]) obj[key] = key; //любой ваш критерий
}
В будущем для проверки, правда, понадобится чуть усложнённый код:var test_leader = soldier.leader && window[soldier.leader];
//Конечно, вместо window у вас будет свой объект-обертка
Чтобы избавится от этого вам нужно будет всего лишь "чинить" объект после JSON.parse
Вопрос: Как предотвратить утечку логинов Wordpress/Woocommerce?

Лучший ответ:
Это не хакеры. Это боты. Они уже много десятилетий вордпресс и другие cms на автомате шерстят.
Крепкие пароли и закрытие доступа ip после 3х попыток - усмирят ботов.

p.s. не увлекайся ты этими Sucuri Security best secury - все это нагружает сервак.
Все что нужно знать - "да боты будут долбить всегда". Защита через серверный iptables и нет проблем. А вордпресс навешивать укрепляя безопасность - ну это как дверь стулом подпирать - работает, но не правильно. А врезать правильный замок - вот решение

Худший ответ:
в  .htaccess пишешь:

# защита wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

# Защищаем собственно .htaccess файл
<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>


<Files wp-login.php>
order deny,allow
deny from all
</Files>

<Files wp-admin.php>
order deny,allow
deny from all
</Files>

<Files wp-signup.php>
order deny,allow
deny from all
</Files>

<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

и меняешь путь на логин, хорош этот плагин -  wps hide login
секурные плагины/комбайны -  только замедляют сайт, если еще больше хочется защиты, пусти сайт через cloudflire и там создай правило - чтобы блокировало -  https://i.imgur.com/OElnkXv.png  у меня на посещаемых сайтах до пол тыс блокировок  в день
Вопрос: Как скопировать директорию со всеми подпапками сверяя контрольную сумму для каждого файла?

Лучший ответ:
Для решения вашей задачи рекомендую использовать Powershell.
Накидал вот такой скрипт, думаю он вам поможет.
$OldFolder = "C:\Temp"  #папка с исходными файлами
$NewFolder = "C:\test\test" # папка куда будут копироваться файлы
$files = Get-ChildItem $OldFolder -File -Recurse
foreach ($file in $files )
        {
          $folder = "$NewFolder$(Split-Path $file.DirectoryName -NoQualifier)"
          if (-not (Test-Path $folder)) {New-Item $folder -Force -ItemType Directory}
          Copy-Item $file.fullname $folder -Force
          $MD5 = Get-FileHash -Path $file.fullname -Algorithm MD5
          $MD5New = Get-FileHash -Path "$folder\$file" -Algorithm MD5
          if ($MD5.Hash -ne $MD5New.Hash)
             {Write-Host "Внимание!!! Хэш нового файла $folder\$file не соответствует исходному!!!" -ForegroundColor Red
              Read-host "Нажмите Enter чтобы продолжить"
             }
         }

Худший ответ:
Контрольные суммы для каждого файла уже вычислены и где-то хранятся? Нет? Вы хотите их рассчитывать на ходу? Это лишняя работа. Проще сравнивать источник с копией. Обратите внимание на ключ /V утилиты XCOPY.
Вопрос: Как обезопасить ПК от проблем с блоком питания?

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

Худший ответ:
Стабилизатор напряжения решит все проблемы с сетью
Вопрос: Актуальна ли разработка gui на java?

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

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

Лучший ответ:
За пределами РФ. И себя тоже лучше всего эвакуировать подальше от РФ.

Худший ответ:
Для мелких - есть самозанятые, там символические налоги.
Для крупных - есть льготы на ИТ, но это нужно много сотрудников.
Есть еще вариант на патенте (чем мельче город, тем ниже цена патента).
Вопрос: Можно ли в react использовать компонент вместо Router?

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

Худший ответ:
Я в своем проекте сделал надстройку над react-router, главным образом потому, что там коряво реализована интеграция с redux. У react-redux-router из коробки диспатч экшена происходит после того, как произошел собственно роутинг, т.е. налицо костыль; у меня же смена роута является следствием экшена, что мне и было необходимо достичь.
Поэтому ответ - да, можно, но без роутера все равно не обойтись. Если вас не устраивает нативный роутер, создайте свой собственный, где слушаете history, и там можете управлять флоу как вам удобно. А дальше уже в обработчиках ваших экшенов будете производить все проверки и в редьюсере менять стейт.
Например, код моего роутера:spoilerimport React from 'react';
import createHistory from 'history/createHashHistory';
import { Router } from 'react-router-dom';
import * as routerActions from './Actions/RouterActions';

class HashRouter extends React.Component {
    constructor(props, context) {
        super(props, context);

        this.history = createHistory();
        this.history.listen(this.onHistoryChange.bind(this));

        this.store = this.props.store || this.context.store;
    }

    /**
     * Just initialize start route.
     */
    componentDidMount() {
        const { location } = this.history;
        
        const User = new UserEntity;
        const accessLevel = User.getRole();

        const routes = RoutesRepository.getRoutesBy(accessLevel);
        const match = RoutesRepository.getMatch(location, routes);

        this.store.dispatch(
            routerActions.routeChange(match)
        )
    }

    render() {
        return <Router history={this.history}>
            {this.props.children}
        </Router>;
    }

    /**
     * When user change browser history, 
     * dispatch actions for change routes.
     * 
     * @param  location Object
     * @param  action String
     * @return void
     */
    onHistoryChange(location, action) {
        if(!this.store) {
            return null;
        }

        const User = new UserEntity;
        const accessLevel = User.getRole();

        const routes = RoutesRepository.getRoutesBy(accessLevel);
        const match = RoutesRepository.getMatch(location, routes);

        this.store.dispatch(routerActions.routeChange(match));
    }
}
Вопрос: Как нарисовать такую звезду openGL?

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

Псевдокод:
void display()
{
   glClear( GL_COLOR_BUFFER_BIT );
   glBegin( GL_LINE_LOOP );

   for( size_t index = 0; index < vertices.size(); ++index )
   {
      const Vertex& vertex = vertices[ ( index * 3 ) % vertices.size() ];
      glVertex2i( vertex.x, vertex.y );
   }

   glEnd();
   glFlush(); 
}

Худший ответ:
Выложу полный код, может кому-то когда-то понадобится (заранее сочувствую)
spoiler
#include "OpenGL\glut.h"
#include "OpenGL\gl.h"
#include "math.h"

#define PI 3.1415926535897931159979635

//Определение координаты x точки по формуле x = xc+R*cos(f+(2*pi*i/n)),
//где xc - координата х центра, а f - угловая координата первой вершины
float __x(float start_angle, int radius, int i, int n, int offset) {
	return radius * cos(start_angle + (2 * PI * i / n)) + offset;
}
//Определение координаты y точки по формуле y = xc+R*sin(f+(2*pi*i/n)),
//где xc - координата х центра, а f - угловая координата первой вершины
float __y(float start_angle, int radius, int i, int n, int offset) {
	return radius * sin(start_angle + (2 * PI * i / n)) + offset;
}

//Отрисовка звезды, в ф-цию можно передать радиус, кол-во вершин, смещение по оси х и у,
//а так же угловую координату начальной точки
void drawStar(int radius, int vertexes, int offset_x, int offset_y, float start_angle) {
	glClear(GL_COLOR_BUFFER_BIT);
	glBegin(GL_LINE_LOOP);

	float* o_x = new float[vertexes];
	float* o_y = new float[vertexes];

	for (int i = 0; i < vertexes; i++) {
		o_x[i] = __x(start_angle, radius, i, vertexes, offset_x);
		o_y[i] = __y(start_angle, radius, i, vertexes, offset_y);
	}
	for (int i = 0; i < vertexes; i++) {
		int ind = (i * 3) % vertexes;   //Точки выводим со смещением на 3
		glVertex2f(o_x[ind], o_y[ind]); //и по модулю 10ти
	}

	glEnd();
	glFlush();
}

void display(){
	//Такой вызов отрисовывает звезду аналогичную звезде из условия,
	//угловая координата выбрана "методом тыка"
	drawStar(200, 10, 320, 240, 6.6);
	//так же, кол-во вершин лучше ставить кратное 10ти, иначе фигура,
	//скорее всего, не отрисуется
}

int main(int argc, char** argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(640, 480);
	glutInitWindowPosition(100, 150);

	glutCreateWindow("Star");

	glClearColor(1., 1., 1., 0.);
	glColor3ub(0, 0, 0); 		
	glLineWidth(4.);
	glPointSize(4.); 
	glMatrixMode(GL_PROJECTION); 
	glLoadIdentity(); 	
	gluOrtho2D(0., 640., 0., 480.);

	glutDisplayFunc(display); 
	glutMainLoop();
	return 0;
}
Вопрос: Как избавиться от таймаутов?

Лучший ответ:
Следующая строчка может быть выполнена, но если в ней не будет элемента, то будет эксепшен.
Асинхронные подгрузки на странице, непредсказуемые изменения в DOM?
Думаю, для этого вам нужно использовать методы типа wait until element is visible, делать проверки is present, is displayed etc. 
На практике было такое, с очень сложным и неконсистентным поведением. Использовать вплоть до try/except, вылавливая эксепшены и подстраивая поведение.

Худший ответ:
Только после. Но не всегда, потому что selenium полон магии. Используйте явные ожидания, это лучший путь.
Вопрос: Факторы блокировки РКН крипто-проекта?

Лучший ответ:
Возник вопрос - как избежать блокировок со стороны Роскомнадзора.1. Не нарушать закона и незамедлительно исполнять их требования. Быть хорошим и послушным для них. 
2. Следить за тем, чтобы всегда работала обратная связь с администрацией на сайте.
3. Не вводить никого в заблуждение и явно освещать логику(механику) работы вашего сайта для пользователей.
4. Не привлекать внимания.

Худший ответ:
Какие первостепенные факторы на это влияют?Факторов немного-

Решение суда
Постановление судебного пристава.
Решению таких органов как  МВД,  Роспотребнадзор,  Роскомнадзор, ФНС, Росалкогольрегулирование, Росмолодежь.


Могут ли это просто так заблокировать мой сайт, потому что им не нравятся криптовалюты в целом?Нет.
Вопрос: Что выбрать для хостинга сайтов и веб-приложений с бекендом на AWS?

Лучший ответ:
Возьми digital ocean, hetzner cloud и прочие vps, aws для простых сайтов просто не нужен.

Худший ответ:
Я бы переформулировал Иван Шумов: Если у тебя нет опыта настройки именно AWS сервисов - лучше за AWS не браться. Если ты конечно не готов потратить время на изучение.
Лучше всего взять хетцнер или другую VPS где для вас всю инфраструктуру настроит хостер
AWS этого делать за вас просто не будет и любой косяк в настройке обойдется вам в дополнительные траты 
AWS берет деньги за каждый чих. Часта ситуация когда вследствие неверной настройки ваши деньги вылетают в трубу. Поэтому бытует мнение что AWS - дорого.
Вопрос: Чем почистить скрипты от вируса?

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

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

Лучший ответ:
Как вариант писать в проект уникальный идентификатор пользователя и идентификатор экземпляра программы. А так браузер без усилий получает 20-30 универсальных характеристик вас и вашего компьютера, нативный код намного больше.

Худший ответ:
несколько примеров:
Реестр
Предыдущие файлы
Имя от кого запущен процесс (Имя пользователя)
Имя ПК
IP адрес
Вопрос: Почему dns дает ответы им?

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

Худший ответ:
Маловато будет, там еще 953 порт есть, все зависит от конкретных настроек Вашего теплого лампового DNS
Вопрос: Как показать адрес в памяти?

Лучший ответ:
Можете использовать любую другую функцию вывода в консоль(conio, api системы). Но это тоже самое будет.

Худший ответ:
С помощью отладчика (и профайлера) можно увидеть ещё много чего интересного.
Вопрос: Как создать Playable ads?

Лучший ответ:
Project Tiny пока далек от того, чтобы быть удобным инструментов. для разработки playable ads.
А Luna рекомендовать по меньшей мере странно, даже по меркам крупных паблишеров их ценник завышен и функционал еще не готов.

Мы разрабатываем плееблы на JavaScript движках, для 2D используем PixiJS и Phaser, а для 3D - three.js.
Но поверьте, если вы рассматриваете playable ads, как легкий вход в индустрию - это далеко не так. Никаких толковых гайдов вы не найдете, тут мало кто делится информацией. А то, что вы можете с легкостью сделать на Unity, вам придется с нуля придумывать на JS.

Худший ответ:
Во первых Project Tiny - www.unity3dtechguru.com/2018/12/unity-tiny-tiny-mo... и дальше в гугл.
Во вторых можно Luna попробовать - https://lunalabs.io
Вопрос: Как сделать фильтр на Checkbox'ах?

Лучший ответ:
К React, надо сказать, ваш вопрос имеет самое посредственное отношение.

Реализовать фильтрацию массива объектов по нескольким ключам можно примерно вот так:

function filter(array = [], filters = {}) {
    const keys = Object.keys(filters).filter(key => filters.hasOwnProperty(key));
    return array.filter(elem => {
        const commonKeys = keys.filter(key => elem.hasOwnProperty(key));
        return commonKeys.reduce((flag, key) => (flag && filters[key].includes(elem[key])), true);
    });
}
В filters кладёте допустимые значения по соответствующим ключам. Например:

const products = [
    {country: 'Russia', img: 'link.img', genre: 'Comedy', name: 'Вишнёвый сад'},
    {country: 'France', img: 'link.img', genre: 'Novel', name: 'Oberman'},
    {country: 'Italy', img: 'link.img', genre: 'Adventures', name: 'Il cimitero di Praga'},
    {country: 'USA', img: 'link.img', genre: 'Comedy', name: 'The Ransom of Red Chief'}
];

const filters = {
    country: ['Russia', 'Italy', 'France'],
    genre: ['Comedy', 'Novel']
};

const filteredProducts = filter(products, filters);

Худший ответ:
Используй .filter

Например
products.filter(product => product.country === "Russia" && product.country === "Italy")

P.S код от балды но суть такая
Вопрос: Ошибка Inappropriate blocking method call при http запросе в Kotlin. В чем проблема?

Лучший ответ:
Когда ты так делаешь, весь смысл корутин теряется. Фишка в том, что когда корутина саспендится, поток не блокируется. А ты внутри корутины используешь блокирующий метод. Возьми другой http клиент, ktor, он, вроде как, умеет нормально это делать.

Худший ответ:
Вот тут есть несколько решений - ссылка
Вопрос: Какие есть открытые Vue проекты?

Лучший ответ:
Есть неплохой репозиторий который содержит приложение из "реального мира разработки", одна спека - множество реализаций, Vue там тоже есть:
https://github.com/gothinkster/realworld

Худший ответ:
Вот здесь можно посмотреть сборник проектов, использующих vue: https://madewithvuejs.com
Правда придётся поискать среди них опенсорсные, не у всех код открыт.
Вопрос: Как сделать генерацию случайных номеров?

Лучший ответ:
Создайте new map или лучше new set объект, добавляйте туда сгенерированный значения пока десять не наберётся. Перед добавлением проверяйте нет ли такого внутри, иначе заново генерировать. Это буквально цикл while set.size < 10.
Отдельная html это отдельная страница на сервере, сгенерировать в реальном времени из скрипта, несколько я знаю, не выйдет. Можете записать сгенерированные значения в куки, сессию или локалсторэдж, думаю куки подходящее и самое стабильное. После перехода на эту заранее подготовленную страницу, считываете свои знания и выводите их пользователю или если их нет, пишете что тут используются куки, пусть включают.
Насчёт самой генерации, просто рандомные элементы массива с символами или по кодам символов, в интернете много вариантов есть.

Худший ответ:
Или что-то вы не доопределили, или вопрос тривиальный ( если на считать загадочной фразы "10 случайных номеров (длинной от 9 до 9 символов)").

Генерируем число в диапазоне от 0 до 999999999
Проверяем его неповторность среди ранее сгененированных (которых не больше 10). Если он уникальный - заносим в список. 

import random
num_list=[]
while len(num_list)<10:
    num=str(random.randint(0,999999999)).zfill(9)
    if not num in num_list:
        num_list.append(num)

Результат -  список из десяти неповторяющихся строк (номеров???), например:
print (num_list)
['936581612', '321889578', '969427733', '735243872', '700272151', '018002065', '721644810', '501566972', '283087031', '614022666']

Далее -  помещайте этот список на ту страницу, куда вас должно "перебрасывать".

Ежели все таки длина ваших "номеров" должна быть   1 до 9 символов, тогда zfill() убираем из кода.