• Как создать подобный эффект перехода и анимацию?

    profesor08
    @profesor08
    Немного THREE.js, немного glsl и немного gsap.

    И собрать это вот так: https://www.youtube.com/watch?v=I9A4xTT2rh0

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

    precision highp float;
    float mirrored(float v) {
     float m = mod(v, 2.0);
     return mix(m, 2.0 - m, step(1.0, m));
    }
    
    vec2 mirrored(vec2 v) {
     vec2 m = mod(v, 2.0);
     return mix(m, 2.0 - m, step(1.0, m));
    }
    vec3 mirrored(vec3 v) {
     vec3 m = mod(v, 2.0);
     return mix(m, 2.0 - m, step(1.0, m));
    }
    vec4 mirrored(vec4 v) {
     vec4 m = mod(v, 2.0);
     return mix(m, 2.0 - m, step(1.0, m));
    }
    float tri(float v) {
     return mix(v, 1.0 - v, step(0.5, v)) * 2.0;
    }
    vec2 tri(vec2 v) {
     return mix(v, 1.0 - v, step(0.5, v)) * 2.0;
    }
    vec3 tri(vec3 v) {
     return mix(v, 1.0 - v, step(0.5, v)) * 2.0;
    }
    vec4 tri(vec4 v) {
     return mix(v, 1.0 - v, step(0.5, v)) * 2.0;
    }
    #define PI_2 6.283185307179586
    #define PI_H 1.5707963267948966
    varying vec2 vUv;
    varying vec2 vUv1;
    varying vec2 vUv2;
    uniform vec4 time;
    uniform float progress;
    uniform vec3 mask;
    uniform float rotation;
    uniform vec4 translateDelay;
    uniform vec2 accel;
    uniform vec4 waveAmpFreq;
    uniform vec4 waveSpeedBlend;
    uniform vec4 pixels;
    uniform sampler2D texture1;
    uniform sampler2D texture2;
    void main(void) {
     vec2 uv = gl_FragCoord.xy / pixels.xy;
     float p = fract(progress + mask.z);
    
     float delayValue = p * (1.0 + translateDelay.z + translateDelay.w) - uv.y * translateDelay.w - (1.0 - uv.x) * translateDelay.z;
     delayValue = clamp(delayValue, 0.0, 1.0);
    
     vec2 translateValue = p + delayValue * accel;
     vec2 translateValue1 = translateDelay.xy * translateValue;
     vec2 translateValue2 = translateDelay.xy * (translateValue - 1.0 - accel);
     vec2 w = sin(time.y * waveSpeedBlend.xy + vUv.yx * waveAmpFreq.zw) * waveAmpFreq.xy;
     vec2 xy = (tri(p) * waveSpeedBlend.z + tri(delayValue) * waveSpeedBlend.w) * w;
     vec2 uv1 = vUv1 + translateValue1 + xy;
     vec2 uv2 = vUv2 + translateValue2 + xy;
     vec4 rgba1 = texture2D(texture1, mirrored(uv1));
     vec4 rgba2 = texture2D(texture2, mirrored(uv2));
     vec4 rgba = mix(rgba1, rgba2, delayValue);
     rgba = mix(vec4(0.0, 0.0, 0.0, 1.0), rgba, mask.y);
     rgba = mix(vec4(0.0), rgba, float(abs(uv.y * 2.0 - 1.0) <= mask.x));
     rgba.rgb *= 0.7;
     gl_FragColor = rgba;
    
    }
    Ответ написан
    1 комментарий
  • Где почитать про блокчейн?

    sim3x
    @sim3x
    Ответ написан
    Комментировать
  • Какова суть фреймворков и библиотек?

    sHinE
    @sHinE
    веб-разработчик, php/js/mysql и сопутствующее
    Про отличие фреймворка и библиотеки видел такую фразу и она мне понравилась:
    Библиотеку ты вызываешь из своего кода, а фреймворк наоборот вызывает твой код.
    Ответ написан
    Комментировать
  • Какова суть фреймворков и библиотек?

    @stratosmi
    1) Фреймворк, как правило, рекомендует (а некоторые и навязывают) определенную организацию структуры кода, да. За это он тебе тоже кое-что дает - берет на себя типовую работу, что повторяется из проекта в проект, зачем ее делать каждый раз заново.

    Да, функционал их разный. От минималистичного до всеобъемлющего.

    Вполне можно использовать на одном сайте фрейморк CSS для верстки, фреймворк JS для динамики, фреймворк для бекенда. Если фреймворк для CSS и фреймворк для JS еще, возможно, и могут мешать друг другу (но как правило не мешают), то фреймворк для бэкенда функционирует на сервере как вообще независимая от CSS/JS вещь (CSS/JS фунционируют в браузере, а не на сервере).

    2) Да. Если они специализированы на разных проблемах (Zurb Foundation для CSS и Vue.js для JS и Yii для PHP, например).

    Но если они занимаются сходными вещами (например, React и Vue) то целесообразность такого применения непонятна. Более того - они запросто могут мешать друг другу. Нужно смотреть по ситуации.

    3) Библиотеки - весьма конкретно-местный инструмент. Потому более независимы от проекта.
    Фреймворки же нацелены на большую автоматизацию решения ваших проблем в какой-то конкретной ситуации, а вас от них более зависимыми (что не плохо, учитывая приносимую фреймворками пользу, просто нужно учитывать).

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

    4) Штатные API выбранного сервиса карт (Yandex Maps, 2GIS Maps, OpenStreet Maps и пр.). Эти API реализованы в виде библиотек. Фреймворки тут вообще не при делах.

    P.S.:
    2GIS специализированный сервис:
    В 2GIS очень хорошо представлены предприятия\фирмы\организации (в городах, где 2GIS присутствует), лучше прочих. Между городами 2GIS нет в принципе.
    Ответ написан
    Комментировать
  • Как настроить приглашение к вводу в bash?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Ну, начать надо с того, что в bash вообще не гарантируется работа .profile - если только сам добавишь. По умолчанию, bash считывает сначала .bash_profile, а потом .bashrc. Файл .profile читается, когда запускаешь /bin/sh.

    Настройку PS1 лучше делать не в .bash_profile (который читается один раз при логине), а в .bashrc (который читается при любой интерактивной сессии). Почему? PS1 запросто может быть перебито например mc, который имеет обыкновение ломать его своим субшеллом :)

    Часть /root/.bashrc
    mch=`hostname -s`
    PS1='\[\033[01;32m\]${mch:q}:\[\033[01;34m\][$USER]\[\033[01;36m\] \! \[\033[01;31m\]#\[\033[00;38m\] '
    Ответ написан
    2 комментария
  • Как можно с сайта извлечь текст?

    Если будешь просить готовый код - никуда не уедешь.
    Распишу поэтапно:
    1. Получаешь содержимой страницы через cURL.
    2. С помощью регулярных выражений "выдираешь" совет из HTML.
    3. PROFIT!!!
    Ответ написан
    4 комментария
  • Стоит ли идти в программисты в 30 лет, но не простым, а..?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Вас не от Java тошнит, а от программирования :)
    Ответ написан
    Комментировать
  • Есть ли смысл выкладывать нерабочие проекты в портфолио?

    Есть ли смысл

    Ну да, главное это оформить в виде красивого кейса с непонятными графиками.
    Ответ написан
    2 комментария
  • C# Request.Content.ReadAsByteArrayAsync().GetAwaiter().GetResult() можно ли вызвать два раза подряд на одном Request?

    @basrach
    По факту эти методы перечитывают поток. В данном случае "поток" чисто абстракция, а данные на самом деле лежат в памяти. В принципе, если вызвать ReadAsStreamAsync на Response.Content, прочитать этот поток и закрыть его, а затем еще раз попытаться прочитать, то тоже будет исключение. В дот.нет конкретно эти два метода реализованы так, что они не закрывают поток после использования, а читают каждый раз его сначала.
    Допустимо ли это? С чисто технической стороны, если это работает, то почему бы и нет. А не с технической нужно руководствоваться принципом наименьшего удивления.
    Ответ написан
    1 комментарий
  • C# Request.Content.ReadAsByteArrayAsync().GetAwaiter().GetResult() можно ли вызвать два раза подряд на одном Request?

    @sunblossom
    Вы платите временем процессора, экономя оперативку. Только и всего. Тут уже зависит от того, чего у вас больше.
    Ответ написан
    Комментировать
  • Visual Studio 2017, плагин автоматически генерирует доп файлы на C#. Как VS их находит?

    @Rayvor
    Ну как я вижу он определяет свой кастомный Build Action, который описывается в файлах Antlr4.CodeGenerator.targets/Antlr4.CodeGenerator.props
    Потом он генерирует файлы и помещает их в obj/Debug откуда они все компилируются в сборку
    Ответ написан
    1 комментарий
  • Каков смысл конструкции \\?\ предваряющей пути в ОС семейства Windows?

    SagePtr
    @SagePtr
    Еда - это святое
    В MSDN это называется extended-length path
    Ответ написан
    Комментировать
  • Книга, которая объяснит как работает ПК начиная с атомного уровня?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Решил стать программистом, но немного неприятно кодить не понимая, что происходит под капотом.

    Расслабьтесь и напрягитесь в своем деле, прочитав на Хабре:
    Долг знаний
    Ответ написан
    Комментировать
  • Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    @Beltoev
    Живу в своё удовольствие
    По описанию задачи и вашим комментариям к ответам, думаю, понял, что вам нужно, поэтому следите за руками (решение не стандартное, но полностью решающее вашу проблему):

    1. Создайте класс-контейнер, в котором будут сохраняться все ошибки. Назовём его, например, ErrorsContainer:
    public class ErrorsContainer
    {
        // Пример ошибки
        public object Error23;
    }


    2. Теперь добавьте класс, который будет возвращать код ошибки по полю класса-контейнера. Назовём его Error:
    public static class Error
    {
        private static readonly Regex Regex = new Regex(@"\d+", RegexOptions.Compiled);
    
        public static int Get(string fieldName)
        {
            return int.Parse(Regex.Match(fieldName).Value);
        }
    }


    3. Сложная часть позади. Теперь можно использовать в коде следующую конструкцию:
    int error23 = Error.Get(nameof(ErrorsContainer.Error23));


    Теперь у вас в коде будет контроль всех существующих ошибок (они будут расположены в ErrorsContainer) и новые ошибки будут добавляться буквально одной комбинацией (Alt + Enter, Enter в Resharper-е). Главное, не забывать использовать nameof.

    Пример добавления новой ошибки (напоминаю, Alt + Enter в Resharper на раскладке IntelliJ IDEA):
    5b22949c27f63103527770.png
    Ответ написан
    6 комментариев
  • Взять исходники GUI из WAR-файла?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    утилита jar вам в помощь
    Раскрыть архив
    jar -xf mysuperwarfile.war
    Посмотреть содержимое
    jar -tf mysuperwarfile.war
    Ответ написан
    4 комментария
  • Как выкачать весь сайт?

    Astrohas
    @Astrohas
    Python/Django Developer
    Metaproducts Offline Browser
    Ответ написан
    1 комментарий
  • Почему не исчезает иконка "Безопасного извлечения устройств"?

    @andoral Автор вопроса
    Перезапустил проводник, значок пропал.
    Ответ написан
    Комментировать
  • Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Я расскажу Вам про личный опыт, без претензий на истину в последней инстанции...

    Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?
    Для человека который привык работать с реляционными БД, смириться с логикой и вообще с подобными БД - довольно сложно. Для тех, кто работает с реляционными БД профессионально - сделать это ещё сложнее...

    Если сравнивать с реляционными БД и с оглядкой на конкретно MySQL - монга идеально вписывается там, где структура данных заранее неизвестна. Тут я хотел привести пример, но не смог придумать ни одного дельного примера, после того как начал плотно работать с PostgreSQL... Давайте попробую из практики. Мы один раз применяли монгу в проекте где есть десятки и сотни тысяч товарных позиций и у каждой из них свой уникальный набор различных свойств. На основе уже имеющихся свойств, "соседних" товаров, контентщику предлагался наиболее вероятный набор параметров, которые нужно заполнить, но в любой момент он мог удалить или добавить любое поле и/или множество значений одного из них, например, "Цвет: черный, серый, фиолетовый". Всё это дело попадало под разные динамические фильтры и далее по цепочке... В то время, насколько я помню ещё не было поддержки JSONB-формата у PostgreSQL, по этому мы остановились на MongoDB. Ну и конечно же, желание "воткнуть ультра новую и модную БД в проект" сыграло свою роль...

    Что в монге определённо не нравится (и это не моя "идея", об этом пишут даже в учебниках под монге) - это тотальная денормализация данных. Которая в некоторых случаях может сыграть злую шутку. Например, все комментарии "поста" обычно хранятся прямо в самой сущности поста. Это очень удобно и довольно быстро работает, но... иногда это приводит к полному коллапсу. Особенно, когда у Вас перекрестная ссылочность.

    Безусловно, не редко можно встретить проекты в которых даже в реляционных БД не прописаны, например, внешние ключи и контроля целостности данных как такового нет, но обычно это происходит по следующим причинам:
    1. Очень низкая квалификация администратора БД проекта
    2. В попытке выжать из базы больше производительности, не найдя других методов оптимизации
    3. Данных настолько много, что БД/ключи - начинают "сыпаться", не редко это связано с п.1

    Так же, последние тесты показывают, что PostgreSQL почти не уступает MongoDB даже в её родной среде (на уровне данных в формате JSON). А в некоторых аспектах даже превосходит её... Подробности Вы можете увидеть на некоторых конференциях по Postgres (да, на конференциях по MongoDB, Вы вряд ли увидите, как кто-то будет рассказывать, что [их любимая] монга "хуже" некоторых других движков...). Кстати, поддержку формата JSON стандартизировали (наконец-то) на уровне SQL-стандарта (если я не ошибаюсь) и в самом ближайшем будущем, думаю стоит ожидать полноценную поддержку оного в SQL-базах, в т.ч. поддержку в бинарном виде с возможностью индексации данных (кстати, некоторые SQL-базы уже такое умеют).

    Моё понимание, ответа на вопрос, "когда действительно стоит использовать MogoDB?" звучит примерно так: Исключительно в тех случаях, когда Вы понимаете, что она станет действительно хорошим решением для поставленной задачи и сейчас и в будущем. В моей практике, таких проектов можно было бы насчитать ничтожно мало, а точнее около нуля, особенно с учётом развития некоторых современных SQL-БД и вообще направления "JSON в SQL" в целом. Но, безусловно такие проекты могут быть и есть (в данном случае, не у меня). Но, тут стоит обратить внимание на крайне важный факт - когда всплывает такой проект, что бы адекватно оценить наиболее оптимальную БД под него - нужно знать как минимум пару-тройку SQL-БД, со всеми их особенностями, достоинствами и недостатками... причем не просто "знать", а хорошо знать, "изнутри". А так же знать все характерные черты монги, а так же её особенности, достоинства и т.д. То есть, если Вы задаётесь вопросом, "а хорошо ли впишется монга в проект N?" и не можете найти на него однозначного ответа, вероятнее всего, что в долгосрочной перспективе, в "проект N" она впишется плохо.

    P.S. В заключение, хочу ещё раз напомнить, что "JSON в SQL" - активно развивается... Со всеми вытекающими.
    Ответ написан
    7 комментариев
  • Как откатить изменения в файле host?

    @mureevms
    Коллега АртемЪ прав, если есть проблема с DNS - смотрите "в какой адрес резолвятся проблемные сайты". Если из командной строки отдается не верный адрес, то это системный DNS кэш, который можно очистить командой ipconfig /flushdns. В большинстве случаев этого хватает. Если из командной строки отдается верный адрес, но сайт не открывается - смотрите в сторону кэша браузера, они тоже кешируют. Обычно с этим помогают справиться плагины типа DNS Flusher, но для начала не плохо просто очистить кэш.
    Ответ написан
    Комментировать