• Как устроена вёрстка кастомного скроллбара?

    @thisuserhatephp
    Офлайн - losers Онлайн - lusers
    Если нужно для определенного блока (для списка например) то так, если для всей страницы убери класс
    .custom-srollbar::-webkit-scrollbar {
      -webkit-appearance: none;
      width: 8px;
    }
    .custom-srollbar::-webkit-scrollbar-thumb {
      border-radius: 8px;
      background-color: #c1c1c1;
    }
    .custom-srollbar::-webkit-scrollbar-thumb:hover {
      background-color: #7d7d7d;
    }
    Ответ написан
    1 комментарий
  • Как работает загрузка файлов с mega.co.nz?

    M0nArX
    @M0nArX
    Данные на серверах меги хранятся в зашифрованном виде и расшифровываются они на ПК пользователя (а так-же шифруются при загрузке, потоковое шифрование). Собственно, когда вы скачиваете файл, он сначала расшифровывается (при этом сохраняя расшифрованную часть файла во временное хранилище), а потом расшифрованный файл просто перемещается из временного хранилища в папку загрузки. Собственно из-за этого загрузка и происходит моментально, это не загрузка - это перемещение, а на сайте отображается реальный процесс загрузки (и расшифровки).
    Ответ написан
    3 комментария
  • Постоянно запущенный скрипт на PHP, как реализовать?

    eXcNightRider
    @eXcNightRider
    FullStack Web Developer | DevOps
    Привожу живой пример из личной продакшн практики. PHP-CLI скрипт как запускаемое приложение
    Начальные условия:
    Наличие GNU Linux (в моём случае это Debian)
    Установленные пакет php, php-cli, остальные по вкусу и зависимостям
    В качестве таймера используется класс React\EventLoop\Factory
    1. Создаём пустой файл, можно без разрешения (например daemon), открываем в текстовом редакторе
    Важно, чтобы в начале была строка #!/usr/bin/php -q
    2. Пишем
    #!/usr/bin/php -q
    <?php
    ini_set("display_errors", 1);
    error_reporting(E_ERROR);
    require "/var/project/vendor/autoload.php";
    require '/var/project/bin/cli_config.php';
    use Ratchet\Session\SessionProvider;
    
    $loop = React\EventLoop\Factory::create();
    //вызовы $loop->addPeriodicTimer можно ставить в нужном количестве, первый параметр - количество секунд
    $loop->addPeriodicTimer(120, function(){
    //код здесь будет выполняться каждые 120 секунд
    });
    //если нужен повторяющийся цикл 
    //$loop->run();
    //а если нужен один раз на вызов
    $loop->tick();

    3. chmod a+x /www/project/bin/daemon - даём права на выполнение
    4. запускаем ./daemon будучи в папке с файлом. Если ошибок нет, всё будет работать
    5. А ещё скрипт можно установить как демон в systemd и управлять с помощью /etc/init.d/daemon.service (start|stop|restart) и есть ещё bash-скрипт который будет держать службу на контроле и перезапускать если что, так как не всегда ошибка возвращает код и systemd считает, что процесс не упал, а его остановили, но это уже другая история

    6. Для решения задачи "Требуется по запросу юзера (нажал кнопку) вести отсчет таймера от 120 секунд до 0 и произвести действие" в php на действие пользователя просто запустить exec('/var/project/daemon', $output_1, $exitval);
    Ответ написан
    1 комментарий
  • Как понять что клиент - посредник?

    @abcyu
    Разработчик
    1. А почему тебе это не все равно?

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

    А может сумма и меньше. Какое это имеет значение. Ты сам на это согласился. Добровольно. С посредниками работают потому, что не могут сами договориться с заказчиками (тут имеет фактор и знакомство и репутация и квалификация и что угодно). Ну не смог ты выйти напрямую... И что? Взялся за гуж не говори что не дюж.

    С нетехническими заказчиками легче работать через технических посредников.

    3. По подробности тех. задания. Если, например, я буду посредником, то ТЗ будет поставлено даже лучше, чем с первичного заказчика.

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

    В конце концов, тебе какая разница почему он тормозит или неспособен адекватно отвечать - по причине отсутствия компетенции, стимула/желания/времени или потому что он не конечный заказчик.

    Два моих последних заказчика небо и земля. Не сомневаюсь, что они оба прямые. Но один отвечает четко, а у другого задумчивость на несколько дней. Да и щедрым его не назвать. Подходит под критерии посредника, но им не является.
    Ответ написан
    Комментировать
  • Глючит bxslider в Chrome. Как исправить?

    gassmonkey
    @gassmonkey
    Провокатор
    Бросай этот шлак, и переходи на Owl
    Только на первую версию, а не вторую. Вторая пока beta, и по глюкам bx переплюнет.
    Ответ написан
    Комментировать
  • Есть ли аудиокниги с описанием технологий?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Только подкасты, но это все же ближе к обще-айтишному образованию. Реальный опыт дает только практика, так что смело используйте свои пробежки как личное время и слушайте обычные аудио книги или музыку.

    Это хороший способ отвлечься. Нельзя все 100% времени посвящать разработке, можно быстро перегореть. Должны быть перерывы и другие увлечения.
    Ответ написан
    2 комментария
  • Есть ли аудиокниги с описанием технологий?

    @balamyt92
    ; select * from users; --
    Аудиокниг не встречал. Качайте и слушайте подкасты на интересующие темы. Например по js.
    Ответ написан
    Комментировать
  • Как зарезать права учётной записи гостя, чтобы он мог запускать только браузер?

    @younghacker
    Вам верно написали про политики ограничения запуска программ (Software Restriction Policy или SRP / App Locker). Попробую немного прояснить суть решения проблемы.

    Главное что нужно сделать это при помощи NTFS ACL заблокировать пользователям возможность запускать программы отовсюду куда они могут записать файлы и при помощи SRP ограничить операционке права запускать программы только каталогами каталогами в которые пользователи не могут писать. В общем случае должно быть разрешено запускать программы только из Program Files и Windows, но запрещено запускать из systemdrive:\Windows\tmp и systemdrive:\Windows\blablabla\spooler

    Для этого нужно понимать, что такое права NTFS их наследование. Все диски в системе на которых есть программы которые можно запускать программы — сделать NTFS. Лучше всего всегда чтобы запускаемые программы были только в Program Files при этом пользователи этих программ никогда не должны иметь прав записи в системные каталоги.

    Любые манипуляции с NTFS и ACL должен проводить человек который понимает что делает!

    Затем:
    1. изменить права на диски таким образом чтобы гость, да и вообще пользователи не могли создавать каталоги и файлы. Единственное обязательное разрешение папки с профилями пользователей и временные папки Windows включая "принтерный спулер". Главный запрет папка с Program Files (незачем туда писать ни пользователям ни пользователям удалённого рабочего стола ни инсталяторам. Всёравно ставить программы и обновления будем от учётки админа)
    2. снять к права пользователей c папки Program Files. Не запретить, а именно снять! (запретом можно случайно сломать доступ и админам) Пользователям можно оставить только Читать каталоги и подкаталоги но не файлы! Traverse folders
    3. после этого включите политику ограничения программ или App Locker и проверьте что пути откуда допускается запуск программ не допускают пользователям записывать данные. Для пущего запрета можете добавить блокировку запуска из некоторых каталогов в Program Files но очень осторожно! Можно повредить систему так что потом и системы и у админа будут проблемы.
    4. проверьте и добавьте ограничение запуска из временных папкок Windows и spooler Windows. Они обычно находятся в папке Windows, а на неё включено разрешение запуска программ (иначе система не стартанёт).
    5. после этого разрешите в Program Files пользователям запускать программы только из папки Google Chrome хотя я рекомендую Mozilla Firefox
    6. также рекомендую снять право пользователей запускать Internet Explorer (некоторые программы Microsoft умеют обходить SRP)

    Теперь при установке программ от учётной записи администратора нужно будет отключать SRP и ставить программу или обновление, затем включать SPR.

    Несколько замечаний.
    SRP и/или AppLocker есть не во всех дистрибутивах Windows. Понятно, что MS это машина по зарабатыванию денег. Но SRP напрямую затрагивает основу основ компьютерной безопасности операционных систем Windows и для меня выглядит не совсем логичным добавить UAC но не дать возможность защищать систему при помощи SRP на самой дешёвой OEM Windows системе. До появления SRP я пользовался замечательной программой TrustNoExe. Она бесплатна ставится в виде сервиса имеет белые и чёрные списки. На новых дистрибутивах Windows я её не испытывал, но она могла бы закрыть брешь в безопасности Windows где есть NTFS но нет SRP.

    SRP это не панацея. К сожалению программы умеющие исполнять скрипты например Word, Excel и т д можно использовать для инжекции постороннего исполняемого кода, а значит можно пытаться поднять привилегии используя известные и не очень уязвимости.

    Дополнительные рекомендации:
    При установке всяких программ типа Google Chrome, Mozilla Firefox, Skype, FoxItReader и т д (их количество будет продолжать расти). следить чтобы они не наставили своих сервисов. С появлением UAC в Windows, всем есть дело и все явно (есть птичка отказаться) или подло (нет выбора) ставят такие сервисы. Если программа ставит такой сервис — удалить его sc delete имя_сервиса. Назначение этих сервисов — скрытая установка своих программ. Отвратительные побочные явления — внезапная поломка системы после неудачного обвноления (включая обновления Windows) У нас был случай когда на клиентских серверах Win2008 после автоматического обновления тотально (у большого числа клиентов) перестал работать терминальный сервер, в результате чего пришлось удалять часть обновлений и ставить другие. После этогого все автообновления были отключены и заблокированы. Нехотите таких сюрпризов — пресекайте все попытки программ установить свои сервисы. Есть программы которые после своей установки хамским образом меняют NTFS acl таким образом что разрешают писать всем в каталог этой программы в Program Files — это сведёт к нулю все ваши старания ограничить запуск программ. Избавляйтесь от таких программ используйте нормальные которые не пишут в Program Files.

    Кроме этого такой подход позволит вам отказаться от антивирусов если не будете бездумно ставить всякий неизвестный и даже известный софт.
    Ответ написан
    8 комментариев
  • На чем писать back-end, в котором много математики?

    @Arik
    Напишите все на чем быстрее получится, посмотрите на нагрузку сервера, какие части ПО нагружают и это быстренько поправьте. А так завтра прочитаете что ассемблер, или еще что, делает все языки вместе взятые и опять начнете переписывать. А так у вас хотя бы есть рабочий вариант какой никакой и в сжатые сроки. Может и не нужно будет ничего переписывать, у меня такое часто бывает.
    Ответ написан
    Комментировать
  • Что разработчик хочет знать о дизайне приложений?

    @LenLord
    android reverse
    Меня бы заинтересовал курс "Как с нуля сесть и нарисовать дизайн для приложения имея только навыки кодинга." :)
    Ответ написан
    6 комментариев
  • Как зарезать права учётной записи гостя, чтобы он мог запускать только браузер?

    Поставить Chrome OS. Вам же кроме браузера ничего не нужно, да и на антивирус не надо раскошеливаться.
    Ответ написан
    3 комментария
  • Как зарезать права учётной записи гостя, чтобы он мог запускать только браузер?

    Adamos
    @Adamos
    Зря тут речь идет про Windows 7. Под такое дело хорошо работает Debian, проверено.
    Более того, буквально парой строчек в конфиге можно ограничить браузер одним сайтом.
    А в винде дыры так или иначе все равно найдутся...

    Конфиг киоска на Debian:
    /etc/rc.local :
    !/bin/sh -e
    iptables -t filter -A INPUT -p tcp -s YOUR_SITE.ru --dport http -j ACCEPT
    iptables -t filter -A OUTPUT -p tcp -d YOUR_SITE.ru --dport http -j ACCEPT
    iptables -t filter -A INPUT -p tcp --dport http -j DROP
    iptables -t filter -A OUTPUT -p tcp --dport http -j DROP
    iptables -t filter -A INPUT -p tcp --dport https -j DROP
    iptables -t filter -A OUTPUT -p tcp --dport https -j DROP
    su -- user -c "startx" &
    exit 0

    /home/user/.xinitrc :
    xset -dpms &
    xset s off &
    exec chromium -kiosk --start-maximized --disable-restore-background-contents --window-size=1280,1024 --disable-translate "http://YOUR_SITE.ru/PATH_TO_PAGE/"

    Запускается Хром прямо под иксами, без оболочек, и открывает нужную страницу. Ни на какие другие сайты доступа нет. Возможности вызвать какие-то другие программы, не имея пароля администратора - тоже ;)
    Ответ написан
    3 комментария
  • Как зарезать права учётной записи гостя, чтобы он мог запускать только браузер?

    @alexxandr
    you'll see in memory only 0xDEADFACE
    Да просто - сделать для него браузер оболочкой.
    Ответ написан
    7 комментариев
  • Как зарезать права учётной записи гостя, чтобы он мог запускать только браузер?

    master2016
    @master2016
    Всё нормально.
    Не пускайте вообще за компьютер этого неуправляемого юного хакера :-)
    Ответ написан
    1 комментарий
  • Как написать слово задом наперёд на php?

    In4in
    @In4in
    °•× JavaScript Developer ^_^ ו°
    echo strrev("String"); //gnirtS

    Что же касается UTF-8 (echo strrev("Строка"); //�коЀтѡ�), то можно поиграть с кодировкой:

    function str_reverse($string){
       return iconv('utf-16be', 'utf-8', strrev(
          iconv('utf-8', 'utf-16le', $string)
       ));
    }


    либо прямо в лоб:

    function str_reverse($string){
       return implode("", array_reverse(
          str_split($string)
       ));
    }
    Ответ написан
    1 комментарий
  • Как сделать несколько кнопок на сайте, при нажатие на которые в определенный див будет добавляться определенный текст и скрывать предыдущий текст?

    In4in
    @In4in
    °•× JavaScript Developer ^_^ ו°
    Каждому кругу добавим data-атрибут:

    <tag data-word="Слово">

    А далее немного jQuery:

    $(document).on("click", selector, function(){
       $(output).text(this.dataset.word);
       //Или $(this).attr("data-word");
    });


    selector - CSS селектор круглых блоков.
    output - селектор блока, в который будет выводится текст
    Ответ написан
    1 комментарий
  • Как сделать чтоб блок с картинкой был больше?

    RadCor
    @RadCor
    Если мой ответ вам помог, отмечайте его решением.
    Допишите в фон / cover
    61083ab832aa42009ef80ec160a11c15.jpg

    Вот тут описано, что это значить и как работает
    Ответ написан
    Комментировать
  • Ломается верстка пирога (меню) в Safari. Как достичь кроссбраузерности на последних версиях?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Для создания таких svg-пирогов и прочего, давно уже придумали D3.js. Просто отличнейшая библиотека для создания подобных вещей.
    Ответ написан
    1 комментарий