Всего 123 994 комментария

Александр Туниеков
06 декабря 2024, 14:16
0
Я таки не сколько програмист сколько любитель поизобретать :-). Просто программирование с этим не плохо сочетается. У меня куча идей было не реализованных. Потому что времени их реализовывать не было. Я очень рад когда путь от идеи до реализации существенно сокращается :-). Если условный чатгпт в этом помогает это хорошо :-).
Есть конечно опасение, что ИИ вообще меня заменит и мне не начем будет зарабатывать на жизнь. Но во первых, до этого достаточно далеко.
Во вторых, компьютер не может ничего такого что в него не заложили. Например, вспомним условного терминатора. Иногда ИИ выдают что-то типа я ненавижу людей я хочу их уничтожить. Но это ведь не является целью ИИ. Сейчас у ИИ вообще не целей. ИИ просто считает вероятности появления слов в своем предложении. А вероятности слов он берет из обучающей выборки. В литературе противостояние с ИИ популярная тема. И слова ИИ уничтожит людей встречаются чаще, чем слова ИИ поможет людям. Таким образом вероятность таких слов просто велика. Вот ИИ их и вставляет :-). Сейчас ИИ активно используется помогая людям. Примеры помощи попадают в интернет и в обучающею выборку ИИ. И для ИИ будет естественнее говорить как я могу тебе помочь. С течениием времени опасения насчет ИИ скорее всего уйдут.
Третье. У ИИ сейчас нет целей. Кроме тех, что люди записывают в системный промт. ИИ стоит ресурсов. Никто не будет развивать ИИ если это не принесет выгоды. А чтобы быть выгодным ИИ должен приносить кому то пользу или выгоду. И то что ИИ зададут цель уничтожить человечество маловероятно. Если это конечно не параноики военные.
Ладно насчет прямого уничтожения человечества я почти уверен, что ободется :-).
Вопрос не лишит ли ИИ многих людей работы?
Ну какие то проффессии уйдут это скорее всего произойдет. В смысле может не именно профессии, а измениться работа людей. Например, из php програмиста в промт программистов превратятся. С текущими ИИ опасаться потери работы не стоит. ИИ часто ошибается и галлицинирует. Как появится сильный ИИ там не известно, но думаю что есть предпосылки что люди все равно будут нужны. Для целеполагания. В смысле чтоб люди придумывали что делать ИИ. Чем ему заниматься. Все зависит от того как скоро появится сильный ИИ и появиться ли он вообще. И зависит какой путь пройдет человечество до этого времени.
Разве не ужасно, что вы как человек теряете контроль над кодом? Ведь по сути вы просто «верите» что ИИ сделал все правильно. Да в коде из 10 строк это можно проверить, но что если код состоит из 50 000 000 строк?
Уже столкнулся с этим моментом :-). Попросил Cursor сгенерировать чат бота на Vue. Базовый вариант бота он сгенерировал, но когда начал просить сделать скрол к последнему сообщению начались косяки. И разобраться, что он написал сложно. Использует не знакомые мне конструкции, которые я не доконца не понимаю как работают. Скрол я победил. Просто заметил что скролит не на блоке и попросил сделать на блоке. А вот с тем, что поле ввода теряет фокус уже не справился. На Vue не понятно почему вообще фокус теряется.
Ну когда пишешь код в любом случае надо сидеть и разбираться в чем ты накосячил. Думаю без разницы ты ли накосячил или напарник или ИИ. Если ИИ ускоряет процесс программирования, то буду использовать ИИ.
И какой чудак пишет код на 50 000 000 строк не разбивая на меньшие блоки? Я пишу блоками по 1000-2000 строк. И отлаживаю только их.
cronAbs
06 декабря 2024, 14:06
0
Здравствуйте, хотели опробовать, но при установке пакета ошибка:
[CronTabManager] Не удалось найти политику доступа CronTabManagerPolicy!

При этом пакет успешно установлен:


Печалька. Политика доступа не создалась.

MODX Revolution 2.8.3-pl
gloobus
06 декабря 2024, 12:12
0
В общем пришел пока к такому варианту:

[
  {
    "fields": [
      {
        "field": "images",
        "caption": "Галерея изображений",
        "description": "Добавьте несколько изображений",
        "inputTV": "migx_projectImages"
      },  
      {
        "field": "images_list",
        "caption": "Список изображений в разметке колонок",
        "inputTVtype": "hidden"
      }
    ]
  }
]

[{
  "header": "Изображения",
  "dataIndex": "images_list",
  "sortable": "false",
  "renderer": "this.renderChunk",
  "renderchunktpl":"[[getImageList? &value=`[[+images]]` &tpl=`tpl.ImagesList` &where=`{\"visible\":\"1\"}`]]"
}]
Сам чанк tpl.ImagesList содержит в себе:
<img src="/connectors/system/phpthumb.php?h=80&f=png&src=[[+image]]&source=2">
По данной ссылке возвращается уменьшенное изображение.
[[+image]] — путь к картинке из migx_projectImages
source=2 — источник данных который используется для выбора в дочернем migx_projectImages, его просто прибил статично, он у меня один и вряд ли поменяется.

В результате в родительском migx получаю список картинок, единственно НО — их количество ограничено шириной колонки, они скрываются за "...".
Вот теперь пытаюсь понять, как для определенной колонки migx отобразить всё содержимое?
Дмитрий
06 декабря 2024, 10:18
+1
наверно уже не актуально, но может кому так пригодиться… необходимо в assets/components/msorderfiles/js/web/default.js в строке
createImageThumbnails: false,
заменить на
createImageThumbnails: true,
Алексей Соин
05 декабря 2024, 20:16
+1
абсолютно не вызывает опасения, ИИ хорош как помощник в рутинных задачах и в получении готового кода который аналогично можно самостоятельно получить прочитав документацию, если задача стоит чуть сложнее рутинного кода, то все ИИ выдают полнейший бред.

А вот если все задачи которые решает разработчик способен заменить условный чатгпт, то вот тут уже стоит задуматься о полноценности и о том, что возможно пришла пора углубиться в своих знаниях или сменить работу.
Андрей Шевяков
05 декабря 2024, 19:45
+1
Вот так вроде работает, попробуйте

'where' => '{"Data.image:!=":""}',

Пример с сайта на Fenom:
{'!msProducts' | snippet : [
                    'parents' => $_modx->resource.parent,
                    'resources' => -$_modx->resource.id,
                    'sortby' => 'publishedon',
                    'includeThumbs' => 'medium',
                    'where' => '{"Data.image:!=":""}',
                    'tpl' => 'tpl.msProducts.row.custom',
                ] ?: 'Похожих товаров нет.'}
Александр Мельник
05 декабря 2024, 11:56
0
Без тени осуждения, просто видя ваше восхищение и понимая, как сильно оно отличается от моих чувств. я не могу не спросить.
А вы после этого все еще чувствуете себя программистом? Разве это не противно, что вместо написания кода мы думаем как правильно составить запрос. Разве не возникает чувство собственной неполноценности? Разве не ужасно, что вы как человек теряете контроль над кодом? Ведь по сути вы просто «верите» что ИИ сделал все правильно. Да в коде из 10 строк это можно проверить, но что если код состоит из 50 000 000 строк?

Просто интересно, что у вас это вызывает такой восторг, в то время как у меня почти панический ужас. Но все мы разные.
Наумов Алексей
05 декабря 2024, 10:51
0
А толку то, в репозитории только 1 пакет с одним именем может лежать. Нет же выбора загрузки версии. Точнее вроде как есть, но никто не будет следить за этим. Да и версии компонентов от разных авторов могут развиваться в разном направлении.

Проблема в том, что авторы бросают свои дополнения и перестают развивать. И даже присланные PR не внедряют. Вот Sheduler на gitjhub висит с последним обновлением 2 года назад, и что с ним делать, если автору пофигу?..
Дмитрий
05 декабря 2024, 10:12
+1
Денис, напиши пожалуйста, что не использовать на файлы js, а то будет как у меня, 4 часа времени восстанавливать построчно, а так работает без нареканий, спасибо
Максим
05 декабря 2024, 09:01
0
Не только цена может измениться, но и товара уже может не быть в наличии.
Ruslan
04 декабря 2024, 23:10
0
по моему путь не верный у вас в «snippet.sendcode.php», должен быть такой наверное?
require_once MODX_CORE_PATH . 'components/sendit/services/identification.class.php';
Ruslan
04 декабря 2024, 22:55
0
Еще нашел такой параметр «pdotools_elements_path» со значением "{core_path}elements/"
Почему-то он ругался на этот путь.
Создал всё там «elements/snippets/smsauth/snippet.sendcode.php»
И проде как другие ошибки уже показывает.

Или я вообще не туда смотрю? )))

а еще заметил что нету файла по этому пути
require_once MODX_CORE_PATH . 'components/sendit/model/sendit/identification.class.php';
Это норма? Мне самому его создавать?
Ruslan
04 декабря 2024, 22:47
0
Если вы про пресет «sendcode» со снипетом
'snippet' => '@FILE snippets/smsauth/snippet.sendcode.php',
то он существует.

не понимаю где я не правильный путь указал.
Можете подсказать?
Ruslan
04 декабря 2024, 22:29
0
Добрый вечер.
Попробывал сделать по вашей рекомендации, но у меня в логах ошибок выдаёт такое.

ERROR	/var/www/............/core/components/sendit/services/sendit.class.php	234
PHP warning: include(/var/www/............../core/custom_auth_hooks/smsauth): failed to open stream: Нет такого устройства
ERROR	/var/www/............./core/components/sendit/services/sendit.class.php	234
PHP warning: include(): Failed opening '/var/www/............/core/custom_auth_hooks/smsauth' for inclusion (include_path='.:')
ERROR	/var/www/............/core/components/pdotools/model/pdotools/pdotools.class.php	875
Could not find the element file "core/elements/snippets/smsauth/snippet.sendcode.php".
ERROR	/var/www/........../core/components/pdotools/model/pdotools/pdotools.class.php	345
[pdoTools] Could not load snippet "@FILE snippets/smsauth/snippet.sendcode.php"
в чём может быть проблема?
Александр Туниеков
04 декабря 2024, 22:19
0
Из-за сложной структуры extJS оказалось, что нужно написать бессмысленно много PHP кода. Когда счет новых процессоров пошел на второй десяток — пришлось остановиться
Вообще конечно когда классные процессоры выпустили для MODX это было думаю круто. Наверно сократило кол-во кода. Наумкин помню ими восторгался. Но все равно это для меня оказалось не хорошим решением. Кода все равно много писать пришлось. Для getTables я CRUD делал в одном файле. Это сократило кол-во контроллеров php с 5-7 на таблицу на 1 контроллер общий для всех таблиц.
Можно попробовать процессоры create, getlist, update и т.д. переписать на 1 процессор на таблицу для extJS. Или может даже 1 процессор на все таблицы. Но здесь не уверен. ExtJs сейчас уже подзабыл.

Либо у нас сейчас есть крутые ИИ и с задачей написать кучу однотипных процессоров Cursor думаю справиться :-). Только промт сообразить как написать :-).
Александр Туниеков
04 декабря 2024, 21:49
0
Блин курсор прям чума :-).
Написал промт
Теперь выбери специфичные для организации ВК24 данные. Запиши их в фай импорта системных настроек для MODX2 _build\configs\settings.js в нужном формате. В gsdoc.class.php добавь получение настроек и передачу их в getChunk. В чанке замени данные плейсхолдерами.
Прикрепил файлы.
Потом
Еще добавь наастройку для Директор ООО «ВК24». ООО «ВК24» company_short_name. идобавь настройки для логотипов и печати
И потом просто aply, aply и aply :-). И все работает.
Так бы делал час, а сделал за 20 минут. Просто промт долго соображал как написать :-)
Артур Шевченко
04 декабря 2024, 20:49
0
Во-первых, radio это переключатель, это означает, что он должен иметь какое-то значение изначально, соответственно и валидация не нужна. Во-вторых, если выше сказанное противоречит твоему мировосприятию, попробуй валидатор checkbox.
Наумов Алексей
04 декабря 2024, 12:34
+1
Из дополнений к VS Code я иногда юзаю Amazon Q, он умеет подсказывать код в процессе написания, иногда прям весьма и весьма хорошо себе.
К примеру пишешь метод updateStatus(MyClass $class, string $status), так он в теле метода предлагает все сделать — установить статус, сохранить объект, вернуть его, в общем время может экономить.

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