Задать вопрос
  • Как сделать так, чтобы в браузерах код html не показывался в квадратиках?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как распознать кракозябры:
    670d4c201254a086434124.png
    Ответ написан
    3 комментария
  • Как ИИ использовать для написания sql запросов?

    @rPman
    В итоге на один запрос нужно повторить итераций 10.
    если вы при этом доходите до результата, то это чудо.
    spoiler
    Современный ИИ, даже топовый (не тот что вы используете в дешевом чате, а тот что нужно покупать по баксу за промпт, с продвинутыми агентами не в opensource) все еще не общий искусственный интеллект, он бесконечно далек от человеческого, хотя кажется что вот, считанные десятки процентов бенчмарков и все, но нет, человек создает очередной примитивный вопрос и модель садится в лужу... потому что бенчмарки созданы что бы пускать пыль в глаза, реальность гораздо грустнее (но все равно прекрасна, такие возможности уже появились, закачаешься).

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

    В первую очередь нужно собрать в беседе информацию, начальный вопрос у вас должен быть примерно таким
    Помоги составить техническое задание на разработку {$твое задание короткая форма}. Ответственно подойди к сбору необходимой информации для этого, задавай вопросы. Если видишь неоднозначность — перечисли варианты и задай уточняющий вопрос; не додумывай молча..
    {$твое задание в длинной форме}

    Затем проводите беседу в чате (в идеале с помощью инструмента, позволяющего по кнопке дублировать чат в соседнем окне-контексте и там задавать наводящие вопросы, с возможностью вернуться назад, это можно делать и вручную, но обычно неудобно), отвечая на вопросы.
    Почти наверняка, для создания sql запроса, потребуется подробное описание используемой базы данных, и речь идет не только о ddl запросах (кстати не обязательно именно их) но и к примеру об ограничениях, которые накладывает бакэнд и здравый смысл, семантике и жизненного цикла данных. Этой информации нет ни в реляционной модели ни в ЕР... ее не всякий в документацию то закладывает (а точнее всем лень)... но она живет у разработчика в голове и размазана тонким слоем по кодовой базе проекта. Чем опытнее разработчик, тем легче он будет понимать эту информацию в чужих базах (типовые решения одних и тех же проблем), а значит не будет требовать этого знания... не надейтесь что модель сможет так же качественно об этом догадываться, хотя да, она может.

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

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

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

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

    spoiler
    После получения ТЗ, не ленитесь прогнать его повторно через новое чистое контекстное окно с тем же вопросом, модели обучены из кожи вон лезть но найти что-нибудь, к чему придраться,.. такой мозговой штурм полезен 'вам обоим'. Не верьте модели 'на слово', они очень красиво и правдоподобно могут нести чушь. Подойдите творчески к составлению системного промпта, с помощью которого будете составлять и валидировать ТЗ.
    “Найди неоднозначности”
    “Найди противоречия”
    “Составь чеклист корректности”
    “Предложи минимально необходимые уточнения”

    Неплохим советом является - прогнать свое задание через разные нейросети, от разных производителей: google, anthropic, openai, deepseek, grok, kimi/deepseek/qwen/... точно помню были агенты, где модели от разных компаний обсуждали поставленную задачу, не думаю что именно такая форма полезна, но просто задать один и тот же вопрос и посмотреть, вдруг что новое придумают.

    Затем, полученное ТЗ отправляйте топовой модели на разработку. Не экономьте, тут будет всего несколько запросов или даже только один. Не доверяйте модели, перепроверяйте. Вы должны понимать этот ответ, каждую его букву. Только так это не превратится в вайбкодинг с закономерным результатом.
    Ответ написан
    2 комментария
  • Как реализовать хранение денег пользователей на сайте?

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

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

    Ответ написан
    Комментировать
  • Качественный скоростной курс по 1С с реальными задачами и гос. бумажкой, где?

    @Lzelen
    Есть курсы от учебного центра №1 от самой 1С и возможностью получения диплома о профпереподготовке. Периодически стартуют наборы. Учеба онлайн, группа в телеге. Приходят и с нуля, и с опытом для обновления и структуризации знаний.
    https://uc1.1c.ru/course/profraz-ustanovochnyj-vebinar/

    А для "галочки"-это от человека зависит. "Скелет" знаний дают, а "мясо" самому наращивать.
    1С уже не так проста, сообщество хоть прохладно и относится к 1С.
    В этой дорожной карте, кажется все учли на данный момент:
    https://koder.by/files/Dorozhnaya_karta_razrabotch...
    Поэтому после курсов и дальше изучать необходимо по потребностям в работе.

    Сертификация своя есть : сначала 1с Профессионал, а потом, если по разработке, то 1С Специалист. и прочие.
    Сертификация есть не только по разработке.
    Подготовка требуется серьезная, наскоком не получится.
    одна из статей, для начального понимания:
    https://practicum.yandex.ru/blog/kak-proyti-sertif...

    Есть отдельный Подготовка к экзамену 1С:Специалист по платформе, преподает экзаменатор https://uc1.1c.ru/course/podgotovka-k-ekzamenu-1s-...
    Но все равно прорешивать задачи надо из книжки по подготовке к экзамену
    О себе: прохожу курс от уц1.
    Ответ написан
    4 комментария
  • Как можно избежать повторной отправки формы на сайте при переходе назад и вперед мышью?

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

    Серверное решение без JS более надёжно:

    Реализуем паттерн Post/Redirect/Get (PRG) плюс одноразовый уникальный токен.

    - Допустим у нас форма по адресу "/form".
    <form id="myForm" action="/save-data" method="post">
      <!-- ...поля... -->
      <button type="submit">Отправить</button>
    </form>


    - Когда сервер принимает POST запрос по адресу, по которому была отправлена форма "/save-data", он проверяет валидность данных, и ежели всё верно, то не рисует ответ с успешным успехом прямо по этому адресу, а делает серверный редирект 303 на страницу "/success". Т.е. другой адрес. Почему 303? Потому что такой редирект даёт браузеру понять, что на страницу "/save-data" нет смысла возвращаться и хранить его в истории, ведь 303 нам сказал искать контент по другому адресу.
    - Это решает проблему с клавишей "F5" (обновление страницы). К тому же в истории у нас всё нормально без никакого редиректа.
    - Однако кнопка назад может заставить браузер вернуться на страницу с заполненной формой "/form". И повторная отправка сработает.

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

    - При загрузке страницы с формой генерируем этот токен на сервере.
    - Сохраняем токен в сессию
    - Рисуем в HTML формы дополнительное невидимое поле, содержащее этот же токен.

    <form id="myForm" action="/save-data" method="post">
      
      <input type="hidden" name="form_token" value="уникальное_значение_12345">
      
      <!-- ...другие поля... -->
      <button type="submit">Отправить</button>
    </form>


    Когда пользователь нажимает кнопку Отправить правильно, без возвратов назад, происходит следующее:

    1. Сервер получает POST запрос с данными формы на "/save-data"
    2. Забираем значение form_token и сравниваем его с сохранённым ранее токеном из сессии.
    3. Если токены совпадают, то немедленно удаляем его из сессии. Это и есть решение.
    4. Делаем редирект на страницу "/success"
    5. Пользователь видит красивую зелёную галочку и сообщение об успешном успехе. Он доволен.

    Если же он вернётся-таки на страницу формы через кнопку Назад, увидит там всё ту же заполненную форму с данными, и подумает, что он не отправил данные, и попробует снова отправить форму, то произойдёт следующее:

    1. Сервер получает POST запрос с данными формы на "/save-data"
    2. Забираем значение form_token и сравниваем его с сохранённым ранее токеном из сессии.
    3. Т.к. токены не совпадают (в сессии токена нет, мы его удалили ранее), то делаем редирект на страницу "/error", где сообщаем пользователю, что он уже отправлял эту форму раньше, и всё в порядке, пусть не переживает.
    4. Пользователь видит сообщение и утирает пот со лба. Он доволен.

    Решение только выглядит сложным. На самом деле оно простейшее.

    Очистку данных формы конечно можно делать, очищая поля формы с помощью Javascript. Но... Зачем?
    Но если надо, то обрабатывайте событие 'pageshow'. Проверяйте, ежели браузер действительно загрузил страницу из bfcache, и очищаете форму. Можно еще и кнопку снова активировать, если задизаблили её раньше.

    window.addEventListener('pageshow', function(event) {
      // event.persisted бывает true, когда страница загружается из bfcache
      if (event.persisted) {
        const form = document.getElementById('myForm');
        if (form) {
          form.reset(); // Сбрасываем все поля формы
          const button = form.querySelector('button[type="submit"]');
          button.disabled = false; // Убедимся, что кнопка снова активна
          console.log('Страница восстановлена из кэша. Форма сброшена.');
        }
      }
    });
    Ответ написан
    1 комментарий
  • Регистрация по номеру телефона?

    @knigaman
    Первый запрос = принимаем на сервере номер телефона, генерируем токен (случайная строка длиной, предположим, 64 символа - цифры, буквы большие и маленькие), отправляем его на клиент. Генерируем код доступа, отправляем его смской на телефон. В зависимости от логики можем и не отправлять (если допустим у нас метод для логина а такого юзера еще нет (он еще не зарегистрирован)).

    Второй запрос = отправляем с клиента токен (тот 64 символьный полученный от сервера) и строку с кодом из смс. Проверяем на сервере токен и код из смс, если все ок - пускаем в аккаунт.

    Примечания:
    1) токены и сами попытки входа должны жить определенное количество времени, предположим 5 минут.
    2) попытки ввода кода (неправильные вводы) должны быть ограничены разумным числом (ну допустим 5 попыток)
    3) если можно то лучше код сделать длиннее - хотя бы 6 цифр, а лучше 8 и более.
    4) попытки входа в аккаунт можно ограничить, но тогда будет можно абузить эту "фичу" и блокировать вход чувакам, тут выбираем меньшее из зол исходя из бизнес требований
    5) можно экономить на смсках и доставлять код в последних цифрах номера / голосовой озвучкой, отправлять в вк, ватсап, телеграм, вайбер

    500 айкью примечания для кое какой защиты от слива бюджета:
    1) можно юзать капчу (можно не всегда а когда начинается аномалия по отправке кодов - всплеск количества отправок)
    2) как уже и говорил разделение входа и регистрации
    3) ставим бот защиту от какого нибудь сервиса по защите от ддос/бот атак
    4) иногда можно не отправить код а отправить клиенту респонс что код отправлен, если клиент вводит код - скорее всего это атака. человек же запросит код повторно (потому что он тупо ему не пришел)
    5) иногда можно отправить код не сразу а через предположим, 30 секунд - если ввели код раньше - значит что-то не так
    Ответ написан
    9 комментариев
  • Как изменить кодирование URL ссылок сайта?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Не возьмусь утверждать со 100%-й уверенностью в вашем случае, но проблемы со ссылками на файлы, например, темы могут возникать при неправильном переносе.

    Современный вордпресс уже просто так между хостами лучше не таскать. Рекомендуют плагины наподобие Duplicator и WP All-in-one Migration. Они корректно работают с сериализованными данными в базе, что позволяет избежать ошибок в т.ч. с путями.
    Ответ написан
    Комментировать
  • Как с помощью девтулзов определить что меняет текст HTML элемента?

    @its2easyy
    Если в инспекторе удалить textarea, то можно увидеть что блок с кодом со страницы не пропал. Если это повторить ещё несколько раз, каждый раз тыкая в то место, где визуально находиться элемент, то можно дойти до .react-code-lines где и лежат блоки с текстом. А через поиск они не находятся, потому что они не идут одной непрерывной строкой
    670e7aa26dea8421875672.png
    Ответ написан
    1 комментарий
  • Как обойти ошибку 499 nginx?

    Dreamka
    @Dreamka Автор вопроса
    Web-разработчик.
    Один знакомый сисадмин помог решить проблему:
    fastcgi_ignore_client_abort on

    То, что доктор прописал!
    Ответ написан
    Комментировать
  • Как правильно мержить в main из dev, если там есть незаконченные фичи?

    bingo347
    @bingo347
    Crazy on performance...
    Фича ветки делаем только от актуального main.
    Для проверки мержим фича-ветку в dev, но не удаляем.
    Когда одна или несколько фичей проверены и готовы, то делаем от main релизную ветку и мержим туда все готовые фичи, прогоняем тесты и если всё ок, то мержим релизную вету в main.
    Ну и полезно мержить main в фича ветки, когда main обновился.
    Ответ написан
    Комментировать
  • Существует ли библиотека, которая может помочь строить график производства с ограничениями?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    ага, существует
    microsoft project управление ресурсами

    и как-то, вроде бы и openproject.org есть, и JIRA экосистема есть , и куча SAAS сервисов с претензией есть, а ничего лучше так и не создано. Не, ну в SAP да и 1С чего только настроить нельзя, плеваться только будут не только ПМы а и прогеры...

    я это к тому что при всей простоте кажущейся задачи (ну а что там ? даты ставь, этапы пиши, сдвигай, продвигай, ха-ха) формализовать ее в софт не такая простая задача

    поэтому библиотека... гм...

    не знаю, что Вам подсказать - попробуйте начать с openproject.org (честно -смотрел вскольз одним глазом), возможно, там все и заведется, никто же кроме Вас не знает что Вам нужно и чем можно пренебречь
    Ответ написан
    Комментировать
  • Страницы сайта не попадают в индекс Google несколько месяцев. В чём причина?

    vpetrov
    @vpetrov
    частный SEO-специалист
    Несколько исходных данных:
    • Поисковые системы - это по факту рекламные, коммерческие системы. Им неинтересно уже тратить ресурсы на сбор информации без какой-то выгоды для себя, а затраты там суровые.
    • Для оценки контента они используют вспомогательные сигналы - пользовательские, ссылочные и т.п.

    В общем, чтобы страница попала не просто в топ, а в выдачу вообще - надо эти самые сигналы обеспечить. Любыми средствами: покупка рекламы, привлечение трафика из соцсетей, поведенческие боты (да, это вроде как не одобряется), ссылки с серьёзных доноров.
    Технически - можно попробовать инструментарий типа Google Indexing API. С одной учетки можно загонять в индекс 200 страниц в сутки, процесс пары минут. У Яндекса есть аналог, но там обычно проблем технического плана нету пока.
    Основная проблема: если Гугл так и не увидит ценности страниц для индекса - выбросит, поэтому принудительная индексация не отменяет работы над созданием этих самых сигналов ценности страницы. Ну, и разумеется, надо дорабатывать контент, если есть проблемы. Чисто по заветам Елены Першиной ("делайте свой сайт лучше").
    Ответ написан
    1 комментарий
  • Как справляться с зависимыми задачами?

    @d-stream
    Готовые решения - не подаю, но...
    Возможно это вначале покажется чутка избыточным, но по размышлению - нет:

    master == прод
    dev == ветка стабильной разработки, где живут более-менее целостные фичи
    feature_xx == опять же целостная, самостоятельная фича, привносящая осмысленный функционал и состоящая возможно из множества задач

    фичи отращиваются и возвращаются в ветку dev и их можно даже на уровне ветки протестировать
    в какой-то момент от ветки dev отращивается ветка release (по-сути релиз-кандидат) и потом по выпуску (релизу) вливается в master и dev
    go to 1

    при таком подходе в dev живёт достаточно стабильное решение, а ветках feature - конкретные фичи, которые к моменту влития в dev - в общем-то тоже стабильны и функциональны.

    ну и собственно релизный цикл получает некую "асинхронность" относительно цикла разработки:
    - захотел релиз-менеджер к юбилею фирмы выпустить релиз - пожалуйста - в dev есть пачка фич
    - накопилось осмысленное кол-во фич - вперёд в релиз
    - оттестирована конкретная ожидаемая фича - в релиз (ну и попутно менее значимые)

    сорри за слегка вольный пересказ по-сути большинства моделей ветвления гита, гитлаба, атлассиана и др.)
    Ответ написан
    Комментировать
  • Для каких проектов использовать CMS а для каких писать свою админ панель на yii2 or laravel?

    Adamos
    @Adamos
    Альтернативный взгляд - со стороны владельца проекта, две крайности.
    Если проект делается за месяц, отдается заказчику и разработчик умывает руки - логично использовать CMS, ведь потом с ним разбираться другим людям, и обновления платформы желательно иметь без необходимости их регулярно заказывать.
    Если проект держится на разработчике и в ближайшие годы будет именно им поддерживаться и развиваться - можно и фреймворк...
    Ответ написан
    9 комментариев
  • Как сделать прозрачность текста по краям?

    @GeKskill
    Это не прозрачность, а градиенты ( от белого к прозрачному) на псевдоэлементах before, after
    Ответ написан
    Комментировать
  • Почему именно так рассчитывается в данном случае ширина элемента?

    szQocks
    @szQocks
    У флекс элементов по умолчанию стоит flex-shrink: 1; - то есть они имеют свойство сжиматься
    Твой блок с текстом - сжимает блок с картинкой, так как блок с текстом занимает больше 50% ширины от родителя когда текста много, если бы в блоке с текстом было бы например 1 слово , то можно было увидеть что 50% ширина блока с картинкой работает от родителя

    если задать блоку с картинкой flex-shrink: 0, то проблема решится
    Ответ написан
    1 комментарий
  • Как найти работу со сложными и комплексными проектами если нету опыта работы в таких проектах?

    Viji
    @Viji
    DevOps Engineer
    На самом деле отсутсвие комплексных и сложных проектов, это конечно проблема, но до определенной степени их можно делать самому, смотреть видаки по архитектуре и system design, купить курс на яндексе (там более менее ничего), купить курс по system design, зайти в сложный опенсоурс проект, прокачать английский до уровня IELTS 7, чтобы на собеседовании при отсутствии опыта можно бьло хоть английским взять - в некоторых компаниях по крайней мере. Сдать экзамен CKAD или CKA.

    А по ИБ - сдай экзамены Certified Ethical Hacker CEH и CISSP (не смотрел правда можно ли еще в России) и работу найдешь !

    p.s. ник еще сменить надо )

    в общем можно сделать много.

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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    У большинства программистов первое рабочее место - это унылая маленькая компания с примитивными технологиями и простыми задачами. Следующая работа немного лучше. Следующая ещё лучше. И так пока не заберëшься на максимально доступную тебе высоту. Потолок и скорость развития у всех разные, зависят в основном от того, на сколько сильно стараешься. Некоторые так никогда и не выбираются из эникейщиков и крутильщиков cms'ок. Немало тех, кто выбирается лет десять.
    Ответ написан
    Комментировать
  • Есть ли смысл делать анимацию без JS?

    neuotq
    @neuotq
    Прокрастинация
    Анимация = анимации рознь.

    Конкретный ответ со списком вы тут не увидите, это будет большая статья, со множественными "а вот тут", "но здесь" просто потому что многое зависит от контекста, задач, планирование.
    Главные рекомендации это не делать на js то, что отлично реализуется с помощью css. Этим к сожалению часто болеют многие фронтендеры, особенно из тех кто принципиально не любит вёрстку. Банальные примеры некоторые виды трансформаций объектов при булевых сменах какого параметра(условно навел/убрал наведения, вкл-выкл и тп).

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

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

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