• Как найти максимальный id в ассоциативном массиве?

    Negwereth
    @Negwereth
    lvivcss.com.ua
    let maxId = Math.max(...array.map(i => i.id));
    Ответ написан
    Комментировать
  • Как эффективно выучить технологии для backend'a?

    @frozen_coder
    Java-developer
    Я за изучение через практику. Поэтому вот вам несколько ссылок с идеями для проектов.

    1. https://eax.me/programming-language-learning/ - вот это просто огненная статья с примерами проектов для любого ЯП. Выбирайте что-нибудь по душе и пилите, в процессе изучите всё, что надо.
    2. https://proglib.io/p/project-list/ - тут дофига всякого
    3. https://habr.com/ru/post/345092/ - ну и тут чуток
    Ответ написан
    Комментировать
  • Как сделать прелоадер в Vue?

    askhat
    @askhat
    SDE @ Akvelon
    Если операций много и они асинхронны, можно воспользоваться паттерном Locking Pool:

    const store = {
      state: {
        lockingPool: 0
      },
      getters: {
        isUiLocked: state => state.lockingPool > 0
      },
      mutations: {
        lockUi: state => state.lockingPool++,
        unlockUi: state => state.lockingPool--
      },
      actions: {
        async someAction ({ commit }) {
          commit('lockUi')
          const { data } = await http.get('/some-url')
          commit('unlockUi')
        }
      }
    }
    Ответ написан
    9 комментариев
  • Для чего в шрифтах форматы EOT и WOFF?

    У гугла даже отдельная статья по шрифтам есть https://developers.google.com/web/fundamentals/per... специально для вас) и там все необходимые форматы шрифтов рассмотрены
    Ответ написан
    Комментировать
  • Для чего в шрифтах форматы EOT и WOFF?

    SagePtr
    @SagePtr
    Еда - это святое
    eot - для старых версий Internet Explorer
    woff и woff2 - современные форматы шрифтов для веб (весят меньше, чем ttf)
    woff2 более современный и весит ещё меньше, чем woff, но меньшая поддержка старыми браузерами
    https://caniuse.com/#search=eot
    https://caniuse.com/#search=ttf
    https://caniuse.com/#search=woff
    https://caniuse.com/#search=woff2
    Ответ написан
    2 комментария
  • Каким скриптом можно реализовать обучение пользователей?

    deepblack
    @deepblack
    Для vue.js
    https://github.com/pulsardev/vue-tour
    https://pulsardev.github.io/vue-tour/

    Vue Tour is a lightweight, simple and customizable guided tour plugin for use with Vue.js. It provides a quick and easy way to guide your users through your application. -
    Ответ написан
    1 комментарий
  • Каким скриптом можно реализовать обучение пользователей?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    https://introjs.com/ - пару раз приходилось делать туториал на vue, юзал эту библотеку.

    Создаёте компонент, кладёте его поверх приложения, например, в app.vue, описываете в нём шаги и селекторы к элементам.

    Есть готовый компонент с intro.js под капотом, но его я не юзал https://github.com/alex-oleshkevich/vue-introjs
    Ответ написан
    1 комментарий
  • Vue.js + Wordpress?

    @FullStackAlex Автор вопроса
    Веб-разработчик, электрик, кочевник
    Наконец таки я решил все технические вопросы для внедрения Vue.js в WordPress-Workflow. Долго я к этому шёл. Трудно было совместить freelancing на основе WordPress и WooCommerce и одновременно самообучение Symfony и Vue.js и создание первых реальных проектов на их основе. Но создание первого большого проекта на основе headless Symfony 4 (JSON API) и потребителя на основе Vue.js меня хорошо продвинуло вперед в направлении внедрения Vue.js в WordPress. Почему мне так интересен WordPress/WooCommerce умея делать Backend на основе Symfony? Потому что WordPress делает доступным веб технологии и маленьким клиентам по "демократическим" ценам, при этом всё ещё позволяя фрилансеру хорошо заработать (по крайней мере в Берлине, где я проживаю).

    Так как путь сюда до сих пор никем в интернете детально не описан и я угрохал недели если не месяцы на решение этой задачи прочитывая все статьи и docs с этой темой связанные (освоил для этого даже наконец таки Docker и Nginx и углубил знания в настройке Webpack) и пройдя многие не верные пути (vue-cli, nuxt.js) - я решил создать в течении следующих недель курс на Udemy.com на английском за 20 баксов. Если будет тут достаточно интереса (хотя бы лайков 10 ), то сделаю туториал и на русском. Курс будет содержать настройки Webpack, Docker (optional), Apache/Nginx. Моё решение сохраняет в отличии от nuxt.js все преимущества как WordPress так и Vue.js при этом соблюдая "законы" SEO и Social Marketing (Twitter Cards, Facebook Open Graph итп) и самое главное Hot Module Replacement с PHP/WordPress Templates!!!!!! .
    Я очень разочарован Nuxt.js и расскажу в Tutorial почему он далеко не во всех случаях технически годен и почему с точки зрения open source этот проект не оптимальный исходя из моего личного опыта.

    UPDATE 15.05.2019
    К сожалению руки до туториала так и не дошли. Но создал Github Repo с простым Starter Theme.
    Демо можно тут просмотреть: wue-theme.app
    Пока без доскональной документации. Надеюсь к концу месяца создам.
    Приколы темы:
    -Hot Module Replacement с PHP файлами (если только это интересно можно и тут скачать Webpack config)
    -полная поддержка SEO без Server Side Rendering (SSR). Реализуется это за счёт загрузки данных вместе с HTML в глобальном JS объекте "technomad", вместо дополнительного AJAX-запроса, что не поддерживается гуглом и для чего и нужны все прибамбасы типа Nuxt.js и phpv8/v8js.
    -элементы меню и новости автоматически добавляются через WordPress-Backend.
    -тема устонавливается как и любая другая тема без каких либо дополнительных настроек сервера (нужно скачать всю Repository и скомпремировать "wuetheme" папку в ZIP и тогда можно просто загружать как и обычную тему).
    -Github Repo без данных из демонстрации. Может ещё добавлю функцию установки демо данных.
    -сервер демо во Франкфурте без CDN. Так что во Владивостоке загрузка наверное немного дольше длится будет)) Из Берлина за 600-700ms загружается с VPS.
    -есть ещё много над чем работать (pagination, проверка загруженны ли скрипты и стили плагинов при Ajax route change, пока они загружаются только при инициальной загрузки, но скрипты и стили могут быть на каждой странице иные) , нo даже в данном виде эта тема на сколько я знаю уникальная.
    -тут можно проследить прогресс перестройки моего сайта с этой темой: stage.alexfullstack.dev, там больше клёвых анимаций))
    Пока всё. Have fun :)

    Update 30.05.2019
    Много чего обновил на Github.

    Update 02.06.2019
    Я решил вчерашнюю проблему)))
    Нужно было просто выспаться))
    Завтра подробно опишу и обновлю Github Repo.

    Update 03.06.2019
    -загрузил на Github новую "bulletproof SEO" версию с "Dynamic Rendering Implementation"
    -подробная статья тут

    Update 14.06.2019
    Перенёс сайт на wue-theme.app.
    Демонстрация Github версии тут: starter.wue-theme.app
    Добавил простую Load More Pagination и очистил код.
    Ответ написан
    13 комментариев
  • Как выводить фото instagram через проектор?

    @best91 Автор вопроса
    Сам спросил - сам нашел. Кому нужно djchuang.com/2014/show-instagram-photos-screen
    Ответ написан
    Комментировать
  • Post и Get запросы, какая между ними разница и что лучше и для каких целей?

    socengel
    @socengel
    7 лет native php в продакшене, онлайн 20000+,
    Общего между ними то что они работают одинаково. Разницы между ними технически никакой. А вот идеологические различия есть.

    Я расскажу о них в контексте PHP. Прошу заметить что протокол HTTP к PHP имеет косвенное отношение потому что он создавался для обмена html страницами а PHP просто расширяет возможности и того и другого.

    GET запрос используется чтобы получить данные а POST чтобы отправить. (Напоминаю что технически они работают одинаково).

    Поэтому в контексте PHP опираясь на эту идеологию сделали следующим образом:
    1. При каждом запуске PHP по умолчанию создаются суперглобальные массивы ($_GET, $_POST).
    2. Если в строке запроса есть вопросительный знак(?). То все что после него считается параметрами GET запроса они представлены в формате 'ключ'='значение' и в качестве разделителя используется знак амперсанда (&)
    Пример:
    GET /index.php?name=Андрей&surname=Галкин
    это строка запроса, тут 2 параметра. эти параметры попадут в массив $_GET.
    3. $_POST заполняется другим способом. содержимое этого массива заполняется из "заголовков запроса". То есть из места, скрытого от глаз в явном виде. Всю рутину по созданию таких заголовков берет на себя браузер. Хотя иногда и что-то редактируется в заголовках в ручную.

    Чаще всего пост запрос используется в формах (для отправки данных).

    Например у нас есть форма для входа 2 поля логин и пароль.

    Представим что мы используем GET метод. Тогда при отправке формы мы перейдем на следующий адрес /login.php?login=Андрей&password=123 согласитесь что так передавать такую информацию совсем не безопасно. Любой может открыть ваш браузер и начиная вводить адрес сайта он из истории может увидеть ваши пароли и логины.

    А вот если бы мы указали методом POST то мы бы получили следующий запрос:
    POST /login.php (login=Андрей&password=123) то что в скобочках было бы скрыто и никак не сохранено в браузере.

    Теперь другая ситуация например форма поиска. Мы вводим текст и получаем страницу с результатами. Вот тут уместнее GET форма. потому что нам было бы удобно сразу иметь ссылку на результат поиска, то есть добавить в строку запроса можно выразится "Публичные параметры", которыми можно поделиться. И как результат в строке браузера будет конкретная ссылка на текущую страницу. Мы можем ее скопировать, и разместить где-нибудь, или например скинуть другу. И получить при переходе одну и ту же страницу. А не просить других людей зайти на сайт и в поиск вбить определенную фразу чтобы получить необходимую страницу.

    В общем подводя итог:
    GET - это чтобы получить определенную страницу в определенном виде ( сортировка, текущая страница в блоге, строка поиска и т.п. ).
    POST - для оправки данных которые не влияют на отображение страницы, в том плане что эти данные влияют только на результат выполнения скрипта ( логины, пароли, номера кредиток, сообщения и т.п. ).

    И еще одна хорошая новость их можно комбинировать, например
    POST /index.php?page=login (login=Андрей&password=123) Думаю я уже достаточно объяснил что из этого получится и какие параметры в какой массив попадут.
    Ответ написан
    2 комментария
  • Как соединить линиями блоки div?

    arsenty
    @arsenty
    Full Stack Designer
    Без JS и с описанной адаптивностью: https://codepen.io/arsenty/pen/mYxXoQ
    Ответ написан
    1 комментарий
  • Как правильно планировать проект?

    apavlyut
    @apavlyut
    www.pavlyut.com
    Тебе нужно получить обратную связь от твоего "запланированного" в виде визуальной картины.

    Для этого изложи все свои идеи на большой меловой доске, завари кофе и рассматривай их в течение часа каждый день, периодически "подрисовывая" какие-то детали, всплывшие в голове.

    Быстрый старт - тебе понадобится доска, большая на всю стену, если нет - постарайся ее найти (я делаю доски сам и могу рассказать про все способы создания такого инструмента).

    UPD: ответил в ветке про доски:

    desktop-3bd1b3af88a948ffac62dbfd3a74daa1

    Доска должна жить с нарисованным не менее недели а лучше трех чтобы никто не стер информацию.

    1. Разделяешь доску на три сегмента - первый слева это будет "накопитель" законнекченый к твоему мышлению.

    Важно чтобы ты мог все время туда дописывать.

    Что делаешь - стоишь и думаешь о проекте, и любое слово (осмысленное) ты выписываешь из головы на доску. Просто в столбик и далее в колонки если место позволяет.

    Выписывать слова до момента когда ты осознаешь что в голове нет мыслей о проекте - они все на доске.

    Повторять этот пункт каждое утро.

    2. Глядя на все написанные смыслы в левой части - стараешься расположить их в формате сетевого графика, поняв что за чем следует и к чему приводит. Тут и помогает "доска", потому что ты можешь все время переделывать картинку.

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

    Повторять эту процедуру каждый день.

    3. Во втором пункте ты получил все свои цели. И если они тебе интересны - ты их для себя уже утвердил.

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

    Просто списком ты делаешь такой "акутальный беглог" твоей цели, который тебе и "насыпают" заказчики в трелло.

    4. Ты просто берешь каждую задачу которую сам себе описал и делаешь.

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

    Если тебе нужно определиться попробуй 5 почему Тойоды, или прочитай на эту тему хороший материал (в первой его части есть ответы на твои вопросы) - https://vc.ru/tribuna/67821-melnir-platforma-dlya-...

    Успехов!
    Ответ написан
    7 комментариев
  • Как сверстать эту секцию?

    @forspamonly2
    Максим Ленский, вполне реально и с добавлением блоков сделать, и дивками, и чтобы тянулось.

    Ответ написан
    2 комментария
  • Как разобраться с тем, что такое TCP/IP?

    Jump
    @Jump
    Системный администратор со стажем.
    Прикладной это уровень приложений. Используется удобный протокол для обмена данными по сети. Этих протоколов огромное количество. RDP, HTTP, FTP, и прочие.
    Они описывают как будет происходить обмен данными, но не имеют отношение к доставке данных. Доставляет данные транспортный протокол.
    Пример протокола прикладного уровня в обычной жизни - посылка, телеграмма, письмо. Вот это протоколы прикладного уровня.
    JSON, REST API, и SQL к этому никакого отношения не имеют. Это не сетевые протоколы
    JSON, REST API это протоколы обмена данными, а SQL это язык написания запросов к базам данных.

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

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

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

    Физический
    уровень - физическая передача данных.
    Например передача по оптике, или по медному проводу.
    Пример из реальной жизни - водитель везущий товар.

    В итоге вы для общения с удаленным собеседником выбираете протокол общения - письмо(прикладной уровень)
    Отдаете его на почту (транспортный уровень), почтовое отделение отдает его в отдел сортировки и логистики(сетевой уровень), из отдела логистики оно с экспедитором (канальный уровень) отправляется к перевозчику, который его и везет(физический уровень)
    И все в обратном порядке в месте получения.
    Ответ написан
    5 комментариев
  • Зачем нужен frontend, если всю начинку сайта или проекта можно реализовать с помощью backend'a?

    Jump
    @Jump
    Системный администратор со стажем.
    • Во первых бэкэнд это долго - к примеру вам нужно изменить один символ на странице, страница весить пять мегабайт. Вы посылаете запрос на сервер, ждете когда его сервер обработает, и скачиваете новыую страницу с измененным символов. В итоге скорость замены одного символа на странице 0,5 -200секунд.
      А на фронтенде вы можете менять поменять за 0,5секунд этот символ хоть сотню раз.
    • Во вторых бэкэнд это дорого - фронтэнд позволяет разгрузить сервер, выполняя задачи на клиенте - в результате сайт можно хостить на недорогом хостинге, а в случае бэкэнда хостинг может потребоваться в сотни, а то и тысячи раз дороже.

    Для чего нужны такие языки, как JavaScript, HTML, CSS и тому подобное?
    • JavaScript нужен чтобы писать программы так же как и питон например или C.
    • HTML языком программирования не является и служит для разметки страниц.
    • СSS языком программирования не является и служит для описания стилей.

    Для преобразования простых детских рисунков в произведения исскусства
    Детские рисунки изначально являются произведением искусства. Их нельзя преобразовать в произведения искусства.

    все это реализовано на серверной части, с помощью серверных языков. Таких как phyton, node.js, PHP
    Не бывает серверных языков - бывают языки программирования.
    Ответ написан
    6 комментариев
  • Почему отправленное письмо с помощью php скрипта попадает в спам?

    bitniks
    @bitniks
    Go/PHP/Symfony developer
    Проблемы могут быть разные. Проверить письма на спам можно с помощью этого сервиса
    https://www.mail-tester.com

    Он проведет проверку письма и выдаст список проблем и советы, как их исправить
    Ответ написан
    Комментировать
  • Есть ли готовые админ панели для проекта на Vue.js?

    evgensenin
    @evgensenin
    Yii2 || Laravel, vue & nuxt
    Ответ написан
    Комментировать
  • Что почитать по архитектуре Vue-приложения?

    @FullStackAlex
    Веб-разработчик, электрик, кочевник
    Я лично не назвал бы себя особо большым спецом. Но написал уже пару приложений от и до с Vue.js и так получилось что создал насколько я знаю первую полноценную plug and play тему для WordPress (то есть без Node.js SSR но при этом с полной SEO поддержкой, таким образом пользователь может её просто установить как обычную тему на своём сайте и использовать без каких либо дополнительных работ над кодом сайта, что на данный момент при остальных существующих концептах для WordPress в сфере Vue.js не возможно).

    При самообучении (главным образом 22-ух часовый курс от Maximilian Schwarzmüller на Udemy.com) я не натыкался на серьёзные ресурсы с углублённым обсуждением архитектуры Vue.js приложений. Наверное те кто в этом шпарит не сидят особо на тостере или stackoverflow :) По этому я лично просто подстраивал архитектуру своих приложений под endpoints данного Backend (Symfony 4 и WordPress). Для WordPress я просто организую компоненты как я бы организовал обыкновенную тему для WordPress:
    post.php ---> src/components/main/single/post.vue
    index.php ---> src/components/main/lists/posts.vue
    front-page.php ---> src/components/main/pages/home.vue
    page.php ---> src/components/main/single/page.vue
    archive-{custom-post-type}.php ----> src/components/main/lists/{custom-post-type}-posts.vue

    Сайт я делю на части Main, Header, Footer, (Sidebar, если навигация не в Header,) и Modals. (Глобальная) Коммуникация между ними происходит через Vuex модули. А Vue-Router обрабатывает HTTP запросы, используя при этом Axios.

    Обширные и многочисленные методы и hooks (activated, mounted, etc) одной компоненты пытаюсь насколько можно переносить в Mixins и делать их универсальными для использования в других компонентах чтобы держать script tag максимально чистым (когда ищешь ошибки, 200-400 строчек скрипта и 10 разных между собой связанных методов могут стать огромным pain in the ass).

    Совсем недавно натолкнулся на этого парня, которого пару статей и сайт мне понравились:
    https://markus.oberlehner.net/
    Возможно уже в его обширных статьях вы найдёте кучу нужной информации. В добавок он собирается как раз на эту тему выпускать книгу и тут можно на его newsletter подписаться (я подписался и пока никакого спама, только по теме):
    https://oberlehner.us20.list-manage.com/subscribe?...

    А вот куча интересных ссылок которые получаешь при первых же результатах поиска "Vue.js аrchitecture" (то есть без гарантий с моей стороны):
    https://v1.vuejs.org/guide/application.html
    https://learn-vuejs.github.io/vue-patterns/useful-...
    https://itnext.io/how-to-structure-a-vue-js-projec...
    https://dev.to/maxpou/3-tips-for-scaling-large-vue...

    В этой книге есть часть под названием "Large Application Patterns with Vuex":
    https://www.amazon.de/dp/B01N6VAO4P

    Эта книга тоже кажется интересная, более 200 страниц посвящены Vuex и Vue-Router:
    https://www.amazon.de/Fullstack-Vue-Complete-Guide...

    Ну и последним самые авторитетные ресурсы на эту и похожие темы с VueConf Talks:
    https://www.vuemastery.com/conferences/vuejs-amste...
    https://www.vuemastery.com/conferences/vueconf-tor...
    https://www.vuemastery.com/conferences/vueconf-tor...
    https://www.vuemastery.com/conferences/vueconf-tor...
    https://www.vuemastery.com/conferences/connect-tec...
    https://www.vuemastery.com/conferences/vueconf-us-...
    https://www.vuemastery.com/conferences/vueconf-us-...
    https://www.vuemastery.com/conferences/vueconf-us-...
    https://www.vuemastery.com/conferences/vueconf-us-...
    https://www.vuemastery.com/conferences/vueconf-us-...
    https://www.vuemastery.com/conferences/vueconf-us-...
    https://www.vuemastery.com/conferences/vueconf-us-...
    https://www.vuemastery.com/conferences/vueconf-us-...

    Have fun :)
    Ответ написан
    3 комментария
  • Для Vue какие есть лучшие formbuilder?

    boratsagdiev
    @boratsagdiev
    Если не нужен визуальный редактор, то https://github.com/vue-generators/vue-form-generator конечно. JSON-based генерация форм.
    Ответ написан
    1 комментарий