• Оптимизация больших изображений для сайта?

    @pu6elozed
    Bitrix, fullstack
    По пунктам:
    1. Используйте современные форматы изображений - гугл хочет чтобы на сайте использовались более легкие(не всегда, но в большинстве случаев) варианты изображений в формате допустим .webp
    2. Настройте эффективную кодировку изображений - значит что изображения слишком много весят
    4. И самое главное, что влияет на все предыдущие пункты - некорректное соотношение размера отображаемого изображения - его визуальному размеру. К примеру - у вас изображение 2500px, действительно ли его нужно отображать на смартфонах в полный размер. или достаточно превью?
    <article>
      <img srcset="https://dummyimage.com/2560x400/333/fff 2x,
                   https://dummyimage.com/1280x400/333/fff 1x"
           sizes="(min-width: 1280px) 1280px, 100vw"
           alt="A title">
    </article>

    По вышеописанному коду для современных мобильных используется srcset=https://dummyimage.com/2560x400/333/fffтак как у них плотность пикселей 2x. PageSpeedInsights эмулирует отображение на аналогичном смартфоне.
    Для более гибкого подхода в html5 появился элемент picture. Подробнее посмотреть советую у Вадима Макеева в этом же видео подробно разбирается оптимизация графики для сайта.
    На примере вашего кода можно сделать набросок
    <picture>
        <!-- source для браузеров поддерживающих webp, соответственно srcset тоже должен указывать на webp-->
        <source type="image/webp" srcset="https://dummyimage.com/575x150/333/fff 1x, https://dummyimage.com/1150x300/333/fff 2x," media="(max-width: 575px)">
         <!-- source для браузеров не поддерживающих webp -->
         <source srcset="https://dummyimage.com/575x150/333/fff 1x, https://dummyimage.com/1150x300/333/fff 2x," media="(max-width: 575px)">
        ...  <!-- все остальные необходимые размеры, вроде планшетов и т.д. -->
        <!-- fallback для браузеров не поддерживающих элемент picture -->
        <img src="https://dummyimage.com/2560x400/333/fff" alt="A title">
    </picture
    Ответ написан
    1 комментарий
  • В каком районе Питера больше всего ИТ-компаний (желательно с разработкой на Java)?

    @mletov
    Когда ходил по собесам, то по моей личной статистике вышло:

    Больше всего контор находится на севере города. Но не на крайнем севере (Парнас, Просвещения, Озерки), а той его части, которая ближе к центру (Горьковская, Петроградская, Черная речка, Лесная, пл. Ленина, Выборгская)

    А так...
    На Ваське есть бизнес-центры, на Невском и его окрестностях иногда. А вот юг, по моим ощущениям, в этом плане освоен довольно слабо. Хотя и тут есть исключения: довольно много знакомых работают на Заставской (Московские ворота)
    Ответ написан
    3 комментария
  • Процедурное создание уникальных аватарок?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Генерация такого рода картинок основана на том, что от имени / почты / еще какого-то параметра считается хэш, а потом на основании него по какому-то (зачастую подобранному на глазок) алгоритму уже генерируется картинка. На javascript это удобно делать на canvas, благо его можно легко крутить и симметричную картинку сделать не сложно. Останется только при необходимости сохранить ее в файл, но этот вопрос легко гуглится.

    Для иллюстрации приложу свой пример на codepen (писался на скорую руку, так что за ***код не пинайте)
    Ответ написан
    4 комментария
  • Как вставить элемент в рамку?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Вот отсюда должен стать понятным базовый принцип построение таких рамок
    https://codepen.io/the_human_brian/pen/vOrbBG
    Ответ написан
    Комментировать
  • Как сделать веб-сервис и не утонуть в процессе?

    gobananas
    @gobananas
    finishhim.ru
    1. Выделить одну главную функцию сервиса
    2. Сделать её, сверстать и выкатить, это будет MVP
    3. Не заморачиваться с вёрсткой
    4. Не заморачиваться с методами авторизации
    5. Не думать про нагрузку, не заниматься оптимизацией кода и БД
    6. Если поймали себя на мысли что вы думаете какой паттерн тут применить вы в Ж, просто пишите код, который работает!!
    7. Не совмещать написание сервиса, который вы РЕАЛЬНО хотите запустить с изучением чего-то нового (языка, БД). Утоните в учёбе и никогда не запустите.

    Это всё на своём опыте написания проекта говорю вам а не голословно ))
    Ответ написан
    10 комментариев
  • Где найти свой первый заказ?

    zamboga
    @zamboga
    Бизнес-аналитика, фин. моделирование, дашборды
    Ловите из моей копилки (сортировка от балды, комментарии мои, я "заказчик")

    • Биржи фриланса СНГ
    https://work-zilla.com — легко очень быстро найти исполнителя на простую работу за 100-3000₽
    kwork.ru
    https://5bucks.ru
    radideneg.ru
    moguza.ru
    https://fl.ru/ (ад.кг) -- один из самых известных фрилансных ресурсов рунета, полно предложений (август 2018)
    https://freelance.ru/ -- сильный конкурент fl.ru, полно предложений (август 2018)
    https://www.weblancer.net/ -- норм, не очень много предложений, но много "целевых", меньше мусора (август 2018)
    https://freelansim.ru/ -- не очень много предложений (август 2018)
    https://YouDo.com -- мало предложений (август 2018)
    https://freelancehunt.com/ -- много предложений (август 2018)
    § Статистика цен https://freelancehunt.com/statistics/rates/currency/rub
    https://www.freelancejob.ru -- очень мало предложений (август 2018)
    https://yukon.to — для даркента и "сомнительных" заданий. Типа "античата"
    www.free-lance.ru -- старое название fl.ru

    • Биржи фриланса международные
    https://www.upwork.com - конкурировать невозможно, только покупать профиль с 1000+ часов, остальное $5-$15 от рабовладельцев
    www.freelancer.com
    https://www.peopleperhour.com/
    https://www.guru.com/
    fiverr.com — для простого дизайна
    https://envato.com/
    https://talent.hubstaff.com
    https://remoteok.io
    https://weworkremotely.com/
    https://www.cybercoders.com/
    https://djinni.co
    https://www.toptal.com
    https://www.linkedin.com
    https://elance.com — куплен upwork
    https://odesk.com — куплен upwork

    • Агрегаторы фриланс-бирж
    https://primelance.com
    https://www.alot.pro
    https://work-at.me/freelance_projects/list
    https://ifreework.org/projects.html
    https://joby.su/search/ff/
    ayak.ru
    https://spylance.com/spy#notices
    j-scan.ru/search_old
    ejobstracker.com
    https://play.google.com/store/apps/details?id=alot...
    https://play.google.com/store/apps/details?id=free...
    https://play.google.com/store/apps/details?id=com....
    https://itunes.apple.com/us/app/mobile-freelance/i...
    https://play.google.com/store/apps/details?id=com....
    Где искать заказы?
    Ответ написан
    12 комментариев
  • Почему не работает morphTo?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Рекомендую поспать, потому что у тебя уже return'ы теряются в коде...
    Ответ написан
    6 комментариев
  • Верстка с нуля: какие основные этапы работы?

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Использую vscode+webpack+pug+scss+бэм. Из физических инструментов, основной моник: lg ultrawide 29um69g, рядом прикручен моник от ноутбука повешенный вертикально, подключенный через универсальный скаллер.

    0) Запускаю Spotify :-)

    1) Произвожу установку всех необходимых модулей для сборки. В моем случае у меня набор конфигураций для webpack (отдельные файлы для pug, scss, static и.т.д., выбираю что нужно).

    2) Запускаю avocode, загружаю в него макет. Определяю в нем переменные (в то же время записываю их, чтобы сразу кинуть в scss файл) для цветов, размеров шрифтов и.т.д. чтобы при получении кусочков кода из него, он сразу расставлял переменные.

    3) Запускаю VS Code, открываю нужную папку.

    4) Пишу размету на Pug. Пишу с БЭМ, если встречаю повторяющийся блок, то открываю файл _mixins.pug, в который пишу миксины для повторяющихся блоков, например товаров, пунктов меню, каких-то блоков и.т.д. Pug умеет делать циклы, это ускоряет сильно.

    5) Когда HTML готов, начинаю делать каркас. Если дизайн сделан по сетке, определяю контейнеры, колонки, строки в свои классы (не пишу в html тучи классов аля col-md-6, а пишу в SCSS инклуды в нужные мне блоки, типа @include make-col(2) и.т.д.).

    6) Экспортирую картинки из Avocode. Очень делается просто, указываю папку и просто кликаю экспорт и ввожу название файла и расширения. Преимущественно для иконок использую svg, если нет svg, то ищу эту иконку в интернете (дизайнеры редко рисуют иконки сами, но зато любят вставлять их не в векторе). Если иконка простая, могу сам ее в inkscape обвести, ну и если нет, то экспортирую png в размере (благо авокод это позволяет, если конечно дизайнер не вставил в исходном маленьком размере). Когда есть контакт с дизайнером, трясу его, ибо растр это плохо для иконок.

    7) Пишу стили блоков из страницы. На этом этапе можно на втором монике параллельно смотреть футураму или
    Арчера :-) Но чаще на широком монике слева браузер, справа VS Code, а на втором монике Avocode (может меняться местами с браузером). Мысленно нарезаю страницу на блоки. Для каждого блока (БЭМ) создаю отдельный scss файл (кто-то даже для элемента создает, но мне лень), из него сразу выписываю все селекторы. Иногда могу сначала выписать все селекторы со страницы (но так лучше не делать, т.к. во время работы может потребоваться изменить что-то в разметке), но чаще для одного блока выполняю этот пункт и за ним сразу выполняю пункт 8, потом для нового блока опять 7 и 8 и.т.д.

    8) Пишу css код вместе с Avocode, у него беру нужные мне параметры (а он уже подставил в них переменные), и вставляю в мой код. И параллельно сверяю со скрином макета используя вот это расширение https://chrome.google.com/webstore/detail/perfectp...

    9) Пишу адаптив. Я не могу привыкнуть к методологии mobile-first, поэтому пишу всегда сначала полную версию сайта. Я понимаю, что это чревато всякими проблемами и это типа не модно, но мне норм.

    10) Медиа-запросы пишу прямо в блоках, для каждого блока/элемента/модификатора может быть отдельный медиа-запрос. Но для начала определяю breakpoint'ы для разных экранов (чтобы их не было сотни разных), если использую Bootstrap, то беру его breakpoint'ы.

    11) Добавляю анимашки. Даже если заказчик не просил отдельно (и если не указал отдельно, что нельзя), он все равно будет доволен, а с animate.css+onscreen.js это вообще работа 10 минут. Сложные анимации обговариваю отдельно, чтобы не сделать ненужную работу.

    11) Все снова сверяю, пишу скрипты где надо. Для слайдеров в 99% случаев подходит slick (с доработками конечно, но там хорошее API), для других случаев могу написать свой.

    12) Сдаю заказчику и жду ответа сидя на тостере/пикабу.

    Это чисто мой опыт, опыт фрилансера, не знаю, как делают другие и не могу на 100% утверждать что это 100% правильный способ. Я так и не смог заставить свой конфиг webpack правильно вставлять спрайты svg.
    Надеюсь чем-то поможет мой ответ.
    Ответ написан
    7 комментариев
  • Как совладать с реактивностью (c передачей по ссылке и глубоким копированием объекта)?

    amux
    @amux
    alp.ac
    //let block = {...empty_block};
    let block = _.cloneDeep(empty_block);

    https://lodash.com/docs/#cloneDeep
    Ответ написан
    Комментировать
  • Как разбить массив на части?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    Комментировать
  • Как сделать такую загрузку страницы?

    Pongo
    @Pongo
    Есть библиотеки для такого эффекта. Например:
    Ответ написан
    Комментировать
  • Какие есть сайты с практикой(для новичка)?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Какие есть сайты для новичков с практикой?

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

    А если например простые psd макеты?Где их можно найти?

    Для начала можете сходить на psdrepo.com, там много красивых макетов.
    Ответ написан
    1 комментарий
  • Где найти "вдохновение" на дизайн?

    @Xeli
    не могу ничего красивого создать

    Ну еще бы. Потому что задача красиво создать лежит на плечах художника. А из синопсиса я понял, что вы даже не дизайнер (для меня среднестатистический дизайнер это отстойный художник с завышенным ЧСВ, нахватавшийся верхушек по ютубам).
    Поэтому есть три варианта :
    1) Выключить режим перфекциониста и пользоваться нативными средствами frontend того же bootstrap и радоваться жизни.
    2) Нанять талантливого человека за деньги или позвать бездаря бесплатно (талантливый человек бесплатно работать не будет). Мусор на входе, мусор на выходе как говорится.
    3) Изучить тему самому. Изучение нужно начинать с освоения академического рисунка, вдумчивого изучения истории искусства (чтобы разбираться в стилях и самому уметь задавать какую то стилизацию работе), перспективы, логики цвета, света, типографики и еще уймы мелочей.
    Если пускаться в отважное плавание по пункту 3, то стоит запастись терпением и временем в размере примерно 3-4-5 лет.
    Так что 1 вариант как по мне в данной ситуации самый лучший, а если проект начнет собирать какие то деньги, то можно подумать и о найме профессионала за деньги для создания красивой обертки.
    Где брать вдохновение?

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

    Fzero0
    @Fzero0
    Вечный студент
    Комментировать
  • Как вызвать метод в компоненте?

    kulakoff
    @kulakoff Куратор тега Vue.js
    Vue.js developing
    Если вы используете v-show для скрытия, то узнать имхо не получиться, когда компонент появляется. В этом случае используйте доп. свойство для передачи в компонент состояния видимости. Или используйте v-if, тогда можно в событии mounted() вызвать refresh.
    Ответ написан
  • Как сделать колонки одинаковой высоты в Bootstrap3?

    @proskurninra
    Решение тут css.yoksel.ru/flexbox

    Я сделал и у меня решилась подобная проблема.
    Для этого я в css создал класс row-flex
    .row-flex {
        display: flex;
        flex-flow: row wrap;
    }

    и в html применил класс row-flex
    <div class="container-fluid">
        <div class="row row-flex">
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">
                ... содержимое блока ...
            </div>
        </div>
    </div>

    всё работает!
    Ответ написан
    3 комментария
  • Как выставить запись в группе вк через апи?

    Noizefan
    @Noizefan
    Токен не обладает достаточными для данного метода правами.
    Создайте Standalone приложение, получите access_token администратора сообщества с нужными правами (groups, wall) и делайте с ним что душе угодно)
    либо проблема в owner_id
    Ответ написан
    8 комментариев
  • Как вывести только то, что между определенными тегами?

    qork
    @qork
    { background: #F00B42 }
    /<table ="lanit-rea-table-layout lanit-rea-schedule-table-lessons schedule-mode table-padding">([\w\d\W]*?)<\/table>/

    https://regex101.com/r/4eGgiu/1
    Ответ написан
    2 комментария
  • В каком формате сохранять текст в БД?

    AlexBond
    @AlexBond
    Crazy WebDev
    Рекомендую посмотреть в сторону htmlpurifier.org
    Обычно лучше делать перед сохранением в базе если не страшно потерях исходные текст (например, пост на форуме). Так ты экономишь ресурсы сервера при выводе данных.
    Ответ написан
    Комментировать