Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Django — Как оптимизировать группировку, чтобы было быстрее?

Лучший ответ:
Попробуйте добавить индекс на пару полей (plu, sku). При выборке сортируйте по ним на упровне БД.
Используйте itertools.groupby для группировки сперва по plu, а потом и по sku.
Обходите группировки двумя циклами (один вложен в другой).
Внутри внутреннего цикла уже можно использовать литерал генератора списка, чтобы получить список pack_type_id.
Это позволит сразу собирать последовательно элементы словарей и не возвращаться к уже собранным.
Если вашу структуру нужно поместить в какой-то внешний json-файл или отдавать в тело http-запроса в json-формате, то можно попробовать писать json с помощью какой-нибудь потоковой библиотеки вроде этой: https://pypi.org/project/jsonstreams/
Это позволит не ждать по отдельности извлечение данных из БД, сборку структуры а пвмяти, а затем сериализацию ее в файл или в поток сокета. Всё будет делаться в рамках одного конвейера, что может оказаться более эффективным по времени.

Однако вам и ваш способ стоило бы проверить на предмет "бутылочных горлышек" и понять что именно занимает у вас основное время работы вашего алгоритма.
Возможно радикально ускорить процедуру и не удастся ввиду очень медленной БД или гиганского размера получающейся структуры.

Расскажите подробнее куда вам нужна такая структура, какой у нее получается объём, куда вы её потом пихаете, как измеряете скорость, почему вам так критична эта скорость?
Может быть проблема решается и иначе? К примеру, может оказаться, что вам не требуется синхронно возвращать всю структуру, или можно запрос и ответ развести в отдельные запросы, сделав интерфейс более отзывчивым.

В общем опишите вашу задачу подробнее. Ну и есл что наисал не понятно, спрашивайте. Буду разьяснять детальнее.

Худший ответ:
Можете группировать на стороне БД 

Примерно так 
from app import models
from django.contrib.postgres.aggregates import ArrayAgg

from collections import defaultdict

result = defaultdict(dict)

query = models.Product.objects.values(
    'sku',
    'plu',
).annotate(
    pack_types=ArrayAgg('pack_type_id')
)

for row in query:
    result[row['sku']][row['plu']] = row['pack_types']

INSERT INTO public.product (sku,plu,pack_type_id) VALUES
	 (1,'10',2),
	 (1,'10',3),
	 (1,'11',4),
	 (2,'10',5);

Результат:

{
  "1": {
    "10": [
      2,
      3
    ],
    "11": [
      4
    ]
  },
  "2": {
    "10": [
      5
    ]
  }
}
Вопрос: Как сохранить введённые input с первой страницы, чтобы они выводились на другой странице?

Лучший ответ:
Читайте тут

Худший ответ:
Добавлю ещё про GET параметры в кучу.
Вопрос: Где можно скачать точные IP диапазоны?

Лучший ответ:
Вот самый точный алгоритм:
1) берем список ASN по стране отсюда https://bgp.he.net/country/RU
2) для каждой ASN делаем whois -h whois.ripe.net -- -T route ASN -i origin

Худший ответ:
По странам и групным городам я раньше находил базы здесь https://www.maxmind.com
Потом бесплатный доступ закрыли и сейчас эта база продается или предоставляется как услуга
за деньги.

В пиратской бухте и в eMule я находил старые снапшоты этой-же базы датирующейся где-то 2010
годом. Их несколько ссылок. Но те которые бинарные - могут не открываться современными файловыми
API от maxmind.
Вопрос: Mozilla не видит контуров svg(stroke), как пофиксить?

Лучший ответ:
В названии аргументов фильтра ошибка.
<filter id="filter0_b_601_49" x="93.425" y="129.676" width="237" height="445.648" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
      <feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood>
-      <feGaussianBlur in="BackgroundImage" stdDeviation="25"></feGaussianBlur>
+      <feGaussianBlur in="BackgroundImageFix" stdDeviation="25"></feGaussianBlur>
      <feComposite in2="SourceAlpha" operator="in" result="effect1_backgroundBlur_601:49"></feComposite>
      <feBlend mode="normal" in="SourceGraphic" in2="effect1_backgroundBlur_601:49" result="shape"></feBlend>
    </filter>
Хром видимо игнорирует кривой фильтр и отрисовывает без него, а лиса просто отказывается рисовать элемент с таким фильтром.
Зачем вообще там нужен этот фильтр для меня осталось загадкой

Худший ответ:
У вас на группах висят некие фильтры (<g filter="url(#filter0_b_601:49)" id="fg-group">) которые и приводят к пропаданию обводок. 

Зачем он там применяется - не очень понятно, визуально отличий "с фильтром" и "без фильтра" я не увидел, но в частности там применяется feGaussianBlur. Убирание этого компонента фильтра (или всего фильтра) исправляет проблему.
Вопрос: Какие есть препроцессоры javascript?

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

другое дело - сам жс за это это время подрос.

Худший ответ:
Вот! Нашёл ссылку на целый список препроцессоров javascript. Тут упоминается и uber-, Coffee- и toffeescript, и даны ссылки. https://github.com/jashkenas/coffeescript/wiki/Lis... Выглядит крайне необычно.
Вопрос: Проблема в изучении c# ,зачем и как использовать возможности языка?

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

Худший ответ:
Лет 25-10 назад если я хотел изучить новый язык программирования, я писал с нуля и без библиотек 3D-трассировщик лучей. Здесь можно было отточить все технологии
Вопрос: Что делать в такой ситуации, когда заказчик не оплачивает сделанный заказ?

Лучший ответ:
херней страдаешь

если не первый раз и предыдущие ОПЛАЧЕНЫ - радоваться надо

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

так что оставляй как есть и просто ЖДИ
фишка в том что нанять делавшего на доработки дешевле нового

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

Лучший ответ:
Ну у нас сервера зовутся:

CR-MOW-DC (центр реабилитации - москва - домен контроллер)
MS-SYK-HV (Медцентр Суперский - сыктывкар - гипервизор)

Ну имена вымышленные, но суть передал.

И я по названию понимаю, к какой организации относится сервер, в каком он городе, и чем занимается.

Худший ответ:
Обычно соглашение по именам (формализованное и утвержденное) использует в качестве кодирования размещение + структурные подразделения в организации + физический\виртуальный + роли серверов + двухсимвольную нумерацию.
Так как непонятно - что у вас за организация - конкретное посоветовать сложно.
Вот вам пример для транснациональной компании:
2 символа номера зоны\части света + 2 символа iso кода страны + 2 символа кода города + V\P (виртуальный физический) + 1 символ роли  + двухзначный порядковый номер.
Получим Z1USNYVD01 - виртуальный контроллер домена 01, размещенный в Зоне Америки, стране США, городе Нью-Йорк.
Если есть деление по Tier - добавляются еще 1,2,3 тиры.

Вот вам пример для организации в рамках страны - город, офис, tier, тип, роль, порядковый номер.
Вопрос: Где брать все эти прикольные фоны и фотографии для сайта?

Лучший ответ:
1) Если вы разработчик: Из макета-> У дизайнера
2) Если вы сам себе дизайнер: 
Взять на бесплатных стоках фоток / сделать самому изображения / украсть на любом сайте
Google: photo stock free

Худший ответ:
Их много:
https://www.freepik.com/
https://www.reshot.com/
https://www.freeimages.com/
https://www.stockvault.net/
https://picography.co/
https://picjumbo.com/
https://unsplash.com/
https://pikwizard.com/
Вопрос: Как обеспечить доступ мобильному телефону к Exchange в локальной сети, не используя vpn?

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

Худший ответ:
Используйте IMAPS, но порты все равно придется пробросить.
Вопрос: Почему после сборки webpack'ом появляется битая картинка?

Лучший ответ:
нашел решение и отказался от file-loader

было:
{
        test: /\.(?:|gif|png|jpg|svg)$/,
        use: [{
          loader: 'file-loader',
          options: {
            name: `./img/${filename('[ext]')}`
          }
        }],
      },

стало:
{
        test: /\.(?:|gif|png|jpg|svg)$/,
        type: 'asset/resource',
        generator: {
          filename: () => {
            return isDev ? 'img/[name][ext]' : 'img/[name].[contenthash][ext]';
          }
        }
      },

Худший ответ:
const isDev = process.env.NODE_ENV === 'development';
const isProd = !isDev;
const filename = (ext) => isDev ? `[name].${ext}` : `[name].[contenthash].${ext}`;
Твой секрет в этих трёх строчках, оно переименовывает твоё изображение, можешь попробовать сделать вот так:
const filename = (ext) => isDev ? `[name].${ext}` : `[name].${ext}`;
Вопрос: Запуск игр с торрента на linux через wine, а вдруг вирус?

Лучший ответ:
Системе нет, т.к. wine работает как приложение, и не имеет доступа к ядру системы и файловой структуре (за исключением подпапок wine), и от рута или суперпользователя он, насколько я помню, не работает. Другой вопрос что лежит в папках Wine, если там что-то важное, тогда да.

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

Лучший ответ:
WinForm , а язык delphi, c# как пример

Худший ответ:
Это либо winforms + custom controls
либо MFC 

в общем случае попробуйте dotPeek если он декомпилирует то это C# VB#
Ну и какие контролы используются увидите.
Вопрос: Почему переопределение метода без virtual -- это не переопределение?

Лучший ответ:
Переопределить можно в любом случае, хоть с virtual, хоть без.
Но тут важно что вам надо от переопределенного метода. Если вам нужно использовать полиморфизм, то нужно ставить virttual, если нет - то нет.

Например дополним ваш пример функцией:
void func(struct A &a)
{
  a.fn();
}

int main() {
  B b;
  b.fn();
  func(b);
}
И передадим туда ссылку на b. Будет напечатана А, т.к. методы fn не виртуальные.
Если были бы виртуальные, то напечатается B - полиморфизм в действии.

Худший ответ:
Если в официальной доке с++ где-то написано "переопределение возможно тогда и только тогда, когда есть virtual у метода базового класса"
Написано, ровно это: eelis.net/c++draft/class.virtual#2

то почему именно так? 
Потому что это определение термина function override в C++. Для других вариантов взаимодействия имён функций есть другие термины.
Вопрос: Какую информацию можно найти из .text вируса?

Лучший ответ:
Ну, поздравляю.
Ты установил себе троян 44 Caliber Stealer :-)))

Худший ответ:
Оставь ссылку на .exe. Так будет проще для изучения. 
Ваш .txt файл похож на зашифрованный бинарный файл. Из этого файла без дизассемблера будут понятны только строки, которые вы нашли.
Вопрос: Как корректно управлять VLAN'ами на Mikrotik?

Лучший ответ:
Такой вот он - Мироктик) Как швейцарский ноЖ!
Если посмотреть на схему микросхем, то можно заметить что между процессором и портами есть отдельный чип который берет на себя роль свича. Так вот, если настраивать VLAN в разделе switch, то ты конфигуришь эту микросхему свича. Если настраивать в bridge, то работа с VLAN будет происходить в процессоре со всеми вытекающими.

Если необходимо гонять трафик в VLAN между портами микротика, то правильнее это делать в switch, тогда транзитный трафик не будет загружать центральный процессор.

Если микротик должен маршрутизировать трафик в этом VLAN, то твой путь bridge.

Худший ответ:
У меня есть абсолютное понимание того, как работают VLAN на коммутаторах Cisco, D-Link, и т.д.
Ключевое слово здесь - на коммутаторах. На маршрутизаторах пусть даже циски или линуксе есть также различное количество вариантов создать влан. И также через бридж, и на физический интерфейс. Посмотрите, как добавлять вланы в Cisco 6500, тогда поймете логику. Если провести аналогию, то бридж - это L3-интерфейс на влане. А физ порт - L3-интерфейс на физическом интерфейсе, добавление влана к которому дает возможность разграничивать трафик на транке.
Вопрос: Почему человеку достаточно несколько примеров, а нейросети тысячи?

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

Если ты создашь искусственную нейросеть аналогичной сложности и натренируешь её - она также сможет достаточно быстро "обучаться" для новой задачи.

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

Лучший ответ:
function cityToCountry(city) {
    const countries = ['Казахстан', 'Россия', 'Китай', 'США'];

    let cities = [[],[],[],[]]
    array[0][0] = 'Астана';
    array[0][1] = 'Караганда';
    array[0][2] = 'Актобе';
    array[0][3] = 'Алмата';
    array[1][0] = 'Москва';
    array[1][1] = 'Новосибирск';
    array[1][2] = 'Сочи';
    array[1][3] = 'Омск';
    array[2][0] = 'Пекин';
    array[2][1] = 'Шанхай';
    array[2][2] = 'Сиань';
    array[2][3] = 'Харбин';
    array[3][0] = 'Нью-йорк';
    array[3][1] = 'Чикаго';
    array[3][2] = 'Вашингтон';
    array[3][3] = 'Даллас';

    for (let i in cities) {
        if (!cities.hasOwnProperty(i)) {
            continue;
        }

        for (let j in cities[i]) {
            if (!cities[i].hasOwnProperty(j)) {
                continue;
            }

            if (cities[i][j] === city && countries[i]) {
                return countries[i];
            }
        }
    }

    return 'Город не найден';
}

let city = prompt('Введите название города:', '');

alert(cityToCountry(city));

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

Самый короткий путь для решения такой задачи:

const cityToCountry = {
    'Астана': 'Казахстан',
    'Караганда': 'Казахстан',
    'Актобе': 'Казахстан',
    'Алмата': 'Казахстан',
    'Москва': 'Россия',
    'Новосибирск': 'Россия',
    'Сочи': 'Россия',
    'Омск': 'Россия',
    'Пекин': 'Китай',
    'Шанхай': 'Китай',
    'Сиань': 'Китай',
    'Харбин': 'Китай',
    'Нью-йорк': 'США',
    'Чикаго': 'США',
    'Вашингтон': 'США',
    'Даллас': 'США',
};

const city = prompt('Введите название города:', '');
if (!cityToCountry.hasOwnProperty(city)) {
    alert('Такого города не найдено');
} else {
    alert(`Для города «${city}» найдена страна «${cityToCountry[city]}»`);
}

Этот код работает быстрее, и подход, который в нём используется, уменьшает количество точек отказа. Если вы всегда будете стремиться идти к цели прямыми путями, а не нарезать круги, вы лучше состоитесь, как программист. Но это дело ваше.

Худший ответ:
const countries = [
  {id: 1, name: 'Екатеринбург'},
  {id: 2, name: 'Москва'}
];

let answer = prompt('Введите название города'); 
let city = '';

for (let i = 0; i < countries.length; i++) {
  if (countries[i].name === answer) {
    city = answer;
  } 
}

city === answer ? alert(`Город: ${city}`) : alert('Город не найден');
Вопрос: Динамическое получение скорости работы процессора?

Лучший ответ:
Вадим Ушаков, Понимаете, ваш вопрос в определенном смысле абсурден, потому что вы хотите дословно "измерить неизвестно что неизвестно как".

Можно пытаться конкретизировать, например, говоря о том, что измерению подлежит частота ядра. 

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

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

Худший ответ:
Что конкретно вы подразумеваете под "скорость работы процессора"?

Современный многоядерный многопоточный процессор с ядрами, которые могут в динамическую частоту, в многозадачной операционной системе, с различным набором хардварных оптимизирующих алгоритмов нельзя измерить на раз-два.
А учитывая, что современный серверный софт работает в своем большинстве в виртуальной среде, а то и в контейнере, где ресурсы выделяются опять таки виртуализировано, и могут из 20ядерного процессора нарезать вам 100 виртуальных ядер, про которые ваша виртуальная машина будет знать не то, что под капотом, а то что ей скажут.
И вы хотите кроссплатформенное решение?

В 2021 веке, измеряя перфоманс задавайте максимально подробный вопрос что именно вы хотите мерять и зачем. Потому что просто померять ВСЕ и максимально точно - уже невозможно.

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

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

Но ты можешь практически любую сишную библиотеку, скомпилированную в виде динамической библиотеки 
(.dll на Windows) использовать в практически любом языке средствами ffi.

Худший ответ:
Можно. Гуглите, что такое ABI.
Вопрос: Как найти слово в строке по критериям?

Лучший ответ:
Используйте регулярные выражения:
import re
s = "новая версия вчера - version1"
r = re.search(r'[a-zA-Z]{7}\d', s)
print(r.group())
https://regex101.com/r/tQELMd/1

Худший ответ:
Регулярные выражения
Вопрос: Для чего используется символ «\» в PHP в начале написания при вызове функций?

Лучший ответ:
Ну как же "в документации нет", когда этому целый раздел посвящён? https://www.php.net/manual/en/language.namespaces.php

Худший ответ:
Это значит что объект из глобального namespace: https://www.php.net/manual/ru/language.namespaces....
Вопрос: Как работает атрибут scrset?

Лучший ответ:
Идешь ты в магазин, в кармане 125р! Подходишь к витрине и видишь конфеты, одни за 100, другие 200 и 300))) Суешь продавцу 125р, и говоришь, дайте мне конфет за 200, у меня же больше 100р ))) 

Думаю понятно объяснил)))

Худший ответ:
с чего ему подтягивать плотность >= 2 когда у монитора она < 2?
л - логика.

вы б почитали про hidpi для начала.
Вопрос: Всё, что нужно знать о разработке собственной игры и где найти команду?

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

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

Самое мудрое - не писать снуля, а обратиться в студию, которая делает такого рода вещи на заказ. Ну а на сколько там договоритесь - это уже надо конкретно общаться.

Худший ответ:
Юриста не забудьте. По авторским правам.
Вопрос: Как называется род программ для сайта, которые типа такого чата в углу (типа «живосайт» и пр) — типа «чем могу помочь»?

Лучший ответ:
Так и называется. "Чат для сайта".
У Jivosite есть вроде апи, чтобы агент поддержки мог из телеги писать.

Худший ответ:
Talk-me позволяет подключить джаббер. 
А через джаббер, как известно, вообще все что угодно можно подключить ;)
Вопрос: Error [ERR_REQUIRE_ESM]: Must use import to load ES Module?

Лучший ответ:
у меня тоже была такая ошибка, решил переустановкой npm i gulp-imagemin@7.1.0

Худший ответ:
ну так нашли ответ на вопрос?
Вопрос: В какой форме просить рекомендации при увольнении?

Лучший ответ:
Рекомендация - это обычная бумага на бланке организации с печатью, в которой написано, что Иван Петрович Самовар работал в компании "Конфетки-бараночки" в должности самовара и за время работы показал всем, что он лучший самовар в городе :)

В произвольной форме в общем.

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

Лучший ответ:
Если меняете маску на 255.255.254.0, то ни о каком WAN на Zyxel 1 не должно идти речи.
Zyxel 1 остаётся в качестве свитча (порт WAN свободный).
DHCP собрать в одном месте
или взять управляемые свитчи, умеющие DHCP snooping, тогда можно оставить два независимых DHCP на двух ZyXEL'ях.

Худший ответ:
Что мешает перевести zyxel1 в режим точки доступа? тогда все LAN порты будут работать как коммутатор и все устройства будут в сети 192.168.0.0/24
Ничего сложно - пара кликов мыши в web-интерфейсе. Это делается быстрей чем я это написал (ВЭБ- управление- Основные настройки - Режим работы интернет-центра
Если хотите оставить в таком виде - тоже сложности не вижу
устройства в сети 192.168.1.0/24 и так могут получать доступ к устройствам в сети 192.168.0.0/24 по IP адресу
настраиваем:
На Zyxel0 прописываем статический маршрут 
Тип - маршрут до сети
адрес сети назначения 192.168.1.0
Маска подсети 255.255.255.0
адрес шлюза 192.168.0.100 (адрес роутера1)
Интерфейс - Домашняя сеть
На Zyxel1
вкладка Межсетевой экран
На "интернет" интерфейсе и "домашняя сеть"
Добавить правила 
Действие - разрешить
IP-адрес источника - любой
IP-адрес назначения любой
Номер порта источника - любой
Протокол - TCP UDP ICMP для каждого создать правило

Видеть в "сетевом окружении" не сможешь, но доступ по IP-адресу будет как у тех так и у других
Во всяком случае "шары" и принтеры я похожим способом подключал