• Как удалить повторяющиеся значения из массива?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Учитывая тэг "БАЗЫ ДАННЫХ", может проще сразу из базы не выбирать повторяющиеся значения.
    А так - не понимаю, в чём проблема? Просмотреть массив, запоминая встреченные элементы и записывая в новый массив только новые.
    Ответ написан
    3 комментария
  • Почему при переносе сайта Wordpess на новый хостинг сбиваются настройки Темы?

    @dkudrin1 Автор вопроса
    В ИТОГЕ: К решению проблемы переноса существует множество подходов. Сами разработчики темы Virtue в ответ на мой вопрос рекомендовали плагин Duplicator. Он бесплатный и работает на мой взгляд отменно. Только когда уже будете разворачивать на сайте с помощью installer.php указывайте параметры БД, которую вы уже заранее создали пустую на хостинге. Не ведитесь на то что там галочка стоит на Create new DB, они в туториале сами подключатся к уже созданной пустой ДБ. Короче внимательно смотрите туториалы.
    Также проблемы с которыми мне пришлось столкнуться:
    1) Хостинг Nic.ru настроен так, что при наличии index.html в корне сайта он в первую очередь запускает его и останавливается на этом. Ваш index.php не срабатывает. Чтобы побороть этот эффект просто переименуйте index.html или удалите его.
    2) Все файлы сайта на nic.ru должны храниться в подпапке yoursite.com/docs. Это оказывает свой эффект когда вы пытаетесь с помощью Notepad++ найти и заменить все yoursite1.com на yoursite2.com. Вообще лучше так не делать, так как в некоторых темах играет роль ДЛИННА адреса. Пользуйтесь плагином Duplicator.
    3) Если Duplicator ругается на отсутствие модуля ZIP архиватора, смело идите в панель управления NIC в настройки PHP (кстати PHP нужен тоже версии 5.3) и подключайте его там, также поставьте галочку на "Показать все расширения" и подключите сразу ZIP и FILTER. Без них ничего не установится.
    Ответ написан
    2 комментария
  • Какой легкий css фреймворк лучше использовать для адаптивного одностраничного сайта?

    Symphony
    @Symphony Куратор тега CSS
    Ответ написан
    Комментировать
  • Запуск скрипта через определенное время?

    <script>
    window.onload = function (event) {
      setTimeout(function(){ 
        swal("Сообщение отправлено", "Спасибо!", "success");
      }, 6000);
    };
    </script>
    Ответ написан
    Комментировать
  • Как осуществить подключение нескольких шрифтов в css?

    Zoxon
    @Zoxon
    Веб-разработчик
    @font-face {
    font-family: "PT Serif";
      src: url("../fonts/ptserif-normal.eot");
      src: local('☺'), 
      url("../fonts/ptserif-normal.eot?#iefix") format("embedded-opentype"), 
      url("../fonts/ptserif-normal.woff") format("woff"),
      url("../fonts/ptserif-normal.ttf") format("truetype"), 
      url("../fonts/ptserif-normal.svg#PT Serif") format("svg");
    
      font-weight: normal;
      font-style: normal;
    }
    
    @font-face {
      font-family: "PT Serif";
      src: url("../fonts/ptserif-bold.eot");
      src: local('☺'), 
      url("../fonts/ptserif-bold.eot?#iefix") format("embedded-opentype"), 
      url("../fonts/ptserif-bold.woff") format("woff"), 
      url("../fonts/ptserif-bold.ttf") format("truetype"), 
      url("../fonts/ptserif-bold.svg#PT Serif") format("svg");
    
      font-weight: bold;
      font-style: normal;
    }
    
    @font-face {
      font-family: "PT Serif";
      src: url("../fonts/ptserif-italic.eot");
      src: local('☺'), 
      url("../fonts/ptserif-italic.eot?#iefix") format("embedded-opentype"), 
      url("../fonts/ptserif-italic.woff") format("woff"), 
      url("../fonts/ptserif-italic.ttf") format("truetype"), 
      url("../fonts/ptserif-italic.svg#PT Serif") format("svg");
    
      font-weight: normal;
      font-style: italic;
    }
    
    @font-face {
      font-family: "PT Serif";
      src: url("../fonts/ptserif-bolditalic.eot");
      src: local('☺'), 
      url("../fonts/ptserif-bolditalic.eot?#iefix") format("embedded-opentype"), 
      url("../fonts/ptserif-bolditalic.woff") format("woff"), 
      url("../fonts/ptserif-bolditalic.ttf") format("truetype"), 
      url("../fonts/ptserif-bolditalic.svg#PT Serif") format("svg");
    
      font-weight: bold;
      font-style: italic;
    }


    В font-weight можно использовать не ключевые слова, а цифры

    100 Ultra Light
    200 Thin
    300 Light
    400 Regular, Normal
    500 Roman
    600 Medium, SemiBold
    700 Bold
    800 Heavy, ExtraBold
    900 Black

    При использовании указывать font-weight и font-style, в зависимости от их комбинаций будет выбран нужный файл шрифта

    UPD: Если вам не нужно поддерживать совсем уж древние браузеры IE8 (eot) и Android 4.3 (ttf) то достаточно подключить только woff и woff2.
    Svg нужен для Safari версии ниже 5.1

    Подробнее смотрите на caniuse.com

    Хорошая статья на эту тему nicothin.pro/page/web-fonts

    @font-face { 
      font-family: 'Web font'; 
      src: url('webfont.woff2') format('woff2'), 
           url('webfont.ttf')  format('truetype'), /* Только если нужна поддержка старых Android, иначе закомментировать */ 
           url('webfont.woff') format('woff'); 
      font-weight: normal; 
      font-style: normal; 
    }
    Ответ написан
    4 комментария
  • Нагрузочное тестирование сайта

    @cbx
    Если хочется просто и быстро, то вполне сгодится Apache Benchmark идущий в комплекте с веб-сервером Apache. Как-то так:

    ab -n 1000 -c 10 http://my.site.dot.com/url/path/

    Варьируя число одновременных соединений (-c 10) и общее количество запросов (-n 1000) можно примерно прикинуть когда сайт начнёт загибаться. Тестировать лучше с другой машины. Также стоит учесть, что если контент страницы меняется от запроса к запросу (динамика), то AB посчитает такие ответы сервера как Failed: www.celebrazio.net/tech/unix/apache_bench.html

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

    Если захочется большего — смотрите более богатые по возможностям Apache JMeter или Tsung (первый графический, второй консольный). Оба умеют кластеризоваться и генерировать нагрузку с нескольких машин (для этого удобно арендовать инстансы в Amazon EC2), имеют встроенный прокси для записи пользовательских сессий и позволяют задать скорость клиентского соединения (актуально для имитации медленных клиентов и оценки влияния того же nginx). UPD: ещё неплох Yandex Tank

    В любом случае, перед тем как измерять производительность сайта, озаботьтесь мониторингом серверов на которых этот сайт крутится. Без этого смысла в бенчмарках очень мало — они дадут вам какие-то цифры, но дальнейшего плана действий у вас не будет. Как минимум — запустите на машинах утилиту top и смотрите загрузку CPU, потребление памяти и дисковую активность. Также после тестирования просматривайте логи на предмет появившихся ошибок (нехватку сокетов, памяти, ошибки веб-сервера или БД). Полезно включить логгирование медленных запросов в MySQL.

    Дальше — устраняйте выявленные узкие места и повторяйте процесс заново, до тех пор пока не выйдете на приемлемый уровень производительности.
    Ответ написан
    Комментировать
  • Как работает memcache?

    @kmike
    memcached — простая штука: это словарь (примерно как array в php или dict в python) ограниченного объема, висящий в памяти отдельным процессом с несложным протоколом доступа, который могут использовать другие процессы.

    Если в него записать суммарно больше, чем выставленное ограничение на размер, то старые данные (которые дольше всех не использовались) затрутся.

    Думайте об этом примерно как $a['vasia'] = 'petya', но как будто данные в переменной $a сохраняются между вызовами, доступны не только конкретному скрипту + сохранность этих данные не гарантирована.

    По поводу ограничений на размер значений стоит почитать тут.

    Вы на данном этапе хотите записывать десятки тысяч больших объектов (кстати, не понял, каких объектов — то это 6М текста, то что-то про youtube) в оперативную память, чтобы обеспечивать быстрый доступ к ним. Не знаю, та ли это задача, которую хотите решить. Тут потребуется перекомпиляция memcached и большое количество оперативной памяти.
    Ответ написан
    Комментировать