• Как сделать такое на js?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Считать сумму всех значений, увеличивать радиус пропорционально:
    Ответ написан
    Комментировать
  • Как посмотреть, есть ли определенный человек в телеграм канале?

    By-design нельзя получить список пользователей, которые подписаны на канал.
    Если нужно проверить, состоит ли пользователь в канале - придётся делать это как-то косвенно.
    На уровне "нажми на такую-то кнопку на таком-то посте"
    Ответ написан
  • Где и как предложить идею нового свойства CSS?

    @Flying
    Спецификаций CSS занимается рабочая группа в составе W3C. Там же есть и информация о том, как принять участие / предложить свою идею.

    К примеру вы можете создать issue в репозитории рабочей группы.

    Однако вам стоит понимать, что работа над спецификацией уровня CSS Grid - это многолетний труд сотен людей для того, чтобы довести её до реального использования. Если вы предполагаете что за всё это время никто из них не додумался до этой идеи - то вам стоит подумать ещё раз.

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

    За примерами далеко ходить не нужно: parent selector - мечта уже нескольких поколений разработчиков и тема постоянных вопросов. Однако его нет в спецификации (хотя он был в первых драфтах CSS 3 насколько я помню) и скорее всего не будет. Причину, если интересно, попробуйте поискать сами.

    Или, к примеру, такое очевидное, казалось бы, опущение как отсутствие аналога :hover для "stuck" состояния элемента с position: sticky. Ведь его явно не хватает почти любому кто использовал этот стиль. Однако его не будет, о причинах (логичных, но далеко неочевидных) можно почитать в соответствующем issue.

    Конечно, если вы внимательно и детально изучите все спецификации и проработаете и напишете своё предложение - оно, вероятно, будет рассмотрено. Но более вероятна ситуация что где-то здесь вы найдёте аналогичную или близкую идею.
    Ответ написан
  • В чeм разница и как правильно сделать?

    @spaceatmoon
    Для одиночного вызова разницы никакой. Однако по логике, вызов конструктора намного сильнее тормозит программу, нежели просто вызвать функцию Next.

    DateTime timeStart = DateTime.Now;
    for (int i = 0; i < 10000; i++)
    {
        int random = new Random().Next(1, 10);
    }
    DateTime timeStop = DateTime.Now;
    Console.WriteLine("new Random().Next(1, 10) - {0}", timeStop - timeStart);
    //
    timeStart = DateTime.Now;
    Random random1 = new Random();
    for (int i = 0; i < 10000; i++)
    {
        int dig = random1.Next(1, 10);
    }
    timeStop = DateTime.Now;
    Console.WriteLine("random.Next(1, 10) - {0}", timeStop - timeStart);

    new Random().Next(1, 10) - 00:00:00.0209561
    random.Next(1, 10) - 00:00:00.0001170
    Ответ написан
    2 комментария
  • Можно ли в Dictionary cделать так?

    Можно через новый тип
    class Value {
        public int Id {get; set;}
        public string File {get;set;}
    }
    var dictionary = new Dictionary<string, Value> {
        ["asd"] = new Value { Id = 1, File = "File.png" }
    }

    Можно через кортежи (хз доступны ли они в юнити)
    var dictionary = new Dictionary<string, (int Id, string File)> {
        ["asd"] = (1, "File.png")
    }
    Ответ написан
    Комментировать
  • Как понять что сайт не упадет и не будет виснуть при определенном трафике?

    vabka
    @vabka Куратор тега Веб-разработка
    Зависит ли это от стека технологий?

    зависит буквально от всего.
    Может быть есть какие нибудь специальные тесты для проверки этого?

    Да, для этого существует нагрузочное тестирование.
    Провести его можно при помощи яндекс танка/jmeter/gatling
    Ответ написан
    2 комментария
  • Как правильно скрестить 3 массива в один?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const merge = (key, ...arrs) =>
      Object.values(arrs.flat().reduce((acc, n) => (
        Object.assign(acc[n[key]] ??= {}, n),
        acc
      ), {}));
    
    
    const result = merge('id', arr1, arr2, arr3);
    Ответ написан
    Комментировать
  • С чего начать новичку в изучении c# для gamedev?

    Casper-SC
    @Casper-SC
    Программист (.NET)
    Для C# (пишется с большой буквы) установи cреду разработки Visual Studio Community (ссылка).

    В первую очередь тебе нужно выучить C#. Чтобы у тебя дошло до автоматизма написание кода. Первое время ты будешь сильно подвисать на каждой мелочи. Простейшие ошибки будут ставить в тупик. Наверняка, сюда задавать вопросы, что нормально. Это дело не быстрое, невозможно с полного нуля за неделю всё выучить, уйдёт от полугода. И нужно на это будет тратить много времени, желательно даже каждый день. Без знания языка и умения писать в стиле ООП простые приложения я уверен, что в Unity делать нечего.

    Рекомендую создать Решение (Solution) на C# в Visual Studio и в него добавлять проекты по темам из книги.
    Пример проектов в решении:
    Изучение C# (.sln)
    1. Переменные, циклы (.csproj)
    2. Классы (.csproj)
    3. Наследование (.csproj)
    4. Делегаты и события (.csproj)
    Только проекты называй по-английски.
    Прочитал главу, сделал примеры из книги, написал везде комментарии с пояснениями. Делай так, чтобы потом можно было вернуться к этим проектам и быстро вспомнить, что забылось. После того как ты будешь много времени тратить на обучение и чтение книги, у тебя всё лучше и лучше будут запоминаться детали языка. Именно за счёт траты большого кол-ва времени и обучения на длительном промежутке времени всё и выучится само. Я не зубрил ничего почти.

    Очень хорошее объяснение по C# здесь. Сразу скажу, уроки очень старые, но очень хорошие (там про платформу .NET Framework, но ничего нет про .NET Core, а теперь уже просто .NET (начиная с 5) и многого другого). Можно посмотреть эти уроки, после них начать читать книгу по C#, пусть из уроков много будет знакомо, но, скорее всего, в книге ты узнаешь новые детали и учить будет легче.

    Ещё такой курс более современный, его не смотрел.

    Кстати, чтобы не терять интерес, ты конечно можешь установить себе Unity, найти уроки по созданию 2D платформера, даже начать делать по урокам первую игру, но я тебе советую периодически как посидел над Unity возвращаться к книге и читать её дальше и так пока всю не прочитаешь. Я так и учил C#. Писал приложение, так как именно это было интересно, и периодически возвращался к книге.

    Алгоритмы. Можешь почитать хотя бы что-то простое для начала. Например,
    Алгоритмы. Вводный курс | Кормен Томас Х.

    https://qna.habr.com/q/848533#answer_1745621

    Книги есть такие:
    C# 9.0. Справочник. Полное описание языка (ссылка)
    Язык программирования C# 7 и платформы .NET и .NET Core | Джепикс Филипп, Троелсен Эндрю (ссылка)

    Возможно даже
    C# для чайников | Мюллер Джон Поль, Семпф Билл (здесь C# 7.0). ISBN: 978-5-907144-43-9
    Ответ написан
    7 комментариев
  • Как сделать что бы при нажатие backspace происходила запись в файл?

    var key = Console.ReadKey();
    if(key == ConsoleKey.Backspace)
      WriteDataToFile();
    Ответ написан
    Комментировать
  • Как оптимизировать сайт для PageSpeed?

    Судя по данным GPS, на что лично я бы обратил внимание в первую очередь:

    1) включите кэш браузера.
    Это делается в htaccess + на стороне хостинга должно быть включено. Проще всего если ISP панель используется. Ставьте срок 365 дней. Если лень разбираться просто напишите хостеру: прошу поставить кеш браузера для всех статических элементов (картинки, шрифты, стили и т.п.) на 365 дней. Нормальный хостер сделает бесплатно или подскажет где сделать. Если хостер ненормальный, то попробуйте сами всунуть правила в htaccess (они если погуглить - найдутся, просто их много разных вариаций, надо пробовать какие подойдут к конкретному хостингу)

    вообще это самый простой пункт обычно.

    2) Настройте подходящий размер изображений
    Тут тоже все просто - у вас фотка большая, а стоит она в мелком квадрате. Зачем? Поставьте туда мелкие фото. То есть просто сохраните их в редакторе с меньшей шириной и высотой.

    3) Удалите неиспользуемый код JavaScript - ничего вы тут толком не сделаете.
    скрин i.imgur.com/qEbmxsh.png - все скрипты что можно укажите async - вот как в первом сделано. И проверьте чтобы страница норм отображалась.

    4) рекомендую выкинуть шаринг, скрин i.imgur.com/6z5kK1d.png - им обычно уже не пользуются, а он влияет на page speed

    Хотя бы так, думаю, баллов 10-15 может дать такая штука.
    Ответ написан
    1 комментарий
  • Для каких целей используется C# на Web сайтах?

    В основном бэкенд на asp net и asp net core.
    Кто-то ещё делает фронтенд на Blazor
    Ну и ещё есть шаблонизатор - Razor

    Ну и ещё есть легаси - WebForms
    Ответ написан
    Комментировать
  • Виснет программа при зписи на диск много мелких файлов?

    @maxcad Автор вопроса
    Можно удалять тему.
    Запись производилась на диск, зашифрованный VeraCrypt. На обычные диски пишется без проблем.
    Виснет VeraCrypt, это у нее проблемы. Множественная запись мелких файлов она такая.

    Тут походу надо делать паузы , чтобы шифрованный контейнер мог отдышаться .
    Ответ написан
    1 комментарий
  • Как узнать с какими параметрами запущена програмам?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    1) Звоним в спортлото, чтобы вам подключили бесплатную услугу google;
    2) Заходим в https://google.com и пишем простой запрос "c# узнать параметры запущенного приложения"
    3) Переходим по первой ссылке: Получение информации из столбца "Командная строка"...
    4) ctrl+c и ctrl+v:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Diagnostics;
    using System.Management;
     
    namespace ConsoleApplication7 {
        class Program {
            static void Main(string[] args) {
                Process[] processList = Process.GetProcesses();
                Process p = processList.Where(temp => temp.Id == 844).FirstOrDefault();
                if (p != null) {
                    GetCommandLine(p.Id);
                }
                Console.ReadLine();
            }
            public static void GetCommandLine(int id) {
                using (ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT CommandLine FROM Win32_Process WHERE ProcessId = " + id)) {
                    foreach (ManagementObject mo in mos.Get()) {
                        Console.WriteLine(mo["CommandLine"]);
                    }
     
                }
            }
        }
    }
    Ответ написан
    Комментировать
  • Насколько обширен SQL и сколько времени нужно для изучения SQL?

    Adamos
    @Adamos
    Понятно что нужна ещё и практика

    Нет. Нужна еще и теория. Но никаких глубоких экспертов от зазубривания теории вы не получите.
    А ответ ждет вас на форуме авиамоделистов:
    - Сколько нужно времени, чтобы научиться управлять самолетом так, чтобы он не разбивался при посадке?
    - Пять-шесть.
    - Чего? Дней? Недель? Месяцев?
    - Самолетов...
    Ответ написан
    Комментировать
  • CSS flex gap, откуда дополнительные px и как с ними бороться?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Вроде очевидно.. 200px * 5 = 1000px, ваши блоки занимают все доступное пространство, но при этом вы добавляете gap = 10px и получается 200px * 5 + 10px * 4, что в итоге больше 1000px и происходит перенос, если бы перенос был запрещен, то блоки ужались бы в случае отсутствия жадности..
    Ответ написан
    Комментировать
  • Как скомпилировать проект на C# в один .exe файл?

    Single File Application - фича современных дотнетов со времён .net Core 3
    Буквально при помощи одной опции в файле проекта или одной строкой в консоли собирает ваш проект в единый екзешник, в который ещё может быть опционально встроен рантайм.
    Вот пример csproj:
    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net6.0</TargetFramework>
        <Nullable>enable</Nullable>
      </PropertyGroup>
    
      <PropertyGroup>
        <!-- Вот это самое главное -->
        <PublishSingleFile>true</PublishSingleFile>
        <!-- Это чтобы тащить за собой рантайм До .NET 6 будут рядом лежать нативные библиотеки jit-а и сборщика мусора-->
        <SelfContained>true</SelfContained>
        <!-- Это необходимо, чтобы сборщик понимал, для какой ОС нужен экзешник -->
        <RuntimeIdentifier>win-x64</RuntimeIdentifier>
        <!-- Это чтобы ускорить запуск -->
        <PublishReadyToRun>true</PublishReadyToRun>
        <!-- Эти две строки, чтобы уменьшить размер бинарника -->
        <PublishTrimmed>true</PublishTrimmed>
        <TrimMode>link</TrimMode>
      </PropertyGroup>
    </Project>

    В результате получается единственный exe, который реально можно запустить где угодно, вне зависимости от установленной версии .NET

    Для старых версий дотнета есть ILMerge и Costura.Fody, но в .net 5+ они не нужны, и я крайне советую использовать именно .NET 8, тк он сейчас самый актуальный
    Ответ написан
  • Для чего нужен атрибут aria-hidden?

    LenovoId
    @LenovoId
    svg, css,js
    Атрибут aria-hidden используется для скрытия контента для пользователей с нарушениями зрения, которые перемещаются по приложению с помощью программ чтения с экрана (JAWS, NVDA,...).

    Источник информации
    Ответ написан
    Комментировать
  • Как вывести всех родителей у подкатегории до главной категории?

    @Akina
    Сетевой и системный админ, SQL-программист.
    WITH RECURSIVE
    cte AS ( SELECT *, 1 level
             FROM category 
             WHERE id = $category_id
             UNION ALL
             SELECT cat.*, cte.level + 1
             FROM category cat
             JOIN cte ON cat.id = cte.parent_id )
    SELECT *
    FROM cte
    ORDER BY level;

    Для древних версий:
    SELECT CONCAT_WS('=>', c1.id, c2.id, c3.id, c4.id, c5.id) path
    FROM category c1
    LEFT JOIN category c2 ON c1.parent_id = c2.id
    LEFT JOIN category c3 ON c2.parent_id = c3.id
    LEFT JOIN category c4 ON c3.parent_id = c4.id
    LEFT JOIN category c5 ON c4.parent_id = c5.id
    WHERE c1.id = $category_id

    Ну соответственно подрихтовать до нужного вида выходного набора.
    Ответ написан
    4 комментария
  • Как интерпретировать информацию с TechEmpower Framework Benchmarks?

    kotomyava
    @kotomyava
    Системный администратор
    Это тесты не каких-то приложений, а ряда типичных действий реализуемых фреймворками. Вклад действий оцениваемых этими метриками в реальных приложениях не так уж велик. Т.е. выборка данных, и другая подобная работа, например, будет занимать намного больше времени в любом запросе, и будет примерно одинаковой для всех фреймворков, при реализации одинакового функционала. И эта разница, казалось бы в разы, превратится в величину близкую к погрешности измерений.
    В реальном приложении, всё будет куда больше зависеть не от фреймворка как такового, а от квалификации разработчиков, в итоге.

    К тому же, там довольно сложная методика оценки пачкой тестов и разными весами каждого из них. Это всё можно принимать в расчёт, но уж точно не стоит придавать этой информации очень уж большое значение, и тем более, делать такие прямолинейные выводы.
    Ответ написан
    1 комментарий
  • Как интерпретировать информацию с TechEmpower Framework Benchmarks?

    @deliro
    Как интерпретировать информацию с TechEmpower Framework Benchmarks?

    Никак, это почти бесполезная информация. Посмотри доклад автора fasthttp (самый быстрый на сегодня http фреймворк на golang), как они ухищряются, чтобы на этом писькометре набрать больше балов. Фактически же эти баллы мало коррелируют с тем, как на самом деле будет работать твоё приложение на фреймворке X. И уж тем более ни в коем случае нельзя думать о том, что "X быстрее Y в N раз".

    Да, в среднем на CPU задачах код фреймворка на го будет работать быстрее кода фреймворка на питоне. Но кроме CPU задач есть ещё IO задачи, которых в вебе намного больше (я бы сказал, что IO задачи занимают до 90% времени работы кода). Кроме кода фреймворка есть код библиотек и твой код, который выполняет бизнес-задачи. И это, пожалуй, единственное полезное, что может сказать этот писькометр.
    Ответ написан
    1 комментарий