Задать вопрос
  • Обучение и практика на lua или он полу дохлый?

    opium
    @opium
    Просто люблю качественно работать
    жив, просто нишевый. Neovim на нём весь (плагины/конфиги), OpenResty в Nginx, Redis-скрипты, WoW аддоны, Garry's Mod, LÖVE2D. Мало материалов на русском не потому что умер, а потому что аудитория маленькая — спека сама tiny, pdf на сто страниц. По документации и учат, это норма. Для практики вне Defold попробуй LÖVE2D, там и фреймворк простой, и примеров хватает.
    Ответ написан
    2 комментария
  • Обучение и практика на lua или он полу дохлый?

    HabrSpar
    @HabrSpar
    C++/Lua разработчик, наставник в Яндекс.Практикум
    Не совсем. Причина в том, что язык встраиваемый, нежели чем базового назначения. Сам по себе язык очень маленький и в каждом месте применения он может и зачастую отличается.
    Lua выступает по сути удобным API для чего-то сложного.
    Ответ написан
    Комментировать
  • Обучение и практика на lua или он полу дохлый?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Самое свежее издание официального учебника по языку было в 25-м году, куда уж свежее-то. Ну и язык живее всех живых, на нём не только игры скриптуют, но и Nginx, Redis, Tarantool, Wireshark, VLC и ещё огромную кучу всего.
    Ответ написан
    Комментировать
  • Обучение и практика на lua или он полу дохлый?

    lua создавался не как самостоятельный язык общего назначения, а как язык для встраивания в другие системы.

    Соответственно, он живой, но только в рамках этих вот других систем, в которые он встроен.
    https://www.lua.org/docs.html

    Семантика и стандартная библиотека у него достаточно простая, так что сильно много изучать не придётся, если уже умеешь программировать на чёмто другом
    Ответ написан
    Комментировать
  • Почему некоторые сайты загружаются очень медленно и получают статус stalled/dns lookup?

    @rPman
    с вероятностью 99% косяк провайдера
    включи dns over https (безопасный dns), а публичные уже не надежны, ибо их подменяют.

    Российские провайдеры в попытках (судя по всему успешных) анализировать шифрованный трафик (не всех но некоторых сайтов, и список таковых со временем меняется), сильно тормозят https подключения, и получается иногда парадоксальная ситуация, через наидешевейший тормозной vps в европе такие сайты открывает быстрее чем полугигабитный ростелеком (который может на 20-30мбайт/с грузить что-нибудь за тысячи км от ...)
    Ответ написан
    2 комментария
  • Почему возникает данная ошибка?

    HabrSpar
    @HabrSpar
    C++/Lua разработчик, наставник в Яндекс.Практикум
    Корутины не работают сквозь C функции. Попробуйте CompileString вместо runstring
    Ответ написан
    1 комментарий
  • Что блокирует интернет на ноуте и как это обойти?

    @Drno
    общий сбой - это отключен кабель \ нет линка \ проблема с драйверами \ картой
    Ответ написан
    Комментировать
  • Стоит ли оформлять Copilot Pro для Visual Studio 2022?

    @rPman
    На текущий момент ИИ на базе gpt не является Универсальным ИИ (AGI), поэтому по глупому особой пользы вы от него не получите, лучшие результаты подключают в генерации текстов (маркетинг, может быть развлечения и почти наверняка симуляция людей в чатах и соцсетях), для программирования они ПОКА не подходят, по тем причинам, что в основе своей не содержат базы данных (условный RAG подключен внутри api), доступа к справочникам по библиотекам и фреймворкам.

    gpt пытается быть похожим на человека, у них проблемы с обучением (маленькое контекстое окно и при его увеличении они тупеют), а значит будет точно так же ошибаться и тупить, если спросить его без шпаргалки (много ли обыватель накодит с листочком бумаги и без доступа к интернету?)

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

    Есть несколько проектов, которые представляют из себя полноценную среду разработки (и само собой не такую полнофункциональную как msvc), где все это пытаются реализовать и что то может получается, но результат все еще посредственный

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

    p.s. openrouter, оплата в криптовалюте, все топовые нейронки и не только, универсальный api (совместимый с openai) и т.п.

    p.p.s. в программировании современный ИИ неплохо себя показывает в анализе кода, особенно когда не требуется аналитика глобальная по проекту, а вот конкретный файл, в каком то смысле он понимает что написано, с ним можно 'побеседовать со своим кодом', по задавать вопросы и получить иногда (70% топовые нейронки) правильный ответ.

    Вот тот самый момент с не 100%-тной точностью ломает все адекватные задачи, которые можно было бы ему поручить
    Ответ написан
    Комментировать
  • Как реализованы асинхронные методы c#?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Вот вам перевод (часть первая, а всего там шесть частей) фундаменнтальной статьи по async/await одного из разрабочиков .NET в Microsoft (а именно - Stephen Toub).
    Читайте и просвещайтесь.

    PS Автор вопроса никак не желает считать текст выше ответом на свой вопрос - а зря. Потому что по-другому на форуме на него не ответишь - слишком много букв писать надо. Но сегодня - выходной, так что - попробую.
    И самое главное, что вам следует осознать - что код асинхронного метода, который вы написали, и код машины состояний, в которой он преобразуется (и далее - транслируется в IL и компилируется в команды процессора) - это два разных кода, пусть и эквивалентных.
    Если очень вкратце:
    • компилятор преобразует код асинхронного метода до неузнаваемости, в ту самую "машину состояний": класс, в котором есть метод, ее реализующий, и есть поля для данных, как нужных для работы самой машины состояний (в частности - для хранения состояния), так и для хранения локальных переменных исходного метода (да-да, в стеке они не хранятся);
    • каждый кусок исходного метода - начальный, между двумя await и завершающий - преобразуется в отдельный кусок метода машины состояний, выполняемый, когда выполнение машины состояний возобновляется в определенном состоянии; этот код производит действия, определенные в этом куске метода, и либо меняет состояние на новое значение и переходит к ожиданию (там, где в исходном асинхронном методе написан оператор await), либо завершает выполнение метода машины состояний;
    • для выполнения перехода к ожиданию используется объект awaiter'а, получаемый методом GetAwaiter() операнда операции await;
    • перед переходом к ожиданию проверяется возможно продолжение без ожидания, если это возможно (метод IsCompleted() awaiter'а возвращает true), то ожидания не происходит, а возобновляется выполнение машины состояний уже для нового состояния;
    • запуск ожидания происходит во внешнем относительно асинхронного метода коде - в объекте awaiter'а;
    • и при завершении метода машины состояний, и при запуске ожидания метод машины состояний возвращает управление в код, который вызвал в этот раз метод машины состояний (для одного вызова асинхронного метода вызовов метода машины состояний может быть много, см. дальше);
    • первый возврат из метода машины состояний происходит в вызывающий метод, он возвращает объект задачи, позволяющий отследить в вызывающем методе завершение работы машины состояний ( и тут есть нюанс, связанный с возвращением ValueTask, а не Task);
    • при окончательном (а не при запусе ожидания) выходе из метода машины состояний этот возвращенный объект задачи завершается;
    • после завершения ожидания метод машины состояний вновь вызывается: в типичном случае - в свободном потоке из пула потоков, но возможны варианты (какие - курить тему Synchronization Context); и он продолжает свое выполнение для нового состояния

    Это - максимально урезанное описание работы асинхронного метода.
    Если вы смогли из этого описания понять ответ на ваш первый вопрос - хорошо. Если нет - читайте статьи(ссылка выше), или книги (лично я рекомендую главу про асинхронные меотоды из книги Рихтера "CLR via C#").
    Касательно второго вопроса. Задачи, выполнение которых ожидает асинхронный метод, будут выполняться совершенно параллельно, каждая - в своем потоке из пула, возможно - на разных ядрах/процессорах). А асинхронный метод в это время не будет выполняться совсем: поток в котором он выполнялся, будет дальше выполнять код после его вызова в вызвавшем его методе (или код, возвращий поток в пул, если это был вызов машины состояний после ожидания). А после завершения обеих этих задач выполнение метода машины состояний, в который был преобразован асинхроннный метод, будет возобновлено и задача, которую возвратил асинхронный метод, будет завершена.
    Ответ написан
    Комментировать
  • Как реализовать фарм-бота для игры Rush Royale?

    ZERGeich
    @ZERGeich
    50% задачи вы уже выполнили. Описали задачу почти подробно человеческим языком.
    Теперь берёте и расписываете эту задачу по пунктам - все возможные варианты происходящего на экране и как на каждый из этих вариантов должен реагировать бот.
    После этого берёте и начинаете писать код постепенно закрывая все вышеуказанные варианты.
    В результате - у вас будет бот, который будет вас полностью удовлетворять.
    Ответ написан
    3 комментария
  • Возможно ли точно вычислить степень влияния ИИ в книгах и кино?

    vpetrov
    @vpetrov
    частный SEO-специалист
    LLM - это воплощение усреднения, что применительно к искусству можно охарактеризовать просто как бездарность. Это просто выбор одного из шаблонов. LLM ничего не хочет вам сказать, ей нечего сказать, это имитация речи по заложенным шаблонам.
    Не думаю, что настоящему писателю, режиссеру, художнику, музыканту есть чего опасаться, кроме конечной аудитории и её вкусов.
    Ответ написан
    2 комментария
  • Как разбить сеть на подсети?

    @SunTechnik
    Задача учебная или практическая?
    Какой ёмкости должны получиться сети?
    Сети с адресом 10.1.12.192 /23 не существует, так как биты закрытые маской не равны нулю.
    Адрес 10.1.12.192 /23 принадлежит сети
    10.1.12.0
    Подсеть задаётся маской.
    Бьём текущую сеть на 2:
    10.1.12.0/24
    10.1.13.0/24
    В каждой по 256 адресов.

    Далее одну из них бьём ещё на2. Например первую
    Получаем подсети:
    10.1.12.0/25
    10.1.12.128/25
    10.1.13.0/24
    В первых - по 128 адресов, в третьей - 256 адресов
    Ответ написан
    Комментировать
  • Какие существуют способы взлома аккаунта Telegram?

    @tukreb
    Уже миллион раз говорилось, если у вас защита через СМС - у вас вообще нет защиты или грубо говоря просто открытая дверь.
    Перехват СМС происходит буквально голыми руками, достаточно просто получить доступ к SS7. Что в коррупционных странах делает в любом переулки, и не важно, что ваш телефон в "правильной" стране, SS7 уязвимость распространяется на все страны, лишь с небольшими трудностями (перенаправить ваш номер в соседнюю страну, как будто вы в роуминге, чтобы перехватить смс).
    Поэтому срочно отвязывайте ВСЕ сервисы от СМС, а если нет возможности, просто переходите на другой сервис, где нет СМС, с банками тоже самое.

    Уязвимости уже почти 30 лет и её использую все спец службы и мошенники, все знают, всем пофиг.
    Ответ написан
    22 комментария
  • Почему ВПР не подтягивает нектоторые данные?

    @TheIrishMan
    Добрый день!
    У вас при протягивании формулы смещается диапазон, просто закрепите его таким образом: =VLOOKUP(A9;new!$B$8:$F;5;false) и потом только протягивайте, тогда у вас будут попадать все данные в ВПР (справочно: функция VLOOKUP это ВПР по английски).
    Ответ написан
    5 комментариев
  • Какие азы нужно знать перед тем как начать изучать программирование?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Азы такие.

    1. Уметь читать, желательно еще и писать. А еще если в идеале набирать на клавиатуре не одним пальцем.

    2. Уметь читать и понимать написанное. Как этому научиться - не очень ясно, это в глубинах психологии и воспитания.

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

    4. Много практики. Видяшки и чтение дают теорию, которая мгновенно забывается, если нет практики. Лучше на практике делать как-нибудь, чтобы работало, потом читать книжки и понимать где ты делал не так, но ты уже будешь понимать почему, так как была практика. Это самый важный пункт из всех. Без практики - ничего не получится. Пишешь любые программы, которые приходят в голову. Вывести текст на экран, сделать крестики нолики, усложнить, делать именно маленькие программки для себя. САМЫЙ ВАЖНЫЙ ПУНКТ.

    5. Быть любопытным. Периодически интересоваться как это работает под капотом хотя бы поверхностно, интересоваться терминологией и вкратце историей появления термина. Развивает интуицию и базу.
    Ответ написан
    2 комментария
  • Как выполнять триггер только для активной вкладки, но для открытых вкладок - не выполнять?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Проверяй значение document.visibilityState
    Ответ написан
    Комментировать
  • Как вернуть отображение протокола в новом Chrome?

    @play_to
    Правой кнопкой мышки нажмите на адресной строке и выберите пункт "Всегда показывать URL полностью"

    6644789c699fd782684780.png
    Ответ написан
    Комментировать
  • Можно ли скрыть чаты и запросы в ChatGPT?

    Скрыть нельзя - только удалить. Ибо аккаунт считается как персональный
    Ответ написан
    Комментировать
  • Почему некоторые программы запускаются и обновляются без диалогового окна UAC?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Есть два основных способа:
    - через свой сервис, который соответственно работает с привилегиями localsystem и обновляет что хочет (напр продукты Adobe)
    - через планировщик задач (напр Chrome)
    Нужный сервис/задача создается с запросом UAC при (первой) установке приложения, т.е. однократно.

    "Надежность" UAC - понятие относительное. оно повышает безопасность, да. Вот только проблема в том, что система безопасная на 99% и на 1% небезопасная - это система на 100% уязвимая, и следовательно на 100% небезопасная.
    Ответ написан
    Комментировать