• Как на сайте лучше разместить раздел вопросов?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Я бы определенно выбрал первый вариант.
    1) Можно грамотно организовать внутреннюю перелинковку, помогая распределению веса страниц, если важно SEO.
    2) Информация должна находится там, где ей положено быть. Соответственно вопрос-ответ должен быть на отдельной странице FAQ, а не на странице самой категории - там должна лишь присутствовать ссылка на нужную страницу раздела FAQ (имхо). На странице категории должен быть только тот контент, который за наименьшее количество действий позволит получить лид, а раздел FAQ на нем, опять же имхо, будет лишь лишней возможностью отвлечь внимание юзера.
    3) Полноценный и хорошо организованный FAQ на сайте, как ни крути, это все таки + к доверию.
    4) Пользовательский опыт и длительность/глубина просмотра - лично у меня, как у юзера, могут возникать сопутствующие вопросы. Условно я из поисковика попал на страницу ЧаВо вашего интертне-магазина по вопросу оплаты заказа, отсюда вытек вопрос по поводу доставки, далее возможности возврата, а потом вообще захотелось узнать о возможности партнерства. Поэтому, если бы FAQ был организован по 2-му способу, я бы скорее запарился искать эту инфу, и возможно покинул бы сайт. Другое дело, когда все ответы находятся в одном разделе и разбиты по категориям - вот это уже удобная навигация, без лишних квестов.
    Ответ написан
    1 комментарий
  • Как семантически верно оформить список статей в категории блога?

    MrDecoy
    @MrDecoy Куратор тега HTML
    Верставший фронтендер
    section должен содержать в себе заголовок 1-2 уровня.
    section представляет собой какой-то блок, объдиняющий по смыслу какую-то информацию.

    Соответственно, я бы отклонил оба варианта.
    Делать внутри article section имеем смысл если их там больше 1.
    Не делать section вообще - значит не дать контекста что это за набор article.

    Я бы предложил вариант:
    main
      section
        заголовок
        article
          заголовок
          описание
          ссылка
        article
          заголовок
          описание
          ссылка
    Ответ написан
    1 комментарий
  • Как спозиционировать изображение внутри блока?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Вам нужно что-то вроде этого
    Ответ написан
    Комментировать
  • Почему Ajax запрос не возвращает данные?

    vabka
    @vabka
    Токсичный шарпист
    Ошибка у тебя в том, что Ajax-запрос выполняется асинхронно.
    Тоесть функция getName вернёт управление в вызывающую функцию ещё до того, как даже будет вызван твой onload.
    + по хорошему onload нужно устанавливать ещё до отправки.
    Это раз.

    А два - return твой возвращает управление в момент вызова onload, а по тому просто некому будет на той стороне прочитать полученные данные.

    Решения два:
    1. Использовать промисы. Например так:
    function getName(user_id) {
        return new Promise(function(resolve) {
            // data
            var data = {}
            data.user_id = user_id
            data = JSON.stringify(data)
    
            // send
            const request = new XMLHttpRequest();
            request.open("POST", "/test-ajax/");
            request.send(data);
            request.onload = function() {
                var name = JSON.parse(this.response)
                resolve(name);
            }
        });
    }
    
    // Дальше работаем через then
    getName(user_id).then(data=>console.log(data));
    
    // Или async/await
    const name = await getName(user_id);

    В этом примере мы сразу возвращаем объект-промис, который будет завершён внутри onload. А дальше можно с ним работать через async-await или then с коллбэком.

    2. Использовать коллбэки (по старинке):
    function getName(user_id, callback) {
    
        // data
        var data = {}
        data.user_id = user_id
        data = JSON.stringify(data)
    
        // send
        const request = new XMLHttpRequest();
        request.open("POST", "/test-ajax/");
        request.send(data);
    
        // get
        request.onload = function() {
            var name = JSON.parse(this.response)
            callback(name)
        }
    }
    
    var onNameLoaded = function(name) {
        console.log(name)
    };
    getName(user_id, onNameLoaded);

    В этом примере мы передаём в функцию getName другую функцию, которая должна быть вызвана после загрузки данных.

    3. Использовать fetch и async/await - мы же в 2022 году живём. (@Mi11er)
    async function getName(userId) {
        const response = await fetch("/test-ajax/", {
            method: "POST",
            body: JSON.stringify({"user_id": userId})
        })
        return await response.json();
    }
    
    const name = await getName(userId);
    Ответ написан
    8 комментариев
  • «Семантические» HTML5 элементы — это аттавизм?

    MrDecoy
    @MrDecoy Куратор тега HTML
    Верставший фронтендер
    Не всё так радужно, как задумывалось, но смысл в их использовании есть.
    От каких то тэгов больше - от каких то меньше.
    Но если что-то можно сделать не прилагая почти никаких усилий и получить от этого пользу, то почему этого делать не стоит?

    https://habr.com/ru/company/htmlacademy/blog/546500/

    Основных поинтов использования семантики 3.
    1) Использование подходящих элементов делает их использование удобнее. Несколько раз встречал когда ссылки делали дивами с js поверх. Нет возможности нажать на них колёсиком чтобы открылаьс в новой вкладке или правой кнопкой с соответствующем ссылке контекстным меню. Это отвратительно неудобно.
    2) это помощь людям с ограниченными возможностями для понимания контекста происходящего на экране. Наглядный пример это ссылки внутри тэга nav. Можно побаловаться со скрин ридером и будет понятно о чём речь.
    Если коротко: ссылки в div будут озвучены как: *ссылка*.
    Ссылки в nav: "ссылка, навигация"
    https://vc.ru/promo/132280-kak-zvuchat-sayty-nezry...
    https://www.youtube.com/watch?v=RQiN1Hhrxu0
    3) Помощь поисковым ботам понимать контекст и формировать снипеты в поисковой выдаче. Пример есть в статье выше.
    https://siteclinic.ru/blog/technical-aspects/html5...

    с какой-либо из «сторон дела»: пользователя, верстки, программирования, поисковых систем?

    1) Про пользователей выше
    2) Про вёрстку - удобнее читать
    3) Про программирование - использование верных тэгов соответствующим образом влияет на работу с этими элементами в JS либо избавляет от необходимости в JS в принципе.
    4) Про поисковые системы выше.
    Ответ написан
    11 комментариев
  • Какие материалы посоветуете для изучения PostgreSQL?

    iMedved2009
    @iMedved2009
    Не люблю людей
    У PostgresPro вагон видео на ютубе
    Ответ написан
    Комментировать
  • Можно ли в фотошопе быстро сгенерировать сразу несколько рамеров одного изображения?

    melpnz
    @melpnz Куратор тега Adobe Photoshop
    UX/UI дизайнер
    Маловато вводных. Но могу предложить 2 решения, которые возможно вам подойдут.

    1. Action
    Через меню Window можете его включить и создать новый, первый раз проделать всё вручную и в конце нажать стоп.
    6308e141b4345781657634.jpeg

    2. Smart Object (скорее подойдёт если у вас все изображения одинаковых размеров и на выходе нужны одинаковые пропорции)
    Закидываем фотку, жмём правкой кнопкой по слою и там "Convert to Smart Object". Далее создаём несколько копий и меняем им размер. Если в одном из смарт объектов заменить фото, то оно заменится во всех.
    Если потребуется их массово выгрузить - выделите нужные слои, нажмите правой кнопкой и выберете пункт "Quick Export as PNG"
    6308e2b162e2a677942723.jpeg

    PS: можно поклеить оба метода, всё зависит от входных данных и результата, который вы хотите получить
    Ответ написан
    Комментировать
  • Чем визуализировать и документировать структуру базы данных?

    @sammolove
    Я нашёл пока только одно решение для построения диаграммы по DDL - это DbSchema - www.dbschema.com/index.html
    Правда по запросу он у меня почему-то не протянул все связи, но там был ещё один вариант - с подключением к БД. Я выполнил этот запрос, по созданию схемы, подключился, и готово! Дальше остаётся только расположить прямоугольники с таблицами так, как вас больше устроит. Есть экспорт в картинки и даже в векторный svg больше подходящий для печати. А чтобы SVG добавить в Word, его нужно открыть Incsckape и сохранить emf или сколь угодно большой с прозрачностью PNG.
    Ответ написан
    3 комментария
  • Как научиться пользоваться электронными валютами?

    @rPman
    К сожалению не существует места, где красиво 'без лишнего мусора и скама' все объяснят.
    Продвинутый пользователь становится таковым не потому что прочитал продвинутые книги, а потому что имеет опыт и понимание (наверное и способность понимать).

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

    Короткий список рекомендаций и замечаний:
    * 99% всего что происходит в криптоэкономике - это скам разной степени наглости, буквально, пускают пыль в глаза, намеренно усложняют конструкции чтобы разобраться было сложно и огромное количество новостного шлака, описывающего весь мусор как нечто заоблочно полезное.
    Отличным примером является - NFT
    это проект децентрализованной торговли иконка+текстовое описание, со встроенной комиссией и инструментарием, участники там даже уже сами не понимают что несут, а крупнейшие централизованные площадки полностью перекрывают те крохи разума и фразы о децентрализации.


    * не путай криптовалюту (например bitcoin, ethereum, tron,...) и проекты, использующие криптовалютные технологии для своей работы (децентрализованная торговля и пулы ликвидности, миллион централизованно управляемых токенов типа USDT/USDC/..., тот же NFT и т.п.)
    Огромное количество проектов утверждают что они децентрализованы, 'потому что на блокчейне', но когда начинаешь копаться, оказывается там столько слабых точек, что за голову хватаешься.

    * В криптоэкономике есть проекты первопроходцы, дающие терминологию, общие принципы, возможности, и подражатели, запущенные на 'других' блокчейнах но с немного не таким функционалом, но при этом продолжающие называться как оригиналы и создающие впечатление что они такие же. Отличный пример - алгомитрические стейблкоины (например SAI бывший DAI, кстати это не первое исполнение,используют ethereum в качестве залога для выдачи монет), благодаря возможности выпускать токены с залогом в основе и получать нужную стоимость назад, у монеты есть механизмы стабилизации курса через трейдерский арбитраж, но очередная монета типа tron usdd называется алгомитрическим токеном но внезапно не имеет механизмов сжигания с получением trx нужной стоимости, предпологая что рыночек порешает... и получается типичная скам пирамида.

    * централизованные биржи это не про криптовалюту, а про регуляцию. Она сейчас дикая, с одной стороны регуятор который умудряется не выдать нормальные адекватные законы по работе в криптоэкономике но что то требующий а с другой биржи, которые ничего не обещают и не гарантируют (не регулируемые) и имеют право в любой момент сделать со своими клиентами все что угодно (например закрыть сделки по невыгодной цене и выкинуть из биржи без объяснения причин, отправив деньги на банковский счет)
    Но биржи - главные маркетмейкеры, они делают ликвидность на пустом спекулятивном рынке (у криптоэкономики почти нет никакого использования кроме спекулятивное, а значит без маркетмейкера на рынке сделок будет ноль и нулевая ликвидность), и являясь главными держателями денег в системе, могут манипулировать рынком как угодно и соответственно 'обкрадывать' клиентов. Банальное знание о том какие клиенты что делают и возможность придержать депозиты (на сутки другие отложить ввод вывод легко) позволяет им с гарантией торговать в плюс.

    * не думай что на этом рынке легко зарабатывать, с другой стороны дикие времена дают дикие возможности, отличный пример - запуск форков биткоин (например bitcoin cash так появился) позволил держателям биткоин на пустом месте заработать порядка 20%+- от монет на своем кошельке, просто продав вышедший форк в тот же день, как он начинал торговаться
    Или к примеру криптопроекты, первым своим клиентам, бывает платят своими цифровыми акциями (т.е. токенами), которые в свою очередь могут торговаться на рынке и иметь стоимость Помню кажется uniswap давал токен который буквально за месяц давал большую стоимость в тысчи баксов просто тем кто торговал на их dex, но про это нужно было вовремя узнать!
    Ответ написан
    Комментировать
  • Какую программу или сервис для проверки индексации страниц сайта посоветуете?

    opium
    @opium
    Просто люблю качественно работать
    А не проще выгрузить список с вебмастера и сравнить со списком страниц, делается в целом в Экселе быстренько
    Ответ написан
    1 комментарий
  • Где правильнее в БД разместить статусы заказа?

    lenk0belk0
    @lenk0belk0
    программироваю
    В этой ситуации видимо лучше хранить статусы заказов в отдельной таблице.

    Есть таблица заказов order(id).
    Есть таблица пользователей user(id)
    Есть таблица статусов status(id)
    Есть таблица статусов order_status(id(?), order_id(order.id), status_id(status.id), assignee_id(user.id), created_at)
    Таким образом будет известно: какой текущий статус у заказа, кто в данный момент занимается заказом, можно будет проследить историю изменений.
    Ответ написан
    2 комментария
  • Как объединить данные из разных таблиц в одну таблицу?

    @SilentBird
    Привет. Решал такие задачи по работе, используя Excel 2007. Файл с образцом решения - по ссылке ниже. Для наглядности сделал все на одном листе. Если таблицы на разных листах, принцип такой же. Вкратце:
    1. Все таблицы нужно преобразовать в "умные таблицы" Excel. Так не придется следить за размерами этих таблиц.
    2. Учитывая, что таблицы на разных листах, возникнет вопрос, все ли строки вошли в объединяющую таблицу. Чтобы знать это наверняка, я себе делаю "индикатор" возле объединяющей таблицы.
    3. Заполнение данными происходит через контроль количества строк в исходных таблицах и номера строки в объединенной таблице. То есть "если номер текущей строки в объединенной таблице меньше или равен числу строк в первой таблице, то берем из первой таблицы, а иначе берем из второй таблицы".
    4. Номер текущей строки - это формула СТРОКА() минус число строк до этой строки от верха листа. В образце это "СТРОКА()-1", потому что содержимое таблицы начинается со второй строки. За этим нужно следить и корректировать формулы в зависимости от положения таблицы на листе.

    Собственно, файл-образец.
    На всякий случай, то же самое в zip-архиве.
    Надеюсь, помог. Удачи!
    Ответ написан
    2 комментария
  • Лучшее время дня для усвоения / запоминания новой информации — какое оно?

    Griboks
    @Griboks
    Первые 2 утренних часа с перерывом 15 минут.

    Есть целое направление изучения эффективности и продуктивности человека, советую почитать какие-нибудь книги на эту тему.

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

    Vindicar
    @Vindicar
    RTFM!
    Браузер присылает заголовки Accept-Language, также можно полагаться на геолокацию.
    Но это всё должно использоваться только как способ определить язык по умолчанию. Предоставляй пользователю способ сменить язык явно.
    Ответ написан
    Комментировать
  • Как правильно распределить данные по таблицам?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Вот рекомендуемая структура базы данных в таком случае:
    CREATE TABLE statuses (
    	id int primary key auto_increment,
      	title varchar(64)
    );
    
    CREATE TABLE orders (
    	id int primary key auto_increment,
      	created_at datetime default now(),
      	status_id int references statuses(id)
    );

    MySQL fiddle online
    Ответ написан
    Комментировать
  • Зачем таблицам в базах данных многих сайтов задают префикс?

    @Akela_wolf
    Extreme Programmer
    Если сайт размещается на shared хостинге (он же виртуальный хостинг), то на дешевых тарифах часто доступна только одна БД. Либо вторая-третья и т.д. за дополнительную плату. А на сайте иногда требуется разместить несколько приложений, каждое со своим набором таблиц в БД. Тогда, чтобы иметь возможность запихнуть их в одну БД и придумали префиксовать таблицы. Таким образом у CMS они свои, у форума - свои, у гостевой - свои, у фотогалереи - свои и т.д. И даже при совпадении имен, благодаря префиксам, конфликтов не возникает все работает.
    Но это, вообще говоря, от безысходности. Лучше так не делать и все-таки каждому приложению выделять собственную БД.
    Ответ написан
    Комментировать
  • Куда пропадают ответы?

    Во-первых, там удалён не ответ, а комментарий.
    Комментарий удалён потому, что удалён пользователь, его написавший.
    В большинстве случаев пользователя удаляют по его собственному запросу.
    Программа называлась Winsnap.
    Ответ написан
    1 комментарий
  • Как сделать голосовой ввод для формы?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Держите похоже это то что вы хотели
    https://vc.ru/dev/100167-dobavlyaem-golosovoy-pois...
    Ответ написан
    1 комментарий
  • Как сделать голосовой ввод для формы?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Ставишь себе на телефон гугловскую клавиатуру (Gboard, Google Keyboard), и не паришься. Там есть голосовой ввод.
    Как использовать голосовой ввод
    Скрин
    61de6f053aac8614261174.png
    Ответ написан
    1 комментарий