• Этап подготовки к разработке сайта. Когда оценивать бюджет и заключать договор?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Всегда предоставляйте потенциальному заказчику план ваших действий - это может быть иерархический список работ с различной зависимостью между собой в формате таблицы Excel с формулами и условиями (для смены отображения: фон, цвет и т.д) в ячейках.
    2. Там, где цена за данный вид работ неизвестна (будет известна после выполнения предшествующих пунктов работ) - ставим нолики в трудозатратах.
    3. Обязательно пишем сноску под таблицей: "ВНИМАНИЕ: работы с нулевой стоимостью выполняться не будут."
    4. После этого можно подготовить проект в GanttProject не добавляя туда работы с нулевыми трудозатратами и экспортировать в PDF.
    5. Два документа: xls+pdf - отсылаем как ТКП на согласование клиенту и прикрепляем к договору.
    6. При необходимости, модифицируем договор с помощью доп. соглашений для выполнения тех этапов, стоимость которых стала известна и которые необходимы клиенту.

    По этапам разработки веб-сайта: здесь.

    Во всех других случаях - нет смысла работать с теми, кто не хочет работать.
    Ответ написан
  • Как разослать 3500 писем, чтобы они не попали в спам?

    jamessvetsky
    @jamessvetsky
    Специалист по почтам и рассылкам
    Можно на сервисе UniSender платить за нужное количество писем.
    Еще один вариант - SendinBlue. Там на бесплатном тарифе можно отправлять по 300 писем в день.
    Ну а попадание в спам - там много факторов, если Ваши получатели не будут кликать на спам, если нормально настроить домен и сервис, сделать правильно сами письма - все должно быть хорошо.
    А базу от невалидных лучше почистить перед отправкой
    Ответ написан
    2 комментария
  • Как настроить политику DMARC для почты mail на корпоративном домене?

    jamessvetsky
    @jamessvetsky
    Специалист по почтам и рассылкам
    Здравствуйте!
    Переводя на человеческий язык Ваши настройки:
    В SPF-записи указано, что отправка писем Вашего домена может идти только с серверов Майл ру. Если Вы хотите указать возможность отправки с сайта, Вы должны прописывать либо "v=spf1 a include:_spf.mail.ru ~all" либо явно указывая IP - "v=spf1 ip4:100.100.100.100 include:_spf.mail.ru ~all" разумеется вместо сотен подставив свой адрес.
    DKIM для сайта тоже не прописан, тот что указан работает только при отправке с серверов Майл ру.
    И при этом Вы в DMARC прописываете политику reject, что означает для почтовых серверов, принимающих Ваши письма, отклонять все письма, не прошедшие проверку по DKIM и SPF. При таких настройках ни одно письмо, отправленное с сайта, не попадет даже в папку спам, не говоря уже о папке входящие. И это сильно скажется на репутации Вашего домена, потом тот же гугл даже после хороших настроек будет помещать Ваши письма в спам, комментируя "Ранее похожие письма определялись как спам"
    Советую почитать вот эту статью https://7fk.ru/nastroyka-smtp/
    Что касается DMARC то желательно прописать на первое время политику none и заодно ruf вместе с fo=1 чтобы видеть все ошибки при проверках.
    Что то типа "v=DMARC1; p=none; sp=none; rua=mailto:abuse@domain.com; ruf=mailto:abuse@domain.com; fo=1" подставив вместо abuse@domain.com свою почту
    Ответ написан
    Комментировать
  • Как сверстать такой блок?

    RAX7
    @RAX7
    Сделать для каждой иконки маску и применить эту маску к верхнему бордеру.
    Ответ написан
    5 комментариев
  • Как лучше продвинуть сайт?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Нуу... насчет выбора CMS || CMF || Frameworks нет правильного ответа.
    Есть лишь конкретная задача, которую нужно реализовать и бюджет, которым клиент располагает.
    Нужен CMS для ИМ - WordPress + Woocommerce или OpenCart
    Нужен CMF - ModX
    А если нужен фреймворк, то тут зависит от ЯП и ваших предпочтений / навыков - Yii2, Laravel, Symfony и другие.
    Буду благодарен, если подскажите, что влияет на поисковую оптимизацию и плюсы с минусами у сайта на WP и самописного.

    Зависит от вашего навыка... Если напишете самописный Г* сайт, то не сможете оптимизировать его... Точно также любую CMS можно изг**нять.
    Правила оптимизации одинаковы для всех сайтов независимо от CMS, CMF фреймворков:
    - подключите SSL
    - меньший вес сайта (ориентируемся на pagespeed)
    - меньше элементов в DOM
    - оптимизированные картинки
    - наличие турбостраниц и amp версии сайта
    - наличие карты сайта
    - наличие качественного и уникального контента
    - отсутствие домена в списке блокировок и т.д.
    - наличие robots.txt
    - мощный сервер расположенный ближе к основному источнику трафика
    - наличие фавикон
    - наличие разметки для сайта, меню и т.д.
    - грамотный SMM
    - реклама на сторонних сайтах
    - наличие качественных постоянных ссылок на других ресурсах
    и т.д.
    Ответ написан
    Комментировать
  • Как сделать плавающий блок при скролле?

    Погуглите в сторону waypoints.js, с ним вам проще будет отследить когда пользователь докрутил до блока. После чего пишете примерно такую конструкцию:
    $('.block').addClass('sticky');

    А в CSS прописываете примерно следующее:
    .sticky {
    position:fixed;
    }
    Ответ написан
    Комментировать
  • Как поменять цвет svg?

    Есть *иконка* черного цвета,

    Было бы лучше, если бы вы приложили код файла этой иконки, чтобы на Вашем примере можно было показать решение.

    но что делать, если мне нужна она белого цвета

    Открыть svg-файл с помощью графического редактора или редактора кода и изменить цвет

    Можно как то изменить цвет ?

    Можно. В основном, цвет SVG-элементов задаётся через атрибут/свойство "fill", иногда через атрибут/свойство "stroke". В зависимости от типа фигуры.

    Повторюсь, что если приложите код файла иконки, смогу показать решение на Вашем примере.

    Update
    Вот Вам код svg-файла с белым цветом значка
    <svg height="34" viewBox="0 0 24 24" width="34" xmlns="http://www.w3.org/2000/svg"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z" fill="#fff"/></svg>


    А вот он же, но закодированный в Base64 (в котором Вы предоставили пример)
    data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjM0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIzNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOC41OSAxNi4zNGw0LjU4LTQuNTktNC41OC00LjU5TDEwIDUuNzVsNiA2LTYgNnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=
    Ответ написан
    1 комментарий
  • Как лучше сжать видео в ffmpeg?

    nidalee
    @nidalee
    Самым безопасным способом будет CRF с ограничением битрейта:
    ffmpeg -i input -c:v libx264 -preset veryslow -crf 23 -maxrate X -bufsize 2M output.mp4

    Где Х - это максимальный битрейт в мегабитах в секунду, например 6M - 6 мегабит в секунду. Теперь считаем наш предел по этим самым мегабитам:
    Битрейт в мегабитах = размер файла в гигабайтах / (количество минут * .0075)

    Для часового файла с лимитом в 1,5 гигабайт это 1,5 / (60*0.0075) = 3,3 мегабита в секунду. Не забудьте, что хотя бы 128 килобит нужно оставить на звук. Их придется вычесть из максимального битрейта для видео. Вот тут есть калькулятор.
    Тогда:
    ffmpeg -i input -c:v libx264 -preset veryslow -crf 23 -maxrate 3M -bufsize 2M -acodec aac -b:a 128k output.mp4

    Это, на самом деле, очень мало, но точно влезет в лимит. Достаточно приличным для большинства файлов битрейтом считаю что-то в районе 10 мегабит в секунду, но на самом деле все зависит от картинки, если много статики, то и 3 может хватить.. Ну и я надеюсь, что файлы у вас все же не часовые. :)

    Тоже самое, но с битрейтом вместо CRF, можно тоже попробовать, и сравнить результаты:
    ffmpeg -i input -vcodec libx264 -preset veryslow -b:v 3M -pass 1 -an -f mp4 NUL
    ffmpeg -i input -vcodec libx264 -preset veryslow -b:v 3M -pass 2 -acodec aac -b:a 128k output.mp4
    Это добро идет двумя последовательными строками в bat-файл, должно выполняться одно за другим.

    Использовать HEVC (H.265), наверное, нецелесообразно для 1080P. Но попробовать можно:
    ffmpeg -i input -c:v libx265 -preset slower -crf 23 -maxrate 3M -bufsize 2M output.mp4


    Если вдруг окажется, что у полученного файла средний битрейт получился ниже лимита, значит он был ограничен целевым качеством CRF. Тогда качество можно повысить, для этого цифру нужно понизить. Например, -crf до 21.
    Ответ написан
    3 комментария
  • Как настроить перенос в visual code?

    motr
    @motr
    наткнулся на вашу тему в поисках решения той же проблемы.
    в итоге нашёл решение сам.
    знаю, вопрос устарел, но тем кто ищет решение, поможет.
    в настройках vscode ищите пункт "sass: disable auto indent" и поставьте галочку.
    профит
    Ответ написан
    1 комментарий
  • Где публиковать OpenSource проект?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    gitlab или github, хотя последнее после покупки их корпорацией добра не сильно стало созвучно с OpenSource
    Если демонстрация подразумевает консольный вариант то можно воспользоваться сервисом asciinema в противном случае ютуб
    Ответ написан
    Комментировать
  • Как создать такой эффект?

    dom1n1k
    @dom1n1k
    А в чем проблема-то?
    По ховеру к кнопке применяется transform translate. Направление и расстояние смещения зависит от позиции курсора относительно кнопки. Но уменьшено в несколько раз, чтобы кнопка смещалась только чуть-чуть и позволяла курсору уйти с неё. Когда курсор уходит, транслейт сбрасывается, кнопка плавно возвращается с transition.
    Конечно, нужно будет повозиться с коэффициентами и изингами, чтобы выглядело естественно, но сам принцип тут очень прост.
    Ответ написан
    2 комментария
  • Где хостится habrahabr, toster?

    vvpoloskin
    @vvpoloskin
    Инженер связи
    dig habrastorage.org +short
    95.213.152.170
    
    whois -h whois.ripe.net -- 95.213.152.170 -T route
    route:          95.213.152.0/24
    descr:          SELECTEL-NET
    origin:         AS49505
    mnt-by:         MNT-SELECTEL
    created:        2016-10-05T01:36:29Z
    last-modified:  2016-10-05T01:36:29Z
    source:         RIPE


    Кстати, DNS на хетзере
    dig habrahabr.ru SOA +short
    ns1.habradns.net. servers.tmtm.ru. 2017121304 28800 7200 604800 86400
    
    dig ns1.habradns.net +short
    88.198.175.104
    
    whois -h whois.ripe.net -- -T route 88.198.175.104
    route:          88.198.0.0/16
    descr:          HETZNER-RZ-NBG-BLK4
    origin:         AS24940
    org:            ORG-HOA1-RIPE
    mnt-by:         HOS-GUN
    created:        2006-01-02T08:59:04Z
    last-modified:  2006-01-02T08:59:04Z
    source:         RIPE


    А почта в leaseweb

    dig habrahabr.ru MX +short
    10 mxs.habramail.net.
    
    dig mxs.habramail.net. +short
    82.192.95.169
    
    whois -h whois.ripe.net -- -T route 82.192.95.169
    route:          82.192.64.0/19
    descr:          LEASEWEB
    origin:         AS60781
    remarks:        Leaseweb
    mnt-by:         LEASEWEB-NL-MNT
    created:        2014-03-10T14:11:29Z
    last-modified:  2015-09-30T23:00:03Z
    source:         RIPE


    Остальное все за куратором и cdn.
    Ответ написан
    Комментировать
  • Как сделать ленту фото как у flickr или 500px?

    Вот их сетка flickr.github.io/justified-layout
    Ответ написан
    Комментировать
  • Как вы мониторите количество часов у исполнителей?

    mazhekin
    @mazhekin
    Frontend, Backend Web Developer
    1) тайм трекер https://hubstaff.com устанавливаю на компьютер, запускаю как начинаю работу. Останавливаю как заканчиваю. Программа делает скриншоты. Заказчик всегда может увидеть что и как я делал, каждые 5 минут. Доверие выше и мне спокойнее.
    2) Параллельно логгирую часы в Jira. Там заказчику виден прогресс что сделано и что осталось сделать, и сколько времени было потрачено в сумме и на каждую задачу в отдельности. Также есть суммарные отчеты, для отслеживания процесса в целом.
    3) Git там код. Но как правило это заказчикам не совсем понятно и не интересно, они смотрят в основном готовый продукт, отчет по времени, и по задачам.

    Ps. Чтобы выявлять отклонения в разработке на ранних этапах и понять удорожание продукта проконсультируйтесь или наймите хорошего скрам-мастера.
    https://biz.mann-ivanov-ferber.ru/2018/06/05/kto-t...
    Ответ написан
    Комментировать
  • Генератор псевдослучайных чисел с зависимой вероятностью вывода нужных чисел?

    Stdit
    @Stdit
    Я когда-то делал генератор псч с произвольным распределением через хэш-функцию. Алгоритм лобовой, на математическую и техническую красоту не претендует, но все равно я его опишу, вдруг кому-то пригодится.

    — Нам нужен генератор псч, скажем от 0 до 99 с варьируемой вероятностю выпадения чисел.
    — Заводим массив из 10000 элементов. Все числа заносим в массив по 100 раз.
    — Выбирая из массива число со случайным (через обычный гпсч) индексом от 0 до 9999, мы получим число от 0 до 99 с равной вероятностью.
    — Для уменьшения вероятности выпадения числа нужно уменьшить количество этих чисел в массиве. Например, если число «8» будет входить в массив не 100, а 50 раз — то его вероятность выпадения будет вдвое ниже, чем остальных.
    — Для увеличения вероятности выпадения числа расширяем массив и добавляем ещё таких чисел.

    Таким образом, можно построить почти любую функцию распределения (разумеется, с ограничениями на коэффициенты вероятности выпадения чисел). Плавность растройки такого генератора напрямую зависит от размера массива.
    Ответ написан
    3 комментария
  • Генератор псевдослучайных чисел с зависимой вероятностью вывода нужных чисел?

    StanSemenoff
    @StanSemenoff Автор вопроса
    Написал быстрый тестовый скрипт на PHP:

    <?php
    $m = [];
    for ($i = 0; $i < 1000; $i++)
    {
    	$rnd = (int) (10 * log(rand(3, 50)));
    	$m[$rnd] = isset($m[$rnd]) ? $m[$rnd] + 1 : 0;
    }
    ksort($m);
    foreach ($m as $i => $cnt)
        echo "<div style='margin: 2px; color: #fff; padding: 3px; background: #696; width: ".($cnt * 10)."px;'>$i</div>\n";
    ?>
    

    Ответ написан
    2 комментария
  • Как с Google Fonts достать формат WOFF2?

    @private_tm
    JAVA dev
    Вы сами ответили на свой вопрос.
    Если интересна конвертация то https://ru.wikipedia.org/wiki/Web_Open_Font_Format
    Названия утилиты sfnt2woff
    Ответ написан
    1 комментарий
  • MP3 vs AAC vs OGG Vorbis - чем лучше жать аудио рипы сегодня?

    1eqinfinity
    @1eqinfinity
    sound design, music, DSP
    Не углубляясь в технические детали, OGG фактически кодирует лучше чем MP3 при равном размере файла ввиду алгоритмических особенностей.
    Объективно говоря, не зависимо от формата, при прослушивании на ноуте или телефоне разница в диапазоне кодирования 192-320 еле заметна для простого слушателя.
    Для ознакомительных целей или когда качество звука не критично, я по привычке кодирую в V0. Но самые ценные вещи всегда во флаке :)
    Точное адресование в MP3, насколько я понимаю, связано с фреймами, на которые разбивается сигнал. Но они достаточно маленькие, в пару миллисекунд, так что тут никакого практического значения тоже нет.
    По поводу аппаратного кодирования AAC не могу ничего сказать.
    Ответ написан
    Комментировать
  • Эпически-Бомбический пользователь - ГитХаб?

    Наверное, лучше начать с самого начала и двигаться поэтапно https://try.github.io/levels/1/challenges/1
    Ответ написан
    1 комментарий