• Как защитить код если предлагают помощь с разработкой?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Стоит ли давать и какие есть варианты защитить код?

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

    iamd503
    @iamd503 Куратор тега CSS
    Верстальщик
    Сталкивался с таким дизайном и дизайнерами, которые такое рисуют - больше с ними не работаем
    Ответ написан
    2 комментария
  • Как называется расширение файла для запуска html на компьютере без браузера?

    @Dolosweb Автор вопроса
    Решено: Это был формат .hta можно писать безбраузерные приложения + поддержка javascript

    HTML Application — приложение Microsoft Windows, являющееся документом HTML, отображаемым в отдельном окне без элементов интерфейса обозревателя таких как строка меню, строка адреса, панель инструментов с помощью движка Microsoft Internet Explorer.
    Ответ написан
    8 комментариев
  • Как быстро осуществлять нейминг css классов для разносортных секций?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Ну тут скорее не вопрос, а крик души, который можно поддержать.

    По делу: да, проблема есть, именовать на больших проектах сложно. Решений нет.
    Вернее, только те, которые вам кажутся "грязными", но других не завезли (и не завезут).
    И те, которые не относятся к разработке (вроде "дать люлей дизайнеру, который не понимает, как это всё работает, и лепит каждый элемент как попало")

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

    Откройте любое масштабное решение - чёрт ногу сломит, не так ли? И требуется немало времени, чтобы вникнуть. Потом вникаешь - и становится проще, но всё равно много нагромождено. А если выпасть из контекста на месяц - потом опять заново вникать. Это норма (картинка с Малышевой).

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

    Совмещение ваших пунктов 1 и 3 в одно - вполне здоровый стиль.
    Если секция, где всё очевидно: about, gallery, text-section, etc.
    Если контент неоднородный - именовать по смыслу (как в 3).

    Единственное что мог бы посоветовать - не смущаться добавлять новые компоненты, задавая им какой-то дополнительный неймспейс (contacts-header, contacts-about), а не пытаться всё упихать в один общий с помощью модификаторов - в поддержке будет проще.

    Просто размышления от прочитанного:
    1. Подходы 2 ("section-1", "section-2") и 4 (атомарщина) - в аду для таких "специалистов" стоит отдельный котёл. Ну вы и сами понимаете. Использовать нужно никогда.
    2. Инкапсуляция имён ничего не даёт в этом отношении, так как это придумано для элементов внутри блока (а с этим и концепция БЭМ хорошо справляется), глобально вам как разработчику всё равно нужно иметь понятное "корневое" название блока.

    Ещё можно поработать со своей головой, возможно, что такой крик души идёт от страха быть осуждённым. Браузеру-то всё равно, вы ему хоть .qwerty123 { ... } скормите - нормально отобразится.
    Понятные имена - для разработчиков, и надо понимать, что ни один толковый разработчик в вас камнем не бросит за то, что вы дали блоку имя .contacts-footer-call-to-action, если у вас этот самый .call-to-action в каждой секции настолько разный, что в один компонент не умещается.
    Иногда помогает, если есть прямой выход на клиента или ЛПР донести, что такой дизайн... Ну не самый лучший для поддержки, и обосновать почему.
    А чисто технически - решений нет, ну, вот такая работа, чё делать.
    Ответ написан
    2 комментария
  • Граница между front-end и back-end?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Всё проще:
    1. Создание UI/UX, разметки, стилизации и логики фронта - это фронт-эндер.
    2. Что значит "логика фронта"? Это JS и архитектура фронт-приложения.
    3. Чтобы правильно создать архитектуру, нужно понимать все возможные интерфейсы взаимодействия с бэком. Затем, оформить их для обмена данными с бэком.
    4. Для этого - нужно знать: какие протоколы обмена данными с сервером предоставляет браузер, какие используются форматы передачи данных, логика функционирования общения с бэком: "запрос-ответ" (в разных режимах: запрос/поток, синхронно/асинхронно, и т.д.) и как их все вместе правильно использовать.

    Вот до этого места - это всё фронт!

    Далее, как только данные ушли из окружения браузера в сеть - начинается бэк.
    Ответ написан
    2 комментария
  • Откуда вы черпаете идеи для дизайна?

    Lillipup
    @Lillipup
    Allons-y, Алонсо!
    Нашел что то интересное -> скопировал и переделал
    Ответ написан
    Комментировать
  • Откуда вы черпаете идеи для дизайна?

    zahmTOD
    @zahmTOD
    Графический дизайнер
    Что вы имеете ввиду под «креативное»? В интерфейсах достаточно жесткие рамки, чтобы страдать фигней, особенно в массовом продукте.

    А так — отдыхайте. Займитесь чем-то ненавязчивым, съездите в другой город, просто сделайте генеральную уборку. Основная задача — не думать о работе.
    Ответ написан
    Комментировать
  • Как перенести вниз описание главной страницы магазина Woocommerce?

    MaximusDem
    @MaximusDem
    Начинающий разработчик
    Для категорий и подкатегорий работает этот хук
    remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 );
    add_action( 'woocommerce_after_shop_loop', 'woocommerce_taxonomy_archive_description', 100 );

    Должно и для главной работать, как и написал WP Panda

    P.S. На самый крайний случай, посмотрите к какому хуку можно привязать свою функцию (https://businessbloomer.com/woocommerce-visual-hoo...
    и напишите нечто вроде
    add_action( 'woocommerce_single_product_summary', 'my_theme_my_action', 41 );
    function my_theme_my_action() { 
      echo '<div class="">Код какой нужно вставить</div>';
    }


    где woocommerce_single_product_summary нужно заменить нужным хуком (данный отвечает за расположение на странице товара, 41 - позиция)

    PPS. А если выводить этот текст надо только на главной, сделайте проверку по ИД страницы
    Ответ написан
    3 комментария
  • Стоит ли интернет-магазину в 2020 году полагаться на SEO-оптимизацию, как на основной источник клиентов?

    @Deepmojo
    Скажу как владелец, в нише товаров для дома. Сам я многолетний сеошник, но правильный подход только комплексный. Причём речь не только о рекламе. Потребность постоянно генерировать идеи и внутри сайта, юзабилити, тесты, глобальная аналитика. Самый дешёвый и точечный канал был есть и будет email. Но точечная триггерная настройка это не быстро и не просто. Прежде всего, это результат понимания, кто ваш клиент. Порой сео трафик дороже, чем контекст, все индивидуально. Без тестов, какие ключи конвертят, к сео с биноклем подходить
    Ответ написан
    Комментировать
  • Где найти единомышленников по веб-разработке?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых Рональд Макдональд прав на все 200%, ни один идейный фрилансер в здравом уме не будет тратить время на бла-бла, при этом еще и взращивая конкурентов. Что касается проф. роста - ищите роадмап развития по своей специализации и по ней развивайтесь, там все как в онлайн-играх - ветки талантов, скилы, единственный бонус - можно качать все ветки сразу (если пупок не развяжется). Ну и все как в играх - пока ты спишь - враг качается )
    Ответ написан
    4 комментария
  • Что должно быть в чек-листе для успешного SEO в Яндексе и Google?

    @granty
    Судя по сленгу, курсы заработка на сайтах вы прошли, но кроме этого сленга, на этих курсах ничего не преподавали.

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

    1. очередной кулинарный сайт не отобьётся никаким SEO

    2. блоги о моде и красоте (и тп) - они давно все перекочевали в ютуб (самипонимаетепочему), а в youtube - своё SEO и принципы раскрутки.

    3. Новостные сайты - отдельная песня, они попадают в выдачу быстроробота, там своё, специфическое SEO.

    4. Фотогалереи и прочие "картиночные" сайты -тоже отдельная песня про специфику ранжирование картинок в ПС.

    5. Тематические форумы - для их раскрутки должен быть костяк профессионалов по тематике форума. Да и там ниши все заняты.

    6. Сайты-сервисы - там качественность и востребованность сервиса важнее SEO.

    7. продающие сайты - смотря что они продают. Для них грамотный маркетинг важнее СЕО, ибо даёт выше конверсию (разные "воронки продаж" и прочее лапша, которую вам развешивают на курсах маркетинга).
    Некоторым никакого SEO не требуется, покупают трафик с Директа/Адсенса. Бижутерию, например, проще продавать в группах в соцсетях. А в некоторых высококонкуретных нишах SEO вообще себя не окупает.

    Если сайту нужен трафик с органики (выдачи ПС):
    - определяетесь с регионами, на которые работает сайт. На сайте должны быть адреса и телефоны (вашей фирмы) из этого региона.
    Если регионов несколько - под каждый надо делать отдельный поддомен, иначе не будет автоматический региональной привязки и "регионозависимых" запросов вам не видать. Можете проверить выдачу Яндекса по геозависимым запросам - там сплошные поддомены.

    - собираете "продающие запросы", по которые вы хотите иметь трафик с ПС, разбиваете их на НЧ/НК, СЧ/СК и ВЧ/ВК (надеюсь, на курсах вам объяснили WTF). Это классический способ составления семантическое ядра сайта (СЯ). Есть "неклассические" способы формирования СЯ, но их в паблик не выкладывают, sorry.

    - группируете запросы и распределяете их по страницам сайта. Под каждый запрос, кроме длинных хвостов (Long tail), придётся писать отдельную страницу. Это определит структуру сайта.

    - на этапе разработки ТЗ к движке сайта, сразу применяете ваши знания "боевого карате SEO", потому, что там начинается вся магия.
    Например, правильное ЧПУ поймут и Яндекс, и Google. Неправильное ЧПУ - потеря ранжирующего фактора.
    Админка движка сайта должна дать возможность максимально задействовать внутреннее ссылочное, хорошо если будет "автоматика", ибо запаришься делать его руками.
    Важны любые мелочи, даже атрибуты alt и title у картинок.
    Ну, с тонкостями SEO вы знакомы, судя по вопросу...

    - если нужен трафик с мобильных устройств - не забудьте про мобильную версию сайта. Там свои муки выбора как сделать мобильную версию сайта, чтобы ПС признали её "мобилопригодной".
    Этот вопрос больше "технический", чем SEO, но можно запросто лишиться трафика с мобильных устройств.

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

    Как собирать органический трафик - есть хороший курс 2013 года Андрея Камчеса на эту тему. Поищите, он в интернетах есть бесплатно.

    Ида, про 8-й тип сайтов - MFA с монетизацией на PPC/CPA я не упомянул. Умышленно :)
    Как и про 9-й тип сайтов для заработка на фишинге и прочих мошеннических приёмах.
    Ответ написан
    1 комментарий
  • Как сверстать интерактивное окно при клике на текст?

    @Groshik_BY
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .pop-item {
                padding: 5px;
                background: #ff4413;
                color: white;
                z-index: 1;
                margin: 10px;
            }
            .pop-block {
                z-index: 2;
                background: #35415d;
                color: white;
                position: absolute;
                top: 100%;
                left: 0;
                padding: 10px;
            }
            .pop-block-close-panel {
                text-align: right;
            }
            .pop-block-close {
                font-size: 10px;
                padding: 5px;
                color: red;
            }
            .pop-text-block {
                padding: 5px;
            }
        </style>
    </head>
    <body>
        <div data-text="Pop 1" class="pop-item">POPBLOCK 1</div>
        <div data-text="Pop 2" class="pop-item">POPBLOCK 2</div>
        <div data-text="Pop 3" class="pop-item">POPBLOCK 3</div>
        <script>
            class Pop {
                event = 'click';
                closeEvent = null;
                class = '';
                parent = null;
                closeButtonStyle = closeButton => {};
                getText = item => { return ''};
                open = item => {};
                close = item => {};
    
                constructor() {
                }
    
                generate() {
                    let list = document.getElementsByClassName(this.class);
                    Array.prototype.forEach.call(list, pop => {
                        let popBlock = document.createElement('div');
                        let popBlockClosePanel = document.createElement('div');
                        let popBlockClose = document.createElement('div');
                        let popTextBlock = document.createElement('div');
                        this.closeButtonStyle(popBlockClose);
                        popBlock.classList.add('pop-block');
                        popBlockClosePanel.classList.add('pop-block-close-panel');
                        popBlockClose.classList.add('pop-block-close');
                        popTextBlock.classList.add('pop-text-block');
                        popTextBlock.innerText = this.getText(pop);
                        pop.addEventListener(this.event, e => {
                            if (e.target === pop)
                                this.open(popBlock);
                        });
                        if (this.closeEvent !== null) {
                            pop.addEventListener(this.closeEvent, e => {
                                this.close(popBlock);
                            })
                        }
                        popBlockClose.onclick = e => {
                            this.close(popBlock);
                        };
                        popBlockClosePanel.appendChild(popBlockClose);
                        this.close(popBlock);
                        popBlock.appendChild(popBlockClosePanel);
                        popBlock.appendChild(popTextBlock);
                        if (this.parent === null) {
                            pop.appendChild(popBlock);
                        }
                        else {
                            this.parent.appendChild(popBlock);
                        }
                    });
                }
            }
            document.addEventListener('DOMContentLoaded', () => {
                let popMenu = new Pop();
                popMenu.class = 'pop-item';
                popMenu.event = 'click';
                popMenu.closeEvent = 'mouseleave';
                popMenu.open = item => {
                    item.style.display = 'block';
                    let parent = item.parentElement;
                    item.style.top = parent.offsetTop + parent.offsetHeight + 'px';
                    item.style.left = parent.offsetLeft + 'px';
                };
                popMenu.close = item => {
                    item.style.display = 'none';
                };
                popMenu.closeButtonStyle = closeButton => {
                    closeButton.innerHTML = 'X';
                };
                popMenu.getText = item => {
                    return item.dataset.text;
                };
                popMenu.generate();
            });
        </script>
    </body>
    </html>
    Ответ написан
    3 комментария
  • Как через vscode показать верстку заказчику?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Создаете приватный репозиторий на github - туда пуш весь код который на продакшн. И показываете его заказчику.
    Ответ написан
    Комментировать
  • Как убрать часы с 00:00 до 8:00 из календаря Google?

    Yandoru
    @Yandoru Автор вопроса
    Удивительно, но это действительно можно теперь сделать только через дополнительный плагин для Chrome...

    Плагин называется Hide morning in Calendar, он просто открывает календарь уже проскроленным вниз, чтобы 9:00 было самой верхней строчкой. Но работает эта простейшая схема как надо!
    Ответ написан
    2 комментария
  • Как выставить ограничение RDP?

    @nukler
    местный юродивый
    Это не оно??

    Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения -> Ограничить пользователей служб удаленных рабочих столов одним сеансом служб удаленных рабочих столов .

    Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections -> Restrict Remote Desktop Services users to a single remote session
    Ответ написан
    3 комментария
  • Какой курс по веб разработке выбрать?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    В курсах есть толк, если вы чётко понимаете свой уровень после их окончания.
    Этот уровень - немногим больше того, чем было до них, и всё ещё недостаточный для того, чтобы за эти знания просить деньги. Ни разу не "почему меня ни бирут за 200к я прошол курсы?!?".
    Означает ли это, что курсы - развод и лохотрон? Нет. Люди пытаются вас научить, как умеют. Проблема ровно в том, что за месяц-два нельзя пройти, осознать и закрепить материал, который люди годами оттачивают.

    Короче - если категорически не понимаете, с чего начать обучение, и у вас есть условно "лишние" деньги - берите любой. Для старта - подойдёт. Не самое выгодное вложение средств, но всё лучше, чем не делать ничего. Аминь.)
    Ответ написан
    Комментировать
  • Возможно ли тестирование сайта в автоматическом режиме?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    headless browser, например chromium, запускается из командной строки, прописываются различные варианты что он должен делать и какой результат должен получиться.
    Скриптуется и запускается автоматом.

    Можно использовать что-то посложнее, типа Selenium.
    Ну и вообще, QA automation engineer, есть такое.
    Ответ написан
    Комментировать