Задать вопрос
  • Пропал Linux Mint из Boot Menu. Как теперь в него попасть?

    нужно восстановить grub. винда при установке сносит его и ей пофиг на остальные установленные ос.
    можно погуглить как это делается.
    или вот вариант https://losst.pro/vosstanovlenie-grub-posle-ustano...
    Ответ написан
    Комментировать
  • Как достать из OpenStreetMap все населённые пункты с населением более 4000?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Загрузить данные OpenStreetMap в формате .osm (XML-файл), используя, например, экспортный сервис, такой как https://export.hotosm.org/.

    Преобразовать .osm файл в базу данных с помощью Osmosis или osm2pgsql.

    SQL-запрос типа

    SELECT name, admin_level, population
    FROM planet_osm_point
    WHERE place IN ('city', 'town', 'village') AND population > 4000;
    Ответ написан
    2 комментария
  • Почему сайты на сервере работают медленно?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Гадание на листьях опавших с ветвей сакуры нифига не даст.

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

    Так же есть вероятность что проблема не на бэкенде, а в подгрузке ресурсов типа фонтов или скриптов со сторонних сервисов, которые сейчас работают не очень стабильно (ну да, "а что случилось?"). Опять же легко проверяется разницей между выполнением всего кода и полной загрузкой страницы.
    Ответ написан
    2 комментария
  • Почему сайты на сервере работают медленно?

    karabanov
    @karabanov Куратор тега Ubuntu
    Системный администратор
    На скриншоте LoadAverage около 8 при 48 ядрах и полно свободной памяти, то есть сервер не нагружен, если при этом приложение работает медленно, можно предположить, что оно ожидает чего-то. Может оно обращается к внешнему API которое медленно отвечает?

    Рекомендую проверить настройки DNS и убедится, что используется локальный кеширующий DNS сервер, а не публичный - дело может быть в том, что публичные DNS серверы тротлят если к ним часто обращаются, так что если приложению надо обращаться к внешнему API оно будут часто резолвить имена, что приведёт к задержкам.
    Ответ написан
    2 комментария
  • Как написать свое регулярное выражение?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Без теории тут никак.
    Тут 2 варианта: или стройте конечный недетерменированный автомат (с эпсилон переходами), который соответствует этому регулярному выражению и дальше применяйте стандартный алгоритм проверки. что автомат принимает заданную строку. Или второй вариант: пишите динамическое программирование "соответствует ли вот этот префикс заданной строки вот этому префиксу регулярного выражения".

    Конечный автомат будет и побыстрее работать и памяти меньше требовать.

    upd: ну и, конечно, тут полным перебором рекурсивно можно сделать. Но это будет гораздо медленнее любого из указанных выше методов.
    Ответ написан
    2 комментария
  • Как заблокировать доступ к интернету на python?

    @maxsmeller
    Как вариант, DNS подменить, гуглится такое:
    import os
    os.system('netsh interface ip set dns "Local Area Connection" static 192.168.0.200')
    Ответ написан
    1 комментарий
  • Что лучше для выбрать для ios разработки игры на Unity: c# или swift?

    @dima20155
    you don't choose c++. It chooses you
    Swift - это язык, созданный самими разработчиками ios (apple). Логично предположить, что это его основное назначение. Главный вопрос чего вы хотите добиться. Если ваша задача разработка мультиплатформенных игр, то не вижу смысла рассматривать swift в принципе. Если же вы хотите работать только с ios, то имеет смысл сравнить производительность и поддержку с# и swift для вашей задачи, игры.

    P.S. Я не являюсь разработчиком swift и никогда всерьез с ним не работал, поэтому это мое субъективное мнение.
    Ответ написан
    Комментировать
  • Нужно запустить 2-х ботов с одного файла, как это сделать?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Токен в параметрах передавай. И включите уже наконец голову, питоноботописатели хреновы
    Ответ написан
    Комментировать
  • Почему не работает пузырьковая сортировка двумерного динамического массива?

    @res2001
    Developer, ex-admin
    1. В result в цикле сортировки вложенный цикл должен быть до y, а у тебя до х, так же как верхний цикл.
    2. Как писал mayton2019 для сортировки не хватает дополнительного цикла. Просто сделай сначала сортировку одномерного массива и поймешь зачем он. Сейчас у тебя только одна итерация сортировки для каждой колонки проходит.
    3. Посмотри внимательно сюда:
    int temp = Arr[i][j + 1];
    Arr[i][j] = Arr[i][j];
    Arr[i][j + 1] = temp;

    И пойми, что этот код ничего местами не меняет. А должен.
    Ответ написан
    2 комментария
  • Как работает интернирование строк в C#?

    Подробнее можно почитать в книге CLR via C#.

    Но если коротко, то все строковые литералы компилятор помещает в отдельную область памяти и заменяет все ссылки на них.
    Ответ написан
    Комментировать
  • Где ошибка в коде переворота двумерного массива?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    У вас средняя строка 2 раза переворачивается. Потому что цикл внутри проходит по всей длине строки и меняет местами 2 элемента. Первую половину итераций строка будет переворачиваться, а вторю половину - переворачиваться обратно.

    Надо отдельно обработать случай y == y1
    Ответ написан
    Комментировать
  • Где ошибка в коде переворота двумерного массива?

    @dima20155
    you don't choose c++. It chooses you
    Что-то много у тебя лишнего в коде

    #include <iostream>
    
    using namespace std;
    
    int main() {
        int a = 0, b = 0, c = 0;
        cin >> a >> b;
        int A[a*b]; // not all compilers support this you have to make sure or use new/unique_ptr
        for (int i = 0; i < a*b; ++i) {
            cin >> A[i];
        }
    
        for (int i = 0; i < a*b / 2; ++i) {
            std::swap(A[i], A[a*b - 1 - i]);
        }
    
        for (int i = 0; i < a*b; ++i) {
            if ((i) % b == 0)
                std::cout << std::endl;
            std::cout << A[i] << " ";
        }
    }

    ссылка на поиграться
    https://godbolt.org/z/xqf6MYaMK
    Ответ написан
    Комментировать
  • В чём отличие хэш-таблицы от словаря и ассоциативного массива в C#?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Словарь и ассоциативный массив - это синонимы. Хеш-таблица - это вариант реализации словарей.
    Ответ написан
    2 комментария
  • Как подключить еще несколько words к GForth?

    @pharo
    Может они включены в более позднюю версию gForth для использования, а не 0.7.3 которую Вы используете?
    Можно поискать упоминание этих слов в исходниках gForth как Вами используемых так и текущих.

    P.S. Если загрузить репу проекта gForth (к примеру с Github https://github.com/forthy42/gforth как архив или по команде git clone )
    и выполнить ./BUILD-FROM-SCRATCH в терминале запущенном в директории исходников gForth, то получите последнюю версию файлов gForth для запуска.
    Ответ написан
    2 комментария
  • Где можно безопасно хранить токены в десктопе?

    vabka
    @vabka Куратор тега Rust
    В случае маков можно хранить в keychain.
    https://developer.apple.com/documentation/security...

    В случае некоторых дистров линукса - тоже , но надо смотреть для каждого.

    В случае винды - можно использовать DPAPI
    https://learn.microsoft.com/en-us/previous-version...

    Во всех случаях можно хранить не сами токены, а ключи для расшифровки, а сами токены держать зашифрованными в файлах

    UPD: на винде есть ещё https://learn.microsoft.com/ru-ru/windows/uwp/secu...
    А на линуксе есть libsecret

    UPD2: есть готовый Крейт, который это всё многообразие обобщает: keyring
    Ответ написан
    4 комментария
  • Создаю таблицу в sql lite в обычном варианте, и в варианте c WITHOUT ROWID получается огромная разница в размерах. Почему размеры так отличаются?

    @kuza2000 Автор вопроса
    В общем, разобрались.
    Когда размер блоба превышает определенный порог, он переносится на overflow pages. Это отдельная страница или несколько. Больше одного блоба на странице переполнения быть не может. А вот на странице данных (в записях) могут быть много блобов.

    Вот тут, в разделе 1.6 описаны пороги, при превышения которых блоб переносится на страницы переполнения: https://www.sqlite.org/fileformat.html

    Вот главная формула:
    X is U-35 for table btree leaf pages or ((U-12)*64/255)-23 for index pages.

    Тут U - это размер страницы. Размер страницы у меня 4096, получается, порог переноса будет 4096 - 12 = 4084 для листовой страницы и ((4096-12)*64/255)-23 = 1002 для страницы указателей. Это полный размер записи. За вычетом размера блоба остальная часть записи - 5 байт (подглядел в дампе страницы базы). Значит, пороги переноса блоба будут 4079 и 997.

    Провел эксперименты с разным размером блоба. База с WITHOUT ROWID перестает пухнуть при размере блоба 996 байт. А 997 - уже проблема. Вывод: в таблицах с WITHOUT ROWID применяется порог для блобов, который предназначен для страницы индекса.

    Вообще, ничто не мешает хранить блобы большего размера на страницах таблиц с WITHOUT ROWID. Вполне возможно, что это ошибка, которую позже поправят. Но пока в sql lite в таблицах с WITHOUT ROWID блобы лучше не хранить.

    UPD:
    Спросил у на форуме sql lite, ответили разработчики: https://www.sqlite.org/forum/forumpost/ad86fbaa04
    Как справедливо поправили - блобы тут не причем, имеет значение общий размер записи (payload). Ответили, что таблицы WITHOUT ROWID сделаны как покрывающие индексы, и унаследовали соответствующие ограничения. В общем, на мой взгляд, не стоит их использовать, если может произойти spliting. Для этого общий размер записи не должен приближаться к 1/4 размера страницы.
    Ответ написан
    Комментировать
  • Как вычислить мат.выражение представленное в виде дерева?

    @dima20155
    you don't choose c++. It chooses you
    Можно пройтись поиском в глубину (DFS) до последнего узла и дальше двигаясь в обратном направлении выполнить вычисления.
    1. вначале мы находим самую нижнюю ноду, а она точно цифра (в противном случае смысла нет)
    2. делаем шаг назад и выполняем вычисление
    3. редактируем имеющуюся структуру "укорачивая" дерево (то есть вместо знака действия у нас теперь цифра)
    4. делаем так пока не получим дерево состоящее только из корня, которое и будет решением.

    Попробовал написать решение твоей задачки, код по ссылке
    https://godbolt.org/z/PzWjYjvfz
    Ответ написан
    3 комментария
  • Как нейросети обрабатывают текстовую информацию?

    Maksim_64
    @Maksim_64
    Data Analyst
    Вы правы каждое слово кодируется. Существует огромное количество методов кодирования для NLP (Natural Language Processing). Основной метод кодирования это представления слова в виде вектора где самая важная часть (что делает NLP возможным) при создании такого вектора слова которые используются в схожих контекстах имеют схожее но не одинаковое векторное представление. Векторная схожесть может быть подсчитана разными способами ну например Евклидово расстояние. В таком случае например вы будете иметь уникальный вектор для каждого слова где вектора с близкими Евклидовыми расстояниями будут означать слова которые используются в схожих контекстах. Что касается формата данных которые получит нейронная сеть, то каждый вектор трансформируется где каждое число трансформируется в число 0 до 1. Существует опять таки несколько техник. самая простая формула (x - min(X)) /(max(X) - min(X)), где x это каждый элемент вектора, ну и соответственно min(X) - минимальный элемент вектора max(X) максимальный элемент вектора. подобная трансформация применяется к каждому элементу каждого вектора. Это примитивный пример, для понимания идеи. Данный вопрос глубокий различные техники кодирования могут быть очень сложны и существуют не мало разных подходов для решения подобных задач. Что касается двоичного входа для нейронных сетей то ответ нет. Нейронные сети могут в том числе получать двоичные значения, но не ограничены этим, также они могут получать дискретные (целые) или числа с плавающей запятой.
    Ответ написан
    Комментировать
  • Как нейросети обрабатывают текстовую информацию?

    Слова исходного текста можно представить через "one-hot encoding" – одномерный вектор, где только 1 бит для данного слова – включён. Сколько всего в тексте уникальных слов, такой длины векторы.
    пример
    [ 1, 0, 0, 0, 0 ] Как
    [ 0, 1, 0, 0, 0 ] нейросети
    [ 0, 0, 1, 0, 0 ] обрабатывают
    [ 0, 0, 0, 1, 0 ] текстовую
    [ 0, 0, 0, 0, 1 ] информацию

    Далее возможны преобразования слов в многомерные векторы так, что слова со сходными смыслами оказываются рядом. Или вектор от "кошка" к "котёнок" оказывается параллелен и той же длины, что от "собака" к "щенок". Это называется "word embedding". Один из способов их построения называется "Word2Vec".
    Ответ написан
    Комментировать
  • Способ безопасного выполнения sql - запросов от пользователей?

    shabelski89
    @shabelski89
    engineer
    Да, нужно изолировать, например с помощью контейнеров- докер.
    Вот пример готово решения, далее делаете к нему свою обвязку, чтобы для каждого пользователя запускался свой контейнер.
    Вопрос нагрузки/ресурсов отдельный вопрос.
    Ответ написан
    Комментировать