LINUX.ORG.RU
ФорумTalks

Какой софт бы вы хотели создать с помощью ИИ?

 , ,


0

1

Потренируем фантазию. Представим, что через год или два ИИ достигает такого уровня, что может писать корректные и читаемые программы на любом существующем высокоуровневом языке в 10 тысяч или даже в 50000 строк за сравнительно небольшие деньги, скажем за 100 долларов. Предположим, что это сумма подписки на ИИ сервис для программистов на месяц, а создание программы в 50000 строк по вашей подробной спецификации занимает одни сутки. То есть у вас будет 30 итераций с корректировкой ТЗ. Естественно, в проекте могут быть задействованы любые опенсорс библиотеки.

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


Я знаю правильный ответ. Для начала я написал бы графику нормальную под линуксы: альтернативу иксам и тому второму как там его новичку.

Ось бы переписывать не стал, а вот графику вполне. Затем все сопутствующее.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

А документации несортированной на полторы тысячи листов.

Бывает.

Причем нюансов использования нет - все в куче.

И такое встречается.

Я вот эти нюансы использования месяц искал на практике.

Но надеюсь нашли?

anc ★★★★★
()
Ответ на: комментарий от anc

Вначале я создал сложнейшую функцию на десятки строк, которая высчитывала расположение иконки в зависимости от верхней части экана, нижней, расположения карты от экрана.. Было весело на самом деле. От разрешеня экрана, от настроек клиента. Все даже работало.

А потом оказалось, что все это делается одной командой. Которой в докуменатции, впрочем, нету. Эти особенности просто нужно было знать. Понимаешь? Не прочитать в документации, а знать без нее…

Ладно, перехвалил. Сейчас попытался сделать это чере ИИ - они нихрена не знают. Пытаются идти моим путем. Ну, может не настолько криво, но всеравно особенностей апи не знают нужных.

Видимо на эти особенности нужно наткнуться случайно однажды.

Но всеравно многое они мне подсказали интересное, чего я не знал. Пользоваться удобно.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Видимо на эти особенности нужно наткнуться случайно однажды.

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

anc ★★★★★
()
Ответ на: комментарий от anc

К сожалению, в данном случае никакая чуйка не поможет. Я узнал только от профессионала, который много лет занимался этим всем.

Там хитрая функция апи, вообще не та, что написана в документации. Правда здорово? Одна для общей обработки, а вторая для правильной.

Короче, в любом деле нужен опыт. Последовательный, набранный опыт работы со всем этим говном. Со всеми его нюансами. С этим опытом удобно и документацию читать и пользоваться ИИ.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Там хитрая функция апи, вообще не та, что написана в документации. Правда здорово? Одна для общей обработки, а вторая для правильной.

Вот я и сказал про чуйку, когда реально чуешь, что должно быть что-то подобное. Почти в любой системе найдется, что-то не документированное, а причин тому может быть масса, начиная от забыли.

anc ★★★★★
()
Ответ на: комментарий от anc

Просто это апи 2007 года. С тех пор все сто раз перепиливалось, дополнялось, делалось лучше. Появлялись новые методы, функции.

А пилить надо под ту самую версию. Кривую и какую есть. И вот надо найти как сделать. Затем найти работает ли на нужной версии. Затем разобраться с нюансами версии. Затем с нюансами языка под ту версию. И все это надо знать.

ИИ тут нереально помогает все ускорить.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

ИИ тут нереально помогает все ускорить.

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

anc ★★★★★
()
Ответ на: комментарий от anc

А нюансов гораздо больше. Это не официальный сервер. На нем апи вообще свое. Что то переделано, что то забанено. Что то работает вообще не так, как следует.

Нужно изучать, искать рабочее - этих нюансов ИИ вообще знать не может.

Нужно отслеживать утечки памяти. Нужно следить за переполнениями различными из за багов архитектуры.

А переходишь на другой сервер - там свои нюансы! Уже дважды был такой опыт. И это на ОДНОЙ и той же версии игры.

И вот казалось бы, программирование это в целом не сложно. Ну правда - пара десятков концепций. Ну что тут изучать, а? А итоге их сочетания приводят к полной жопе.

И тут ИИ восхищают еще больше. Они в этом МОГУТ работать. Иногда кривовато, но могут.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Ну годно, что оно в таких условиях так.

anc ★★★★★
()
Ответ на: комментарий от quickquest

Это понятно, только это делает не сама клетка/фрактал, а их множество, более того в случае клеток явной дупликацией, изменчивостью, с растяжением по времени. Плюс стоит учесть, что их свойства мы можем наблюдать и оценивать только в виду того, что сами представляем систему более высокоразвитую систему. В общем тут очень много НО для ваших «контрпримеров».

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

AKonia ★★★
()
Ответ на: комментарий от AKonia

это делает не сама клетка/фрактал, а их множество

Демо «режим бога»: «Вначале было слово» ничего не было, и богу было скучно…
А не сотворить ли чего-нибудь, подумал он, и породил из флуктуации вакуума бозон (Хиггса) с охрененной энергией, достаточной для образования пространства-времени, и развития Вселенной по единственному «принципу наименьшего дейстивия» (Гамильтона). Вот тут то и началось преобразование энергии в информацию рекурсивной эволюцией.
Простым атомам и молекулам энергетически выгодно слипаться в сложные биомолекулы, из которых появилась всяческая живность: от вирусов до человеков.

отбор на выживание может ничего не дать

Он даёт самоочистку любой системы от неудачных вариантов. ИИ без отбора на выживание обречён на информационное замусоривание.

оптимизируя на подпространстве не очевидны критерии оптимизации

Агась, но неочевидность не значит отсутствие, как пример парадокс Берксона для ИИ ©.

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

Любые слабые оптимумы могут достигаться за счёт синергетики ©.

quickquest ★★★★★
()
Последнее исправление: quickquest (всего исправлений: 1)

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

Так что вопрос просто не имеет смысла и никакого отношения к фантазии не имеет. Зато имеет самое прямое отношение к введению читателя в заблуждение на предмет возможностей нейросеток.

Если хочется потренировать фантазию, то начать надо с фантазий о том, что все приёмы программирования, объявленные за последние 50 лет «небезопасными», «неправильными», «негодными», «UB» и т.п. внезапно стали весьма популярными, модными и широко распространёнными. После примерно десятка весьма неправдоподобных фантазий на прочие темы о программировании и принципах создания софта можно будет перейти к фантазиям о появлении минимального подобия настоящего ИИ, который теоретически может быть когда-нибудь сможет выдать что-то новое, изобретённое им самим.

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

Жабомакак заменить, или там «программистов на расте» - это оно запросто уже сейчас. А что-то полезное создать - вообще никогда и никак.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

А что принципиально нового можешь создать ты?

Ты даже в одном и том же тексте не смог создать принципиально уникального и повторяешься - плагиатишь сам себя.

А вот «та срань» обновилась в понедельник и теперь понимает многие концепции раст, которые раньше не понимала.

Например двое из четырех успешно прошли тест:

let emp_arr: [i32; 0]; emp_arr = [];
let emp_arr: [i32; 0] = [];
let emp_arr: [0; 0];
let emp_arr = [0u8; 0]; 

//Какими способами может быть задан пустой массив ?
LightDiver ★★★★★
()

Смотрел бы и угорал, как ИИ абьюзят в хвост и гриву: студенты-платники, скрипткиддисы, тролли и остальные дураки.

somemong
()

Какой софт и почему вы бы создали для себя или для Linux сообщества в первую очередь?

Приблуду для кед которая позволяет безболезненно переключать языковую раскладку на уровне приложения, оставляя глобальный уровень. Грубо говоря, в консоли мне нужен английский язык, поставил в настройках «использовать локальную раскладку для этого приложения», переключился на англ в консоли. В дискорде тоже самое для русского. А в браузере нужны оба языка подхватываемые из глобального контекста системы (как сейчас).

Эдакий Nginx для языка в системе. Прокси.

Продолжили бы вы заниматься программированием, если да, то в какой области?

Занялся бы разработкой и моделированием как самих MOE (mixture of experts) ассистентов так и системами проверки их ответов на основе законов логики.

Obezyan
()
Ответ на: комментарий от Obezyan

А почему не сделаешь утилиту для автоматического переключения раскладки при фокусе в нужное окно?

ИИ это в пару запросов сделает уже сейчас.

И я почти уверен, что это уже было в каком то де.. Хмм..

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от LightDiver

А почему не сделаешь утилиту для автоматического переключения раскладки при фокусе в нужное окно?

Лень, у меня есть другие пет проекты которые требуют внимания. А вот такое утилитарно неинтересное как раз походит чтобы взвалить на хрупкие плечи «ИИ».

Obezyan
()

Да этой штуке хотя бы мой нынешний говнокод научиться править. Не доживем мы до такого.

pekmop1024 ★★★★★
()
Ответ на: комментарий от Obezyan

Приблуду для кед которая позволяет безболезненно переключать языковую раскладку на уровне приложения, оставляя глобальный уровень. Грубо говоря, в консоли мне нужен английский язык, поставил в настройках «использовать локальную раскладку для этого приложения», переключился на англ в консоли. В дискорде тоже самое для русского. А в браузере нужны оба языка подхватываемые из глобального контекста системы (как сейчас).

Всё-таки я не понимаю. В кедах есть только «глобальное управление раскладкой»? // я в основном Xfce пользуюсь; из возможных вариантов

  • глобально
  • для окна (мой выбор; мне так удобно)
  • для приложения

Или что-то другое имеется ввиду?

master_0K
()
Ответ на: комментарий от CrX

Если это «типовая» программа, то она уже создана, причём скорее всего в опенсорсе

Согласен.

и переписывать её заново нет никакого смысла.

А вот это не факт! Она вполне может быть создана например в конце двухтысячных и не собираться в нынешнем Дебиане сейчас. Чем тратить время на абсолютно не творческие попытки понять что же ей не нравится - тут бы ИИ натренировать на перенос софта из одной версии линукса в другую. Причем даже обучающий датасет более-менее понятно где взять - как-то скормить ИИ изменения,которые внесли между разными версиями человеки-программисты для того софта которые таки смогли собрать. Скорее всего эти изменения будут достаточно типовыми и натренированный на такой выборке ИИ сможет вносить их сам.

Если уж в линуксе никак не могут избавиться от традиции постоянно с каждой новой версией ломать совместимость - то обойти эту проблему так. Хотя конечно лучше бы поумерить пыл отдельных сторонников «развития», которые эту совместимость и ломают в угоду освоения всяких грантов и получения высоких зарплат за счет эффекта имитации бурной трудовой деятельности.

watchcat382
()
Ответ на: комментарий от windows10

пока ты сформулируешь ИИ ТЗ, что именно ты хочешь от D-bus - попутно выучишь сам D-bus, и ИИ уже окажется не нужен

Придумалась аналогия: научиться копать лопатой и выкопать вручную котлован под здание - очень разные по трудоемкости задачи. Выучить D-bus - нормально и полезно. Вручную наколачивать тонны кода работающие с D-bus это как копать котлован лопатой.

watchcat382
()
Ответ на: комментарий от Obezyan
#!/usr/bin/env python3
import subprocess
import time
import re
import logging

# Настройка логирования
logging.basicConfig(
    filename="kbd.log",
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s",
)

# Таблица соответствия класс окна-раскладка (0 - английская, 1 - русская)
WINDOW_CLASS_LAYOUT_MAP = {
    "firefox": 0,
    "gedit": 1,
    "terminal": 0,
    "AyuGram": None,
    "wow": 1,
}


def switch_layout(layout_index):
    """Простое переключение раскладки по индексу"""
    try:
        subprocess.run(["xkblayout-state", "set", str(layout_index)], check=True)
        logging.info(f"Layout switched to index: {layout_index}")
        return True
    except Exception as e:
        logging.error(f"Failed to switch layout: {e}")
        return False


def get_active_window_class():
    """Получаем класс активного окна"""
    try:
        # Получаем ID активного окна
        result = subprocess.run(
            ["xdotool", "getactivewindow"], capture_output=True, text=True
        )
        window_id = result.stdout.strip()

        # Получаем класс окна
        result = subprocess.run(
            ["xprop", "-id", window_id, "WM_CLASS"], capture_output=True, text=True
        )

        # Парсим вывод
        match = re.search(r'WM_CLASS.*?=.*?"[^"]*",\s*"([^"]*)"', result.stdout)
        if match:
            return match.group(1).lower()
    except Exception as e:
        logging.error(f"Window class error: {e}")
    return None


def main():
    last_window_class = None

    while True:
        try:
            current_class = get_active_window_class()
            if not current_class:
                time.sleep(0.5)
                continue

            if current_class != last_window_class:
                last_window_class = current_class
                logging.info(f"Active window: {current_class}")

                if current_class in WINDOW_CLASS_LAYOUT_MAP:
                    layout_index = WINDOW_CLASS_LAYOUT_MAP[current_class]
                    if layout_index is not None:
                        switch_layout(layout_index)
                        # Дублируем команду для надежности
                        time.sleep(0.1)
                        switch_layout(layout_index)

            time.sleep(0.3)

        except KeyboardInterrupt:
            logging.info("Script stopped")
            break
        except Exception as e:
            logging.error(f"Error: {e}")
            time.sleep(1)


if __name__ == "__main__":
    print("Keyboard layout switcher started")
    main()

С этим можно работать, это можно дорабатывать.

Сами они нихера не умеют. Нужно понимать что делаешь. Несколько часов пытался без подсказок добиться хоть чего то. Только ломают все. Будем ждать и наблюдать.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от LightDiver

Частный дом.

Подтверждаю. Тоже частный дом и тоже примерно такие же текущие расходы.

Родных-близких нет

Давно уже. Ибо я и сам уже старый.

увлечений нет

Есть. Но к примеру покупка паяльной станции или осциллографа раз в N лет никаким боком к текущим расходам не относится. А детали для радиолюбительства на 90% добываются халявно из обломков бытовой электроники.

турпоездок нет

Я и в оплачиваемую командировку дадеко не в каждую согласился бы ехать,а уж на свой счет переться в хрен знает куда из своего дома - категорически нет.

зубов нет

В моем возрасте это нормально.

квартплаты нет?

Нет,ибо частный дом.

А возвращаясь к теме, я недавно писал нечто для микроконтроллера что должно было общаться по I2C с датчиком и совершать некие действия исходя из того что оно там наобщалось. Реализовал это в своем любимом стиле - в виде конечного автомата. Так вот, для эксперимента я попробовал попросить бесплатный ИИ (вот этот https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=1 ) Написать мне «скелет» такого конечного автомата, работающего с приемопередатчиком I2C микроконтроллера Atmega. И оно на удивление написало примерно тоже самое что я. Можно было взять этот код,вставить в него вызовы функций совершающих нужные действия исходя из полученных данных, и использовать.

А приятель-админ успешно пишет и рефакторит свои скрипты на баше которыми он уже настолько заавтоматизировал свои рабочие обязанности что и делать особо нечего стало. Да, по кусочкам,по каким-то мелким функция. К примеру ИИ способен по правильному запросу создавать весьма зубодробительные регулярные выражения и команды для sed. Не всегда с первого раза,бывает требуются уточняющие подсказки, но самому рыть тонны документации чтобы такое написать - явно дольше. К тому же документация это справочник,в ней не описаны лучшие практики как это делать. А вот ИИ их знает. Можно конечно эти практики гуглить,но это опять долго и не факт что хорошее попадётся.

Неудобство только в том,что «длина» чата с вышеупомянутым ИИ весьма ограничена. Поэтому вести с ним долгую совместную работы над чем-то сложным невозможно. Там лимит на число сообщений в пределах одного диалога. Но вот как раз шансы на то что эти ограничения со временем серьезно подвинутся я оцениваю как достаточно высокие.

Вообще,по моим наблюдениям программисты деляться на две больших группы. Одни открывают редкактор с пустым листом и начинают сочинять код с нуля. Другие - ищут всякие примеры чего-то похожего на то что им надо сделать и начинают их переделывать,объединять разные куски в одно,как-то усовершенствовать. Даже если в итоге от исходного кода мало что остается - им чисто психологически удобнее работать так. Можно сказать «опираясь на авторитеты». Это из института и школы идет - в любой самостоятельной работы обязательно должны быть отсылки к авторитетам. И вот в роли такого авторитета вполне подходит ИИ. В поисках примеров как делать свой конечный автомат я ну может десяток страниц кода прочитаю. И не факт что нагуглятся самые лучшие. Даже в фирменных аппнотах от Микрочипа код нередко написан весьма «тупо в лоб» и не красиво. А ИИ в процессе своего обучения просмотрел многие и многие тысячи страниц кода. А так как он штука вероятностная то на выходе в ответ на свой запрос я с большой вероятностью получу именно примеры лучших практик решения своей (или похожей) задачи. ИИ знает как обычно общепринято это делать у настоящих профессиональных программистов,выкладывающих код на тот же гитхаб или еще какие-нибудь не менее авторитетные площадки.

watchcat382
()
Ответ на: комментарий от beastie

Если раньше ругались StackOverflow-Driven-Development

А какая альтернатива? Да, Истинный Профессиональный Программист может открыть редактор с пустым листом и начать сочинять код «из головы»,вообще с нуля. Но всяких задач много,а таких Профессионалов - мало. Поэтому есть много тех кто копирует и подражает Мастерам. Так было во все века и далеко не только в программировании. А при обучении например художников по сей день копирование работ Мастеров является совершенно легитимным педагогическим приемом. Что уж говорить о программистах-любителях (термин образован по аналогии с радиолюбителями). Они чаще всего не имеют базового академического образования в области CS и вся их деятельность строится на творческой переработке кода,написанного Мастерами.

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

watchcat382
()
Ответ на: комментарий от beastie

Но RTFM!

Надеюсь вы понимаете разницу между справочником и учебником. Так вот большинство мануалов это именно справочники. К примеру перечисление сотен функций API с описанием их параметров - не объясняет как же ими надо пользоваться(как это задумали те кто все эти функции писал). Хорошо если получится нагуглить пример и повезет что этот пример окажется хорошим. А ИИ обучался на сотнях если не тысячах примеров. И на правильный запрос выдаст наиболее вероятный,он же наиболее общеупотребительный вариант. Опять же с высокой вероятностью наиболее общеупотребительным окажется правильный вариант.

Да, для самых старых и часто используемых вещей учебники с примерами по их использованию найти реально. Правда перекопать придется много пока найдется ответ на вопрос. Если же требуется что-то мнее известное или более новое - то поиск способов правильного использования этого сильно усложняется. Вот тут ИИ и поможет. Просто [пока] не надо задавать ему сразу слишком сложных вопросов. Слона надо есть по кусочкам тогда всё получается и ИИ очень неплохо помогает. Конечно, Истинный Мастер в помощи не нуждается,так я не про этих весьма малочисленных Мастеров говорю.

watchcat382
()
Ответ на: комментарий от Obezyan

Да, я убил несколько часов, да, я на линуксе 25 лет. Но заметь, раньше я эти команды не знал вон там выше. И питон я знаю чисто поверхностно - пару скриптов написал. Но сделал. Без ИИ я бы искал все это неделю минимум - и не факт что нашел бы. А так - работает. Надо только структуру изменить. Перевести в ООП, доработать как надо. Может язык сменить. Подумать надо.

Например, нужно хоткей добавить, который будет устанавливать текущую расладку по-умолчанию для окна. Нажал и оно будет на нее переключаться. Это удобно. Удобнее, чем жестко задавать. Предлагай как еще улучшить.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от beastie

Там ещё больше перлов

Это говорит только о том,что приславший вам это не умеет пользоваться выбранным инструментом - ИИ в данном случае. А не о том что инструмент плохой. Гвозди микроскопом тоже забивать неудобно но вовсе не потому что микроскоп плохой.

Впрочем - если там в коде «ужас» но код работает,то это всё равно лучше чем полное отсутствие работающего кода для решения данной конкретной задачи. Мне приходилось видеть и «ужасные» и даже смешные в своей ужасности варианты решения прикладных задач. Но так как никто не сделал решение лучше - пользовались тем что было. Типа например программы, двигающей курсор мышки и нажимающий на кнопки в каком-нибудь экзотическом проприетарном виндовом софте. Чтобы не сидеть целый день и не повторять вручную одни и те же движения мыши. Причем судя по тому что эту мышедвигательную программку скачали из интернета - значит ее кто-то вынужденно написал наверно от того что часто сталкивался с подобной ситуацией.

watchcat382
()
Ответ на: комментарий от opcode

поизобретать чего-нибудь

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

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

Кажется даже здесь на ЛОРе уже кто-то экспериментировал - попросил ИИ изобрести чайник в котором вода нагревалась бы без огня или электричества. ИИ предложил греть воду используя тепло выделяющееся в результате механического трения. Дай мне такую задачу (ну просто в качестве головоломки) - хрен бы я придумал чайник с фрикционом :)

Возвращаясь к программированию - оно уже разделилось на довольно много достаточно узких областей. И программисты в разных областях придумывают свои решения. При этом плохо представляют себе что сделано у «соседей». А вот ИИ,обученный на всей кодовой базе, вполне вероятно что найдет какие-то удачные пересечения,предложив использовать решения разработанные для одной области в совсем другой. У программистов-человеков такое уже иногда бывало,но человеки ограничены объемом знаний и могут не видеть то что увидит и подскажет им ИИ.

watchcat382
()
Ответ на: комментарий от vaddd

ИИ тоже будет в первую очередь делать это же, плюс помогать зарабатывать бабло монополистам, а не чем-то вам помогать.

Отчасти я с вами соглашусь,но именно что отчасти. Да, нынешние чат-боты помогают зарабатывать бабло монополистам. Но они уже прямо сейчас помогают обычным людям решать их задачи. Представте себе,в современном мире с компьютерами работают не только программисты. Продвинутые пользователи тоже хотят автоматизировать и оптимизировать свою деятельность. Например написать скрипт на баше, который избавит их от повторения рутинных действий в их работе,вообще никак с программированием не связанной. У них было два варианта - нанять программиста (а их на всех не хватает), или изучать man bash ради написания одного или в лучшем случае нескольких скриптов(а тот man большой и изучать его доооолго). Теперь появился третий вариант - пообщаться с ИИ и попросить его помочь в написании нужного им скрипта. В сочетании с прочтением какой-нибудь короткой вводной статьи про bash - это вполне может быть рабочим решением для их задачи. Потом,когда и если найдется программист согласный этот скрипт улучшить - ну может быть улучшит. А может и так сойдет если нет каких-то жестких требований типа строго обязательной корректности обработки файлов с русскими буквами,спецсимволами и пробелами в именах. Может,и скорее всего окажется, что проще такие имена не использовать и тогда этот самописный скрипт от ИИ спотыкаться не будет.

watchcat382
()
Ответ на: комментарий от kaldeon

непонятно почему считается, что кремниевый мозг имеет какие-то преимущества перед органическим.

Как раз понятно почему - кремниевый мозг способен оперировать неизмеримо большими объемами информации. Даже много читающий человек способен за всю жизнь прочесть лишь около пяти тысяч книг. Отдельный вопрос сколько из этого он запомнит. У кремниевого мозга таких ограничений нет.

watchcat382
()
Ответ на: комментарий от vaddd

годам к 50 наверное каждый второй имеет импланты или иные протезы.

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

watchcat382
()
Ответ на: комментарий от anc

а вы хотите что бы он рефакторингом чужого быдлокода занялся…

При правильном подходе как минимум скрипты на баше уже рефакторит только так.

watchcat382
()
Ответ на: комментарий от anc

Раньше ты учился чему мог по крупицам и делал как полуится.

Вы на других свой опыт не перекладывайте.

Вам наверно просто больше повезло в жизни. А вы поспрашивайте тех кто учился и начинал свой трудовой путь в 90х. Да еще если было надо содержать родителей-стариков(поинтересуйтесь размером пенсии тогда). Так что да - учились прямо «у станка»(компьютера). Как могли и чему могли. И делали как получится.

watchcat382
()
Ответ на: комментарий от watchcat382

Это наследие советской детской принудительной карательной стоматологии,когда к зубному гоняли целыми классами и там каждому сверлили тупым сверлом по несколько зубов без обезболивания.

Бред какой-то ) Ладно бы вы это рассказывали нынешним молодым, они может и поверят, но мне подобную хню не втирайте )

vaddd ☆☆
()
Ответ на: комментарий от LightDiver

А документации несортированной на полторы тысячи листов.

О,это очень мало. Я в 90х видел документацию (на винды) в виде чемодана сидюков. MSDN называлось. Еще и стоило немалых денег.

watchcat382
()
Ответ на: комментарий от LightDiver

Для начала я написал бы графику нормальную под линуксы

А вы (или вообще кто-нибудь) знает какая она должна быть, нормальная? В данном случае проблема не написать,а спроектировать. Альтернативы иксам уже пытались придумать не один раз. Пока что получается весьма так себе. Ну то есть оно даже как-то работало,но недостатков имело не меньше чем иксы,просто других.

watchcat382
()
Ответ на: комментарий от anc

Но бывает срабатывает чуйка многолетней практики

То есть те же вероятностные алгоритмы которые и системы ИИ используют. Только у них объем изученной практики намного больше и лет им для этого надо меньше.

watchcat382
()
Ответ на: комментарий от anc

Это я к тому, что доверяй но проверяй,

Безусловно да. Но и после человека-программиста тоже проверять надо.

после того что подсунул ИИ, надо убедится что оно было описано в оф. ну или хотя бы около оф. доках.

Когда ИИ уже подсунул и знаешь что искать - найти это в доках очень намного проще. Ибо не мной сказано что в правильно заданном вопросе содержится половина ответа. Это даже к обычным поисковикам относится. Когда точно знаешь что гуглить - оно быстро нагугливается. Но правильные ключевые словам могут и довольно часто бывают вообще нифига не очевидными. А по очевидным просто вываливаются тонны рекламного мусора.

watchcat382
()
Ответ на: комментарий от AKonia

человек может в теории очень хорошо упереть ИИ в пределы человека, но сможет ли за них выйти - большой вопрос.

Даже если не выйдет,а будет на уровне не гениального,а среднего человека, но способного трудиться на максимуме производительности 24/7/365 и пережевывать гигантские объемы информации не испытывая усталости и не теряя концентрации - это будет ОЧЕНЬ круто.

Если тут есть люди имеющие отношение к науке - думаю они подтвердят что там основное это каторжный труд по обработке огромных массивов данных от многих сотен,а то и тысяч экспериментов. А вовсе не какие-то гениальные озарения.

watchcat382
()
Ответ на: комментарий от Obezyan
#!/usr/bin/env python3
import subprocess
import time
import re
import logging
import json
import sys
from pathlib import Path


class NSKeyboardLayoutSwitcher:
    def __init__(self, config_file="config.json", log_file="kbd.log"):
        self.script_dir = Path(__file__).parent.absolute()
        self.config_path = self.script_dir / config_file
        self.log_path = self.script_dir / log_file

        logging.basicConfig(
            filename=str(self.log_path),
            level=logging.INFO,
            format="%(asctime)s - %(levelname)s - %(message)s",
        )
        self.logger = logging.getLogger(__name__)
        self.config = self._load_config()
        self.last_window_class = None
        self.last_config_check = 0

    def _load_config(self):
        default_config = {"window_layout_map": {}}
        try:
            if self.config_path.exists():
                with open(self.config_path, "r") as f:
                    return json.load(f)
            return default_config
        except Exception as e:
            self.logger.error(f"Config error: {e}")
            return default_config

    def get_current_config(self):
        now = time.time()
        if now - self.last_config_check > 5:
            self.last_config_check = now
            new_config = self._load_config()
            if new_config != self.config:
                self.logger.info("Config reloaded from disk")
                self.config = new_config
        return self.config

    def save_config(self):
        try:
            with open(self.config_path, "w") as f:
                json.dump(self.config, f, indent=4)
            self.config = self._load_config()
        except Exception as e:
            self.logger.error(f"Failed to save config: {e}")

    def _get_active_window_class(self):
        try:
            window_id = subprocess.run(
                ["xdotool", "getactivewindow"],
                capture_output=True,
                text=True,
                timeout=1,
            ).stdout.strip()

            wm_class = subprocess.run(
                ["xprop", "-id", window_id, "WM_CLASS"],
                capture_output=True,
                text=True,
                timeout=1,
            ).stdout

            match = re.search(r'WM_CLASS.*?"[^"]*",\s*"([^"]*)"', wm_class)
            return match.group(1).lower() if match else None
        except Exception as e:
            self.logger.error(f"Window detection failed: {e}")
            return None

    def _get_current_layout(self):
        try:
            result = subprocess.run(
                ["xkblayout-state", "print", "%s"],
                capture_output=True,
                text=True,
                timeout=1,
            )
            layout = result.stdout.strip().lower()
            return 1 if layout in ("ru", "rus", "russian") else 0
        except Exception as e:
            self.logger.error(f"Layout detection failed: {e}")
            return None

    def add_current_window(self):
        window_class = self._get_active_window_class()
        current_layout = self._get_current_layout()

        if window_class and current_layout is not None:
            self.config["window_layout_map"][window_class] = current_layout
            self.save_config()
            print(f"Added: {window_class} -> {current_layout}")
            self.logger.info(f"Added mapping: {window_class} -> {current_layout}")
            return True
        self.logger.error("Failed to add window")
        return False

    def _switch_layout(self, layout_code):
        try:
            subprocess.run(
                ["xkblayout-state", "set", str(layout_code)], check=True, timeout=1
            )
            self.logger.info(f"Layout switched to: {layout_code}")
            return True
        except subprocess.CalledProcessError as e:
            self.logger.error(f"Failed to switch layout: {e}")
            return False

    def run(self):
        try:
            self.logger.info("Service started")
            while True:
                config = self.get_current_config()
                current_class = self._get_active_window_class()

                if current_class and current_class != self.last_window_class:
                    self.last_window_class = current_class
                    target_layout = config["window_layout_map"].get(current_class)

                    if target_layout is not None:
                        current_layout = self._get_current_layout()
                        if current_layout != target_layout:
                            self._switch_layout(target_layout)

                time.sleep(0.3)

        except KeyboardInterrupt:
            self.logger.info("Service stopped")
            print("\nStopped by user")


if __name__ == "__main__":
    switcher = NSKeyboardLayoutSwitcher()

    if "--add" in sys.argv:
        print("Adding current window...")
        if switcher.add_current_window():
            print("Success! Window added to config.")
        else:
            print("Failed! Check logs for details.")
    else:
        print("Keyboard layout switcher started (Ctrl+C to stop)")
        print(f"Logging to: {switcher.log_path}")
        switcher.run()

Вот смотри, небольшой релизик. Читабельная структура, все в конфигах. Реализована смена по хоткею - вызов скрипта с аргументом -add. Если вызвать с аргументом –add, текущее окно сохранит текущую раскладку.

Предлагай. Чего еще?

LightDiver ★★★★★
()
Ответ на: комментарий от Stanson

А что-то полезное создать - вообще никогда и никак.

Полезное - это совсем не обязательно про какие-то гениальные открытия. Куда чаще надо просто сделать работу. Огромную гору рутинной работы. Допустим по поиску каких-то закономерностей в гигантских массивах данных.

Читал недавно про нарисованные в южноамериканской пустыне огромные рисунки которые видны только с самолёта. Обнаружили их лет сто назад как первые самолёты там летать стали. На фотографии этой местности множество ученых смотрели,да и не только ученых. И вот эту аэрофотосъемку скормили нейросети. И она тут же нашла несколько штук новых рисунков которые сто лет никто не замечал. Понятно что в данном случае полезность чисто научная,но ведь есть и множество других подобных задач когда надо обнаруживать то что человек не замечает. Или просто изображений настолько много что мозг человека устанет намного раньше чем просмотрит даже малую их часть,и дальше уже не увидит ничего.

Вон медики сейчас уже приспособили нейросетку для поиска патологий по рентгеновским снимкам. Если надо проверить десяток-другой человек - то с этой вобщем-то не сложной задачей и врач-человек неплохо справится. А если их тысяч десять или вообще сто? Где столько врачей взять? И кто-то умрёт от не обнаруженного на ранней стадии заболевания. Пока к сожалению такая диагностика мало кому доступна. А ведь сколько жизней могла бы продлить.

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

watchcat382
()
Ответ на: комментарий от Obezyan

безболезненно переключать языковую раскладку

Мне нравится ваша идея с продувинутым переключателем раскладок. Ибо сколько я ни старался заставить разные переключалки запоминать раскладку для окон программ - они всё равно путаются.

Только вот не надо этот переключатель привязывать к таким неудобным штукам как KDE.

watchcat382
()
Ответ на: комментарий от LightDiver

А почему не сделаешь утилиту для автоматического переключения раскладки при фокусе в нужное окно? И я почти уверен, что это уже было в каком то де..

Я две или три штуки пробовал таких которые заявляют возможность запоминать раскладку для каждого окна. Убедился что путаются все. Например xxkb такое обещает. Не работает нормально.

ИИ это в пару запросов сделает уже сейчас.

«В пару запросов» - совершенно точно нет. В результате долгой и кропотливой работы в паре с человеком - вероятно да.

watchcat382
()
Ответ на: комментарий от u5er

Естественно, в проекте могут быть задействованы любые опенсорс библиотеки.

Оно тебе притащит движок Chromium, вставит нескучные обои и скажет «Готово».

KivApple ★★★★★
()
Ответ на: комментарий от watchcat382

Это важно для ИИ как для базы данных. А будет ли он с этими знаниями работать лучше, чем биологический, мне неочевидно. Мне кажется, что не будет, но прям убедительных аргументов у меня нет.

Хотя процесс обучения это, кажется, может ускорить.

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 2)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)