Задать вопрос
  • Из-за чего ошибка Parse error: syntax error, unexpected token "="?

    @maksam07
    Что такое <?PHP= ?
    И боги.. атрибуты в одинарные кавычки?
    Ответ написан
    4 комментария
  • Как сделать воспроизводство рандомного звука в рандомный момент?

    freeExec
    @freeExec
    Участник OpenStreetMap
    UnityEngine.Random.Range
    Сначала для времени, потом для аудиофайла
    Ответ написан
    Комментировать
  • Как перечислить все классы, реализованные через некоторый интерфейс?

    @michadimin Автор вопроса
    Спустя немного времени - нашёл такое решение

    public static IEnumerable<Type> GetInterfaceTypes<T>()
        {
            var type = typeof(T);
            var types = AppDomain.CurrentDomain.GetAssemblies()
                .SelectMany(s => s.GetTypes())
                .Where(p => type.IsAssignableFrom(p));
    
            return types;
        }


    Если вы простой обыватель и отчаянно ищите способа быстрее решить проблему, то вот пример использования:
    interface ITest1
    {
    
    }
    
    interface ITest2 : ITest1
    {
    
    }
    
    interface ITest3 : ITest2
    {
    
    }
    
    class TestClass1
    {
    
    }
    
    class TestClass2 : TestClass1
    {
    
    }
    
    static class Extensions
    {
        public static IEnumerable<Type> GetInheritedTypes<T>()
        {
            var type = typeof(T);
            var types = AppDomain.CurrentDomain.GetAssemblies()
                .SelectMany(s => s.GetTypes())
                .Where(p => type.IsAssignableFrom(p));
    
            return types;
        }
    }
    
    class Prog
    {
        public static void Main()
        {
            foreach (var i in Extensions.GetInheritedTypes<TestClass1>()) //В треугольных скобочках указывается тип, наледников которого вы хотите получить
                Console.WriteLine(i);
        }
    }
    Ответ написан
    2 комментария
  • Обработка не системной клавиши по коду в С#?

    Viji
    @Viji
    DevOps Engineer
    Комментировать
  • Какой Фреймворк выбьрать и как лучше реализовать?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    На каком Фреймворки такое сделать, кто что посоветует с чем работать и как начать?
    Вообще пофиг, любой подойдет, такое можно и на голом пхп или питоне накалякать (да и не только на них).

    так-же, где хранить эти сылкис (имя/фирма) использовать для этого БД или какой-то есть другой способ?
    Можно в бд, есть и другие способы, например в файлах, если операция разовая - можно в памяти (редис, мемкэш), можно что-то типа как описал Владимир Коротенко, почему нет...
    Ответ написан
    Комментировать
  • Почему скрипт не хочет работать с математикой?

    GavriKos
    @GavriKos
    Ну скорее всего банально не заходит во внутрь if-а.
    И 99% что ошибка в проверках на налл - зачем они? Это проверка на пустую строку? Тогда лучше IsNullOrEmpty использовать
    Ответ написан
    4 комментария
  • Как запретить менять размер консоли в c#?

    Никак нельзя, тк ты не можешь гарантировать, в какой именно консоли у тебя запустится приложение.
    - Оно может быть запущено в стандартной консоли windows.
    - В Windows Terminal.
    - В ConEmu.
    - На линуксе в любом многообразии ихних терминалов.
    - Может быть запущено по SSH или вообще без рабочего стола.
    - Вообще без терминала, как часть пайпа или сервис

    Если тебе очень важно, чтобы твоё приложение выглядело как консольное, но при этом запускалось в окне фиксированного размера - делай оконное приложение, в котором бы выводился текст в нужном стиле.
    Ответ написан
    3 комментария
  • Как вывести html в .innerHTML с переносами?

    По идеи должно сработать в обратных кавычках`
    let appendEventBlock = `
        <a href="${eventDetailsUlr}" style="font-size: 16px; color: blue">${scheduledDate}</a>
        <br />
        <span>@localizator["Executor"]: ${event.executor.firstName} ${event.executor.lastName}</span>
        <span class="text-muted text-break">@localizator["Note"]: ${event.note}</span>
    `;
    document.getElementById(appendEventContainer).innerHTML += appendEventBlock;
    Ответ написан
    6 комментариев
  • Как правильней хранить и обновлять JWT для аутентификации?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Каждый JWT-токен это три блока - заголовок, полезная нагрузка и подпись. В заголовке хранится информация о самом токене (срок жизни, алгоритм подписи). Полезная нагрузка - информация приложения. Подпись - зашифрованный хэш первых двух частей. В распределённых системах выдавать токен может сервер авторизации, а использовать любой другой сервер. В таком случае подпись может быть асимметричной, закрытый ключ для подписания, открытый для проверки.

    Токены выдаются парой, рабочий + обновления.

    Рабочий токен выдаётся на короткое время (минуты - десятки минут). Внутри содержится срок окончания действия токена, идентификатор пользователя, его права, какая-то информация для минимизации обращений к БД по данному пользователю. Токен на сервере не сохраняется.

    Токен обновления выдаётся на длительное время (часы - дни). Внутри содержится срок окончания действия токена и идентификатор пользователя для автоматической аутентификации. Токен обновления (или его идентификатор, если он есть в токене) хранится в БД вместе с идентификатором пользователя.

    1. Клиент аутентифицируется/авторизуется на сервере со своим логином/паролем.
    2. Сервер генерирует пару токенов, короткоживущий рабочий и долгоживущий для обновления. Токен обновления записывается в БД.
    3. Клиент присылает запрос с рабочим токеном.
    4. Сервер проверяет токен.
    4а. Токен действительный и неистекший, сервер отвечает на запрос.
    4б. Токен действительный, но истекший, сервер сообщает о необходимости обновления токена.
    4в. Токен недействительный, сервер сообщает о необходимости входа по логину/паролю (на п.1).
    5. Клиент присылает токен обновления.
    6. Сервер проверяет токен, в том числе и в БД.
    6а. Токен обновления недействительный, сервер сообщает о необходимости входа по логину/паролю (на п.1).
    6б. Токен обновления действительный, но в БД отсутствует, сервер удаляет все токены обновления этого пользователя из БД и сообщает о необходимости входа по логину/паролю (на п.1).
    6в. Токен обновления действительный, но просроченный, сервер удаляет этот токен из БД и сообщает о необходимости входа по логину/паролю (на п.1).
    6г. Токен обновления действительный, непросроченный, в БД присутствует. Сервер удаляет этот токен из БД, генерирует новую пару, записывает новый токен обновления в БД и отправляет токены клиенту (на п.3).
    Ответ написан
    Комментировать
  • Есть ли возможность скачать с сайта учебную информацию в формате SCORM (Moodle)?

    TosterModerator
    @TosterModerator
    Модератор Хабр Q&A
    Коротко говоря - легально без разрешения хозяев сервера никак.
    Нелегально - это не тут надо выяснять. Тут поиск нелегальных вариантов запрещен.
    Ответ написан
    Комментировать
  • Как создать свой домен?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Идете на сайт ICANN
    Подаете заявку на новый TLD
    Платите бабки, много бабок, очень много бабок. Зеленых, ессно.
    Ведете переписку, очень много деловой переписки. На языке оригинала, ессно
    Создаете необходимую инфраструктуру - Вы должны где-то хранить данные о зоне

    ПРОФИТ! (Ну, может быть...)
    Ответ написан
    Комментировать
  • Как создать свой домен?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    ICANN периодически проводит рассмотрение заявок на регистрацию доменов верхнего уровня. Стоимость такого домена порядка $200000 плюс отчисления от продаж поддоменов. Кроме этого вы должны создать и поддерживать инфраструктуру для обслуживания домена.
    Ответ написан
    3 комментария
  • Как сделать систему авторизации с помощью php?

    Denkuwus
    @Denkuwus
    15 y.o
    Тут mysqli_query() вызывается только с одним параметром, но ожидает как минимум два параметра. Для функции mysqli_query() надо подключения к серверу MySQL в качестве первого параметра и строки запроса в качестве второго параметра.
    Нужно передать соединение с сервером MySQL в качестве первого параметра функции mysqli_query(). Можно использовать переменную $mysqli для получения соединения:

    $result = mysqli_query($mysqli, "SELECT * FROM `user` WHERE `login` = '$login' OR `mail` = '$email'");
    Ответ написан
    Комментировать
  • Почему выдает ошибку?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Скорее всего на хостинге отключены short tags. Используйте нормальную нотацию <?php.
    Ответ написан
    3 комментария
  • Как починить разъем питания смарт часов?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Место отвала не в фокусе.Нужно найти электросхему платы, какие дорожки шли на этот пятак - и все эти дорожки восстановить.
    Ответ написан
    1 комментарий
  • Как получить байтовый массив из базы данных?

    bytea маппится в byte[].
    Include для свойства byte[] вызывать не нужно.
    Ответ написан
    7 комментариев
  • Почему на ноутбуке медленная скорость интернета, а на телефоне нормальная, если подключены к одной сети?

    3r1k
    @3r1k
    the quieter you become, the more you hear
    из вариантов:
    - драйвера обновить нужно
    - настройки фаервола какие-то корявые, верни до стоковых
    - проверь настройки э/питания - может сетевая в сон уходит
    - возможно вирус (ваш компьютер может быть частью бот-нет сети)

    Это так, на вскидку....
    Ответ написан
    1 комментарий
  • В чем можно хранить около триллиона значений key=>value?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Давайте прикинем объем который понадобится. Что такое триллион?
    Это 12 нулей. Или 1 000 000 000 000 элементов. Какая у нас data-row?
    8 + 64 символов типа ASCII (байт подходит чтоб покрыть все символы).
    Итого 72 байта на строку. Там можно еще поужимать биты в байтах но только
    сложность повышает а большой пользы для дела не дает. Пускай будет ASCII == 1 байт.

    Вобщем такой расчет

    72000000000000 байтов на весь сегмент данных когда таблица загружена.
    Или 65 терабайт. А сколько магнитных блинов надо прикупить? Возьмем популярный магнитный
    Western Digital Purple 10TB 7200rpm 256MB WD102PURZ 3.5" SATA III при цене 290$
    Порядка 7 штук надо. Вобщем готовте котлету денег 290$ * 7 = 2030$

    По поводу DBMS. Да key-value здесь подходит. Можно начинать с LevelDb или RocksDb но у них
    расход дисковой памяти на 1 строчку может быть больше чем я посчитал. Я ведь считал эконом-эконом
    вариант в виде бинарного типизированного файла где все записи строго по 72 байта. Сколько именно
    захватит РоксДб или ЛевлДб - чорт его знает. Вряд-ли документация об этом что-то говорит.
    Но берите 1% датасета. Загружайте
    и аппроксимируйте сколько выйдет после полной прогрузкуи. Это - надежный способ оценки.
    Ответ написан
    12 комментариев
  • Как стать независимым разработчиком в сфере роботов, электроники, IoT и зарабатывать на этом?

    @kalapanga
    Один из первых вопросов который возникнет у Ваших потенциальных заказчиков - можно увидеть Ваше портфолио? Т.е. Вы должны придумать что-то оригинальное, довести Ваши идеи до готовых изделий и в результате иметь несколько реализованных проектов, которые не стыдно показать. А Вы даже литературу себе сами подобрать не можете.
    Бросайте эту маниловщину и занимайтесь учёбой. В качестве подработки выберите что-то попроще, лучше по специальности.
    Ответ написан
    1 комментарий
  • Какие протоколы нужно разрешить и какие не следует?

    @res2001
    Developer, ex-admin
    443 и 80 используются веб серверами (HTTP(S)), и это TCP. Тут UDP не используется.
    53 - это DNS запросы, могут быть как UDP (по умолчанию) так и TCP.

    На самом деле никто не мешает использовать любой порт любому протоколу (т.е. любое приложение может открыть любой порт если он не занят и хватает прав). Но то что я привел - это стандартная практика. Другое дело, что протоколы верхнего уровня обычно жестко связаны либо с TCP либо с UDP, но бывают исключения (тот же DNS).
    Ответ написан
    Комментировать