• Как сделать поиск который понимает суть запроса?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    Смотри в сторону томита парсера, который умеет извлекать семантику из предложения.
    Исходный код открыт: https://github.com/yandex/tomita-parser
    Пример простой семантики: https://github.com/yandex/tomita-parser/blob/maste...
    Ответ написан
    4 комментария
  • Как ускорить чтение строк из файла?

    egor_nullptr
    @egor_nullptr Куратор тега C
    mmap + ручной разбор, получилось примерно в 10 раз быстрее, чем fgets + sscanf
    Код

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <fcntl.h>
    #include <sys/stat.h>
    #include <sys/mman.h>
    #include <unistd.h>
    
    int main(int argc, char** argv)
    {
        int fin = open(argv[1], O_RDONLY);
        struct stat finfo = {0};
        fstat(fin, &finfo);
        char *map = mmap(0, finfo.st_size, PROT_READ, MAP_SHARED, fin, 0);
    
        char src[4] = {0};
        char dst[4] = {0};
        int cost;
        int i;
        int off = 0;
    
        while (off < finfo.st_size)
        {   
            memcpy(src, map + off, 3); 
            memcpy(dst, map + off + 4, 3);
            i = 0; 
            cost = 0;
            while (map[off + 8 + i] != 10) { 
                cost = cost * 10 + map[off + 8 + i] - 48;
                ++i;
            };
            off += 9 + i;
        };
    
        munmap(map, finfo.st_size);
        close(fin);
    
        return EXIT_SUCCESS;
    }

    Ответ написан
    2 комментария
  • Почему мой код считается медленным?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Изучение алгоритмов стоит начинать с чтения соответствующего учебника, как минимум станет известна методика оценки сложности алгоритма. И лучше это делать после того, как прочитан учебник по языку и документация по его стандартной библиотеке.
    Ответ написан
    Комментировать
  • Как заменить большое кол-во символов на другое?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Заменять хешированные пароли на дехешированные можно при помощи замены. В базах данные это UPDATE.

    P.S. Каков вопрос - таков и ответ, ни больше, ни меньше!
    Ответ написан
    Комментировать
  • Есть ли смысл учить Golang если уже хорошо знаешь .NET?

    GavriKos
    @GavriKos
    В том что если завтра вас уволят, то сможете отзываться на более широкий пул вакансий.
    Ну и общий кругозор расширите конечно
    Ответ написан
    2 комментария
  • Есть ли смысл учить Golang если уже хорошо знаешь .NET?

    1. Из коробки компилируется в единственный, сравнительно компактный, бинарь без зависимостей от рантайма и окружения.
    (и без подводных, в отличие от full aot и assembly trimming)

    2. Сможешь рассматривать вакансии, где требуется Golang, если собираешься искать работу.
    3. Сможешь нанимать go-шников со всеми вытекающими, если будешь искать разрабов в свой проект.
    4. Если твой проект должен будет активно взаимодействовать, например, с kubernetes и прочими devops-штуками, то Go может быть чуть удобнее, тк практически все эти инструменты написаны на Go и для работы с ними имеются готовые библиотеки, которые, вероятно, будут лучше, чем их альтернативы для .NET.
    Ответ написан
    3 комментария
  • Как извлечь текст книги из apk файла?

    @rPman
    Apk файл это zip архив, переименуй и открой

    Посмотри все файлы поиском по тексту, 1-2 слова, осторожнее с пробелами. Это будет легко, если разработчики не собирались мешать это делать, иначе от невозможно до очень сложно.

    Как вариант, ее в файле нет и книга скачивается и складывается в приватную область приложения, до которой можно добраться только с помощью рут доступа, в исключительных случаях можно сделать локальный бакап с помощью adb и уже покопаться в его файлах.

    Ну и универсальная классика, написать простой кликер, с помощью того же adb и наделать скринов
    Ответ написан
    Комментировать
  • Как задать следующий вопрос chatGPT по API?

    neuotq
    @neuotq
    Прокрастинация
    Контекст вы должны сохранять, а передавать в следующем запросе через роли.
    Простое объяснение тут, пример оттуда:

    completion = openai.ChatCompletion.create(
      model="gpt-3.5-turbo", 
      messages = [
    # system - системная базовая роль, грубо говоря это сама база "Я" gpt
    {"role": "system", "content" : "You are ChatGPT, a large language model trained by OpenAI. Answer as concisely as possible.\nKnowledge cutoff: 2021-09-01\nCurrent date: 2023-03-02"},
    # user - роль юзера кто задаёт вопросы
    {"role": "user", "content" : "How are you?"},
    # Асистент одна из ролей, можно задать ранее в запросе, типа Act as bla blah
    # либо он поймёт что должен быть именно ассистентом смотрите оп ответу в API
    {"role": "assistant", "content" : "I am doing well"},
    # Снова юзер
    {"role": "user", "content" : "How long does light take to travel from the sun to the eart?"}]
    )


    Ну и примерно так строишь цепочку. Ну и да, ресурсо(читай денежно) пожирающе, а что делать. Значит приносить $$ должно больше чем тратится.
    Ответ написан
    Комментировать
  • Какая должна быть нумерация релизов для сервисов?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Если сервис не обновляется, ему не нужно поднимать версию

    В целом версии ведутся по semver, через теги
    Ответ написан
    Комментировать
  • Есть ли переводчик нейросеть, которую можно установить к себе на компьютер?

    @rPman
    Не хуже гугло переводчика это шутка да? компания наверное миллиарды в эти алгоритмы вбросила, а ты хочешь повторить это забесплатно?

    Но наверное все же есть решение.
    Благодаря сливу фейсбуковской llama наверное такой переводчик можно дообучить (если openassistent всего за 10 часов на одной машине с 4 видеокартами дообучили ее почти до уровня раннего chatgpt), т.е. на каком то открытом датасете дообучаешь сетку, оформив это в виде какого-нибудь запроса типа
    ### Instruction:
    
    translate input to russian.
    
    ### Input:
    
    текст
    
    ### Output:
    Совет, используй 65G или 30G, меньшие модели - баловство, к тому же их обучающие датасеты менее мультиязычные.

    Достоинство llama в том что благодаря ggreganov эту сетку можно очень шустро использовать (к сожалению не обучать, надеюсь кто-нибудь это допилит) на обычной и дешевой десктопной машине без видеокарты.

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

    p.s. результат будет хаотичным! зависящим от того, как совпадет обучающая выборка с твоей задачей. Т.е. оно будет работать но изредка галюцинировать, вот бы научиться эти моменты прогнозировать как то.

    upd. ничего не обучая, вот пример
    The repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.

    для openassistent 30b:
    Репозиторий предоставляет код для запуска инференса с Моделью "Сейчас-что-угодно" (SAM), ссылками на загрузку обученных моделей и примерами нотбуков, которые показывают как использовать модель. [end of text]

    для llama 65b:
    Репозиторий предоставляет код для выполнения вывода с моделью SegmentAnything (SAM), ссылки на загрузку тренированных точек перехода, и примеры тестовых книг, которые показывают, как использовать модель.

    гугл транслейт:
    Репозиторий содержит код для выполнения вывода с помощью модели SegmentAnything (SAM), ссылки для загрузки контрольных точек обученной модели и примеры записных книжек, демонстрирующих, как использовать модель.


    Экспериментально выставил temp 0.1, по уму дефолтно все работает, само собой в ответе будет мусор, что то сетка от себя добавит, это нужно понимать, тюнить стоп слова и т.п.
    Ответ написан
    4 комментария
  • Как сделать вывод части информации в консоль после ввода команды?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    пользоваться пагинатором more или текстовым просмотрщиком less
    ip a | more
    ip a | less

    или фильтровать нужные строки через какой-нить grep
    Ответ написан
    Комментировать
  • Как из контейнера подключаться к базе данных?

    karabanov
    @karabanov Куратор тега Ubuntu
    Системный администратор
    Можешь файл с базой хранить на хостовой машине и монтировать его в контейнер.
    Ответ написан
    3 комментария
  • Очень медленно работает сайт локально. Как увеличить скорость?

    besogonskiy
    @besogonskiy Автор вопроса
    работаю php laravel разработчиком.
    Оказывается вот в чем было дело! Xdebug был подключен. Отключил его в xdebug.so и все стало быстро работать.
    Ответ написан
    3 комментария
  • Подсчет hash суммы .iso образа?

    Разные программы создают немного разные образы.
    Создавай при помощи одной и той же программы и считай хэшсумму тоже одной и той же - тогда будет повторяемый результат
    Ответ написан
    1 комментарий
  • Подсчет hash суммы .iso образа?

    @kalapanga
    Достаточно этим программам брать файлы для помещения в образ в разном порядке и контрольная сумма образа будет уже разной. Кроме того сама файловая система ISO 9660 имеет разновидности.
    Ответ написан
    Комментировать
  • Программирования учат или применяют?

    Newto
    @Newto
    Добрый день. Я перечитал все ответы выше, а так же комментарии к ним. Решил прокомментировать, с точки зрения своего опыта(я занимаюсь разработкой уже более 15-ти лет). Для удобства чтения я буду писать по пунктам.

    1) Зубрёжка. Каждого из нас, кто ходил в школу, заставляли зубрить таблицу умножения. И, в конце-концов, это помогало в последующем обучении математики, не правда ли? В программировании есть такие же вещи, которые называются "стандарты". Вот эти стандарты и нужно, для начала, зазубрить. А позже и вникнуть, зачем они придуманы.

    2) Методика "объяснение и практика". Вы пишете, что "при таком способе мне приходится одно и тоже глазами несколько раз пробегать чтобы запомнить". Это, с моей точки зрения, в корне не верно. Ибо то, что вам объясняют, не нужно "пробегать глазами" несколько раз, что бы запомнить. Это вообще не нужно запоминать если это не те самые "стандарты"; это нужно осмыслить и понять. После того, как к вам придёт понимание как это работает, зачем и почему это надо -- вы сможете это использовать, осмысленно, в собственном коде.

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

    4) ВУЗ. Более 10-ти лет назад, у меня в подчинении, в вебстудии, работал PHP джун. Он доучивался в МГТУ имени Баумана. И он не знал ничего. Совсем. Мне приходилось объяснять ему простейшие вещи, типа что значит иструкция "$a += $b;". Сам же я учился в ВУЗе малоизвестном, на факультете "прикладная информатика в экономике" и наш преподаватель информатики, на первом курсе, на вопрос что значит в коде программы на языке C++ инструкция "с++" ответил, что это "так язык называется". Однако, вскоре ко мне начали ходить сокурсники, с просьбами "а напиши программку". И происходило это потому что я сам загорелся программированием, купил книжки, установил всё что нужно было установить на компьютер и начал "творить волшебство", как это мне тогда виделось, с горящими глазами. Короче говоря не нас учат ВУЗы, а мы учимся в ВУЗах или учимся без них. Тут уж как пойдёт.

    5) Ну и последний, самый важный, с моей точки зрения, пункт. Это Интерес. Если вам интересно программирование, вам нравится разбираться, что-то делать самостоятельно, а не только тогда когда кто-то поставил задачу, то у вас все получится. И как именно это всё учить у вас вопроса, в конце концов, не возникнет. Разбирайтесь, ковыряйте, вникайте и всё будет. Единственное что -- очень желательно, что бы перед вашими глазами были хорошие примеры. Потому что я, в свое время, тоже разбирался, учился и вникал, "гладили по голове", как писали выше в комментариях к одному из ответов, меня уже мои наниматели, потому что я все делал быстро и без ошибок, т.е. работало все так, как было нужно клиентам веб-студии, собеседование в которую я тогда прошел без каких-то проблем. Но вот мой код тогда был, откровенно говоря, тем, что сейчас называется "говнокодом". Потому что некому было мне показать как писать есть хорошо, а как есть плохо.

    Подыдожу -- ключи к быстрейшему развитию в деле разработки это ваш интерес к этому делу, желание им заниматься и примеры хорошего, качественного кода перед глазами. А так же кто-то, кто сможет технически оценить вашу работу и, без агра, с конструктивом, показать и рассказать что вы сделали не так.
    Ответ написан
    25 комментариев
  • Что делать если не запускается программа на 32битной винде?

    MvcBox
    @MvcBox
    Software Engineer [C/C++/JS(for Node.js)/etc]
    Как только я решил закинуть этот проект на комп, экзешник просто исчез(на том компе стоит касперский, но вряд ли это его рук дело).

    Это как раз его рук дело. Просто он без лишних вопросов удаляет подозрительный файл.
    Ответ написан
    3 комментария
  • Как правильно устанавливать что-либо в Docker контейнеры?

    1. Если это на 1 раз, то №1.
    2. Если понадобится более 1 раза, то №2. Там несложно: всего 2 инструкции: FROM (имя исходного образа), и RUN и там как в bash файле команды apt-get update && apt-get install XXX && ...
    Ответ написан
    Комментировать
  • Задача на C#. Как мне найти степень числа(без Math.Pow)?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Напишите алгоритм, как бы вы это сделали вручную, а потом переведите его в код.
    Ответ написан
    Комментировать