Александр Туниеков

Александр Туниеков

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
08 декабря 2024, 14:25
0
Ок. Но человек не сказал зачем ему это нужно. Может в его работе это очень нужная вещь :-). Я вот удивляюсь, что вы столько времени на форуме сидите. Как будто нечем другим заняться. Если не секрет, в чем ваша мотивация писать здесь столько сообщений? Мне вот нравиться модекс и я с ним могу работать. Здесь узнаю что то новое связанное с модекс. В чем то могу помогать развивать русскую экосистему модекс. И помогая другим помогаю себе. Но вот много времени на форуме не провожу. Ваша мотивация меня озадачивает.
Александр Туниеков
07 декабря 2024, 21:40
0
Может время попросить зарплату повыше? Я на первой работе так получилось что в первый же месяц попросил повышения ЗП. И так получилось, что успешно. Затем так привык просить повышения ЗП, что в итоге меня уволили сказав что слишком много денег на меня тратят :-). Вообщем сейчас и регулярно прощу повысить ЗП. Почти всегда успешно. И стараюсь держать балланс так, чтобы начальство понимало за что мне платит и было согластно с такими расходами :-).
Александр Туниеков
06 декабря 2024, 14:16
0
Я таки не сколько програмист сколько любитель поизобретать :-). Просто программирование с этим не плохо сочетается. У меня куча идей было не реализованных. Потому что времени их реализовывать не было. Я очень рад когда путь от идеи до реализации существенно сокращается :-). Если условный чатгпт в этом помогает это хорошо :-).
Есть конечно опасение, что ИИ вообще меня заменит и мне не начем будет зарабатывать на жизнь. Но во первых, до этого достаточно далеко.
Во вторых, компьютер не может ничего такого что в него не заложили. Например, вспомним условного терминатора. Иногда ИИ выдают что-то типа я ненавижу людей я хочу их уничтожить. Но это ведь не является целью ИИ. Сейчас у ИИ вообще не целей. ИИ просто считает вероятности появления слов в своем предложении. А вероятности слов он берет из обучающей выборки. В литературе противостояние с ИИ популярная тема. И слова ИИ уничтожит людей встречаются чаще, чем слова ИИ поможет людям. Таким образом вероятность таких слов просто велика. Вот ИИ их и вставляет :-). Сейчас ИИ активно используется помогая людям. Примеры помощи попадают в интернет и в обучающею выборку ИИ. И для ИИ будет естественнее говорить как я могу тебе помочь. С течениием времени опасения насчет ИИ скорее всего уйдут.
Третье. У ИИ сейчас нет целей. Кроме тех, что люди записывают в системный промт. ИИ стоит ресурсов. Никто не будет развивать ИИ если это не принесет выгоды. А чтобы быть выгодным ИИ должен приносить кому то пользу или выгоду. И то что ИИ зададут цель уничтожить человечество маловероятно. Если это конечно не параноики военные.
Ладно насчет прямого уничтожения человечества я почти уверен, что ободется :-).
Вопрос не лишит ли ИИ многих людей работы?
Ну какие то проффессии уйдут это скорее всего произойдет. В смысле может не именно профессии, а измениться работа людей. Например, из php програмиста в промт программистов превратятся. С текущими ИИ опасаться потери работы не стоит. ИИ часто ошибается и галлицинирует. Как появится сильный ИИ там не известно, но думаю что есть предпосылки что люди все равно будут нужны. Для целеполагания. В смысле чтоб люди придумывали что делать ИИ. Чем ему заниматься. Все зависит от того как скоро появится сильный ИИ и появиться ли он вообще. И зависит какой путь пройдет человечество до этого времени.
Разве не ужасно, что вы как человек теряете контроль над кодом? Ведь по сути вы просто «верите» что ИИ сделал все правильно. Да в коде из 10 строк это можно проверить, но что если код состоит из 50 000 000 строк?
Уже столкнулся с этим моментом :-). Попросил Cursor сгенерировать чат бота на Vue. Базовый вариант бота он сгенерировал, но когда начал просить сделать скрол к последнему сообщению начались косяки. И разобраться, что он написал сложно. Использует не знакомые мне конструкции, которые я не доконца не понимаю как работают. Скрол я победил. Просто заметил что скролит не на блоке и попросил сделать на блоке. А вот с тем, что поле ввода теряет фокус уже не справился. На Vue не понятно почему вообще фокус теряется.
Ну когда пишешь код в любом случае надо сидеть и разбираться в чем ты накосячил. Думаю без разницы ты ли накосячил или напарник или ИИ. Если ИИ ускоряет процесс программирования, то буду использовать ИИ.
И какой чудак пишет код на 50 000 000 строк не разбивая на меньшие блоки? Я пишу блоками по 1000-2000 строк. И отлаживаю только их.
Александр Туниеков
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 минут. Просто промт долго соображал как написать :-)
Александр Туниеков
03 декабря 2024, 23:11
0
Ну планируется что расчеты будут делать клиенты на сайте. А чтоб они не могли приписать себе любую цену товара считать цену надо на стороне сервера. Так что сам расчет на стороне сервера на php.
Александр Туниеков
29 ноября 2024, 20:36
0
Что-то ответа от Артура нет :-(.
Александр Туниеков
29 ноября 2024, 20:34
0

Еще добавил это. Класс input-parent у нас в верстке нет такого.
Александр Туниеков
27 ноября 2024, 21:57
0

@Артур Шевченко По моему эта строка лишняя. Я ее закомментировал чтоб у меня заработало.
Александр Туниеков
27 ноября 2024, 19:13
0
Вообще можно завести допполе и при сохранении ресурса плагином писать в допполе разбирая pagetitle.
Александр Туниеков
27 ноября 2024, 08:38
0
Таки накосячил в myTpl :-). Надо так
{foreach $ress as $res}
    <p> {$res.id} {$res.surname}</p>
{/foreach}
Александр Туниеков
27 ноября 2024, 08:26
0
Сделаю примерно без проверки кода. Для MODX2.8
[[!pdoSurname?
&parents=`65,20`
&tpl=`myTpl`
]]
$pdo = $modx->getService('pdoFetch');
$pdo->setConfig([
    'parents'=>$parents,
    'limit'=>0,
    'return'=>'data'
]);
$ress = $pdo->run();
foreach($ress as $k=>$res){
    $new_array = explode("br" , $res['pagetitle']);
    $ress[$k]['surname'] = end($new_array);
}
function querySort ($x, $y) {
     return strcasecmp($x['surname'], $y['surname']);
}
usort($ress, 'querySort');
$pdo->getChunk($tpl,['ress'=>$ress]);
myTpl
{foreach $ress as $res}
    <p> {$id} {$surname}</p>
{/foreach}
Код не проверял. Возможно мелкие ошибки. И strcasecmp не знаю понимает ли юникод…
Александр Туниеков
26 ноября 2024, 17:14
0
В vesp долго переезжать. Нету модульности никакой и с авторизацией, в смысле с разграничением прав, там Василий особо не напрягался :-)
Александр Туниеков
26 ноября 2024, 17:11
0
В primeVue в дереве нельзя перемещать узлы. Пробую для дерева другой компонент не из primeVue. И там у меня задумки для дерева. Сделать может и быстрее сделаю, а пока мечусь толи так толи так. И поле загрузки файлов это вообще не файл менеджер. Думаю еще как делать. Толи файл-менеджер как в админке модекс, толи как в msGalery.
Александр Туниеков
25 ноября 2024, 13:39
0
интересно, а не быстрее ли было бы перенести весь сайт с требуемым функционалом на пхп фреймворк…
врядли. gtsAPI 2000 строк. А весь сайт 20 компонентов по 1000-2000 строк
Александр Туниеков
25 ноября 2024, 13:37
0
также, раз используется библиотека primeVue нужно посмотреть, компоненты из этой библиотеки грузятся в приложение все или только те что используются
Какие указал те и грузятся вроде. И ядро primeVue. Ладно это сейчас не интересно. Думаю то что нужно то и грузится.
ну тут скорее проблема в том, что данный подход пытается добавить в изначально устаревший подход разработки с modx чтото новое и удобное, изза этого и выходят трудности о необходимости пересборки, ошибок и тд.
Трудности есть везде. Например в Nuxt модуль Auth еще на стадии бета. А с авторизацией не хочется возится. Вроде и базовая вещь, но правильно спрограмировать сложно. Авторизация, группы MODX вполне устраивают.
Александр Туниеков
25 ноября 2024, 13:24
0
во вью можно делать отложенные импорты компонентов
Понятно думал есть что получше.
Александр Туниеков
25 ноября 2024, 10:27
0
ну возьми тогда htmx или реализуй фронт часть по аналогии с тем как сделали в laravel с их liwere.
Тут как 2 моих претензии к программированию вообще:
1) Сильно много инструментов. Чтобы освоить более менее сложный инструмент, написать пару приложений, набить шишки, нужно от месяца до года. Я вообще не горю желанием пробовать все подряд и долго думаю перед тем как что-то начать использовать. И инструментов так много, что может нужный и есть но об нем я даже и не слышал.
2) В 2023 году, когда решал перейти на vue, о htmx я не слышал. Сейчас когда потратил год, более мение освоил vue, написал АПИ появляется htmx и получается мое gtsAPI уже как бы легаси :-). Не успеешь написать приложение, а оно уже устарело :-).
gtsAPI и PVTables заняло год и то все что хочелось не реализованно. Подозреваю, что написание какого-либо modHTMX займет не меньше времени. На ларе уже реализованно и логичнее писать уже на ларавел просто. Но опять же легаси тянет к модекс. Переписывать на лару тоже год. Директор меня убъет, если я еще год буду все переписывать :-). gtsAPI уже реализованно и в течении года точно его буду использовать вместе с Vue. В сторону htmx, думаю, буду смотреть присматриваться. Если трудозатраты по предварительной оценке могут окупиться, то может сделаю modHTMX, но пока сомнительно. Это должно быть легко сделать чтобы за это браться.
про то что vue медленно отрисовывает данные в браузере, это вообще чтото новое
Vue то работает быстро, но пока не грузишь его тысячами элементов. Подгрузи 10 000 элементов и повиснет и Vue и браузер и API и чистый js(Если на нем писать). Я имею ввиду, что с большим числом элементов надо быть осторожнее.

про размеры бандлов, во первых никто не собирает единым бандлом, а разбивают на чанки, во вторых такого огромного размера бандл не будет если не подрубать на каждый чих стороннюю библиотеку
Тут кстати есть вопрос. А зачем вообще разбивают на чанки? В SPA все равно же все грузиться сразу или я что-то еще не разобрался…
Хотел еще зацепить проблему модульности приложения, но пропустил. Vue собирается в один или несколько чанков, но это в принципе один модуль который требуется для любой части приложения. Как быть если на 1 странице требуется один скрипт, а на другой другой? И хочется не грузить в продакшен монолит, а обновить модуль приложения? В чистом php все просто. 1 php файл 1 страница и для обновления страницы нужно заменить нужный файл. В MODX пишешь компонент и обновляешь в продакшен только его. А как в Vue делать?

rest api modx
Это насмешка, а не АПИ. Все равно на каждый чих писать свои классы расширяя rest api modx. В mmxDatabase, хотя бы, Василий говорил, что для основных таблиц MODX написал классы.
zoomx
В него не вникал. Так то меня феном устраивает, и еще шаблонизатор мне не нужен. Ачто там есть АПИ в первый раз слышу.
Александр Туниеков
25 ноября 2024, 08:00
0
ну тогда groupby и having
«query» принимает все параметры pdoFetch и в нем есть и groupby и having. Пример навскидку:
"query":{
		"class":"modUser",
		"leftJoin":{
			"modUserProfile":{
				"class":"modUserProfile",
				"on":"modUserProfile.internalKey = modUser.id"
			}
		},
		"select":{
			"modUser":"modUser.id",
			"modUserProfile":"modUserProfile.fullname,modUserProfile.email,modUserProfile.phone"
		},
		"where":{
			"modUser.active":1
		},
                "groupby":"modUser.primary_group",
                "having":{
                    "count(*)  > 3"
                },
		"sortby":{
			"modUser.id":"DESC"
		}
	}
Вроде такой запрос должен работать. «count(*) > 3» не уверен, что правильно составил.
+ подгрузка не родных пакетов
«loadModels»
{
        "actions": {
            "read": [],
            "create": [],
            "update": [],
    	    "delete": []
        },
        "loadModels" :"modextra,gtsshop",
...
еще я правильно понимаю что фильтрация и сортировка по умолчанию по всем полям?
Да правильно.

$object->set('password',md5(date('d.m.Y H:i:s')));
как потом этим пользоваться?
Хм. взял пример из Создание CRUD интерфейса вне админки. Не знаю зачем там случайный пароль ставили. Просто повторил на gtsAPI. Можно добавить поле password в таблицу и можно будет ставить пароль. Но прочитать его нельзя. MODX кеш пароля выдаст.
У нас пароли юзеров храняться в текстовом файле у меня. Так нам удобнее и я думал сделать интерфейс отделу кадров, чтоб они могли поставить и прочитать пароль. То есть сохранить его плагином в extended (Лучше редактировать extended, а password менять плагином). Но пока не до этого и директору может не понравиться.
Кстати extended, то есть JSON поле gtsAPI уже может редактировать.
"fields":{
        "extended.pass":{
            "label":"Пароль",
            "type":"text"
        }
    }
Но типа поля password еще нет. Он мне еще не нужен был.
Как использовать плагины, наверно, не очень понятно. Надо описать триггеры. Думал попозже сделать.
Александр Туниеков
25 ноября 2024, 07:19
+1
думаю 100мс на инициализацию бекенда это очень много — что-то не так с хостингом, или что-то очень тяжелое прикручено в плагинах на события onmodxinit или где-то ещё по пути до рендеринга
Как-то пробовал разобраться почему так много, но не разобрался. Может потому, что сервер на винде. Надо будет еще пробовать разобраться. В 500мс время реакции приложения укладывается и это не парит. Но загрузка приложения в 1.62 секунды уже не хорошо. Хотя пользователи не ругаются. 1С, например, 2 минуты грузиться и 2 секунды для них не страшно :-).

HTMX встречал упоминания и читал их, но вникать и пробовать использовать еще не думал. UI-фреймворков для него вроде еще нет и пока для меня бесполезно.

Тоже интересно, для чего реально используешь @Александр Туниеков gtsAPI
Описал в ответе Артуру :-)

Не переписываешь ли потихоньку всю админку на формы VUE? ))
Временами подмывает переписать :-). Но в админке используются формы, попапы, таблицы, дерево и файл-менеджер. Дерево и файл-менеджер мне в работе (в нашей ERP) нужны, но их делать месяц два на каждый и пока все время откладывается.