• Sleep(delay) в javascript?

    SpeCT
    @SpeCT
    Не слушайте никого и делайте так, как считаете нужным. Про синхронный XHR тут уже упомянули, так что ниже код, что вы просили:

    function sleep(ms) {
    ms += new Date().getTime();
    while (new Date() < ms){}
    } 
    
    Ответ написан
    2 комментария
  • Как и где можно научиться делать такие сайты?

    Сайт, который грузится 1.5 минуты и лагает при прокрутке на core i5, ммм, ну даже не знаю. Может быть лучше уж видео ?)
    Ответ написан
    2 комментария
  • Как и где можно научиться делать такие сайты?

    Ahen
    @Ahen
    Универсальный дилетант
    Вот например pixijs фреймворк, который предполагается как визуальный 2D WebGL движок.
    У них в галерее много красивых сайтов и презентаций, написанных с его помощью (Rain Forest Foods из вашего списка, кстати, тоже).
    www.pixijs.com/gallery
    Ответ написан
    3 комментария
  • Как и где можно научиться делать такие сайты?

    @kulaeff
    Front-end developer
    На том же, на чем пишутся и обычные сайты, но с более активным использованием технологий для анимаций. Ключевые слова: canvas, css свойства (animate, transform, transition), web animation api, threejs (webgl), gsap (tweenlite, tweenmax), svg animation.
    Ответ написан
    1 комментарий
  • Как и где можно научиться делать такие сайты?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Задумывая дизайн новичок исходит из своих возможностей. У профи возможности ограничены только фантазией. Так что эти сайты сделаны на опыте и креативном мышлении, а так же большом количестве знаний. Хотите научится нет проблем - надо учить все что попадается под руку. Начать надо с отличных знаний html, css, javascript, canvas, svg, а дальше сами начнете понимать что еще надо.
    Ответ написан
    Комментировать
  • Сложный редирект 301?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} /i([0-9]{1,}) [NC]
    #  если начинается с i и дальше цифры больше 1
    RewriteCond %1 >99
    RewriteCond %1 <120
    RewriteRule ^(.*)$  https://radio-services\.ru/i%1 [R=301,L]
    #%1  это 1 скобка из конда не путать с $   это из рула.
    Ответ написан
    Комментировать
  • Почему при экстренном отключении питания смартфон и ПК ведут себя по-разному?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    Просто IT'шник.
    Все дело в HDD\SSD компа и том что взрослая ОС при включение смотрит было ли предыдущее выключение корректным. Вдруг система резко обрубилась из за кривого драйвера, вдруг она потухла при очередном обновлении и очень важная стандартная программа без которой невозможна нормальная работы был побита или скажем было подключено какое то новое устройство которое вызвало сбой.
    Так же немаловажную роль играет тот факт что на мобильных девайсах раздел где установлена система всегда в режиме "только чтение", соответственно побить саму ОС почти невозможно(кривые руки с рутом не считаем) и естественно особого смысла нет паниковать операционке из за некорректного выключения. Другое дело что если пользователь на мобилке все же влез и редактировал файлы системы то может получить полный кирпич ибо мог тронуть лоадер(типа биоса на ПК), вот только на ПК биос как правило(очень на многих материнках сразу 2 чипа стоит) почти невозможно убить то на мобилке после его убийста восстановить его можно чаще всего только со спец оборудованием или кучей шаманств с бубном надеясь что производитель предусмотрел резервную дырку для восстановления.
    В общем очень некорректно сравнивать поведение мобильных ОС которые работают на флешке в ROMе и ПК где ты волен всему и естественно нужны меры чтобы обезопасить тебя от отстреливания себе ноги.
    Ответ написан
    1 комментарий
  • Почему при экстренном отключении питания смартфон и ПК ведут себя по-разному?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    kin63camapa: просто в embedded программировании нештатное выключение встречается гораздо чаще, поэтому стараются предусмотреть подобные ситуации. Когда мы писали ОС под телевизоры, была отдельная команда из нескольких человек, которая разрабатывала решение как хранить настройки, чтобы они не повредились в случае внезапного отключения.
    Ну и операционка в телефоне/телевизоре/другом устройстве, хранится отдельно от остальных данных, реже вмешиваются в загрузчик.
    Ответ написан
    Комментировать
  • Какая SD-карта лучше для Live Boot и замены HDD?

    jamakasi666
    @jamakasi666 Куратор тега Linux
    Просто IT'шник.
    Флешки крайне ненадежные особенно если с них OS будет работать. Время запуска тоже будет разница.
    Лучше взять Zalman-ZM(модель) какой нибудь с небольшим ssd, толку будет намного больше и в сотни раз удобнее. До сих пор пользуюсь ZM-VE200 со стареньким 120гб винтом в нем, крайне удобная штука особенно при наличии e-sata на целевом ПК для очень быстрого перекидывания файлов.
    Ответ написан
    5 комментариев
  • Какая SD-карта лучше для Live Boot и замены HDD?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    https://ru.sandisk.com/home/memory-cards
    Если нужен именно внешний HDD: вот SSD m.2 BOX (покупаем любой SSD SATA III и вставляем внутрь)
    Ответ написан
    3 комментария
  • Как привести переменную к переменному типу?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    В других языках ЭТО реализуется так, как этого требует система типов конкретного языка, с помошью плюшек, предоставляемых самим языком и/или его стандартной библиотекой :) Подробности (например): раз, два, три. На практике это может быть что угодно - от велосипедной эксплуатации автобоксинга или перегрузки операторов / сигнатур методов, через рефлексию, дженерики, темплейты (в плюсах), или оберточные типы (как в Java) и вплоть до реальной компиляции "на лету" в каком-нить Groovy. Последнее, семантически - тот же eval, чреватый теми же побочными эффектами.

    Тут фантазия разработчика, владеющего конкретным языком, ограничена, разве что, здравым смыслом, который, в первую очередь, призывает задуматься, а нафига это вообще нужно :) И, что характерно: в подавляющем большинстве случаев (если, конечно, мы не пишем како-нибудь интерпретатор или полиморфный вирус) эти размышления приводят к тому, что все решается проще и надежнее именно статической типизацией... т.е. да - где-то таки придется написать switch case :)
    Ответ написан
    Комментировать
  • Как пробивать НАТ?

    TrueBers
    @TrueBers
    Гуглю за еду
    Стандартных методов нет, ибо провайдеры конфигурируют свои железки как им вздумается. А у довольно большого их количества используется симметричный НАТ, который пробить невозможно.

    Есть несколько RFC на эту тему, сама процедура называется Interactive Connectivity Establishment. Самому писать реализацию крайне не советую, там столько тонкостей, что можно пару лет исследовать. Лучше взять что-то готовое.

    Если нужно из коробки на винде, из пакетов на линуксе, и, вроде бы как, кто-то портировал на Андроид — используйте Teredo/Miredo. Там всё довольно просто, в современных версиях пробиваются все типы ната. В случае симметричного, трафик идёт через релей, реализации которого тоже есть в виде демона. Единственное, что может не устраивать из коробки — там IPv6, если нужен v4, придётся реализовывать маппинг.

    Более тяжёлая артиллерия — это реализация от гугла. Сейчас она входит в кодовую базу Хромиум, в реализацию стандарта WebRTC. Там всё довольно сильно завязано на фреймворк хрома, очень тяжеловесно, довольно долго собирается, используется непривычная терминология из RFC. Зато эта библиотека самая действенная, огромный опыт гугла даёт о себе знать, демоны релеев (TURN) также есть, за вас написан reliable транспортный протокол, может взаимодействовать с браузерами через WebRTC Data Channel и прочие плюшки.

    Есть ещё, конечно, много других библиотек, но они что-то у меня не взлетали, сильно глючили, не всегда правильно тип НАТа определяли и т. п.
    Ответ написан
    Комментировать
  • Как пробивать НАТ?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Универсального способа нет. Гуглить по фразам UPnP, stun, turn.
    Для универсальности надо делать реализации всех способов разом, со стороны клиента перебирать каждый способ до достижения результата, если не один способ не помог то подключаться через промежуточный сервер.
    Ответ написан
    Комментировать
  • Как пробивать НАТ?

    15432
    @15432
    Системный программист ^_^
    TCP / UDP hole punching, статей куча
    Ответ написан
    Комментировать
  • Заметна ли разница между Intel HD Grahics и nVidia GeForce?

    Nekto_Habr
    @Nekto_Habr
    Чат дизайнеров: https://t.me/figma_life
    Если играешь редко, я бы не обращал внимания на видюху. Да, современные интеграхи позволяют запускать современные игры и в них даже можно играть (на минимальнейших настройках в ужасном разрешении, разумеется, но можно - если игра интересная то норм). Но если отвечать строго на вопрос - да, Geforce даже самый младший уделывает интеловские интеграхи в три дыры.
    Ответ написан
    Комментировать
  • Какие есть конструкции/операторы, работающие с массивами в PHP?

    @Quieteroks
    php программист
    Функция для работы с массивами очень большое количество.
    В зависимости от желаемого результата и поставленной задачи имеется множество вариантов решения:
    // print_r($arr[1,2]);     //1 => 'b', 2 => 'c'
    $arr  = ['a', 'b', 'c', 'd'];
    $arr2 = [1 => 'f', 2 => 'c'];
    print_r(array_combine(
        array_keys($arr2),
        array_slice($arr, 1, 2)
    ));


    UPD:
    Из рабочих оператор с массивами имеется только +. Похож на array_merge, но сливает немного иначе.
    Ответ написан
    Комментировать
  • Какие есть конструкции/операторы, работающие с массивами в PHP?

    DevMan
    @DevMan
    конструкций нет, есть функции.
    $arr = ['a', 'b', 'c', 'd'];
    print_r(array_slice($arr, 1, 3));
    Array
    (
        [0] => b
        [1] => c
        [2] => d
    )
    Ответ написан