• Как сделать интернет для компьютерного клуба?

    katelin1106
    @katelin1106
    Сетевой инженер MikroTik
    Сеть в клубах клиентам настраиваю часто.

    Для Вашего случая вполне подойдёт любой неуправляемый коммутатор TP-Link на 16 портов (если не потребуется ещё, скажем, видеонаблюдение делать), а в качестве роутера - hEX либо hAP ac2. На скоростях до 100 Мбит/с выдержит большое количество очередей (о них позже).
    Сами эти роутеры вывозят реальную скорость до гигабита, но не в случае очередей трафика.
    Если скорость уже 200-300 Мбит/с, то лучше выбирать RB4011, он помощнее.

    Предложенный в комментах RB5009 на мой взгляд бессмысленное приобретение для 12 компов. Из пушки да по одному воробью.

    Теперь про очереди. В онлайн-играх важно, чтобы игровой трафик получал приоритет. При игре по локальной сети обычно никаких проблем не бывает, но при игре с игроком за пределами клуба можем столкнуться с проблемой потерь пакетов в случае загруженного канала. Решаю обычно следующим образом - выделяем несколько типов трафика:
    1. Игровой - в него входит собственно игровой трафик, голосовой трафик, и icmp запрос-ответ (в народе - пинг). Обычно не более 2-3 Мбит/с в сумме.
    2. Трафик обновления игр (когда при запуске клиент хочет обновиться).
    3. Всё остальное, что не вошло в два предыдущие - веб-серфинг, обновление Windows, прочее.
    4. Трафик от гостевого Wi-Fi.

    И всё это распределяем по приоритетам прямо по этому списку. То есть игровой трафик получает высший приоритет, и игровые пакеты не теряются даже при загруженном канале; обновление клиентов получают приоритет перед остальными типами трафика (нам нужно, чтобы клиент обновился как можно быстрее), но не в ущерб игровому трафику; веб и обновления винды - если останется свободный канал; гостевой - если останется свободный канал после трёх предыдущих.

    Получается два дерева очередей - на загрузку и на выгрузку.

    Ещё пара слов про коммутаторы. В данном случае не вижу смысла брать ни CRS326, ни CSS326, они оба избыточны в данном кейсе. Если же есть желание получать подробную информацию о трафике на каждом порту, то, конечно, предпочтение за CRS326. Если такого желания нет, то достаточно тупого 16-портового надёжного коммутатора.
    Ответ написан
    1 комментарий
  • Кто может объяснить про наборы символов в шрифтах?

    dmotion
    @dmotion
    Мне тоже стала интересна разница между extended шрифтами и обычными. Для примера я взял шрифт PT Serif Cyrillic и PT Serif Cyrillic Extended, который использую в некоторых своих проектах и открыл их в FontCreator, чтобы увидеть разницу в наборе символов.

    В обычном оказалось 329 символов, в extended 464. Основная разница между ними - это дополнительные буквы сербского, казахского, украинского и других языков. В остальном они идентичны, за исключением наличия знака гривны в extended версии.

    Обычная версия шрифта подойдет для большинства сайтов российского сегмента. Подключать extended версию имеет смысл только если сайт мультиязычен, то есть кроме русского и английского языка используются другие.
    Данная информация справедлива для шрифта PT Serif, в других шрифтах набор символов может отличаться, хотя я и не думаю, что кардинально.

    Скриншоты набора символов:
    PT Serif Cyrillic
    PT Serif Cyrillic Extended
    Ответ написан
    Комментировать
  • Что такое замыкание?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    В целом ты все верно понял. Почитал я тут ответы, термины, термины, термины...

    Я люблю простые объяснения, буквально на пальцах.

    Вот ты вызвал функцию, в ней создаются переменные локальной области видимости, т.е. доступные только самой функции. Под эти переменные движок JavaScript выделяет память.

    Когда обычная функция завершает свое выполнение, освобождает память, которую выделял раньше, если на переменные не осталось ссылок.

    В случае с замыканием, ты возвращаешь функцию обратно, т.е. ссылки остаются, поэтому движок не может освободить память, и переменные остаются доступными функции, и более никому. Поэтому эта штука и называется замыкание, т.к. переменные замкнуты на саму функцию.

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

    Один из основных паттернов, для которых применяются замыкания - ограничение доступа к данным, их изоляция (ограничение их области видимости).

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

    В ответах есть пример со счетчиком, который наглядно демонстрирует этот принцип.
    Ответ написан
    2 комментария
  • Gulp.js - file to import not found or unreadable. В чем проблема?

    @LMI
    Понимаю, что вопрос уже устарел, но вдруг кому поможет.

    У меня была такая же проблема на Windows 7, где стоял HDD. Буквально на днях я перешел на Mac OS, где стоит и SDD и эта проблема сама по себе исчезла. Так что действительно у кого такая трабла, то либо ставьте задержку на gulp watcher или покупайте SSD.
    Ответ написан
    Комментировать
  • Посоветуйте Lato-похожий шрифт с кириллицей

    pvasili
    @pvasili
    Посмотрите тут: fonts4web.ru/lato.html
    Ответ написан
    Комментировать
  • Как использовать несколько таких плагинов на одной странице?

    fnnzzz
    @fnnzzz
    front-end dev
    Делай разные инициализации под разными id-шками.
    $("#owl-carousel1").owlCarousel();
    $("#owl-carousel2").owlCarousel();
    Ответ написан
    Комментировать
  • Как называется такой стиль сайта?

    In4in
    @In4in
    °•× JavaScript Developer ^_^ ו°
    Полноэкранная верска.

    Делается с помощью JS плагинов, типа Fullpage, Onepage, Scrollify (лучший, на мой взгляд) и т.п.
    Ответ написан
    Комментировать
  • Величина «rem» вместо пикселей — что это такое?

    @asd111
    Ваш пример по идее должен выглядеть примерно так:
    html {
    font-size: 1px;
    }
    
    .element{
    margin: 0px 20px 0px 20px;
    margin: 0 20rem 0 20rem;
    }

    таким образом мы сможем все перевести в rem без сложных расчетов
    Ответ написан
    1 комментарий
  • Как заставить gulp собирать compass + foundation?

    m1skam
    @m1skam Автор вопроса
    Проблема со сборкой foundation решилась.
    Оказалось, что foundation не собирается с помощью sass 3.4, только 3.3 и более ранним.

    UPD: В последних (по состоянию на 01.07.15) релизах такой проблемы не наблюдается.
    Ответ написан
    Комментировать
  • Чем скачать yandex-плейлист целиком?

    @dedmaroz
    Поиск по трекерам ничего не дал, плагины для браузеров качают по 1 записи.

    Написал расширение для браузеров Chrome, Yandex, Opera: https://github.com/egoroof/yandex-music-fisher
    Можно качать как треки, так и плейлисты, альбомы и даже дискографию исполнителей.
    UPD (01.07.15) - добавлена поддержка ID3 тегов!
    Ответ написан
    5 комментариев
  • Как использовать и для чего предназначен main-bower-files?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Он ничего не подключает. Задача этой штуки, собрать пути до всех библиотечек.

    Приведу пример. Возьмем jQuery. Для того что бы использовать jQuery в своем проекте вам надо сделать следующее.
    bower install --save jquery
    bower будет искать пакет с названием jQuery, скачает его и на этом его миссия будет завершена, а у вас в директории bower_components (или как вы ее назвали в bowerrc), будет папка jquery с несколькими файликами. В случае jQuery вам нужен только один файл, он является главным.

    В bower.json пакета jquery указывается главный файл (тот, который собственно и должен использоваться в проекте)
    {
      "name": "jquery",
      "version": "2.1.2-pre",
      "main": "dist/jquery.js",

    вот это вот поле main и содержит имя нужного нам файла. К слову файлов можно указывать сколько угодно и какого угодно типа.

    Задача этой тулзы - пробежаться по всем зависимостям которые использует ваш проект, собрать пути до каждого файлика указанного в поле main конкретного пакета, и отдать вам массив этих путей.

    Далее вы можете: сконкатенировать js-ки в один файл, закинуть их в другую тулзу которая постарается найти эту библиотеку в cdn и сделает локальный фэлбэк... вариантов масса. Суть в том что вам не нужно вручную прописывать пути до нужных файлов, это не интересно, скучно, и после обновления пакетов внезапно может поломаться сборка.
    Ответ написан
  • Чем отличаются директивы root и alias в nginx "на пальцах"?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Не совсем.
    Делают они одно и то же только для location /.

    Если у вас, например, location /img, то при
    root /var/www ссылка /img/1,jpg будет вести в файл /var/www/img/1.jpg

    а при alias /var/www та же ссылка будет вести в /var/www/1.jpg.
    Ответ написан
    2 комментария
  • Навыки front-end разработчика

    gelevanog
    @gelevanog
    javascript developer
    HTML (XHTML, HTML4, HTML5) - обязательно (внимание на HTML5)
    CSS (2.1, CSS3, etc.) - обязательно (внимание на все версии)
    JavaScript / Ajax - обязательно, классика
    jQuery - обязательно, классика
    Popular Frameworks (HTML5 Boilerplate, Twitter Bootstrap, etc.) - первый удобный шаблон для html5 проекта, не более, второе уже классический шаблон для адаптивной верстки
    Modernizr - библиотека для определения браузеров, клиентов, девайсов - прочитать, усвоить, применять по необходимости что-то определить
    OOCSS / BEM / SMACSS (Modular coding methodologies) - способы удобного написания стилей, прочитать, усвоить, применять по необходимости
    CSS Grids - не знаю что автор имел ввиду - видимо CSS-сетки, просто надо знать
    CSS Frameworks / Resets - ничего сложного технологии обнуления стилей и опять наборы CSS правил с классами типа animate.css
    Progressive Enhancement / Graceful Degradation - понятие связанное с кроссбраузерностью и упрощением функционала и отображения в некоторых браузерах
    HTML and CSS Specifications (W3C / WHATWG) - чаще проверять код на валидность, это позволяет понять свою ошибки как раз на основе этих спецификаций
    UX / Usability - больше для дизайнеров, но тоже пригодится
    Website Speed / Performance - плюшки по оптимизации
    Developer/Debugging Tools (Chrome Dev Tools, Firebug, etc) - умение ковыряться в консоли, надо знать и применять всегда
    YUI Library - по необходимости
    Dojo / MooTools / Prototype - изучать и применять по необходимости
    Responsive Web Design - надо знать работу с css медиа-запросами
    Mobile Web Development - абстрактное понятие связанное с разработкой мобильных веб-приложений
    Mobile Web Performance ---
    Cross-Browser / Cross-Platform Development - абстрактное понятие связанное с разработкой кроссбраузерных и кроссплатформенных приложений
    Document Object Model (DOM) - дом модель - на вводном курсе по js должен знать о ней каждый фронтендер
    Cross-Browser Bugs and Inconsistencies (primarily IE6-8) - без комментариев
    CSS Pre-Processors (LESS / Sass) - удобные препроцессоры для работы со стилями, рекомендую для упрощения работы с CSS
    Version Control (Git / GitHub / CVS / Subversion) - полезный навык, нужный не только фронтендерам, полезен для командной разработки.
    HTML5 APIs (Canvas, Geolocation, Video, etc.) - изучать и применять по необходимости
    Object-oriented Programming (OOP) - без комментариев
    Back-end Templating languages/technologies (PHP, Ruby, .NET, etc) - нужно знать на базовом уровне, что бы понимать как обрабатывать данные на клиенте, возвращенные/отданные сервером, мучать бэкендщика по этому поводу.
    Scaffolding, Task Runner tools (Yeoman, Grunt, Bower, etc.) - удобные штуки упрощающие работу
    MVC Frameworks (Angular, Backbone, etc.) - изучать и применять по необходимости
    MySql - изучать
    Accessibility / WAI-ARIA - изучать и применять по необходимости
    Microdata / Microformats - изучать и применять по необходимости
    HTML5/CSS3 Polyfills - изучать и применять по необходимости
    CMS (WordPress, Drupal, Joomla, etc) - изучать и применять по необходимости
    Functional Programming - без комментариев, надо знать
    Data Formats (e.g. JSON, XML) - надо знать
    Internationalization / Localization - абстрактное понятие
    Content Strategy - изучать и применять по необходимости
    Offline Web Apps - изучать и применять по необходимости
    Regular Expressions - надо знать на базовом уровне
    .htaccess - изучать и применять по необходимости
    SVG - изучать и применять по необходимости
    Image Editing Tools (Photoshop, Fireworks, etc.) - надо знать
    Web Font Embedding / Licensing - работа со шрифтами
    SEO - фронтеднеру надо знать на уровне семантичной вертски
    Haml - работа с HTML
    CoffeeScript - работа с JS

    В целом все эти технологии, понятия и пр. тесно пересекаются друг с другом. Изучая что-то одно невольно изучаешь другое.
    Ответ написан
    1 комментарий
  • Как отправить HTTP запрос методом POST на URL через PHP?

    Tyranron
    @Tyranron
    Действительно, за время, которое потратили на создание вопроса, Вы могли без проблем найти интересующую Вас информацию в любом поисковике.

    Но раз вопрос уже задан, то должен быть и ответ(ы).
    Собственно, @OnYourLips дал ссылку на хороший фреймворк, но если нет смысла тащить в проект/скрипт целый фреймворк ради одного запроса, к примеру, то логичнее воспользоваться упомянутым CURL. В Вашем случае сценарий использования CURL будет выглядеть примерно следующим образом:
    $myCurl = curl_init();
    curl_setopt_array($myCurl, array(
        CURLOPT_URL => 'http://target.site.com/form.php',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => http_build_query(array(/*здесь массив параметров запроса*/))
    ));
    $response = curl_exec($myCurl);
    curl_close($myCurl);
    
    echo "Ответ на Ваш запрос: ".$response;

    Если надо передать при этом ещё и файлы, или обратиться по https, или ещё чего Вам понадобится - добро пожаловать в документацию:
    http://php.net/manual/ru/book.curl.php
    Советую обратиться к документации в любом случае, дабы ознакомиться со всеми возможными нюансами, а также понять и выбрать то, что конкретно Вам потребуется для решения Вашей задачи.
    Ответ написан
    3 комментария
  • Выборка из двух таблиц

    Akint
    @Akint
    SELECT a.id,a.phone,b.device,b.address FROM users as a,devices as b WHERE a.id = b.user_id;
    
    Ответ написан
    3 комментария